您现在的位置:e-works > 智造书屋 > 书籍列表 > MATLAB数字图像处理实战 > 测绘领域的应用:基于SURF的图像拼接

第六章 实战案例详解

第一节 测绘领域的应用:基于SURF的图像拼接

6.1.1 研究图像拼接的意义

    数字成像设备(数码相机、数码摄像机等)的普及使得数码图像得到了越来越广泛的应用。在实际的科学研究和工程项目中,经常会用到超过人眼视角的超宽视角图像。由于距离的限制,普通数码相机的视角往往不能满足需要,某些超大尺寸的物体无法用一张照片拍摄下来。为了得到大视角的高分辨率图像,人们往往利用广角镜头来解决这一问题。然而,在一些特殊环境下,设备本身的限制使得数字图像和视频的视场宽度不能满足应用要求,如利用广角镜头虽然也可得到宽视角的图像,但广角镜头的边缘会产生难以避免的扭曲变形,而且像广角镜头这样的特殊设备往往价格昂贵,使用费用较高。

    随着计算机和图像处理技术的发展,图像拼接技术为得到超宽视角图像提供了很好的解决方案。它可将一系列有重叠边界的普通图像或视频图像进行无缝拼接,从而得到超宽视角图像。图像拼接技术的出现使采集图像的设备更普通化,利用普通的数码照相机即可得到满足要求的图像。

    本节采用基于快速鲁棒特征点(Speeded Up Robust Features,SURF)的图像拼接技术,该技术与其他图像拼接技术(如基于相位相关的图像拼接)技术相比,具有鲁棒性好的特点,对图像序列中的光照变化、尺度变化、旋转变化具有良好的适应性;与基于SIFT特征点的图像拼接技术相比,其拼接速度更快。

6.1.2 基本原理及实现步骤

    基于SURF的图像拼接技术包括三大部分:特征点提取与匹配、图像配准、图像合成。

    (1)特征点的提取与匹配

    为了使拼接具有良好的精度和鲁棒性,同时又使其具有较好的实时性,本节采用2008年Bay等人提出的SURF算法完成图像序列特征点的提取。

    SURF算法又称快速鲁棒特征,借鉴了SIFT中简化近似的思想,将DoH中的高斯二阶微分模板进行了近似简化,使得模板对图像的滤波只需要进行几个简单的加减法运算,并且这种运算与滤波模板的尺寸无关。实验证明,SURF算法较SIFT在运算速度上要快3倍左右,综合性能要优于SIFT算法。

    SURF特征点提取与描述主要包含4个步骤:

    1)检测尺度空间极值。

    2)精炼特征点位置。

    3)计算特征点的描述信息。

    4)生成描述特征点的特征向量。

     基本原理及实现步骤

 图6-1 消除误匹配

图6-1 消除误匹配

    (2)图像配准

    图像配准是一种确定待拼接图像间的重叠区域以及重叠位置的技术,它是整个图像拼接的核心。本节采用的是基于特征点的图像配准方法,即通过匹配点对构建图像序列之间的变换矩阵,从而完成全景图像的拼接。

    变换矩阵H求解是图像配准的核心,其求解的算法流程如下。

    1)检测每幅图像中特征点。

    2)计算特征点之间的匹配。

    3)计算图像间变换矩阵的初始值。

    4)迭代精炼H变换矩阵。

    5)引导匹配。用估计的H去定义对极线附近的搜索区域,进一步确定特征点的对应。

    6)重复迭代4)和5)直到对应点的数目稳定为止。

    设图像序列之间的变换为投影变换

     图像配准

    可用4组最佳匹配计算出H矩阵的8 个自由度参数hi=( i=0,1,...,7),并以此作为初始值。

    为了提高图像配准的精度,本节采用RANSAC算法对图像变换矩阵进行求解与精炼,达到了较好的图像拼接效果。RANSAC算法的基本原理可通过图6-2来描述。

    图6-2a中总共有7个点,其中有6个点属于内点(正确点),而第7个点属于外点(偏移点)。此时用最小二乘法拟合这组数据,得到的直线如图中虚线所示,显然这是错误的,此时实际的最佳拟合直线应该是那条穿越了前6个点的黑色实线。

    RANSAC算法的思想简单而巧妙:首先随机地选择两个点,这两个点确定了一条直线,并且称在这条直线的一定范围内的点为这条直线的支撑。这样的随机选择重复数次,然后,具有最大支撑集的直线被确认为是样本点集的拟合。在拟合的误差距离范围内的点被认为是内点,它们构成一致集,反之则为外点。根据算法描述,可以很快判断,如果只有少量外点,那么随机选取的包含外点的初始点集确定的直线不会获得很大的支撑,如图6-2b所示。在图6-2a的例子中,经过RANSAC算法后,点7就会被剔除掉。然后再使用剩余的6个点进行最小二乘拟合,就会得到接近理想解的直线。值得注意的是,过大比例的外点将导致RANSAC算法失败。在直线拟合的例子中,由点集确定直线至少需要两个点;而对于透视变换,这样的最小集合需要有4个点。

 图6-2  RANSAC算法原理解释图

图6-2  RANSAC算法原理解释图

    (3)图像合成

    根据图像间变换矩阵H,可以对相应图像进行变换以确定图像间的重叠区域,并将待融和图像映射到到一幅新的空白图像中形成拼接图。需要注意的是,由于普通的相机在拍摄照片时会自动选取曝光参数,这会使输入图像间存在亮度差异,导致拼接后的图像缝合线两端出现明显的明暗变化。因此,在融和过程中需要对缝合线进行处理。进行图像拼接缝合线处理的方法有很多种,如颜色插值和多分辨率样条技术等,本节采用了快速简单的加权平滑算法处理拼接缝问题。该算法的主要思想是:图像重叠区域中像素点的灰度值Pixel 由两幅图像中对应点的灰度值Pixel_L和Pixel_R加权平均得到,即Pixel=k× Pixel_L+(1-k)× Pixel_R,其中k是可调因子。图6-3为加权平滑算法图。

 图6-3 加权平滑算法

图6-3 加权平滑算法

     图像合成

6.1.3 例程精讲

    基于快速鲁棒特征点(SURF)的图像拼接技术的MATLAB实现代码如例程6-1~6-7所示。

    例程6-1:主函数

     例程6-1:主函数

    例程6-2:imMosaic函数

     例程6-2:imMosaic函数

     例程6-2:imMosaic函数

     例程6-2:imMosaic函数