基于特征匹配的全景图像生成方法研究与实现 下载本文

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

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

3.1 引言

全景图像生成程序要达到的效果为将一系列连续变换视角拍摄的图像按照一定顺序进行拼接,最终生成一副视角宽广的全景图像。本章就程序的各个模块的详细设计结合程序输入和要达到的预期目标展开,以此完成主体程序的设计。

3.2 总体设计

本程序的总体算法流程在之前的章节已经讲过,本小节就基于总体算法流程进行展开。程序总体分为四个模块,每个模块包含三个部分。

详细见图3.1。

图3.1系统结构图

第一部分为图像采集,主要完成原始图像的采集,图像的预处理,以及程序接口的设计。本步所输出的是所要处理的图像。第二部分为图像配准,此部分为整个程序的核

11

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

心步骤,通过对第一模块所传输的图像进行SURF特征提取,图像排序,特征点匹配,计算变换矩阵。本部分所输出的是各个图像的仿射变换矩阵。第三部分为空白全景图像的生成,此步承上启下,将第二部分所得的变换矩阵结合第一部分所得图像计算出最终全景图像的大小。本部分输出的是空白全景图像的框架边界框架。第四部分为图像拼接,本部分首先利用第三步结果初始化全景图像,再根据第二步结果和第一步结果将图像拼在空白全景图像上,本部分所输出的结果为最终全景图像。

3.3 各模块设计

3.3.1 图像采集

图像采集是整个程序的第一步,不同的采集方式与采集条件都会直接影响图像生成的最终效果。此部分的工作是主要完成两个任务,第一个是原始图像的获取,第二个是图像的初步处理。详细处理流程如图3.2所示。

图3.2图像采集流程

在第一个任务当中,利用移动设备进行一系列图片的获取工作,主要采用两种方式,原地旋转连续拍摄与平行物体平移拍摄。在原地旋转拍摄过程中,保持光轴在同一水平面上,并尽量保证相机不饶光轴有旋转,每次原地旋转时角度不宜过大,保持连续拍摄的图片重叠率在百分之四十以上。对于此种方式,由于采集的图像不在一个平面内,因此重叠比率是影响拼接成功的重要因素。在平行物体拍摄时,同样保持光轴在同一水平面上,并且不产生绕光轴的旋转,移动时保持焦距一致且与摄像物体距离一致,保持连续拍摄的图像重叠率在百分之三十以上。对于此种方式,因为所处同一个平面,可以保证焦距不会大幅度改变,因此重叠比率的影响被削弱,与摄像物体的平行成为此种方式的关键。

两种方式都采用手持方式拍摄,这种方式优点是易于实现,但是在实际采集过程中,摄像头或多或少都会产生平行或者垂直于光轴的偏移,同时所得图像也会有一定的缩放,

12

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

旋转,色差等多种变化。

在第二个任务当中,为了更好的配合之后程序的顺利执行,主要是利用电脑对图片参数作进一步修正。在这部分主要是修正图片的大小以及对图片的存储进行归一化。将一系列图片放在一个文件夹当中,并保持同一系列的图片大小相同,格式相同,不同系列的图片分别不同的文件夹。之后通过程序的接口将图片导入程序当中,为下一步做准备。

3.3.2 图像配准

本模块为程序的核心,也是SURF特征点探测与匹配算法的实现模块,详细流程如图3.3所示。

图3.3图像配准流程

图像的配准主要分为以下几步:

(1) 待配准图片特征的提取:将上一步所获得的待配准图像逐一进行图像特征点探

测。

(2) 将探测的SURF特征点制作为特征点描述符,并根据生成的特征点描述符制作

每幅图变的特征点集以识别不同图片。

(3) 按照特征点集进行SURF特征点的NN快速匹配,用以获得粗匹配结果。 (4) 将获得的粗匹配结果利用RANSAC算法进行提纯。 (5) 对上一步提纯结果进行最小二乘法曲线拟合。 (6) 根据曲线拟合结果,计算图片的变换矩阵。

在本部分当中,因为存在着随机抽样思想的存在,对于每一次获得的结果,可以看做不可逆过程,而且由于随机性的存在,再加上RANSAC算法当中的多次迭代,使计算量骤增,但是由于本部分是整个程序的核心所在,一旦错误,结果将差异巨大,整个程序就会崩溃,因此,在计算完变换矩阵后对计算结果进行一次真假判别,当出现错误

13

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

匹配结果时,重新进行图像配准步骤,虽然此步降低了程序的整体运行速度,但是可以极大的提升程序的成功率。然而对于变换矩阵的判断比较复杂,不易看出其是否匹配错误,因此将计算结果的真假判断放在下一部分当中。

3.3.3 空白全景图像生成

空白全景图像的生成主要起到承上启下的作用,在图片的拼接过程中,需要对多幅图片进行操作,为了准确快速的得到结果,就需要对所有图片放置一个共同的基准参照物,这样每幅图片就可以依据参照物进行相应的操作而不必一步一步等待每一步结果出现后在进行之后的操作。

详细流程如图3.4所示。

图3.4空白全景图像模块流程图

首先,对于第一模块所输出的一系列图片按照第二模块所得的变换矩阵进行数值上的变换,每幅图片变换完毕后计算出其变换的位置,找到四个边界的位置并记录,用此来获取全景图像的长度和宽度。之后对图像长度进行判断,由于在上一步的基础上得到的变换矩阵,若出错,图像大小将严重错误,因此在此进行匹配错误的判定,若计算出

14