双目摄像头测距原理
嘿,伙儿们!今天咱来聊聊双目摄像头测距的原理。这就跟咱河南话一样,得有个来龙去脉。
视差的概念
首先,咱得知道啥是视差。简单来说,就是从两个不同位置观察同一个物体时,物体在视野中的位置变化与差异。就像咱从两个眼睛看东西一样,看到的画面有点不一样。这个视差角,就是咱说的“视差”。而两点之间的距离,就是视差基线。
单目摄像机为啥不能测深度
为啥单目摄像机不能测深度呢?你看,下面这张图,三个不同远近的黑色点在下方相机上投影在同一个位置,单目相机就分不清到底是哪个点了。所以,它就没办法测深度啦。
双目立体视觉深度相机测距流程
那双目立体视觉深度相机是咋测距的呢?其实也不复杂。首先,得对双目相机进行标定,得到内外参数、单应矩阵。然后,根据标定结果对原始图像进行校正,让两张图像位于同一平面且互相平行。接下来,对校正后的两张图像进行像素点匹配。最后,根据匹配结果计算每个像素的深度,就得到了深度图。
理想双目相机成像模型
要是左右两个相机位于同一平面,光轴也平行,相机参数还一致,那深度值的推导原理和公式就像这样:空间点 p 离相机的距离(深度)z=f*b/d。要想计算深度 z,就得知道相机焦距 f、左右相机基线 b,还有视差 b。这些参数可以通过先验信息或者相机标定得到。而视差 b 呢,需要知道左相机的每个像素点(Xl, Yl)和右相机中对应点(Xr,Yr)的对应关系。这就是双目视觉的核心问题啦。
极限约束
那咋确定左图中像素点在右图中的位置呢?这就用到极限约束了。啥是极线呢?就像 C1、C2 是两个相机,p 是空间中一点,P 和两个相机中心点 C1、C2 形成了三维空间中的一个平面 PC1C2,这个平面和两幅图像相交的两条直线,就是极线。p 在相机 C1 中的成像点是 P1,在相机 C2 中的成像点是 P2,但 p 的位置事先是未知的。我们的目标就是找到 P1 在右图中的对应点 P2,这样就能确定 P 点的空间位置啦。这就是极线约束的作用。