PIE视频拼接模块功能介绍


来源: 北京航天宏图    时间:2017/03/03

1 引言

    随着地理信息产业的迅速发展,各行各业对遥感数据的需求日益增加,无人机技术也经过几十年的发展,性能不断提高,现已被成功应用于环保监察、高压巡线、气象灾害评估、森林火险监控、公安缉毒等诸多领域。无人机与测绘的关系越来越紧密,高效应用无人机航摄技术已成为未来航摄发展方向之一。

    在航拍时,一般会得到有重叠区域的图像序列或摄制的航拍视频,后期使用时通常需要生成一张拼接起来的图像。目前,由于飞机或无人机上摄像机挂载平台的不同,主要有两类影像拼接的方法:一类是摄像机在拍摄时还能记录GPS以及姿态角度等控制点信息,这类数据在进行拼接时,对影像序列利用几何方法进行计算,可以生成一张拼接结果图;另一类是摄像机在拍摄时只有影像序列,这类数据在进行拼接时,利用影像间重叠部分的特征点提取并匹配(如利用SIFT算子进行匹配),计算出影像之间的几何相对位置关系,生成一张拼接结果图。这两类方法各有优劣。前一类方法生成的拼接结果图的地理信息精度取决于硬件的精度,如果硬件精度比较高,则拼接结果图带有比较精确的地理信息,可用于专业领域,但其缺点也很明显,如果相机畸变没有处理好,则会存在影像重叠区域重影以及影像彼此边缘之间的错齿现象。在影像拼接前进行几何校准可大大消除该影响。后一类方法的优点是实用性比较强,任意照相机或摄像机均可以,甚至可以实时拼接。其缺点是,拼接结果图在生成过程中,为了达到很好的拼接效果,可能会在局部区域进行微小的形变以消除影像重叠区域的重影或错齿,是以局部图像的微小形变为代价的。但如果提前进行相机校准,同样可以大大消除该影响。因此,在实际应用中,应该针对不同业务选择不同的拼接方式。

    PIE可支持上述两类方式的影像拼接。本文以PIE视频拼接模块为例,介绍无控制点信息的影像拼接方法。目前视频拼接模块可支持avi、mp4等常用格式视频,分辨率最高可支持1080p,用户界面操作简单,可自行设置抽帧间隔以方便用户灵活控制。本文下面将对拼接算法的原理和技术流程进行介绍,并对拼接效果进行展示和对比。

2 算法原理

    在进行图像拼接时,最重要的是找到两张图像中重叠部分的同名点,来计算图像之间的几何关系(如平移、旋转等)。寻找同名点的过程一般分为三步。首先,选择图像中特殊位置的兴趣点,比如角点、斑点以及T型连接点。兴趣点检测算法的最重要性质是可重复性,比如在不同的视角条件下都可以找到相同的兴趣点。第二,每个兴趣点可以表达为一个特征向量,称为描述子。描述子应该具备对噪声、误差、几何畸变的鲁棒性。第三,对不同图像中的描述子向量进行匹配。匹配算法通常是基于向量之间的距离的,比如马氏距离或欧几里德距离。本功能在兴趣点检测和描述时使用了SURF算法。
SURF(Speed Up Robust Features)是一个鲁棒的局部特征检测算子,它由Herbert Bay等在2006年首次提出。它是尺度不变特征检测器SIFT(Scale-Invariant Features Transform)的高效变种,它为每个检测到的特征定义了位置和尺度,其中尺度的值可用于定义围绕特征点的窗口大小,使得每个特征点都与众不同。与SIFT相比,SURF不仅运行速度更快,而且更具有鲁棒性。SURF最大的特点是采用了Haar特征以及积分图像的概念,这大大减少了程序的运行时间。SURF算法由以下几个部分组成:

    1)构建Hessian矩阵

    SURF的兴趣点检测是基于Hessian矩阵的,它依靠Hessian矩阵行列式的局部最大值定位兴趣点位置。当Hessian矩阵行列式局部最大时,所检测出的实际上是斑状结构。所谓斑状结构是指比周围区域更亮或更暗的小区域。首先用Hessian矩阵提取关键点。

    给定一幅图像I,其中某点x=(x,y) ,在x点上尺度为σ的Hessian矩阵定义为式(1)

    其中, 是高斯函数二阶偏导数 与图像I在x点处的卷积,其他类似。

    通过这种方法可以为图像中每个像素计算出其Hessian矩阵的决定值,并用这个值来判别特征点。为此Herbert Bay提出用近似值来代替。为平衡准确值与近似值间的误差而引入权值。权值随尺度变化,则Hessian矩阵判别式可表示为:式(2)

    其中,式(2)中的0.9为经验参数。

    2)生成尺度空间

    图像的尺度空间是这幅图像在不同解析度下的表示。SIFT特征检测算法在构建多尺度空间时,后层图像需要依赖前层图像不断降采样调整大小,然后用相同尺寸不同σ的高斯内核在不同方向上迭代卷积,分别形成尺度空间函数。而在SURF特征检测算法中,并不需要对图像迭代下采样。仅仅通过改变盒子滤波的大小,然后用不同大小的滤波同原始图像在不同方向上做卷积,即可形成多尺度的空间函数,如图 1所示。SURF采用这种方法节省了降采样过程,其处理速度得到大大提升。

图 1 尺度空间示意图


    3)检测特征点

    将经过Hessian矩阵处理过的每个像素点与其3维领域的26个点进行大小比较,如果它是这26个点中的最大值或者最小值,则保留下来,当做初步的特征点。检测过程中使用与该尺度层图像解析度相对应大小的滤波器进行检测,以3×3的滤波器为例,该尺度层图像中9个像素点之一。如图 2中检测特征点与自身尺度层中其余8个点和在其之上及之下的两个尺度层9个点进行比较,共26个点,图中标记‘x’的像素点的特征值若大于周围像素则可确定该点为该区域的特征点。然后,采用3维线性插值法得到亚像素级的特征点,同时也去掉那些值小于一定阈值的点,增加极值使检测到的特征点数量减少,最终只有几个特征最强点会被检测出来。

图 2 局部特征点判断原理图


    4)确定特征点主方向

    为了保证旋转不变性,在SURF中,不统计其梯度直方图,而是统计特征点领域内的Harr小波特征。即以特征点为中心,计算半径为6σ(σ为特征点所在的尺度值)的邻域内,统计60度扇形内所有点在x(水平)和y(垂直)方向的Haar小波响应总和(Haar小波边长取4σ),并给这些响应值赋高斯权重系数,使得靠近特征点的响应贡献大,而远离特征点的响应贡献小,然后60度范围内的响应相加以形成新的矢量,遍历整个圆形区域,选择最长矢量的方向为该特征点的主方向。这样,通过特征点逐个进行计算,得到每一个特征点的主方向。该过程的示意图如图 3所示。

图 3 特征点主方向示意图


    5)构造SURF特征点描述算子

    在特征点周围取一个正方形框,框的边长为20σ(σ是所检测到该特征点所在的尺度)。该框带方向,其方向及特征点的主方向。把该框分为16个子区域,每个子区域统计25个像素的水平方向和垂直方向的haar小波特征,这里的x(水平)和y(垂直)方向都是相对主方向而言的。该haar小波特征为x(水平)方向值之和,水平方向绝对值之和,垂直方向之和,垂直方向绝对值之和。该过程的示意图如图 4所示。

图 4 特征点描述算子示意图


    这样每个小区域就有4个值,所以每个特征点描述算子就是16*4=64维的向量,相比SIFT而言,少了一半,这在特征匹配过程中会大大加快匹配速度。至此,图像的SURF特征提取结束。

3 技术路线与流程

    视频拼接算法流程如图 5所示:

图 5 视频拼接算法流程图


    (1)视频数据在经过抽帧后获得当前一幅影像,如果该影像是拼接过程的第一幅,则直接作为基准影像,放入拼接结果图,同时应用SURF算法提取该影像的特征点向量以及特征描述子向量,并保存在名为“前一帧影像的特征点向量”的全局变量中,以备下一幅影像与之进行匹配。

    (2)如果当前影像并非第一幅影像,则提取SURF特征点之后,将其与“前一帧影像的特征点向量”进行特征匹配,特征匹配算法采用kNN。匹配结束后,将当前影像的特征点向量存入“前一帧影像的特征点向量”。

    (3)根据特征匹配的结果,应用最小二乘法,计算两幅影像之间的仿射变换系数,从而获得相应的变换矩阵。

    (4)根据上一步获得的变换矩阵,计算出当前影像在拼接图上的相应位置,并逐像素的写入拼接结果图。

    (5)判断是否继续拼接,如果是,则返回第一步;否则,结束程序。

4 成果展示

    本次测试的视频长52秒,视频分辨率为1600×1200,定焦录制,帧率为25帧/秒。在进行拼接时,抽帧间隔设置为13。经过测试,拼接结果图如图 6所示。该图宽为25600像素,高为19200像素,影像大小为1.37GB。经过目视解译,可以看到拼接效果很好,图片拼接处基本不存在形状扭曲或锯齿现象,局部图见图 7。但由于每张图之间的光照条件不同,目前尚存在亮暗的差异,有待进行匀色处理。

图 6 拼接结果图原图效果


图 7 拼接结果图局部放大效果


    在处理效率上,我们分别用两种算法进行对比,一种是在特征提取时采用SIFT算法,该算法在该功能的原始版本中使用,另一种是本文的SURF算法。拼接的图片共52*25/13=100张。采用SIFT算法,拼接过程共用时910秒。拼接速率约为9.1秒/张。采用SURF算法,拼接过程共用时247秒。拼接速率约为2.5秒/张。可见,采用新的算法后,拼接效率提升了3倍以上。

    在算法适应能力方面,改进了原有代码的读写操作策略,摒弃了内存中的冗余备份,对拼接结果图的操作直接在硬盘读写,因而弥补了原有算法中拼接结果图受尺寸大小限制的不足,目前该算法在理论上对拼接结果图的尺寸不受限制。

5 总结

    目前来说,该功能在原有基础上进行了较大的改进,在保持拼接效果的前提下,大幅提升了拼接速率,也增强了算法的适应能力。但在代码层面上,还有待进一步优化,以进一步提升算法运行效率。在界面的设计上,目前只支持视频拼接功能。下一步工作的思路是,将该模块在使用方式上进行扩展,将不仅支持视频的拼接,而且支持图像序列的拼接,以满足实际应用的需求。

参考文献
Herbert Bay, Andreas Ess, Tinne Tuytelaars, Luc Van Gool “SURF: Speeded Up Robust Features”, Computer Vision and Image Understanding (CVIU), Vol.110, No.3, pp.346-359, 2008

版权所有 © 2008-2017    北京航天宏图信息技术股份有限公司

京ICP备08011069号-3    京ICP备08011069号-4     联系电话:400-890-0662