我是靠谱客的博主 会撒娇菠萝,最近开发中收集的这篇文章主要介绍2D-2D对极几何,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

今天跟着视觉SLAM十四讲 重新推导了一下2D-2D的对极几何公式,对坐标变化公式 P c 2 = R × P c 1 + t P_{c2}=R×P_{c1}+t Pc2=R×Pc1+t又有了新的认识
先放上参考链接:https://www.cnblogs.com/houkai/p/6661607.html

在这里插入图片描述
这里面到的这么一个关系: P c 2 = R ( P c 1 − T ) P_{c2}=R(P_{c1}-T) Pc2=R(Pc1T)( T T T是两个相机光心之间的平移,注意此时是在 P c 1 P_{c1} Pc1的坐标系下的),感觉很难理解,细想之后,搞明白了相机在做变换时候旋转和平移的先后顺序。
我们平时用的公式 P c 2 = P c 1 ∗ R + t P_{c2}=P_{c1}*R+t Pc2=Pc1R+t,实际上是先做了旋转,然后再在旋转后的坐标系下平移 t t t,这时的小 t t t其实对我们而言并不直观,因为我们更倾向于它在 P c 1 P_{c1} Pc1坐标系下的表示(我们一般会直接把 P c 1 P_{c1} Pc1坐标系看作世界坐标系),而 T T T则直观很多,它直接表示了 P c 1 P_{c1} Pc1 P c 2 P_{c2} Pc2在世界坐标系( P c 1 P_{c1} Pc1坐标系)下的位移。再由公式来看:

P c 2 = R ( P c 1 − T ) = R × P c 1 − R × T = R × P c 1 + t P_{c2}=R(P_{c1}-T)=R×P_{c1}-R×T=R×P_{c1}+t Pc2=RPc1T=R×Pc1R×T=R×Pc1+t
得到: t = − R × T t=-R×T t=R×T

这就更直观的看到,其实他们之间的关系就是一个旋转的关系,至于负号,R代表的是光心之间的平移,反映到点的坐标变换时,应该加个负号(例如坐标系整体右移5个单位,坐标系中的点的横坐标都会减5)

总之,我们平时用的 t t t,它表示的平移并不是我们直观看到的平移,而是相对与旋转之后的坐标系的平移。

搞清楚了这个,接下来就是对极几何的公式推导了,我直接手写吧:
在这里插入图片描述在这里插入图片描述在这里插入图片描述对极几何的约束:

p 2 T K − T t p_2^TK^{-T}t p2TKTt^ R K − 1 p 1 = 0 RK^{-1}p_1=0 RK1p1=0

本质矩阵: E = t E=t E=t^ R R R
基础矩阵: F = K − T E K − 1 F=K^{-T}EK_{-1} F=KTEK1
则对极几何约束为: p 2 T F p 1 = 0 p_2^TFp_1=0 p2TFp1=0
根据匹配点的像素,求出E或F,然后求出R和t。

最后

以上就是会撒娇菠萝为你收集整理的2D-2D对极几何的全部内容,希望文章能够帮你解决2D-2D对极几何所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(63)

评论列表共有 0 条评论

立即
投稿
返回
顶部