本章主要估计这么几种2D投影矩阵
形式化的表示, 我们已知, 我们需要计算一个 的, 满足
需要多少对点 是 那么就是8个自由度, 所以最少4对点
估计算法的种类 我们考虑到图像中的对应点都是由噪声的, 那么只有4个点其实估计的结果就不准确了, 如果我们找出多于4对点, 那么我们就需要一个损失函数, 并且把它最小. 下文介绍的主要分成2类, 一类是代数误差, 一类是几何误差.
黄金标准算法 黄金标准算法不是一个具体的算法. 他是一个评判标准. 通俗来讲:假设我们有n个损失函数, 哪一个是最好的? 让能达到最小的损失函数就是最好的. 那么哪个损失函数让最小? 在"估计2D投影矩阵"这个问题里, 最好的损失函数就是书中4.8式. 优化最优损失函数的算法就叫黄金标准算法(p114 4.3), 其他损失函数给出的结果都是和4.8式的结果来比较的.
原理很简单,既然, 那么就可以建立方程 , 把这个式子改写成, 找4对点解方程就行(SVD)
假设说我们找出了多余4对点, 那么怎么利用上多出来的信息? 我们考虑到点都是有噪声的, 那我们可以考虑最优化一个目标函数, 最直观的想法就是优化,同时满足,
这个解法不稳定, 因为是非齐次坐标, 丢失了尺度这个因子. 所以我们就略过
我们说,如果共线 且也共线, 那么的解不是唯一的. 如果共线 但是不共线, 这种情况下不存在, 但是我们用上述方程确实可以解出来一个, 那么这个是啥?代表啥? 书中给出的答案是,是一个奇异矩阵, 根本不代表任何映射.
除了点对应, 我们也可以找线对应. 比如我们可以用线对应来构造一个方程. 那么如果用线对应, 需要找多少对对应线? 我们需要的约束应该多于的自由度. 所以4对对应线足够了 (每一对是2个约束). 如果我们考虑三维空间, 一对对应点提供3对约束, 那么求解三维用5对对应点就够.
但是如果我们把点和线混合起来就要小心. 比如说两对对应点和两对对应线是不能确定的, 得3对对应线和1对对应点. 因为2对对应线就是4条,它相当于五条线加四个共线的点,间p93 图4.1,三对对应线构成一个三角形, 他不会出现共线的情况.
既然 , 那么我们可以优化和的距离
几何距离考虑的是理论点与实际点的误差
我们先考虑第二个图像,假设第一个图像上的点都是准确的, 我们用来表示, 那我们就可以来优化
我们把这个式子推广到第一幅图像, 就可以得到
也就是第1幅图像的点变换到第二幅图像, 他们需要尽可能靠近. 反过来第2幅图像的点变换到第1幅图像, 他们也需要尽可能靠近.
讲这个概念以前, 我们需要一个概念, 就是理论上完美的点, 书中用表示. 首先我们要知道理论完美点不是, 就是机器学习里的ground truth. 是不存在误差的. 是我们知道的点, 是有噪声的. 那么我们用估计出一个, 肯定不等于. 但是我们可以找出一对 ,他们可以完美的满足, 注意, 是从有噪声的数据里估计出来的, 而不是从种估计出来的.
根据这个思想, 我们可以去寻找一个 和一对, 他们之间满足, 然后让靠近. 这其实是先从估计出一个三维空间点, 然后再往图像上投影, 所以叫重投影.
一句话总结, 他们之间差一个常数因子, 该常数因子由的第三维坐标和相乘得到.
一句话概括 重投影误差相当于在4维空间中拟合一个平面. 通俗解释我们可以把的坐标拼在一起, 得到 然后把的坐标拼在一起, 得到
那么就是重投影误差
以上思想还可以被用来拟合圆锥, 假设说我们要拟合圆锥, 找5个点直接解圆锥方程很很麻烦, 因为不是线性的. 那么我就求点到的距离, 让他们加起来最短,就可以了
其主要思想是用泰勒公式把要拟合的几何体展开到1阶, 让它余项等于0
上文说了求解相当于在4维空间中拟合一个平面. 那么本节给出在n维度量空间中的几何解释. 求解H相当于在n维度量空间中找出一个和最接近的向量. 可以想象4维空间的平面在n维就成了点.
我们知道图像中都会包含噪声, 如果我们认为噪声服从高斯分布, 那么我们就可以用高斯分布然后求解最大后验概率
比方说, 我们可以构造以下式子
其中可以换成任何你喜欢的距离, 然后求解最大后验概率就可以
图像原点有时候在左下角,有时候在右上角, 那么不同的原点对DLT算法有啥影响吗? 答案是有的, 对几何损失函数是没有影响.
那么我们有这样的结论, 假设有一个相似变换, 变换前的点计算出的, 和变换后计算出的之间,相差一个倍数. 也就是矩阵的向量之间相差一个倍数.
前文说了, 几何损失函数在相似变换下保持不变.
首先我们明确为啥要对点坐标归一化, 因为有的点坐标很大, 有的很小, 那么用SVD求解出来的答案会有很大的误差.
那么怎么归一化? 先把所有点的质心旋转到原点, 然后让缩放所有点, 使所有点到原点的平均距离等于, 也就是让所有点的平均值等于
需要明确的是, 归一化的必须的不是可选的
本节讲述如何用迭代的方法优化几何损失函数. 书中114页给出了一个案例, 我们来一起看一下: 已知多于4对点, 求解重投影误差
或者用初始值以及 找出, 根据最优化重投影误差.
一句话概括, DLT的效果事最接近黄金标准算法的
我们计算需要匹配点, 但其实很多点都是误匹配的, 所以我们先要找出合适的匹配点, 就用RANSAC找.
剩下的就是一些小问题,比如对应点怎么找?ORB SIFT FAST等等, 点与点之间距离怎么衡量?ORB等等找出来的都是描述子, 是一个向量, 直接算向量之间距离就可以. 怎么采样? 应该对整个图像均匀采样.