目录
1.RANSAC简介
RANSAC(Random Sample Consensus)随机采样一致算法是根据一组包含异常数据的样本数据集,计算出数据的数学模型参数,得到有效样本数据的算法。
1.1 算法基本思想和流程
RANSAC是通过反复选择数据集去估计出模型,一直迭代到估计出认为比较好的模型。具体的实现步骤可以分为以下几步:
- 选择出可以估计出模型的最小数据集;(对于直线拟合来说就是两个点,对于计算Homography矩阵就是4个点)
- 使用这个数据集来计算出数据模型;
- 将所有数据带入这个模型,计算出“内点”的数目;(累加在一定误差范围内的适合当前迭代推出模型的数据)
- 比较当前模型和之前推出的最好的模型的“内点“的数量,记录最大“内点”数的模型参数和“内点”数;
- 重复1-4步,直到迭代结束或者当前模型已经足够好了(“内点数目大于一定数量”)。
1.2 RANSAC 求解单应矩阵
RANSAC 循环:
- 随机选择四对匹配特征
- 根据DLT计算单应矩阵 H (唯一解)
- 对所有匹配点,计算映射误差ε= ||p i ’, H p i ||
- 根据误差阈值,确定inliers(例如3-5像素)
- 针对最大inliers集合,重新计算单应矩阵 H
2.图像映射与全景拼接
首先是在连续图像对间使用SIFT特征寻找匹配对应点对,SIFT是具有较强稳健性的描述子,能够比其他描述子产生更少的错误点,但是该方法仍不是很完美;使用RANSAC算法估计出图像间的单应性矩阵,判定哪些点对是正确的,哪些点对是错误的,即使用一个阈值来决定哪些单应性矩阵是合理的;然后将所有的图像扭曲到一个公共的图像平面上。
基于SIFT特征匹配的RNASAC在上一篇博客也有相应实验的叙述,可参见博客SIFT理解与应用。
通常,这里的公共平面为中心图像平面。一种方法是创建一个很大的图像,比如将图像中全部填充0,使其和中心图像平行,然后将所有的图像扭曲到上面。由于我们所有的图像是由照相机水平旋转拍摄的,因此我们可以使用一个较简单的步骤:将中心图像左边或者右边的区域填充为0,以便为扭曲的图像腾出空间。
图像拼接的几何原理:全景融合的 3D 几何解释,图像被投影到共同的拼接平面上(同一坐标系), 在拼接平面上实现全景融合。在拼接的应用中,其实可以简化理解为 2D图像的变换,叠加过程。
基础流程
① 针对某个场景拍摄多张/序列图像
② 计算第二张图像与第一张图像之间的变换关系
③ 将第二张图像叠加到第一张图像的坐标系中
④ 变换后的融合/合成
⑤ 在多图场景中,重复上述过程
2.1 计算第二张图像与第一张图像之间的变换关系
(1)变换类型选择
将两幅图像叠加在一起,选择需要采用模型,如位移、旋转、尺度大小、仿射和透视等。
(2)2D 图像变换原理:
图像滤波: 改变图像的像素点取值范围
图像变换: 改变图像的坐标取值范围
(3)2D 图像变换类型
#DoF | Preserves | Icon | |