双目三维重建———基本概念介绍

生成三维点云是计算机视觉和机器人领域中的一个重要任务,尤其是在环境建模和深度感知方面。双目相机,利用两个平行摆放的相机模拟人类的双眼视觉,可以通过计算两个相机视图间的视差来重建三维空间信息。这里将为你介绍如何使用双目相机生成三维点云的基本原理和步骤。

双目相机系统介绍

双目相机系统包括两个同型号的相机,它们被固定在一定的距离(基线距离)上,且相机的光轴平行对齐。这种布局使得每个相机捕获到的场景图像存在视差,即同一物体在两个相机视图中的位置存在水平位移。利用这种视差,可以计算物体到相机的距离。

图像预处理的目标

图像预处理的主要目的是提高图像质量,减少图像之间的畸变差异,确保后续视差计算的准确性。这包括去噪声、灰度化、增强对比度以及图像校正。

1. 去噪声

去噪声是预处理的第一步,目的是减少图像捕获和传输过程中引入的随机噪声。常用的去噪技术有高斯平滑、中值滤波或双边滤波。这些滤波技术可以帮助平滑图像,减少噪点,而不会过度模糊图像中的重要特征。

2. 灰度转换

由于颜色信息在计算视差时并不总是必需的,将彩色图像转换为灰度图像可以简化数据处理的复杂性。灰度化也有助于统一图像数据格式,使得后续的处理更加高效。

3. 增强对比度

对比度增强可以改善图像的视觉效果,使得图像中的对象边界更加清晰。常用的方法包括直方图均衡化或自适应直方图均衡化,这些方法可以优化图像的亮度分布,突出重要的视觉特征。

4. 图像校正(立体校正)

图像校正是一个关键步骤,旨在确保来自两个相机的图像在同一视平面上对齐,这样可以直接比较它们以计算视差。

校正步骤:
  • 摄像机标定:首先进行摄像机标定以获取摄像机的内参(如焦距、主点)和外参(如旋转和平移矩阵)。这可以通过拍摄已知图案的标定板(如棋盘格)来完成。
  • 计算重投影矩阵:使用内参和外参,计算两个摄像头视图之间的几何关系,进而生成重投影矩阵。这一步骤是为了将两个视图转换到共同的平面上。
  • 应用重投影:将重投影矩阵应用于原始图像,以确保两个相机拍摄的图像行对齐。这意味着对应的图像点将出现在两个图像的同一行上。
  • 修正畸变:校正图像畸变,特别是镜头引起的径向畸变和切向畸变。
径向畸变校正

径向畸变会使图像呈现放射状弯曲,尤其是边缘部分。其校正公式通常表示为:
xcorrected=xdistorted(1+k1r2+k2r4+k3r6) x_{\text{corrected}} = x_{\text{distorted}} (1 + k_1 r^2 + k_2 r^4 + k_3 r^6)xcorrected=xdistorted(1+k1r2+k2r4+k3r6)
ycorrected=ydistorted(1+k1r2+k2r4+k3r6) y_{\text{corrected}} = y_{\text{distorted}} (1 + k_1 r^2 + k_2 r^4 + k_3 r^6)ycorrected=ydistorted(1+k1r2+k2r4+k3r6)
其中,xdistortedx_{\text{distorted}}xdistortedydistortedy_{\text{distorted}}ydistorted 是原始图像中的畸变坐标,xcorrectedx_{\text{corrected}}xcorrectedycorrectedy_{\text{corrected}}ycorrected 是校正后的坐标,rrr是像素点到图像中心的归一化距离,k1,k2,k3k_1, k_2, k_3k1,k2,k3 是畸变系数。

切向畸变校正

切向畸变通常由摄像机内部元件不完全平行引起,其校正公式为:
xcorrected=xdistorted+[2p1xdistortedydistorted+p2(r2+2xdistorted2)] x_{\text{corrected}} = x_{\text{distorted}} + [2p_1 x_{\text{distorted}} y_{\text{distorted}} + p_2 (r^2 + 2x_{\text{distorted}}^2)] xcorrected=xdistorted+[2p1xdistortedydistorted+p2(r2+2xdistorted2)]
ycorrected=ydistorted+[p1(r2+2ydistorted2)+2p2xdistortedydistorted]y_{\text{corrected}} = y_{\text{distorted}} + [p_1 (r^2 + 2y_{\text{distorted}}^2) + 2p_2 x_{\text{distorted}} y_{\text{distorted}}] ycorrected=ydistorted+[p1(r2+2ydistorted2)+2p2xdistortedydistorted]
其中,p1p_1p1p2p_2p2 是切向畸变系数。

几何校正(立体校正)

几何校正的目的是确保两个摄像机拍摄的图像在同一水平线上对齐。这涉及到计算重投影矩阵和应用到图像上。这个过程可以通过以下步骤进行:

视差计算

视差计算是生成三维点云的核心步骤。常用的方法包括块匹配(Block Matching)和半全局匹配(Semi-Global Matching, SGM)。这些方法通过比较左右相机图像中的对应区块来确定每个像素的视差值。
在这里插入图片描述

三维重建

得到视差图后,可以根据几何关系计算每个像素点的三维坐标。基本的三维坐标计算公式为:
Z=f×Bd Z = \frac{f \times B}{d} Z=df×B
其中,$Z $ 是点到相机的距离,fff 是相机的焦距,BBB 是两个相机之间的基线距离,$d $ 是视差。对于图像中的每个像素,都可以通过这种方式计算出一个三维坐标,进而生成整个场景的三维点云。

后处理与优化

生成的三维点云可能包含噪声或不连续的点。通过后处理步骤,如点云滤波、平滑和优化,可以提高点云的质量和使用效果。

总结

双目相机系统通过模拟人眼的立体视觉来重建三维空间,广泛应用于自动驾驶、机器人导航和虚拟现实等领域。掌握双目视觉的基本原理和技术可以有效地解决许多实际问题。希望这篇介绍能帮助你理解并应用双目相机生成三维点云的技术。
图像预处理是三维点云生成中的一个关键步骤,尤其是图像校正(也称为立体校正)过程,它直接影响到视差计算的准确性和最终的三维重建质量。以下是进行图像预处理,特别是图像校正的详细步骤。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐