基于特征匹配的全景图像生成方法研究与实现 联系客服

发布时间 : 星期三 文章基于特征匹配的全景图像生成方法研究与实现更新完毕开始阅读

第3章基于SURF特征匹配的全景图像生成系统设计

的全景图像长度大于单幅图像长度的图像总张数倍,那么可以确定匹配失败,将此次结果抛弃,重新进入第二步。若计算出符合长度的全景图像,便可以开始进行空白全景图像的生成。

3.3.4图像拼接

最后一步主要任务是将前三模块的成果结合起来并展示。首先,读取第一步所得的一系列图片,之后按照第二步所得的变换矩阵对应每一幅图片进行变换,最后按照从左至右的顺序将变换后的图片嵌入空白全景当中。

本模块是程序的最后一步,所得结果为一副完整的全景图像,但由于在第二部中的随机性,生成的图片不可重复,所生成的图像并非完理想,因此只需要从第二模块重新执行即可获得新的全景图像。

3.4界面接口设计

一套完整的程序不仅需要完备的技术细节而且需要方便的接口界面以供用户方便使用,图形化的界面既可以隐藏技术细节又符合传统的用户操作模式,既不妨碍开发人员进行程序调试,又贯彻了以用户体验为核心的程序设计原则。

具体实现流程图如图3.5所示。

图3.5程序实施流程图

首先在程序中设置一块面板让其在程序进行的不同阶段显示相应的结果。在程序开始阶段用以显示欢迎界面。程序的输入时多幅JPG格式、大小在1000×1000以内的图像所组成的单一文件夹,当程序输入完成后在之前的面板上显示所输入的图像用以确认

15

哈尔滨工程大学学士学位论文

需要合成的图片是否正确。当确认完毕开始进行图像的合成工作,在此阶段通过设置进度条来提示合成的进度,并在合成的拼接阶段用面板配合进度条来显示最终合成的过程。拼接完成之后面板显示拼接成功的全景图像并可以将其进行选择路径保存。在程序的运行过程中,设有不断翻滚更新的文字条以供使用者熟悉操作流程。同时在程序中设置有帮助可以查阅。

界面布局如图3.6所示。

图3.6界面布局示意图

3.5本章小结

本章在对SURF特征点探测算法、特征点匹配算法的研究基础之上,完成了全景图像生成程序的设计工作,通过对其整体流程的规划以及对各个模块的详细设计,为之后的程序实现打下坚实基础。

16

第4章全景图像生成系统实现与测试

第4章全景图像生成系统实现及测试

4.1 引言

通过前面对SURF核心算法的研究和对整体算法流程的详细设计,全景图像生成程序便可顺利的展开。而在实施的过程中,关键技术的成功实践是整个程序成功的成败点,同时在实现的过程中遇到的技术细节的问题亦是影响程序各项指标的重要因素。

4.2开发平台

本文所选的开发平台为MATLAB v.R2014b,开发系统为WINDOWS 7,内存大小6GB,CPU为Core i5 2.5GHZ。图像采集设备为iphone5。在实施过程中,由于MATLAB提供了强大的库函数及方便的运算方式,为核心算法SURF算法的实现节省很多时间和空间上的复杂性。但是说明一点,经测试发现在实施的过程中6GB内存使用量为500MB,但为了能够让程序流畅的运行,建议预留1GB内存。

4.3 关键技术实现

4.3.1 SURF特征点探测

MATLAB平台提供了强大的图形处理函数,利用库函数??????????????????????????????????完成图像的尺度空间建立,特征点描述符生成以及特征点位置确定,从而将图形的SURF特征点提出,在提出前需要将RGB图像转换为灰度图像。当完成探测特征点探测之后,利用????????????????????????????函数将探测出的特征点进行提取存储。其中所涉及的库函数形式如下:

?????????????????????????????????? ?????????????????? ????????????????????????????(??????????????????,????????????) 其中,grayimage为待探测SURF特征点的灰度图像,points为提取的特征点类型。在本程序中points为SURFPoints。

处理结果如图4.1。

其中,图(a)显示的是对图像进行SURF特征点探测后所提取出的图像特征点,图(b)为在所提取出的特征点当中提取出识别性最强的200个特征点,绿色圆圈的圆心为特征点的在图像上的位置,圆圈大小代表特征点的识别性强弱,每个圆圈中显示出的一条半径为对应特征点的方向。

17

哈尔滨工程大学学士学位论文

(a) (b)

图4.1原始图像的SURF特征点探测结果

由于全景图像的生成需要图像视角的变换,因此需要对SURF进行抗扭曲仿射效果测试。同时因为采用的是手持方式进行的图像采集工作,对于图像出现的噪点,光强等不定因素的影响也需要实验验证。

4.3.2对于特征变换矩阵的计算

当对SURF特征点对匹配完毕后,需要进行计算图像的投影变换矩阵并用于之后的空白全景图像的生成和全景图像的拼接,MATLAB对此步进行了优秀的封装,通过estimateGeometricTransform函数即可求出两幅图之间的变换矩阵。其函数形式如下:

????????????????????????????????????????????????????(????????????????????????1,????????????????????????2,????????,??????,??????) 其中matchedpoint1为第一幅图像的匹配的SURF特征点矩阵;matchedpoint2为第二幅图匹配的特征点矩阵;type为选择计算出的变换矩阵类型,其中有三种不同的矩阵类型,similarity(相似)、affine(仿射)、projective(投影);con为设定阀值;num为迭代次数。

在本方法中因为最终的结果是将图像投影至空白全景图像上,因此type设置为projective。对于con和num都是用以提高算法的鲁棒性,本程序设定con为99.9,num为2000,此设定根据测试数据得来,具体测试内容见下文。

4.4测试

4.4.1 SURF特征点的稳定性

SURF特征点是本程序的核心与根本,它的稳定性直接影响程序的稳定性,对于使用移动手机进行图像采集的方式而言,其最主要的影响因素为图像的旋转,平移,缩放,

18