舜宇智能光学开发者论坛
 找回密码
 立即注册
之前说到,机器人视觉的核心是Estimation,求取特征并配准,也是为了Estimation做准备。一旦配准完成,我们就可以从图像中估计机器人的位置,姿态。有了位置,姿态,我们可以把三维重建的东西进行拼接。

从视觉信息估计机器人位姿的问题可以分为三个大类:

1、场景点在同一平面上。
2、场景点在三维空间中。
3、两幅点云的配准。

所有问题有一个大前提就是知道相机内部矩阵K。

1、由单应矩阵进行位姿估计

单应矩阵原指从 R2--R2 的映射关系。

但在估计问题中,如果我们能获得这种映射关系,就可以恢复从世界坐标系 x_w 到相机坐标系 x_c 的变换矩阵。此变换矩阵表达了相机相对于x_w 的位姿。

H = s*K*[r1 r2 t] —— 假设平面上z坐标为0

—— 利用单应矩阵求取旋转与平移向量

r3 = r1×r2 —— 恢复r3

s 并不重要,只需要对进行归一化就能求出来。

所以,最重要的就是如何求取两个场景中的单应。在前面我提过从消失点来求取单应关系,但是如果不是从长方形 --- 四边形的映射,我们并没有消失点可以找。

这里要介绍的是一种优雅到爆棚的方法。基于矩阵变换与奇异值分解。JB SHI真不愧大牛。三两句就把这个问题讲的如此简单。  




由于H矩阵一共有8个自由度,每一对单应点可以提供两个方程,所以4个单应点就可以唯一确定单应矩阵H。Ax = 0,我们在拟合一章中已经了解过了。x 是最小奇异值对于的V矩阵的列。这里是奇异值分解的第一次出现。

至此,我们恢复了H矩阵。按照正常的思路就可以解除[r1 r2 t]了。但是,我们的H矩阵是用奇异值分解优化出来的,反解的r1 r2 并不一定满足正交条件,也不一定满足等长条件。所以,我们还要拟合一次RT矩阵。

此次的拟合目标是 min(ROS3 - R')。

其中   方法依旧是奇异值分解,R = UV'. 这是奇异值分解的第二次出现。

2、由射影变换进行位姿估计

由单应矩阵进行位姿估计的前提是所有点都在一个平面上。而由射影变换进行位姿估计则舍弃了此前提,故上一节是本节的一个特例。此问题学名为PnP问题:perspective-n-point。

仿造上面的思路,我们依旧可以写成以下形式:  


此处射影矩阵一共有12个未知数,9来自旋转矩阵,3来自平移向量。每个点可以提供2个方程。故只要6个场景点,我们就可以用奇异值分解获得P矩阵的值。同样,在获得P矩阵后求   ,最后利用奇异值分解修正T.

不过按照常理,此问题只有6个自由度(3平移,3旋转)。我们使用6个点其实是一种dirty method。


3、由两幅点云进行位姿估计

对于现在很火的RGBD相机而言,可能这种情况会比较多。从不同角度获得了同一物体的三维图像,如何求取两个位姿之间的变换关系。这个问题有解析解的前提是点能够一一对应上。如果点不能一一对应,那就是ICP算法问题了。

此问题学名为:Procrustes Problem。来自希腊神话。用中文来比喻的话可以叫穿鞋问题。如何对脚进行旋转平移,最后塞进鞋里。其数学描述如下:通过选择合适的R,T,减小AB之间的差别。  



T 其实很好猜,如果两个点团能重合,那么其重心肯定是重合的。所以T代表两个点团重心之间的向量。此问题则有如下变形:  




由矩阵分析可知,向量的2范数有以下变形:



由矩阵分析可知,最后两项实际上是相等的(迹的循环不变性与转置不变性)

那么优化目标又可以转为:  



迹是和奇异值相关的量(相似变换迹不变)



显然,如果Z的迹尽可能大,那么只有一种情况,Z是单位阵,单位阵的迹是旋转矩阵里最大的。所以R的解析解如下: 



至此,我们获得了3D--3D位姿估计的解析解

------------------扩展链接-------------------

机器人视觉科普① | 什么是相机模型与消失点?

机器人视觉科普② | 如何从场景中提取特征点进行匹配?

机器人视觉科普③ | 如何保证拟合误差最小?

机器人视觉科普④ | 详解双目视觉中最重要的极几何

机器人视觉科普⑤ | 有了位置、姿态,如何拼接三维重建东西

机器人视觉科普⑥ |顶尖方法Bundle Adjustment

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
分享至 : QQ空间
收藏
欢迎大家来到舜宇智能光学开发者论坛!

0 个回复

您需要登录后才可以回帖 登录 | 立即注册