APP下载

实时全景视频拼接技术研究

2017-09-09冯卓明彭梦琳

软件导刊 2017年8期

冯卓明+彭梦琳

摘 要:随着计算机技术的飞速发展,计算机视觉得到了广泛应用,并且已经越来越接近人眼的认知水平。提出了一种全景视频监控系统模型,使用同步镜头实时采集图像帧,将相应图像拼接出全景图像。研究了基于特征点检测的图像拼接算法——surf算法,在实际应用中对特征点描述符方式进行改进,实验结果表明,在使用改进surf算法后,拼接效率明显改善,提高了实时播放应用的实用价值。

关键词:全景视频;视频拼接技术;surf算法

DOIDOI:10.11907/rjdk.171263

中图分类号:TP317.4

文献标识码:A 文章编号文章编号:1672-7800(2017)008-0193-03

0 引言

傳统的视频监控系统使用多个相机拍摄,然后每个监控屏幕依次排列,对应监控场景的各个角落,在观测时很不直观[1-2]。本文旨在选取一种全景图像拼接算法,并将其应用于基于多投影仪的全景视频监控系统。全景视频智能拼接系统模型如图1所示,系统由监控中心和各分布式摄像头组成,分布式摄像头拍摄各角度的视频,并将其发送到监控中心,在监控中心进行智能拼接,然后在多媒体设备上连续显示出来,供控制人员观看。

1 全景视频拼接算法分析

随着计算机技术的快速发展,视频拼接算法已经有了一定的研究成果[3-6],本文对surf算法进行了研究,并在实际应用中修改了surf算法描述符生成方法,提高了拼接效率,实现了实时播放功能。

1.1 surf算法

surf (Speeded Up Features)是Herbert Bay提出的一种特征点检测算法,分为4步进行:

(1)尺度空间极值点的检测。surf算法是基于Hessian矩阵找到极值点作为特征点,同时在找极值点的过程中采用了许多加速运算量的方法,因此surf在一定程度上提高了运算速度。定义图像中某个点的Hessian矩阵为:

H(x,y,z)=Lxx(x,y,σ) Lxy(x,y,σ)Lxy(x,y,σ) Lyy(x,y,σ)(1)

其中,Lxx(x,y,σ)是高斯二阶偏导在该像素点处与图像的卷积。

SURF方法将此高斯二阶梯度模板用盒模型近似表示,即图像进行离散化且进一步剪裁为9*9的方格, Hessian矩阵在检测图像的特征点时是通过计算图像中所有像素的Hessian矩阵的行列式得到的。因此,通过Hessian矩阵所得到的极值点就是特征点。

(2)特征点的精确定位。在每个候选特征点上,使用泰勒级数插值拟合方法用于确定特性点的位置和尺度。而特征点的最后选取依赖其稳定程度。

(3)选取特征点的主方向。surf算法通过统计特征点区域内的哈尔小波特征选取特征点的主方向。

(4)特征点的描述算子。首先,以特征点为中心,建立以20s(s为特征点所在的尺度)为边长的正方形邻域,但建立的这个正方形邻域的方向要求与该特征点的主方向相同。然后将这个邻域划分为4*4的子区域,并且在每个子区域内等间隔采样出25个采样像素。

接下来需要对每个子区域内的每个像素点的水平和垂直与主方向的哈尔小波特征值进行求解,每个区域内的哈尔小波特征为水平方向之和、水平方向模值之和、垂直方向之和以及垂直方向模值之和,如图2所示。这里同样需要对每个像素点的哈尔响应值进行加权处理,取方差为3.3s。这样,每个子区域就可以用一个四维矢量表示。

因此,每个特征点就可以用一个16*4 = 64维向量表示,此64维特征向量即为该特征点的描述子。

1.2 surf算法的不足

由于计算机是用二值化的形式对数据进行存储和传输,对定点数的计算性能要远远优于浮点数据。并且在大量浮点运算时还需要增加FPU单元以提升速度,这样还会增加硬件成本。在实际生产应用中,需要针对这一特性对算法进行优化。

surf方法性能优异,但它在实时应用中仍存在待改进之处,一个主要的原因就是特征点的描述符结构较复杂。目前,改进描述符的方法有降低维数和浮点型用整型替代,而更彻底的方法就是直接把描述符缩短为二值化的位字符串形式。

2 surf算法改进及实现

本文基于brief算法二值化描述的思想,在surf算法进行图像拼接时,对特征点描述算子的生成方法进行改进。

2.1 BRIEF算法简介

BRIEF算法是将特征点用二值化的位字符串形式描述,这样用汉明距离(Hamming)就可以更快地测量两个描述符的相似程度,方法是按位进行异或位操作,结果中“1”的数量越多,两个描述符的相似性越差。

简化描述符方法是:在获取到特征点序列后,以每个特征点为中心定义一个大小为S×S的补丁(patch)区域;然后在该区域内,在固定的位置选择nd个像素点对;再比较像素点对的灰度值,并按式(2)取得二值化比较结果:

bi=1 I(pi)

I(pi)和I(qi)分别表示第i个像素点对的两个像素pi和qi的灰度值。取到若干字节数的二值化比较值后,把补丁区域内所有点对的比较结果串成一个二值位字符串的形式,就形成了该特征点的描述符B,如式(3)所示。

B=b0b1…bi…bnd(3)

依序取得所有特征点的描述符,排列成描述符序列,用于后续的图像匹配。

2.2 surf描述方法的二值化改进

surf算法流程如图3所示。

根据surf算法流程可以看到,在计算描述符的过程中,经过两次遍历后进行了高维度的哈尔小波响应计算。surf算法的特征点检测和特征点描述是可以自定义使用的。因此,可以将surf算法中特征点描述算子映射成二值化的形式,保留原始信息。改进后的算法流程如图4所示。

根据改进surf算法流程图可以看出,经过一次遍历。与原来的算法相比,循环次数是相同的。但是高维度哈尔小波計算涉及浮点数据的乘方开方运算和三角函数计算,其计算开销远远大于二值比较计算的开销。因此,改进surf算法能够提高拼接速度。

3 仿真结果及分析

为了验证改进SURF算法的优化效果,拍摄了多组图片进行实时仿真,在拼接图像的同时记录程序运行时间,试验仿真环境是基于Windows10操作系统的Visual Studio2010 以及openCV2.4.7环境,硬件配置是Intel i7四核处理器,内存为4G RAM。

图4为原始输入图像,图5为使用surf算法拼接得到的输出图像,图6为使用改进surf算法得到的输出图像。 从实验拼接结果来看,两种方法所拼接的效果图相差不大。本文进行了六组实验,结果如表1所示。

根据实验结果可以看出,描述符生成时间与特征点的个数趋近于线性关系,而对于相同数量的特征点,使用改进surf算法,能够将描述符生成时间缩短到原来的20%左右,并且不会增加其它环节的时间开销,从而稳定提升了整体拼接速度。因此,在实时播放场景中,使用改进surf算法,能够更快速地获取全景视频,提升监控人员的视觉体验。

4 结语

本文研究的全景视频拼接技术,利用多个镜头拍摄取代全景摄像头,节约了硬件成本,并且能够实时地将拼接后的视频播放出来,可作为全景实时监控的一种有效方法。

但实时场景中,改进SURF算法仍然有其局限性,因为它是斑点类检测算法,适合于纹理鲜明的图像,对于纹理不明显的物体,例如光滑的桌面等这些没有明显斑点的图像拼接就没有明显优势,这时就要考虑使用角点检测算法检测桌面边界。因此,设计实时全景视频系统,除了对算法进行优化处理,还要考虑实际场景下的算法选取,场景的特征判断主要在于是斑点还是角点,如何智能地对其进行识别,则有待进一步研究。

参考文献:

[1] 谭秀峰.基于全景视频的监控系统[J].现代计算机,2016(1):33-36.

[2] 卢斌.基于多视全景视频技术的研究[D].杭州:中国计量大学,2012.

[3] 吴冬艳.基于视频内容的全景拼接技术研究[D].杭州:浙江工业大学,2013.

[4] 刘奇,何明一.基于SURF特征匹配的图像拼接算法[J].测控技术,2010,29(10):27-31.

[5] 漆驰,刘强,孙家广.摄像机图像序列的全景图像拼接[J].计算机辅助设计与图形学报,2001,13(17):605-609.

[6] 杨磊.全景图像自动拼接算法的优化设计[J].红外与激光工程,2014(3):985-990.endprint