基于SIFT特征点的机场场面视频的实时拼接

2018-04-02 08:25陶菁李毅
现代计算机 2018年2期
关键词:视差像素点线程

陶菁,李毅

(1.四川大学计算机学院,成都 610065;2.四川大学国家空管自动化系统技术重点实验室,成都 610065)

0 引言

机场场面视频的拼接问题,其本质是视频间每一帧图片的拼接问题。图像拼接(Image Stitching)属于计算机视觉领域,最近几年再计算机领域(Computer Vision)受到了很大的关注。在几十年的发展后,图像拼接技术已经比较成熟。通过提取图像的SIFT[1](SURF或ORB)特征点来计算图像重叠区域的单应性矩阵(Homograph),以单应性矩阵对齐,再通过相关投影和融合技术处理对齐图像的拼接算法是老一代拼接算法的核心。该算法以Brown的AutoStitch[2]为代表。但该方法因为采用一个单应性矩阵对齐图像,对大场景和不在一个平面的图像来进行拼接,会出现因视差出现的不对齐现象。Smoothly Varying Affine(SVA)[3]论文中采用6个单应性矩阵来进行图像的配准,该方法能有效改善拼接过程中的视差问题,但计算量大,时耗严重。As-projective-As-possible[4]提出的网格化拼接算法,就是将所有图像网格化,然后对对应的每个网格进行单应性对齐。该方法也存在时耗严重的问题,而且只能处理小视差问题。而本文采用的方法就是先用单应性矩阵将图像预对齐,然后找出预对齐图像重叠区域的最佳缝合线,最后再通过相应的融合技术得到拼接结果。该方法可以处理视差问题,计算速度比较快。

对于视频拼接,其应用特别广泛,尤其是在虚拟现实(VR)和场面监控领域。从图像拼接到视频拼接的过渡主要需要解决三个问题视频去抖动,拼接实时性(在线拼接速度)和重叠部分移动物体经过的。由于机场场面的监控摄像头相对位置固定,视频抖动造成的影响较小。对于实时性问题,图像拼接主要分对齐和融合两个阶段,而最耗时的是融合阶段因其需要对全景图片中每个像素点的值进行计算,本文引入GPU中的CUDA[5]加速技术让每个像素点并行计算能成倍的提高运算速度,同时采用视频特定帧的图像作为拼接模板并在有运动物体经过拼接重叠区域的时候及时更新模板数据的方式来减短运算时间,和减缓运动物体造成的干扰。图1为拼接算法的原始视频图像。

1 视频图像预配准

图像拼接的主要步骤有如下三步:图像预处理、图像配准和图像融合。由于在视频图像的获取过程中产生了较多的干扰如光线不统一等,这会造成图像模糊,灰度便偏移等问题。为了消除干扰我们需要对图像做一些去燥、投影、修正等基本的图像预处理操作。而图像配准是图像融合的基础。

图1 拼接原始图

图2 拼接模拟图示

图像配准主要是将两幅图像的各像素点坐标统一到同一个坐标系中,即找到两幅图像间的空间对应关系。因此图像配准需先确立图像的成像模型本文采用的是针孔成像模型[6],接着通关系模型的参数,算出两幅图像间坐标投影变换矩阵H就完成了配准过程。如图2所示,图A和图B通过黑色重叠部分区域拼接成右边的图像,其中点P在图A和图B中对应的点分别为P1和P2。首先通过摄像机相关的成像模型分别得出点P和P1,点P和P2间的关系。最后以点P为媒介,通过相关的投影坐标转换模型[7],计算出点P1和P2间的投影变换矩阵H,关系式如下:

一般情况下8参数的透视投影变换最适合描述图像之间的坐标关系,参数对应的具体描述间表1:

表1 投影变换矩阵参数表

投影变换矩阵中参数的计算需要至少4对如P1和P2这样的点对坐标数来获得。本文通过特征点的方式来获得点对数据。基于图像的特征点匹配的常用算法有ORB,SURF和SIFT特征点算法。其中SIFT特征点算法具有对旋转、尺度缩放、亮度变化保持不变,对视角变化、仿射变换、噪声也保持一定程度的稳定性。相比于ORB,SURF算法具有更强的鲁棒性。虽然用时最长,但通过GPU加速技术,特征点的提取和匹配速度能达到实时的要求。SIFT特征点提取阶段主要步骤首先是Dog尺度空间的极值检测建立对应的高斯金字塔,然后删除不稳定极值点,接着确定特征点的主方向,最后根据特征点周围的点变化情况生成n维的特征描述子。在得到两幅图的特征点后,采用欧式距离作为度量标准来进行两幅图的特征点匹配,最总形成成对的特征点坐标数据。原始形成的匹配对中存在较多的误匹配,为提高匹配的质量,增加算法鲁棒性,需对匹配方式做一些改进。因此引入了最近邻/次近临算法和RANSAC算法[8]来剔除误匹配,提高图像的拼接质量,提纯结果如图3和图4所示。最后为保持视觉的一致性还需对图像进行柱面投影处理[9]。

图3 原始匹配算法图

图4 1NN/2NN+RANSAC匹配算法图

2 最佳拼接缝

通过一个单应性矩阵对拼接图像进行配准,要求重叠的图像近似于一个平面或者相机的光心近乎重叠。否则对于大场景等情况下的图像拼接中将出现重影或者不对齐的现象,无法处理视差问题,如图5的拼接后示例图的拼缝处明显没对齐。本文将网络流中的最大流和最小割的实现运用于视屏图像的拼接阶段。其主要思想是先通过前面的方法将拼接图像预对齐。然后通过网络流中的最大流和最小割的方法分别找到两幅预对齐图像重叠部分中的最优图割,然后分别保留割线左右两侧的图像数据并绘制在全局图中。这样能很有效地缓解拼接视差造成的模糊和不对齐现象。

图5 GrapCut能量图

最大流/最小割采用GrapCut[10]算法来求解,该方法首先用一个G=<V,E>表示要分割的图像,同时G图在普通图的基础上引入了S和T两个终端顶点。图上所有其它的顶点都必须与这两个终端顶点相连成为边集合的一部分,因此该图具有两种边,如图6(a)图所示。图中每个边都会根据其对应像素点数据值的情况而赋于对应的权值。这样我们就能得到该图的一个能量方程,如下列公式所示:

其中E(L)表示G图中所有边能量值(权值)的总和。cut就是在G图中找出n个切割边,让G图中的所有点划分为两个不相交的集合S和T。cut就是这n个边的集合,如图12(b)图所示。最终需要获得结果是在所有cut找出中n个边能量和最大的那个cut,让切割后图的能量方程E(L)最小,该方法可以用网洛流中的最大流/最小割方法解决,同时采用优化增广路径算法[11]能快速解决最大流/最小割问题。因为最佳拼缝在同一幅图中具有唯一性,因此在拼接过程中对重叠区域找出的两条最小切割线是基本吻合的。图6是根据该算法找出的拼接图像的最佳拼接缝示例图,可以看出左右两幅图的拼缝完全吻合:

图6 最佳拼接缝

3 图像融合

图像拼接在经过单应性对齐和最佳拼接缝寻找后,如果直接将两幅图像的数据绘制到全景图中,会发现拼接的重叠区域会出现明显的拼缝和模糊状况。为了消除拼接缝合重叠部份拼缝和光照不均匀的情况,还需对预对齐的拼接图像做融合处理。常用的融合算法有渐进渐出融合(Feather Blending)和多频带融合[12-14](Multi-band Blending)。其中渐进渐出融合计算资源需求较少,但是融合后的成像质量较差。而多频带融合成像质量高可以处理小视差问题,但复杂度较高,比较耗时。

图像拼接过程中图像特征点计算,图像的变换的线性插值和融合计算量巨大。特别是图像融合阶段采用多频段技术时需要对大量像素点进行计算,是实现实时全景视频的瓶颈。因为在多频段融合阶段,图像中各个像素点数据值的计算相对较独立,所以可以用并行计算的思路来提速融合操作。为了实现视频拼接的实时性本人将CUDA并行加速技术运用于图像融合阶段。

GPU中的CUDA计算架构采用的计算模型是SIMT,即单指令多线程。该架构用多层次的网格来调度大量的GPU线程,达到并行计算的目的。CUDA架构中有线程网格(Grid),线程块(Block),线程(Thread)。每个线程网格里面包含多个线程块,每个线程块中包含多个线程。

根据CUDA架构的线程网格,线程块和线程的设计思路我们可以发现,其分布情况和图像中每个像素点的分布规律一致。于是我们可以按照图7的方式来处理图像数据,把需要处理的图像分成n块,每块中像素点的个数和CUDA中线程块里的线程个数保持一致。然后我们将n块分别分配到CUDA对应的线程块中。让图像中多个像素点通过GPU中的多个线程,并行的进行运算处理。这样就能极大的提高融合速度。

图7 GPU线程块和图像对应关系图

4 模板拼接

机场场面视频的拼接中由于机场摄像头位置相对固定,因此不需要对视频的每一帧都做预对齐处理。可以用第一帧视频初始化拼接模板,后面一帧采用前一帧的拼接模板参数进行对齐。该方法能有效地减去拼接过程中预对齐阶段的处理时间。可是当拼接区域有动态物体经过时如图8所示,当飞机经过拼缝时会对拼接造成干扰,重叠区域的移动物体会产生错位,因此需要新建一个线程,用于检测每一帧视频中是否有移动物体进入缝合线区域,出现该情况就以当前帧为背景更新拼接模板参数。该方法当有运动物体经过重叠区域时,视频帧率会降低,但是能改善成像质量。对于如何进行动态物体检测因不属于本文研究范畴,此处不予介绍。

5 实验结果分析

本文实验采用的计算机环境是:Intel Core i5-6400 CPU@2.70GHz 2核并且4GB RAM。拼接中采用的帧图片参数为规格为720p:1280×720,如图1所示。在经过1-4节的处理后获得了成像质量高,帧率较高的机场场面视频。

图8 运动物体经过拼缝区域错位图

在实时性方面本文通过GPU中的CUDA加速(GTX780)和模板拼接的处理大幅度提高了拼接速度,其中每一帧的耗时为平均为0.050s左右,如果加入拼缝更新处理,每帧耗时平均为0.09ms左右。同等情况下在不采用GPU加速的OpenCV传统拼接方法中每帧耗时0.670s,STVH[15]采用多个单应性矩阵拼接的方法每帧耗时为2.3s左右。

在成像质量方面,如图9(a)所示,拼接结果图像中很好地减缓了重叠区域的视差问题,成像质量比较高。而传统的OpenCV拼接效果图(图(b))中可以看出,重区域比较模糊,飞机明显出现错位变短的情况(如红色矩形框A所示)且出现较多不对齐现象(如红色矩形框B所示)。

图9 拼接结果对比图

6 结语

对于机场场面的视屏拼接,目前面临的两大难题分别是对齐问题和实时性问题。在处理对齐等视差问题上本文采用最佳拼接缝和多频带融合等技术,能有效缓解场景中不对齐和模糊的视差问题。接着我们通过引入GPU的CUDA加速技术和模板拼接方法也成倍地提高了视频拼接速度,满足实时要求。实验结果表明本文的效果优于许多常用的视屏拼接方法。但同时也存在一些需要继续研究改进的问题。对于视差问题只能改善缓解,不能消除,如图9(a)中小黄车有较明显的错位和模糊。对于大场景大视差处理效果不理想。拼接速度每25帧左右,基本满足实时要求,仍有很大提升空间。

参考文献:

[1]Lowe D G,Lowe D G.Distinctive Image Features from Scale-Invariant Keypoints[J].International Journal of Computer Vision,2004,60(2):91-110.

[2]Brown M,Lowe D G.Automatic Panoramic Image Stitching using Invariant Features[C].IJCV.2007:59-73.

[3]Lin W Y,Liu S,Matsushita Y,et al.Smoothly Varying Affine Stitching[C].Computer Vision and Pattern Recognition.IEEE,2011:345-352.

[4]Zaragoza J,Chin T J,Tran Q H,et al.As-Projective-As-Possible Image Stitching with Moving DLT.[J].IEEE Transactions on Pattern Analysis&Machine Intelligence,2014,36(7):1285.

[5]Nvidia Corporation.CUDA Prohramming Guide Version 6.0[EB/OL].2017.http://www.nvidia.com/

[6]object/cuda_home_new.html.

[7]周雄图,陈恩果,姚剑敏,et al.Design and Simulation of Combined Pinholes/Microlens Array for Integral Imaging[J].Chinese Journal of Liquid Crystals&Displays,2013,28(6):855-859.

[8]Lichti D D,Kim C.A Comparison of Three Geometric Self-Calibration Methods for Range Cameras[J].Remote Sensing,2011,3(12):1014-1028.

[9]Grunt.RANSAC算法详解[EB/OL].2017.http://grunt1223.iteye.com/blog/961063.html

[10]吴子章.一种基于柱面投影的图像拼接算法研究[J].计算机光盘软件与应用,2011(5):168-168.

[11]Rother C,Kolmogorov V,Blake A."GrabCut":Interactive Foreground Extraction Using Iterated Graph Cuts[C].ACM SIGGRAPH.ACM,2004:309-314.

[12]XU ZhouBo,GU TianLong,ZHAO LingZhong,等.An Augmenting-Path-Based Symbolic ADD Algorithm for Maximum Flow in Networks网络最大流问题求解的符号ADD增广路径算法[J].计算机科学,2005,32(10):38-40.

[13]Szeliski R,Shum H Y.Creating Full View Panoramic Image Mosaics and Texture-Mapped Models[J].ACM Siggraph Computer Graphics,1997.

[14]Cao J J,Feng J B,Su Z X.Panoramic Image Mosaic Algorithm[J].Journal of Dalian University of Technology,2003.

[15]El-Saban M,Izz M,Kaheel A.Fast Stitching of Videos Captured from Freely Moving Devices by Exploiting Temporal Redundancy[C].IEEE International Conference on Image Processing.IEEE,2010:1193-1196.

猜你喜欢
视差像素点线程
5G终端模拟系统随机接入过程的设计与实现
实时操作系统mbedOS 互斥量调度机制剖析
基于归一化互相关的半透明遮挡视差估计
基于自适应窗的立体相机视差图优化方法研究
浅析体育赛事售票系统错票问题的对策研究
图像二值化处理硬件加速引擎的设计
基于局部相似性的特征匹配筛选算法
视差边缘优化的SGM 密集深度估计算法∗
Kobe—one of the greatest basketball players
基于像素点筛选的舰船湍流尾迹检测算法