Visual SLAM 14讲中双目视差公式与代码区别的理解

在视觉SLAM14讲第二版中视差推导公式如下:

\frac{z-f }{z}=\frac{b-u_L-u_R}{b}

z=\frac{fb}{d},d=u_L-u_R

这里z是相机坐标系下路标点的深度值,f是相机的焦距,b是双目相机光心之间的距离(也成为基线长度),这里假设单位均为m,重点在于理解u_L和u_R的含义,书上说是成像平面的坐标,但是我们知道只有同量纲的单位才能进行加减运算,因此这里u_L和u_R应该不是像素坐标,而是虚拟成像平面上(也就是距离光心为正f所在的平面)投影点与光心投影点之间的距离值(这里假设为标量值,高博还严谨的讨论了一下坐标的正负问题),单位为m。

可以参考十四讲的几何模型进行理解

而在代码中经常采用

int disparity = disparity_img.at<uchar>(y, x);
double depth = fx * baseline / disparity;

这里fx是相机内参,disparity是视差图的值,我们知道fx=f*\alpha,这里\alpha的物理含义应该是在给定像素分辨率的情况下,1m对应的像素块的个数,因此fx是焦距长度所对应的像素块的个数。这里的视差值(disparity)也是路标点在左右目的像素平面上的投影像素坐标值之差。因此公式中的f和d与这里的fx和disparity刚好差一个\alpha的比例因子,用公式解释如下

fx = f*\alpha

d = disparity*\alpha

\frac{fx*b}{disparity}=\frac{f*\alpha*b}{d*\alpha}=\frac{f*b}{d}

总结:

公式与代码相差了一个比例因子\alpha,表示1m对应的像素块的个数(在基线长度单位为m的条件下)

!!注意!!

以上所有探讨的前提是做好双目立体矫正,也就是统一路标点在双目的像素投影坐标的纵坐标相等。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
SLAM (Simultaneous Localization and Mapping) 是一种将自主车辆或机器人中的传感器数据与环境地图相结合,实现同时定位和建图的技术。WAN ZHENG DAIMA 指的是完整的代码,意思是指SLAM14讲课程中提供了完整的代码实现。 SLAM14讲是由张正友教授主讲的一门关于SLAM的公开课程。这门课程整合了数十年的研究成果和函数库,提供了SLAM算法的理论基础和实际操作的演示。在这门课程中,学习者可以学到SLAM算法的原理与实现方法,并通过实例和代码来加深对SLAM理解。 通过学习SLAM14讲的完整代码,我们可以深入了解SLAM的数学模型及其实际应用。课程中提供的代码可以帮助学习者快速上手,并且通过实践项目来加深对SLAM算法的理解。这些代码涵盖了从传感器数据获取、特征提取、数据关联、位姿估计、地图更新等关键步骤,帮助我们理解SLAM的整个流程。 同时,学习SLAM14讲的完整代码也对于研究者和开发者来说非常有益。通过学习代码,我们可以掌握SLAM算法背后的原理,了解不同方法的优劣,并根据实际需求进行调整和改进。这对于开展SLAM相关的研究和项目开发具有重要意义。 总之,SLAM14讲课程提供的完整代码为学习者和开发人员提供了一个全面了解SLAM的机会。通过学习和实践,我们可以深入理解SLAM的原理和实现方法,并将其应用于实际项目中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值