重投影误差

在计算机视觉中,经常会用到重投影误差(Reprojection error)。比如在计算平面单应矩阵和投影矩阵的时候,往往会使用重投影误差来构造代价函数,然后最小化这个代价函数,以优化单应矩阵或者投影矩阵。之所以使用重投影误差,是因为它不光考虑了单应矩阵的计算误差,也考虑了图像点的测量误差,所以其精度会更高。 

最小化重投影误差问题(Bundle Adjustment问题)

  • 可以将位姿和三维特征点P同时优化

在SLAM中优化求解相机运动位姿时(3D-2D),会用到重投影误差:是像素坐标(观测到的投影位置)与3D点按照当前估计的位姿进行投影得到的位置相比较得到的误差。

如下图所示,我们通过特征匹配知道,观测值是同一个空间点的投影,的投影

与观测值之间有一定的距离,也就是重投影误差。于是我们调整相机的位姿,使这个距离变小,由于这个调整需要考虑很多个点,所以最后每个点的误差通常不会精确到0。

考虑到n个三维空间点P和他们的投影 , 我们希望计算R,t,用李代数表示为。假设某空间点 ,其投影的像素坐标为

像素位置与空间点位置的关系如下:

写成矩阵形式就是:

 由于相机位姿未知以及观测点的噪声,该等式存在一个误差。我们将误差求和,构建最小二乘问题,然后寻找做好的相机位姿,使它最小化:

用高斯牛顿法/列文伯格-马夸尔特方法求解。

猜你喜欢

转载自blog.csdn.net/weixin_58045467/article/details/130701233