当前位置: 首页 > news >正文

三维重建 —— 5. 双目立体视觉

文章目录

  • 1. 平行视图的基础矩阵
  • 2. 图像校正
  • 3. 对应点搜索
    • 3.1. 相关匹配法
    • 3.2. 相关匹配法存在的问题

课程视频链接: 计算机视觉之三维重建(深入浅出SfM与SLAM核心算法)——5. 双目立体视觉。

1. 平行视图的基础矩阵

极点 e ′ e' e 是相机光心 O 1 O_1 O1(在相机 O 1 O_1 O1 坐标系下的齐次坐标为 ( 0 0 0 1 ) \begin{pmatrix} 0 \\ 0 \\ 0 \\ 1 \end{pmatrix} 0001 )在相机 O 2 O_2 O2 对应图像平面上的投影点,即有:
e ′ = K ′ [ T x ] [ R T ] ( 0 0 0 1 ) = K T (1) e' = \mathbf{K}' [T_x] [\mathbf{R} \quad T] \begin{pmatrix} 0 \\ 0 \\ 0 \\ 1 \end{pmatrix} = \mathbf{K} T \tag{1} e=K[Tx][RT] 0001 =KT(1)注意到,旋转矩阵 R \mathbf{R} R 被消去了。
在这里插入图片描述
在实际应用中,通常会选取两个规格一样的相机,即有 K = K ′ \mathbf{K} = \mathbf{K}' K=K,并且相机之间只存在平移变换,即 R = I \mathbf{R} = \mathbf{I} R=I,我们不妨设平移向量为 T = ( t x 0 0 ) T = \begin{pmatrix} t_x \\ 0 \\ 0 \end{pmatrix} T= tx00 。根据方程 ( 1 ) (1) (1) e ′ = K T = ( α − α cot ⁡ θ u 0 0 β sin ⁡ θ v 0 0 0 1 ) ( t x 0 0 ) = ( α t x 0 0 ) e' = \mathbf{K} T = \begin{pmatrix} \alpha & -\alpha \cot \theta & u_0 \\ 0 & \dfrac{\beta}{\sin \theta} & v_0 \\ 0 & 0 & 1 \end{pmatrix} \begin{pmatrix} t_x \\ 0 \\ 0 \end{pmatrix} = \begin{pmatrix} \alpha t_x \\ 0 \\ 0 \end{pmatrix} e=KT= α00αcotθsinθβ0u0v01 tx00 = αtx00 ,不妨取 e ′ = ( 1 0 0 ) e' = \begin{pmatrix} 1 \\ 0 \\ 0 \end{pmatrix} e= 100 ,则有:
F = [ e ′ × ] K ′ R K − 1 = [ e ′ × ] = [ 0 0 0 0 0 − 1 0 1 0 ] \mathbf{F} = [e^{\prime} \times] \mathbf{K}^{\prime} \mathbf{R} \mathbf{K}^{-1} = [e^{\prime} \times] = \begin{bmatrix} 0 & 0 & 0 \\ 0 & 0 & -1 \\ 0 & 1 & 0 \end{bmatrix} F=[e×]KRK1=[e×]= 000001010 由博客 三维重建 —— 4. 三维重建基础与极几何 可知, p ′ p' p 对应的极线是 l = F T p ′ l = \mathbf{F}^T p' l=FTp。假设 p ′ p' p 在相机 O 2 O_2 O2 坐标系的空间坐标为 ( p u ′ p v ′ 1 ) \begin{pmatrix} p_{u}' \\ p_{v}' \\ 1 \end{pmatrix} pupv1 ,则有:
l = F T p ′ = [ 0 0 0 0 0 1 0 − 1 0 ] [ p u ′ p v ′ 1 ] = [ 0 1 − p v ′ ] l = \mathbf{F}^{T} p' = \begin{bmatrix} 0 & 0 & 0 \\ 0 & 0 & 1 \\ 0 & -1 & 0 \end{bmatrix} \begin{bmatrix} p_{u}' \\ p_{v}' \\ 1 \end{bmatrix} = \begin{bmatrix} 0 \\ 1 \\ -p_{v}' \end{bmatrix} l=FTp= 000001010 pupv1 = 01pv 则极线 l l l 的方程为:
l T ( u v 1 ) = ( 0 , 1 , − p v ′ ) ( u v 1 ) = v − p v ′ = 0 l^T \begin{pmatrix} u \\ v \\ 1 \end{pmatrix} = \begin{pmatrix} 0, 1, -p_v' \end{pmatrix} \begin{pmatrix} u \\ v \\ 1 \end{pmatrix} = v - p_v' = 0 lT uv1 =(0,1,pv) uv1 =vpv=0可以看出,极线 l l l 平行于 u u u 轴,并且 p p p p ′ p' p v v v 坐标一样。
现在我们来推导双目立体视觉的经典公式:
d = B f z (2) d = \dfrac{Bf}{z} \tag{2} d=zBf(2)其中:

  • d d d 为视差
  • B B B 为基线,表示相机光心 O 1 O_1 O1 O 2 O_2 O2 的距离
  • z z z 为点 P P P 的深度值

推导方法如下:
在这里插入图片描述
从公式 ( 2 ) (2) (2) 可以看出:视差 d d d 与深度 z z z 成反比。
根据视差与深度的关系,已知基线和焦距的话,我们可以计算出视差图,如下图所示:
在这里插入图片描述

2. 图像校正

如果两个相机不满足前面提到的关系,我们可以通过图像校正的方法将两个图像平面满足双目立体视觉的要求,如下图所示:
在这里插入图片描述
图像校正的具体步骤如下图所示:
在这里插入图片描述
详细的证明参考书籍:Richard Hartley, AndrewZisserman,《Multiple ViewGeometryin Computer Vision》。
图像校正效果示例如下:
在这里插入图片描述

3. 对应点搜索

3.1. 相关匹配法

给定三维空间点,如何在左右图像中找到相应的观测值,被称为双目融合问题。假设我们已知 u v uv uv 平面上点 p p p 的坐标,根据极几何,我们只需要在极线上搜索即可,如下图所示:
在这里插入图片描述
下面介绍使用相关匹配来获取对应点的方法,如下图所示:
在这里插入图片描述
​​相关匹配法的核心思想是:​​ 若两个像素点为真实物理点的对应像点(对应点),则其各自​​固定窗口(邻域)内的局部特征应具有较高的相似度。​
如果两个相机拍摄的图像的亮度和曝光不一致,那么相关匹配法很有可能失效,如下图所示:
在这里插入图片描述
为此引入归一化相关匹配法,即对窗口内的特征向量进行归一化处理,如下图所示:
在这里插入图片描述
归一化相关匹配法示例如下图所示:
在这里插入图片描述
窗口大小选择对相关匹配法效果的影响如下图所示:
在这里插入图片描述

3.2. 相关匹配法存在的问题

相关匹配法主要存在两方面的问题:

  • 透视缩短:如图所示,同一物体区域在不同视角下成像大小不同。对于固定尺寸的匹配窗口,其在两幅图像上所覆盖的区域将存在差异,导致提取的特征区域不对应,从而引发误匹配
  • 遮挡:物体间的相互遮挡会导致在两幅图像中可见的目标区域不一致,同样使得特征提取区域匹配失败
    在这里插入图片描述
    如下图所示,​​长基线可提升深度感知精度(尤其对远距离目标)​​,而​​短基线则能缓解透视畸变与遮挡对相关匹配法的干扰,但会显著降低深度估计的准确性​​。
    在这里插入图片描述
    长基线扩大视差范围,提升远距离目标深度精度,但需更高分辨率摄像头捕捉细微视差。而短基线减少视角差异,缓解遮挡和透视畸变的影响,但视差计算灵敏度下降,导致深度误差增大。基线设计需平衡深度精度与环境适应性(如遮挡/透视),实际应用中需根据场景需求选择。
    除了透视缩短和遮挡问题外,还存在下图中的两个问题:
    在这里插入图片描述
    对应点的问题总结如下:
    在这里插入图片描述
    通过引入更多的约束解决对应点问题,如下图所示:
    在这里插入图片描述

相关文章:

  • 多线程与多进程技术全景对比
  • Docker 部署 RomM 指南:打造私有戏库与即点即玩系统
  • 基于“数智立体化三维架构”框架的医疗数智化机制研究
  • 2025.06.11-华子第三题-300分
  • QEMU源码全解析 —— 块设备虚拟化(30)
  • 华硕笔记本怎么装win11系统_华硕笔记本装win11专业版图文教程
  • 如何在 Elementary OS 上安装最新版本的 VirtualBox
  • YOLOv3 训练与推理流程详解-结合真实的数据样例进行模拟
  • Vue3 + TypeScript 父组件点击按钮触发子组件事件方法
  • RK AndroidFramework 内置应用可,卸载,恢复出厂设置恢复安装
  • 项目拓展-Apache对象池,对象池思想结合ThreadLocal复用日志对象
  • HEAD ` 只返回响应头(Headers),不返回正文内容(Body)
  • 融智学教育观及其数学公式体系凝练汇总
  • 11_13小结
  • 芯片测试之trim详解
  • AI首次自主发现人工生命
  • 用Python写一个可视化大屏
  • Kubernetes 部署 Kafka 集群:容器化与高可用方案(二)
  • Transformer实战——从词袋模型到Transformer:NLP技术演进
  • 浏览器指纹-探究前端如何识别用户设备
  • 开发微信微网站建设/seo优化工具推荐
  • 如何在虚拟机里面做网站/重庆做网络优化公司电话
  • 互联网专线做网站怎么做数据/百度搜索网页版
  • 做英文网站怎么赚钱/百度推广后台登录入口官网
  • 公司门户网站建设公司/名站在线
  • 小企业网站建设菌算/国内免费b2b网站大全