APP下载

基于OpenCV的运动目标识别算法与实现

2010-06-22张晓宇彭四伟

现代电子技术 2009年22期

张晓宇 彭四伟

摘 要:介绍一种结合背景差分法和瞬时差分法的在视频序列中识别运动目标算法。该算法利用瞬时差分法得到当前帧中运动目标的轮廓信息,在更新背景模型时不更新运动目标轮廓内区域,避免了由运动目标引起的背景模型更新误差。给出用OpenCV实现算法的具体过程和关键代码。实验结果表明,该方法可以实现视频序列中运动目标的识别,具有实时性,并能得到较好的识别结果。

关键词:运动目标识别;背景差分法;瞬时差分法;OpenCV

中图分类号:TP273

0 引 言

运动目标的识别就是对包含运动信息的视频序列运用适当的技术进行处理,把与背景存在相对运动的前景区分开的过程。它是计算机视觉信息提取中的一个重要问题,也是更高层次视频分析,如基于对象的视频编码、目标跟踪、运动分析基础。目前,运动目标识别主要有三种方法:背景差分法、瞬时差分法和光流法。背景差分法可以得到比较完整的运动目标信息,但是背景模型的获取和更新比较困难。瞬时差分法容易在目标内部产生空洞,不能得到完整的目标信息。光流法计算比较复杂,且抗噪性能差,如果没有特定的硬件支持,一般很难用于运动目标识别的实时性操作。

在此介绍一种将背景差分法和瞬时差分法相结合的运动目标识别算法,并给出基于OpenCV实现算法的过程和实验结果。

1 算法思想

背景差分法是利用当前图像与背景图像的差分来识别出运动目标的方法。背景模型的获取和更新是该方法中的关键技术。一种简单的获取背景图像的方法是当场景中无任何目标出现时捕获背景图像,这种人工的非自适应方法获取的背景图像仅适用于短时间内的视频监控。目前大多数算法已经放弃这种非自适应的背景图像估计方法。当场景环境不是很复杂时,可以使用统计滤波完成场景中背景图像的估计,大多数情况下都可以得到正确的背景估计图像,但是当场景中有个别部分做无规则运动时,会引起场景中像素值不断变化,从而引起估计误差。基于高斯统计模型的背景估计方法在有部分区域不断变化的场景中也能比较准确地估计出背景模型,但是它的计算比较复杂,加上识别过程中其他操作也可能无法满足实时性需求。

瞬时差分法是在视频序列中两个相邻帧间采用基于像素的时间差分,并且阈值化来提取出运动目标的方法。即将相邻的两帧图像做逐像素相减运算,并设定阈值,若相减的值大于阈值,则将其看作前景图像(运动目标);否则看作是背景图像。瞬时差分法对于动态环境的适应性较强,不需要获取背景图像。当相邻两帧图像的纹理、灰度等信息比较接近时,这种方法通常不能完整地检测到目标的具体内容,在物体内部产生空洞。但是它可以较准确地得到运动物体的外围轮廓。

在此将使用一种背景差分法和瞬时差分法相结合的方法。首先根据一定数量的视频序列,采用基于高斯统计模型的方法获得背景图像。在后续处理中,对于每一帧的视频图像,首先用瞬时差分法识别出运动目标的轮廓,然后用这帧图像运动目标轮廓以外的区域对背景模型进行基于统计滤波的更新。这样就可以减少场景中运动目标对更新背景模型的影响,同时保证了系统运行时间的实时性,也可以得到较完整的目标识别信息。

2 算法实现

根据前文的算法思想,可以得到系统的流程图如┩1所示。

开放源代码的计算机视觉类库OpenCV(Open Source Computer Vision Library)是由英特尔公司位于俄罗斯的研究实验室所开发的一套可免费获得,并由┮恍┆狢函数和C++类所组成的库,用来实现一些常用的图像处理及计算机视觉算法[7[CD*2]10]。下面给出利用OpenCV实现算法的具体过程和关键部分的代码:

(1) 捕获视频帧

定义捕捉源:

(2) 基于高斯统计估计背景模型

定义高斯背景模型:

将高斯背景模型的背景图像复制到事先定义的背景图像pBkImg 中:

(3) 使用瞬时差分法获得不包含运动区域的当前帧,并更新背景。当前帧pFrame和前一帧pFrame0做差分,结果放在差分图像diff中,并二值化:

接下来要做的操作是,找到差分图像中的轮廓,得到他们的外接矩形。将面积小的矩形视为噪音抛弃,剩下的则视为运动目标。同时设置当前帧pFrame和背景pBkImg的ROI为运动目标的外接矩形。先将当前帧的ROI置0,再对当前帧与背景的ROI进行逻辑┗(or)运算。这样,对于运动目标所在区域,当前帧和背景的图像信息是一样的,也就达到了消除运动目标对背景更新的影响目的。

这段代码如下所示:

用上述过程得到不包含运动目标信息的当前帧更新背景模型:

(4) 进行背景差分,得到当前帧运动目标识别结果的二值图像pFrImg:

3 实验结果

根据上述算法思想和实现过程,使用VC++6.0和OpenCV 1.0实现运动目标的识别。经过计算,该算法处理每一帧图像的时间大约是16 ms,可以满足实时性系统的要求。使用该算法对一段交通监控图像进行运动目标的识别,结果如图2所示。其中,图2(a)是当前帧图像,图2(b)是不包含运动信息的当前帧图像,用矩形框标注出了由帧间差分检测到运动目标的位置,┩2(c)是当前的背景模型,图2(d)是背景差分的结果。オ

4 结 语

由上述实验结果可以看出,本文介绍的算法可以较准确地得到背景图像,并且实现运动目标的识别。

系统尚需改进的地方有对运动目标边缘的检测不够清楚;如果可以加入阴影的检测和去除,应该会取得[LL]更好的识别效果。这些将是进一步研究的工作。

参 考 文 献

[1]刘雪.基于图像序列的运动目标检测与跟踪算法研究[D].山东:山东大学,2007.

[2]许志良,周智恒,曹英烈,等.关于运动目标检测的发展现状研究[J].移动通信,2008(6):35[CD*2]38.

[3]丁忠校.视频监控图像的运动目标检测方法综述[J].电视技术,2008,32(5):72[CD*2]76.

[4]尹彦,耿兆丰.基于背景模型的运动目标检测与跟踪[J].微计算机信息,2008,24(11):298[CD*2]300.

[5]赵占杰,林小竹,张金燕.基于背景重建的运动目标检测算法[J].北京石油化工学院学报,2008,16(2):27[CD*2]30.

[6]肖丽军,于哲舟,周栩,等.基于对称差分算法的视频运动目标分割[J].吉林大学学报:理学版,2008,46(4):691[CD*2]696.

[7]贾小军,喻擎苍.基于开源计算机视觉处理库OpenCV的图像处理[J].计算机应用与软件,2008,25(4):276[CD*2]278.

[8]马桂珍,朱玲赞,段丽.基于OpenCV的视频应用程序的开发方法[J].现代电子技术,2007,30(4):78[CD*2]80.

[9]李振伟,陈翀,赵有.基于OpenCV的运动目标跟踪及其实现[J].现代电子技术,2008,31(20):128[CD*2]131.

[10]刘瑞祯,于仕琪.OpenCV教程基础篇[M].北京:北京航空航天大学出版社,2007.

作者简介 张晓宇 女,1983年出生,辽宁人,硕士研究生。研究方向为视频运动目标识别与跟踪。

彭四伟 男,1970年出生,湖北人,副教授。研究方向为过程工业监控、编译技术应用、并行计算。