一文读懂重投影误差

重投影误差

1、重投影误差的作用

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

2、重投影误差的含义

首先我们从字面意思来理解,重投影的意思就是第二次投影。有第二次投影,就有第一次投影。
  其实第一次投影指的就是相机在拍照的时候三维空间点投影到图像上,这里的“投影”其实称之为“映射”比较合适。如下图,也就是世界坐标系下的三维空间点P映射到相机的图像坐标系中,再转换到像素坐标系下得到像素点p1和p2的坐标(p1为左相机的像素点,p2为右相机的像素点)。
  然后我们利用这些图像对一些特征点进行三角定位(triangulation),利用几何信息(对极几何) 构建三角形来确定三维空间点的位置(空间三维坐标),而且也能得到空间点到像素点的坐标转换关系[R,t]。
  最后利用我们上一步计算得到的三维点的坐标(注意不是真实的)和我们计算得到的相机位姿[R,t](也不是真实的)进行第二次映射,即第二次投影,也就是重投影。那么有了重投影的概念之后,重投影误差也就很好理解了,其实就是俩次投影过程得到的像素点的差值。
重投影误差:指的真实三维空间点在图像平面上的投影(也就是图像上的像素点)和重投影(其实是用我们的计算值得到的虚拟的像素点)的差值。因为种种原因计算得到的值和实际情况不会完全相符,也就是这个差值不可能恰好为0,此时也就需要将这些差值的和最小化获取最优的相机位姿参数及三维空间点的坐标。
一文读懂重投影误差_第1张图片

3、重投影误差的计算方法

考虑到n个三维空间点P和他们的投影,我们希望计算R,t,用李代数表示为。假设某空间点,其投影的像素坐标为
像素位置与空间点位置的关系如下:
一文读懂重投影误差_第2张图片
写成矩阵形式就是:
在这里插入图片描述
由于相机位姿未知以及观测点的噪声,该等式存在一个误差。我们将误差求和,构建最小二乘问题,然后寻找做好的相机位姿,使它最小化:
一文读懂重投影误差_第3张图片

该问题的误差项,是将像素坐标(观测到的投影位置)与 3D 点按照当前估计的位姿进行投影得到的位置相比较得到的误差,所以称之为重投影误差
(用高斯牛顿法/列文伯格-马夸尔特方法求解)

参考资料:
《视觉slam十四讲》
重投影误差-LM优化(数学基础)
重投影误差

你可能感兴趣的:(计算机视觉,计算机视觉,几何学)