专栏名称: 泡泡机器人SLAM
SLAM的最新资讯,干货内容。
目录
相关文章推荐
嗅嗅挖金  ·  机器人概念 ·  7 小时前  
嗅嗅挖金  ·  机器人概念 ·  7 小时前  
51好读  ›  专栏  ›  泡泡机器人SLAM

【泡泡机器人原创专栏-深度滤波器】(一)三角化得到深度值

泡泡机器人SLAM  · 公众号  · 机器人  · 2017-05-01 20:22

主要观点总结

本文主要介绍了单目稠密重建中的三角化恢复深度信息。内容分为几个专题:三角化的提出、三角化公式、求解深度的另外两种方法以及单目稠密重建的流程。附带有详细的公式推导和代码示例。

关键观点总结

关键观点1: 三角化的概念和提出

三角化最早由高斯提出,并应用于测量学中。通过在不同的位置观测同一个三维点,利用三角关系恢复出三维点的深度信息。

关键观点2: 三角化公式的推导

根据对极几何中的定义,通过特征点的归一化坐标,可以推导出三角化公式。公式涉及一元二次线性方程组的求解,可以利用Cramer's法则进行求解。

关键观点3: 求解深度的其他方法

除了利用三角化公式求解外,还介绍了另外两种求解深度的方法:利用叉乘进行消元求解和利用Mid Point Method进行求解。

关键观点4: 单目稠密重建的流程

文章最后简要提到了单目稠密重建的流程,未详细展开。

关键观点5: 版权声明和注记

文章末尾提到了版权声明和转载规定,提醒读者尊重版权,同时给出了商业转载和个人转载的授权方式。


正文

为了详细了解单目稠密重建的细节,我们将会分几个专题来探讨深度滤波器的一系列内容。

1.三角化

2.三角化深度值的误差分析

3.深度滤波器的原理及实现

4.单目稠密重建的流程


本系列内容主要参考高翔《视觉SLAM十四讲》,这里加上自己的理解,做一个总结。

本篇博客我们来聊一聊三角化恢复深度信息。

目录:

(1)三角化的提出

(2)三角化公式

(3)求解深度的另外两种方法

附录


(1)三角化的提出

三角化最早由高斯提出,并应用于测量学中。简单来讲就是:在不同的位置观测同一个三维点P(x, y, z),已知在不同位置处观察到的三维点的二维投影点X 1 (x 1 , y 1 ), X 2 (x 2 , y 2 ) 利用三角关系,恢复出三维点的深度信息z。




(2)三角化公式

按照对极几何中的定义,设x 1 , x 2 为两个特征点的归一化坐标,则它们满足:

s 1 x 1 = s 2 Rx 2 + t                                         公式(1)

=> s 1 x 1 - s 2 Rx 2 = t                                    公式(2)

对公式(2)左右两侧分别乘以x 1 T ,得:

s 1 x 1 T x 1 - s 2 x 1 T Rx 2 = x 1 T t                       公式(3)

对公式(2)左右两侧分别乘以(Rx 2 ) T ,得:

s 1 (Rx 2 ) T x 1 - s 2 (Rx 2 ) T Rx 2 = (Rx 2 ) T t       公式(4)

由公式(3)和公式(4)可以联立得到一个一元二次线性方程组,然后可以利用Cramer's法则(参见线性代数书)进行求解。

如下是对应的代码(如果大家感觉不易读懂,可以先跳过这段代码,等看完理论部分再返回来看不迟)




(3)求解深度的另外两种方法

a.利用叉乘进行消元进行求解

s 1 x 1 = s 2 Rx 2 + t                                公式(1)

左右两边同时乘以x 1 的反对称矩阵,可得:

s 1 x 1 ^ x 1 = 0 = s 2 x 1 ^ Rx 2 + x 1 ^ t         公式(2)

由上式可解得s 2

将s 2 代入公式(1),可求得s 1

b.利用Mid Point Method进行求解(Hartley大名鼎鼎的《Multiple View Geometry》中有讲解)

从此图中我们可以知道,理想情况下O 1 P和O 2 P会相交于空间中的一点,但是由于图像分辨率以及噪声的存在,实际的情况更可能是上图所描述的那样:O 1 P和O 2 P在空间中没有交点,这时我们需要找到一个O 1 P与O 2 P之间的公垂线,然后取其上的中点作为我们重建出的三维点,此即为Mid Point Method,具体的推导及公式请参看Hartley的《Multiple View Geometry》。

好了,今天的三角化深度信息我们就讲解到这里,下次课我们接着讨论三角化深度信息中的误差分析。




附录:

1.Cramer's 法则:

如果A的行列式不为0, Ax=b可以通过如下行列式进行求解:







请到「今天看啥」查看全文