图像拼接(二)——使用单应性矩阵的RANSAC算法去除误匹配点对

不管是SIFT还是SURF等算法,其实真正匹配的结果都不会特别好,一旦视角上的变化比较大或者出现之前图像中没有出现的区域,就很容易产生误匹配。但是在实际应用中这些误匹配的点并没有对最终的匹配结果造成很大的影响,这是因为一般在进行匹配以后,都进行了去除误匹配点对的操作,本篇博文主要介绍一种比较有名的RANSAC算法。

那么,首先来看一下这个算法。

一、RANSAC算法介绍

RANSAC(Random Sample Consensus)算法是一种简单且有效的去除噪声影响,估计模型的一种方法。与普通的去噪算法不同,RANSAC算法是使用尽可能少的点来估计模型参数,然后尽可能的扩大得到的模型参数的影响范围。
RANSAC算法的具体描述是:给定N个数据点组成的集合P,假设集合中大多数的点都是可以通过一个模型来产生的,且最少通过n个点(n 对下面的操作执行k次:
(1)从P中随机选择n个数据点;
(2)用这n个数据点拟合出一条直线M,如下图所示;
(3)对P中剩余的数据点,计算每个点与直线M的距离,距离超过阈值的则认定为局外点,不超过阈值的认定为局内点,并记录局内点的值m,由局内点组成的集合称为该直线M的支持集;
图像拼接(二)——使用单应性矩阵的RANSAC算法去除误匹配点对_第1张图片
在上图中蓝色点属于内点(正确点),而第红色点属于外点(偏移点)。此时用最小二乘法拟合这组数据,实际的最佳拟合直线是那条穿越了最多点数的蓝色实线。

迭代k次以后,选择m最大的直线模型M作为拟合的结果。
因为在实际应用中N的值通常会很大,那么从其中任选n个数据点的组合就会很大,如果对所有组合都进行上面的操作运算量就会很大,因此对于k的选择就很重要。通常情况下,只要保证模型估计需要的n个点都是点的概率足够高即可。因此设w为N个数据中局内点的比例,z为进行k次选取后,至少有一次选取的n个点都是局内点的概率。则有
在这里插入图片描述
其中1-w^n表示一次选取不都是局内点的概率, (1-w^n )^k表示k次选取中没有一次都是局内点的概率。
则有
在这里插入图片描述
这里z一般要求满足大于95%即可。

二、单应性矩阵介绍

通过上面我们了解到了RANSAC算法,那么如何应用RANSAC算法去除误配点呢。首先,我们来介绍一下单应性矩阵。
单应性矩阵描述的是针对同一事物,在不同的视角下拍摄的两幅图像之间的关系。假设这两幅图像之间是透视变换,则单应性矩阵也就是透视变换矩阵H定义如下:
在这里插入图片描述
则有
在这里插入图片描述
因此要恢复H中的8个参数,至少需要4对匹配点,过程如下:
图像拼接(二)——使用单应性矩阵的RANSAC算法去除误匹配点对_第2张图片
那么就可以每次从所有的匹配点中选出4对,计算单应性矩阵H,然后选出内点个数最多的作为最终的结果。计算距离方法如下:
图像拼接(二)——使用单应性矩阵的RANSAC算法去除误匹配点对_第3张图片


转自 https://blog.csdn.net/lhanchao/article/details/52849446


你可能感兴趣的:(数字图像处理,本科毕设,图像拼接,ransac,单应矩阵)