全景拼接
全景拼接是将多幅图像拼接成一幅大尺度图像
一、拼接原理
- 检测并提取图像的特征和关键点
- 匹配两个图像之间的描述符
- 使用RANSAC算法使用我们匹配的特征向量估计单应矩阵
- 拼接图像
下面我们来解释一下上面这些步骤具体是做什么的
步骤一和步骤二过程是运用SIFT局部描述算子检测图像中的关键点和特征,SIFT特征是基于物体上的一些局部外观的兴趣点而与影像的大小和旋转无关。对于光线、噪声、些微视角改变的容忍度也相当高,所以用来检测要拼接图像的特征及关键点就很有优势。SIFT特征具体原理可参见博主之前写过的一篇文章SIFT算法原理,这里就不赘述了。
而接下来即步骤三是找到重叠的图片部分,连接所有图片之后就可以形成一个基本的全景图了。匹配图片最常用的方式是采用RANSAC(RANdom SAmple Consensus, 随机抽样一致),用此排除掉不符合大部分几何变换的匹配。之后利用这些匹配的点来**“估算单应矩阵” (Homography Estimation)**,也就是将其中一张图像通过关联性和另一张匹配。
RANSAC算法
RANSAC是一种迭代算法,用来从观测数据中估算出数学模型的参数,此基础上便可以分离内群与离群数据。简单来说就是一般来讲观测的数据里经常会出现很多噪音,比如说像SIFT匹配有时就会因为不同地方有类似的图案导致匹配错误。而RANSAC就是通过反复取样,也就是从整个观测数据中随机抽一些数据估算模型参数之后看和所有数据误差有多大,然后取误差最小视为最好以及分离内群与离群数据。RANSAC可以鲁棒的估计模型参数。
单应性矩阵
单应性矩阵可以由两幅图像(或者平面)中对应点对计算出来。每个对应点可以写出两个方程,分别对应与x和y坐标。因此,计算单应性矩阵H至少需要4对匹配点,过程如下:
那么就可以每次从所有的匹配点中选出4对,计算单应性矩