当前位置:   article > 正文

【算法思考】双目视差求像素深度公式理解_双目相机深度公式

双目相机深度公式

背景

双目相机可以通过左右目图像的匹配得到每个像素的视差,即左眼像素 u l , v u_l, v ul,v 能找到右眼图像中的匹配像素 u r , v u_r, v ur,v, 注意经过极线校正后的双目相机,左眼和右眼互相匹配的像素有相同的纵轴坐标(纵轴坐标都是 v v v)。假设我们知道左眼某个像素的视差 d = ∣ u l − u r ∣ d=\vert u_l - u_r\vert d=ulur, 那么如何求解这个像素的深度呢?下文我们就探究一下这个问题。

可视化理解

在这里插入图片描述

如上图所示,我们要求解的像素深度就是 D D D 表示的是空间点到基线(baseline)的距离。而两个像素之间的视差呢,可以理解为 d 1 + d 2 d_1+d_2 d1+d2

推导

我们首先规定,以上的变量的单位都是(像素)。则我们可以看出来左眼形成了相似三角形,并且有 d 1 f = a D − f \frac{d_1}{f}=\frac{a}{D-f} fd1=Dfa, 而右眼形成了相似三角形 b D − f = d 2 f \frac{b}{D-f}=\frac{d2}{f} Dfb=fd2
因此我们可以得到
d 1 + d 2 f = a + b D − f d 1 + d 2 f = b s − ( d 1 + d 2 ) D − f b s − ( d 1 + d 2 ) d 1 + d 2 = D − f f b s d 1 + d 2 = D f D = b s ⋅ f d 1 + d 2

d1+d2f=a+bDfd1+d2f=bs(d1+d2)Dfbs(d1+d2)d1+d2=Dffbsd1+d2=DfD=bsfd1+d2
fd1+d2=Dfa+bfd1+d2=Dfbs(d1+d2)d1+d2bs(d1+d2)=fDfd1+d2bs=fDD=d1+d2bsf

因此我们可以得到深度和视差的关系,其中 d 1 + d 2 d_1+d_2 d1+d2就是视差。以上得到的关系都是以像素为单位,如果要切换到物理世界的长度单位,需要知道每个像素的长度 s s s, 将得到的像素深度 D D D 乘上 s s s即可。另外从上述公式我们可以看出来,视差越小,深度越大,也符合我们的直觉。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/596449
推荐阅读
相关标签
  

闽ICP备14008679号