《视觉SLAM十四讲》ch13.3:三角化公式推导及代码详解

本文详细介绍了《视觉SLAM十四讲》中单目稠密重建代码的三角化过程,包括公式的推导、克莱姆法则的应用以及与代码的对应解释,旨在帮助读者深入理解三角化计算像素点对应深度值的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

《视觉SLAM十四讲–ch13.3》单目稠密重建代码中的三角化过程,不像第7章直接调用OpenCV中的triangulation()函数求解,而是自己根据公式计算、并使用克莱姆法则对方程组进行求解,得出深度信息。

但代码中对有关公式的推导及与公式的对应关系讲解的不甚清楚,这里对该三角化过程进行公式推导,并与实现代码对应起来,方便大家理解。

公式推导也可参考:三角化公式推导&手撕代码进行补充。

公式推导

当通过极线搜索和块匹配确定参考帧与当前帧的匹配像素点以后,接下来就是通过三角化计算像素点对应的深度值。
按照对极几何中的定义,设 x 1 , x 2 x_1,x_2 x1,x2为两个匹配像素点的归一化坐标,则他们满足:

s 1 x 1 = s 2 R x 2 + t s_1x_1=s_2Rx_2+t s1x1=s2Rx2+t

即:

(1) s 1 x 1 − s 2 R x 2 = t s_1x_1-s_2Rx_2=t\tag 1 s1x1s2Rx2=t(1)

对式(1)分别左乘 x 1 T x_1^T x1T ( R x 2 ) T (Rx_2)^T (Rx2)T,得到式(2):
(2) { s 1 x 1 T x 1 − s 2 x 1 T R x 2 = x 1 T t s 1 ( R x 2 ) T x 1 − s 2 x 2 T x 2 = ( R x 2 ) T t \left\{ \begin{array}{c} s_1x_1^Tx_1-s_2x_1^TRx_2=x_1^Tt \tag 2\\ \\ s_1(Rx_2)^Tx_1-s_2x_2^Tx_2=(Rx_2)^Tt \end{array} \right. s1x1Tx1s2x1TRx2=x1Tts1(Rx2)Tx1s2x2Tx2=(Rx2)Tt(2)

令: x 1 = f r e f 、 s 1 = d r e f 、 x 2 = f c u r r 、 s 2 = d c u r r 、 f 2 = R R C ∗ f c u r r x_1=f_{ref}、s_1=d_{ref}、x_2=f_{curr}、s_2=d_{curr}、f_2=R_{RC}*f_{curr} x1=frefs1=drefx2=fcurrs2

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值