机器视觉基础:双目相机原理与深度感知
机器视觉基础:双目相机原理与深度感知
双目相机是机器视觉领域中一种重要的深度感知设备,通过模拟人眼的视觉原理来实现对物体距离的测量。本文将详细介绍双目相机的基本概念、测量原理以及其在深度感知中的应用。
双目相机概念与测量原理
双目相机的工作原理类似于人眼观察世界的方式。人眼之所以能够感受到立体视觉,是因为左右眼之间大约有6到7厘米的间隔,导致左右眼看到的影像存在细微差别,从而能够判断物体的远近以及多个物体的前后关系。
双目相机通过两个不同位置的摄像头拍摄同一场景,获取两幅具有视差的图像。通过分析这些视差,可以计算出物体的深度信息。双目相机主要分为两种类型:
- 被动双目相机:由两个RGB镜头组成,通过分析两幅图像的视差来计算深度。
- 主动双目相机(双目结构光相机):由两个红外摄像头和一个结构光发射器组成,通过发射特定的光图案来辅助立体匹配,获得更完整的深度信息。
双目立体视觉的测量原理与人眼类似。对于单个相机来说,已知图像中的一个像点,通过该像点与相机中心发出一条射线,无法确定发光物体的具体位置。而使用两个相机的两条射线可以确定唯一一个三维目标点的坐标信息,这就是双目交汇的原理。
公式推导
假设我们有一个理想的双目系统,满足以下条件:
- 两个相机具有相同的焦距f
- 光学中心Ol和Or之间的距离为B
- 光轴平行且成像平面属于同一个平面
空间中的一个点P在左右成像平面上形成两个像点XL和XR,将XL - XR = D称为视差。根据相似三角形原理,可以建立以下数学模型:
$$
\frac{B}{Z} = \frac{B - (X_L - X_R)}{Z - f}
$$
$$
Z = \frac{fB}{X_L - X_R}
$$
$$
Z = \frac{fB}{D}
$$
这个关系表明,在双目系统中,只要知道了视差值D,就可以计算出深度值Z。然而,双目立体匹配问题(即寻找左右图像中的对应点)在复杂光照和场景下仍然具有挑战性,尤其是在处理颜色相近的区域时。
对极几何的概念
为了提高立体匹配的效率,引入了对极几何的概念。对极几何通过约束条件将二维平面搜索转化为一维直线搜索,大大提高了搜索速度。
- 对极平面(Epipolar Plane):任何包含基线的平面
- 对极点(Epipole):摄像机基线与每幅图像的交点
- 对极线(Epipolar Line):对极平面与图像平面的交线
对极约束(Epipolar Constraint)通过限制搜索范围,将二维搜索转化为一维搜索,从而提高匹配效率。当三维点P沿着P到光心的方向接近左相机时,其在左相机上的投影点保持不变,但在右相机上的投影点会沿着极线移动。
深度相机
双目相机可以看作是一种深度相机,它在传统2D相机的基础上增加了深度值的测量能力。每个像素经过计算处理后可以得到对应的深度值,所有像素的深度值集合构成一幅深度图。深度图是一张灰度图,用二维坐标表示三维信息。
双目相机在深度感知中存在一些局限性:
- 双目测距要求光轴平行,测距精度严重依赖于平行程度。
- 在复杂光照和场景下,准确的立体匹配是一个难题。
- 对于远处的点,其视差越小,测距结果越容易受到匹配误差的影响。
尽管存在这些局限性,双目相机仍然是机器视觉领域中一种重要的深度感知技术,广泛应用于机器人导航、自动驾驶、3D重建等领域。