|||
%%----2011年11月3日------鲁棒视觉里程计算法--------单目篇-----------------
怎么通过两幅图像之间的特征点匹配,精确计算R和T呢?
通过一系列实验,表明:利用sift特征自动匹配,实现摄像机的位姿估计的可行性,能够得到较为准确的姿态角,但是位移参数不能准确获取。但是,当前的问题是:怎样获取精确的位移方向信息呢?采用奇异值分解的方法时,即便对于相同的两组数据,得到的位移矢量都有很大的差别!!因此,我认为,简单且流行的奇异值分解方法在精确求解摄像机运动参数的时候,基本上是不可行的。而用Direct_程序,似乎结果要好一些,但是仍然不稳定。
例如:从Image0033到Image0034,向前运动,T_direct = [-0.0019, -0.058, -0.998],但是结果不稳定,从Image0029到Image0030,向前运动,T_direct = [-0.0693, -0.0237, 0.9973]; 从Image0029到Image0030,向前运动,T_direct = [-0.0692,0.0767,-0.9947]
方法一:如果将已知的运动先验信息应用到优化目标函数的求解之中,直接调用Direct程序,Results:也不能得到稳定的运动方向求解结果,但是运算量明显减小;
方法二:下面将更多的约束考虑到基于Direct程序的滤波里程计之中,还是以在桌面上的摄像机运动为例,可以将ekf中的r坐标进行约束,世界坐标系方向是棋盘格平面的方向,所以r(2),即垂直方向基本不变,这可以在滤波器中,将r(2)对应的状态不确定性(系统噪声和初始误差协方差矩阵对应值很小)。Results:效果不明显。
方法三:当我用我改进后的算法后,能够更大可能地得到稳定的平移向量,但也有20%的可能出错,出错的场合都是一样的:特征点太少。
通过综合分析实验结果,我认为,平移向量和旋转参数计算不准确,究其原因,我认为应该是这样的:在用非线性优化算法的过程中,由于优化函数不是一个凸问题,因此,在寻找最优解过程中很容易陷入局部最优,相对而言,T的局部极小点比R更多,因此,得到准确的T更加困难。如果特征点足够多,且准确率较高的情况下,是能够得到准确解的。^_^
就单目摄像机的位姿估计而言,至多能得到怎样高精度的解算结果呢?下一步,考虑其他方式,提高摄像机的位姿估计精度。。。
Things are continuing
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-12-3 19:45
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社