基于OpenCV的运动目标检测与跟踪

2011-09-07 10:17尹俊超刘直芳
计算机工程与设计 2011年8期
关键词:背景图像目标

尹俊超, 刘直芳,2

(1.四川大学计算机学院,四川成都610064;2.四川大学视觉合成图形图像技术国防重点学科实验室,四川成都610064)

0 引 言

运动目标检测跟踪技术在航空航天遥感、生物医学、工业自动化生产、军事公安目标侦查、智能机器人、多媒体电视制作、文化艺术等领域都有着非常广泛的应用,如由卡耐基梅隆大学(CMU)的机器人研究中心和Sarnoff公司历时3年(1997--1999)共同开发完成的视频检测追踪(VSAM)系统,用于自动视频检测与追踪,该系统既可以用到军事上,也可以用在日常视频监控方面,这种系统的优势在于削减了人力资源的开销,具有较大的商业价值。

近几年,国内外的学者在运动目标检测跟踪问题上,已经提供了很多有效的方法,但是很多算法不能同时满足实时性和精确性的要求,特别是在复杂场景下,当多目标,遮挡,停走,光线变化的情况发生时,目标检测和跟踪实现起来会变得比较复。目前,常用的目标检测算法有背景差,帧间差,光流法,扩展的EM算法,能量运动检测,基于数学形态学的检测等[1];常用的目标跟踪算法有基于区域的跟踪,基于运动估计的跟踪,基于目标模型的跟踪和基于主动轮廓的跟踪等。

作者试图基于现有的检测和跟踪算法,利用OpenCV图形图像开发库,通过对各种算法的比较分析,针对不同环境条件,寻求一种解决多运动目标检测跟踪的方案,能够克服目标部分被遮挡,停停走走和光线变化等因素对实验结果的影响,假设在本文实验中摄像头是标定的。

本文主要实现的目标是对场景中的多个运动目标进行检测并跟踪,首先要提取出运动的目标,其次提取运动目标特征(颜色,纹理,形状),实施跟踪算法,标记出运动目标轨迹。

1 OpenCV开发平台简介

OpenCV是一个开源的计算机视觉库[2],它采用C/C++语言编写,可以运行在Linux/Windows/Mac等操作系统上。Open-CV还提供了Python,Ruby,Matlab以及其它语言的接口。Open-CV的设计目标是执行速度尽量快,主要关注实时应用。它采用优化的C代编写,能够充分利用多核处理器的优势。

OpenCV主体分为5个模块,CV模块包含基本的图形处理函数和高级的计算机视觉算法。MLL是机器学习库,包含一些基于统计的分类和聚类工具。HighGUI包含图像和视频输入/输出的函数。CXCroe包含 OpenCV的一些基本数据结构和相关函数[2]。

2 运动目标检测及跟踪算法

2.1 检测跟踪整体思路

首先通过检测算法从场景中检测出运动目标,提取目标特征信息(如颜色信息),与之前检测出的目标做特征比对,如果是新目标则加入到跟踪序列中,如果是旧目标则舍弃。目标跟踪阶段,对跟踪序列中的目标采用跟踪算法,获得其运动轨迹。关键点在于目标的特征信息提取和匹配,这是决定目标跟踪效果的重大因素。系统整体框架如图1所示。

图1 系统整体框架

2.2 运动目标检测算法

由于本实验是研究标定摄像头下的运动目标检测,背景的变化不是很大,所以考虑采用帧间差法和背景差法。背景差是一种适合静态场景的运动目标检测方法,它首先通过前几帧图像重构背景图像 (如果已有纯背景图像则不需要此操作),再将当前帧和背景图像做差,再对差图进行处理。帧间差通过视频序列中的相隔一帧或几帧两幅图像做差运算来检测图像中的运动区域,这种方法适用于动态变化的场景。然而这种方法也有一定的局限性,高速运动的目标采用此方法会产生空洞或目标被拉长,目标静止时无法检测到目标。图2表示了采用这两种方法获取目标的流程,图(a)、图(b)分别为背景差和帧间差提取目标。

背景重构就是采用图像分割技术提取出不包含目标对象的背景技术,其关键是如何实时更新背景模型以适应背景的变化。本文实验中采用混合高斯背景模型来重构和更新背景。

根据文献[3]介绍的方法,本文用K(3≤K≤5)个高斯分布函数来表示场景中的每一个像素点的分布,那么特定像素点在时间N的像素值可以被表示为

图2 运用减法提取目标框架

通过以上方法得到背景图像之后做差得到差图像,然后对差图进行一系列的图像处理,包括:平滑处理,形态学膨胀,腐蚀,二值化操作,轮廓提取。但是并不是所有的轮廓都是由目标产生的,有些是目标的子轮廓或者是噪声产生的轮廓,因此必须对轮廓进行筛选,淘汰伪目标的轮廓,把目标轮廓筛选出来后加入到跟踪队列。

2.3 运动目标跟踪算法

目标跟踪是在已知目标图像或已知目标特征信息(颜色,形状,纹理等)的前提下,利用目标有效特征值,使用适当的匹配算法,在序列图中寻找与目标模板相似图像的位置。

MeanShift算法在一组数据的密度分布中寻找局部极值,对数据局部窗口中的点进行处理,处理完成后再移动窗口,重复直到窗口的位置不能再移动过为止,如图3所示。

图3 MeanShift算法流程

CamShift(continuously apaptive mean-shift),与 MeanShift不同的是它的搜索窗口会自动调整尺寸[4],它对所有帧作Mean-Shift运算,并将上一帧的结果(即窗口的中心和大小)作为下一帧MeanShift算法的窗口的初始值,如此迭代下去,就可以实现对目标的跟踪如果有一个易于分割的分布,此算法可以根据目标在靠近或远离摄像机时目标尺寸的变化自动调节窗口尺寸。

2.4 目标检测跟踪实现

结合以上所述的运动目标检测跟踪算法,在OpenCV平台下实现目标的检测跟踪流程如图4所示。

在OpenCV运动目标检测算法的实现主要是调用现有的文件,本文主要的工作是将背景重构模型函数增加在目标检测算法中,即定义了CvGaussBGModel类用于存放高斯混合模型的各个参数,调用此函数构造混合高斯背景模型。

图4 实现目标检测跟踪的流程

在运动目标跟踪中,主要利用OpenCV中CamShift算法来实现,跟踪过程中的关键就是生成色彩概率分布图,如图5所示。用在cvCalcBackProject处理中的模板是目标图像色调(HUE)的直方图,而直方图可以看作是一种概率分布图。在处理前,目标图像中的每一个像素的值描述的在这一点的颜色信息,而处理后,图像中每一个像素的值就变成了这个颜色信息出现在此处的可能性的一种离散化的度量,出现的可能性大,像素值就大,反之则小。这样就为后面的匹配和跟踪提供了线索。

图5 目标色彩概率分布

3 实验结果及分析

本文实验的数据来源是摄像头拍摄到的实验室固定场景视频序列图像和来自网上的PETS 2006 Benchmark Data[16]。背景差的关键步骤在于背景图像的重构,通过CvGaussBGStat-ModelParams结构体可以设置各个参数的值,本文实验采用的默认参数,如表1所示。

通过表1和图6可发现,混合高斯模型有方差和均值两个参数决定,对均值和方差的学习,采取不同的学习机制,将直接影响到模型的稳定性、精确性和收敛性。由于场景可能是变化的,需要对高斯模型中方差和均值两个参数实时更新。为提高模型的学习能力,改进方法对均值和方差的更新采用不同的学习率;为提高在繁忙的场景下,大而慢的运动目标的检测效果,引入权值均值的概念,建立背景图像并实时更新,然后结合权值、权值均值和背景图像对像素点进行前景和背景的分类,这对背景的提取精度起很大的作用。

图6 不同参数下重构的背景图像

通过图7实验结果不难看出,背景差法的优点是得到的目标区域连通性好,缺点是它对背景变化比较敏感,细小的背景变化都会产生很大的噪声,同时提取纯背景图像要花费一定的时间。通过图8可以发现,帧间差的优点是运算简单,算法效率高,实时性较好,可用于动态背景下的运动目标检测,缺点是是不适用于运动目标走走停停的情况,当运动目标速度较慢或较大时,得到的目标轮廓可能会不完整或沿着目标的运动方向被拉长。

图7 背景差目标检测效果

图8 帧间差目标检测效果

运动目标的跟踪算法的种类有很多,不同的算法在不同的环境下精确度,鲁棒性不同,CamShift算法可以适应目标大小的变化,前提是目标的颜色特征比较明显并且不会发生大的变化,图9是跟踪效果图,绿色框里的目标颜色单一,所以CamShift算法跟踪不到,体现了这种算法的局限性。

图9 跟踪效果

当然目标运动过程中可能会发生很多情况,如目标被障碍物部分遮挡或者目标之间相互遮挡,如图9里面的目标被柱子遮挡之后就失去了跟踪。这些问题作者将继续研究。

4 结束语

运动目标的检测跟踪算法的种类有很多,不同的算法在不同的环境下鲁棒性不同,本实验中采用了帧间差和背景差作为目标检测的方法,主要难点在于当多个目标存在于场景中时如何判断哪一个或一些是第一次出现的目标,本实验采用目标面积,坐标筛选法,认为从场景最上面出现的目标视为新目标,并加入到跟踪队列。检测是跟踪的前提,检测结果的精确性直接影响到跟踪的可靠性。CamShift算法可以适应目标大小的变化,前提是目标的颜色未发生大的变化,当然目标运动过程中可能会发生很多情况,如目标被障碍物部分遮挡或者目标之间相互遮挡,针对这些问题学者们在努力寻求解决办法。本课题只是对目标检测跟踪基本原理和方法的实验验证,并对其结果进行了理论性和功能性上的分析。

表1 不同参数下重构背景的效果比较

[1]王江涛.基于视频的目标检测,跟踪及行为识别研究[D].南京:南京理工大学模式识别与智能系统,2008.

[2]Gary Bradski,Adrian Kaebler.学习 OpenCV(中文版)[M].北京:清华大学出版社,2009:100-380.

[3]Stauffr C,Grimson W.Adaptive background mixture models for real-time tracking[C].Ft Collins,CO,USA:Proceeding of Computer Visio and Pattern Recognition,1999:246-252.

[4]BorgM,Thirde D,Ferryman J,et al.Videosurveillance for aircraft activity monitoring[C].IEEE Conference on Advanced Video and Signal Based Surveillance,2005.

[5]熊令,洪健.基于OpenCV的视频对象的运动检测[J].电子测试,2009,25(9):91-93.

[6]黄鑫娟,周洁敏,刘伯扬.自适应混合高斯背景模型的运动目标检测方法[J].计算机应用,2010,30(1):71-74.

[7]宋涛,马宇峰,蔺海峰.OpenCV在目标跟踪中的应用及实现[J].计算机与网络,2009,24(2):52-56.

[8]冈萨雷斯.数字图像处理[M].北京:电子工业出版社,2007.

[9]陈兆学,郑建立,施鹏飞.基于Mean Shift方法的视频车辆检测与分割[J].上海理工大学学报,2007,29(2):195-199.

[10]朱虹.数字图像处理基础[M].北京:科学出版社,2005:168-171.

[11]张旭光,孙巍.复杂背景下运动目标的提取[J].光电工程,2006,33(4):10-131.

[12]覃剑.视频序列中的运动目标检测与跟踪研究[D].重庆:重庆大学通信与信息系统,2008.

[13]王爽,段红,黄友锐.基于改进的活动轮廓模型在图像分割中的应用[J].微计算机信息,2008,25(1):274-275.

[14]张宏志,张金换,岳卉,等.基于CamShift的目标跟踪算法[J].计算机工程与设计,2006,27(11):2012-2014.

[15]刘雪,常发亮,王华杰.基于改进Camshift算法的视频对象跟踪方法[J].微计算机信息,2007,24(21):297-298.

[16]James M Ferryman.Ninth IEEE international workshop on performance evaluation of tracking and surveillance(PETS 2006)[OL].http://www.cvg.reading.ac.uk/PETS2006/data.html,2006.

猜你喜欢
背景图像目标
“新四化”背景下汽车NVH的发展趋势
《论持久战》的写作背景
巧用图像中的点、线、面解题
黑洞背景知识
有趣的图像诗
遥感图像几何纠正中GCP选取
趣味数独等4则
新目标七年级(下)Unit 3练习(一)
新目标七年级(下)Unit 4练习(一)
(新目标)七年级下Unit 1练习(二)