双目测距中基于三角形原理的视差与深度计算原理(下)
扫描二维码
随时随地手机看文章
视差图的生成与遍历计算
视差图是一张与输入图像尺寸相同的灰度图,其中每个像素的灰度值代表该位置的视差值。生成视差图的过程本质上是对左右两幅图像进行像素级匹配的过程,而遍历视差图的每个点则是为了获取场景中每个空间点的视差信息,进而计算其深度。
视差图的生成机制
视差图的生成依赖于立体匹配算法,其核心任务是在右图像中为左图像的每个像素找到对应的匹配点。常用的匹配算法包括基于区域的匹配(如块匹配)、基于特征的匹配(如 SIFT 特征匹配)和基于深度学习的匹配(如 SGM、PSMNet 等)。
以块匹配算法为例,其原理是:对于左图像中某个像素 (x, y),在右图像的同一行(y 坐标相同)上划定一个搜索范围,通过计算像素块的相似度(如 SSD、NCC 等度量)找到最佳匹配点,该点与左图像像素的水平距离即为视差 d。
遍历视差图的原理与意义
视差图中的每个像素点 (x, y) 对应场景中三维点 (x', y', Z),其中 Z 为深度信息。遍历视差图的过程,就是逐个提取每个像素的视差值 d (x, y),并代入深度公式 Z = B × f /d (x, y) 计算对应点的深度。
这一过程的必要性在于:场景中不同物体的深度存在差异,同一物体表面也可能因姿态变化产生深度渐变。只有通过逐点遍历,才能完整重建出场景的深度信息,形成稠密的深度图。例如,在自动驾驶场景中,路面、车辆、行人等不同目标的深度差异显著,遍历视差图可确保每个目标的距离都被精准计算。
关键技术细节与误差控制
在实际应用中,视差计算的精度直接影响深度测量的准确性,而遍历过程需要处理多种误差来源:
系统标定误差:基线长度 B 和焦距 f 的标定误差会直接传递到深度计算中。通过张氏标定法等精确标定方法,可将标定误差控制在 0.1% 以内。
匹配歧义性:在纹理缺失区域(如白墙)、重复纹理区域(如棋盘格)或运动模糊区域,容易出现匹配错误,导致视差图中出现噪声点。通过引入平滑约束(如左右一致性检查)和后处理算法(如中值滤波),可有效剔除异常值。
视差范围限制:由于摄像头分辨率有限,视差的最大可能值由基线长度和焦距决定。当物体距离过远导致视差小于 1 像素时,深度计算会出现较大误差,此时需通过增大基线或使用长焦镜头扩展测量范围。
畸变校正:摄像头透镜的径向畸变和切向畸变会导致像点偏移,需在立体匹配前通过畸变模型(如 Brown 模型)进行校正,确保左右图像的像素在同一 epipolar 线上,减少匹配难度。
应用场景与技术发展
基于视差图遍历的双目测距技术已广泛应用于机器人导航、工业检测、虚拟现实等领域。例如,在服务机器人中,通过实时遍历视差图,机器人可感知周围环境的深度分布,实现避障和路径规划;在 3D 重建中,稠密视差图为三维模型的构建提供了精确的深度数据。
随着深度学习技术的发展,视差图的生成精度和效率不断提升。端到端的立体匹配网络(如 GCNet、RAFT-Stereo)通过学习图像的上下文信息,能够在复杂场景中生成更高质量的视差图,使遍历计算得到的深度信息更接近真实值。同时,硬件加速(如 FPGA、GPU)的应用大幅提升了视差图遍历和深度计算的速度,满足了实时性要求较高的场景(如自动驾驶)。
总结
双目测距中通过三角形原理计算深度的过程,本质上是将二维图像的视差信息转化为三维深度信息的几何映射。遍历视差图的每个点,是将这一映射关系应用于场景中每个空间点的必要步骤,其核心逻辑源于相似三角形的比例关系。随着标定技术、匹配算法和硬件性能的不断进步,基于视差的双目测距技术在精度和鲁棒性上持续提升,为计算机视觉感知三维世界提供了坚实的技术支撑。