立体视觉是一种计算机视觉技术,主要用于获取场景的三维信息。它主要基于两个或多个摄像头的成像数据来重建物体的3D形状。以下是该主题中涉及的一些核心知识点:
1. **相机模型**:相机模型描述了光线如何从真实世界的3D空间通过镜头投影到2D图像平面上。最简单的模型是针孔相机模型,其中光线通过一个微小的孔径(针孔)并在感光面上形成倒立的实像。相机模型包括世界坐标系、相机坐标系、图像坐标系和像素坐标系之间的转换。
2. **畸变模型**:相机镜头存在径向畸变和切向畸变,使得实际成像与理想直线有偏差。径向畸变是由于镜头中心对称性导致的辐射状失真,而切向畸变是由于成像平面不垂直于主光轴引起的。畸变矫正需要用到畸变系数,通过算法可以校正图像中的畸变。
3. **双目测距**:双目视觉是利用两个相机捕捉同一场景的不同视角,通过计算图像中的视差来推断深度信息。视差是同一物体在不同图像中的位置差异。这种方法基于三角测量原理,可以将视差转换为距离。
4. **相机标定**:相机标定是确定相机内参(如焦距、主点位置、像素尺寸)和外参(旋转矩阵R和平移向量t)的过程,以消除镜头畸变并准确地将世界坐标转换为图像坐标。常用的相机标定方法是张氏标定法,它采用棋盘格图案进行标定。
5. **三角定位**:三角定位是通过两个相机捕获的图像信息来确定三维点的位置。给定一个图像点及其对应的视差,可以使用三角几何关系计算出3D坐标。
6. **极线约束**:极线约束是立体视觉中的关键概念,它指出在两个相机视图中,与同一点对应的一对点必须位于一条称为极线的直线上。这有助于减少匹配不确定性,并在寻找对应点时提供约束。
7. **立体校正**:立体校正旨在消除视差图中的畸变,使左右图像的极线对齐,以便于后续的立体匹配。校正后的图像称为共面行对准,意味着它们的行对应于相同的物方水平线。
8. **立体匹配**:立体匹配是寻找两个不同视点图像中对应像素的过程,目的是计算视差图,从而获得深度信息。这一过程面临诸如反射表面、均匀区域、重复模式等挑战,需要使用各种算法(如SIFT、SURF、BM匹配等)来解决。
9. **3D结构光**:3D结构光是另一种获取三维信息的技术,通常包括一个红外发射器(如结构光投影仪)和一个红外相机。投影的光图案被物体反射,然后由相机捕获,通过分析图案的变形,可以重建物体表面的形状。
在实际应用中,这些知识点结合可以用于自动驾驶、机器人导航、虚拟现实、增强现实、工业检测等领域,为机器理解和交互环境提供了必要的3D信息。