图像拼接是计算机视觉的一个重要研究热点,也是“智慧城市”、“智能交通”建设与发展中的一项关键技术,这两天打算整理一下该算法的一些实现,在这里对一些基本步骤进行归纳整理。今天以基于sift的特征点检测方法开篇,希望对读者有所帮助。
所谓图像拼接就是将两张有共同拍摄区域的图像无缝拼接在一起,也就是合成所谓的全景图像。这种应用可应用于车站的动态检测、商城的人流检测、十字路口的交通检测等,给人以全景图像,告别目前的监控墙或视频区域显示的时代,减轻工作人员“眼”的压力。
基本思想:图像拼接并非简单的将两张有共同区域的图像把相同的区域重合起来,由于两张图像拍摄的角度与位置不同,虽然有共同的区域,但拍摄时相机的内参与外参均不相同,所以简单的覆盖拼接是不合理的。因此,对于图像拼接需要以一张图像为基准对另外一张图像进行相应的变换(透视变换),然后将透视变换后的图像进行简单的平移后与基准图像的共同区域进行重合。
基本过程:
说明:1、图像预处理是为了增强图像的特征,预处理可以包含:灰度化、去燥、畸变校正等。
2、特征点提取可用的方法有:sift、surf、fast、Harris等,sift具有旋转与缩放不变性,surf为sift的加速,检测效果都不错,在此先用sift进行实现。相应的理论和代码网上有很多在这里不做详细介绍。
3、单应性矩阵求取时要清楚映射关系,是第一张图像空间到第二张图像空间的映射,还是第二张图像到第一张图像的映射,这个在变换的时候很重要。
4、判断左右(上下)图像是为了明确拼接关系,在本文中将判断放在此位置有一定的弊端。建议将左右图像的判断放在求取单应性矩阵之前,这样3中的映射关系不至于颠倒。否则将会出现拼接成的图像有一半是空的,如图所示。
示例图像:
第一组原始图像:
图像一
图像二
Sift特征点检测找到的特征点及匹配图像
挑选最佳特征点匹配图像
图像拼接结果。
第二组原始图像
图像一
图像二
Sift特征点检测找到的特征点及匹配图像
最佳匹配点及匹配图像
匹配结果图
通过第二组图像可以发现效果不好,原因是第二组图像在第一组图像参数的基础上进行的拼接,参数不合理。因此参数的调整很重要。
下面给出一种上述单应性矩阵对应关系颠倒情况后的效果图:
透视变换后的右侧图像
拼接效果
颠倒后,透视变换后的图像被左侧图像覆盖,主要原因是透视变换将图像的位置变换到了左侧而不是右侧,这是我们在变换过程中需要关注图像传递及变换的过程。
领取专属 10元无门槛券
私享最新 技术干货