基于帧间差分法和VIBE算法的运动目标检测
2015-12-18刘金利傅志中
刘金利,傅志中,周 阳,黄 波
(上海理工大学光电信息与计算机工程学院,上海 200093)
运动目标检测是智能视频监控的热点,快速准确地检测出运动目标是智能视频监控系统优劣的评价标准。运动目标检测的关键任务是从图像序列中检测出运动目标,为后续的目标跟踪、分割以及目标识别奠定基础。运动目标检测的准确性以及实时性一直是其面临的难点,虽然研究人员进行了大量的研究,并取得了瞩目的成果,但仍存在局限性,尤其是在光线强烈变化的情况下[1]。运动目标检测的准确性以及实时性一直是其面临的难点,这就需要设计出一套高质量的运动目标检测系统。本文采用TI公司的TMS320DM6446作为系统图像处理器,并在该硬件平台上采用一种将帧间差分法和VIBE算法相结合的算法来实现运动目标检测。该系统功耗低、抗干扰能力强,且能有效检测出运动物体,在实时监控方面具有良好的应用前景。
1 系统平台介绍
1.1 系统硬件架构
针对基于TI DM6446架构的运动目标检测,平台采用合众达SEED-DVS6446开发模块。其丰富的系统资源适用于智能视频分析系统,有效缩短了开发周期。SEED-DVS6446系统硬件模块主要包括:DM6446系统以及电路;CCD视频采集模块;LCD视频显示模块;ATA硬盘存储模块,用于存储图像、视频等信息;电源模块;JTAG主要用于系统调试以及DSP算法开发;RJ45网口用于以太网开发。系统结构图如图1所示。
图1 系统结构图
1.2 系统软件平台配置
实验系统是包含ARM核与DSP核的双核处理器平台,DSP端运行视频检测算法,ARM端运行操作系统负责任务调度和控制。操作系统采用SEEDDVS6446中的MontionVista Linux,而PC端还需要安装一个Linux系统主机作为与ARM端进行交互的平台,进而可以进行后续的文件挂载、编译和烧写的操作。系统中Linux主机Fedora 14安装在Windows上的虚拟机中,Linux主机与ARM交互需要通过DM6446评估板上的串口连接Linux虚拟机。Windows主机主要用作通过串口连接评估板的控制台,是Linux的载体,连接好后再将网线连接公网,因为要实现远程调用及NFS网络文件系统调试,所以必须要通过网络IP地址来实现。系统连接图如图2所示。
图2 系统连接图
在Linux平台环境的配置中,重要的是NFS网络服务配置,系统使用NFS服务使主机Linux上的MontionVista Linux系统映射到DM6446上,使其自身在无文件系统的情况下执行各种任务。配置网络文件系统服务,需要修改/etc/exports文件,在/etc/exports文件中增加以下内容/opt/nfs*(rw,sync,no_root_squash,no_all_squsah)。
运行以下命令启动NFS服务:[root@liujl/]#/user/sbin/exportfs-a[root@liujl/]#/sbin/service nfs restart
2 运动目标检测
2.1 运动目标检测算法
随着运动目标检测技术的不断发展,运动目标检测所采用的方法[2]也不断增加。针对固定场景中运动目标检测较为常用的方法有光流法、背景差分法、帧间差分法、高斯混合模型码本模型[3]及VIBE算法等。
帧间差分法[4]能有效检测出简单场景下运动目标,算法简单、程序设计复杂度低,能够适应各种动态环境,稳定性好。缺点是当运动目标存在大量颜色一致的区域时,会导致检测前景目标存在大量孔洞,只能检测到物体的边缘。VIBE算法[5]运行速度快,并能快速抑制阴影及照相机晃动对前景检测造成的影响[6]。具有较好的前景检测性能,但在背景干扰及噪声干扰影响下,VIBE算法检测稳定性大幅降低。
鉴于帧间差分法和VIBE算法各自的优缺点,本文设计出了由帧间差分法和VIBE算法相结合的运动物体检测方法,采用VIBE算法来检测运动物体,用帧间差分法处理监控场景下的背景突变。该方法主要针对室内、静态背景下运动物体的检测。
2.2 图像预处理
在图像的采集及传输过程中,通常会受到随机信号的干扰,在图像上叠加一些噪音,形成图像噪声,为保证检测算法的准确性及稳定性,并且降低后续处理的计算量,视频处理第一步将对图像做预处理[7]。本设计综合考虑算法复杂度、可移植性、去噪效果等条件,使用中值滤波进行图像去噪处理。中值滤波通常利用某种固定结构的二位滑动模板来进行图像的预处理,将模板内包含的像素点按照其像素值进行大小排列,形成一个单调的二维数据序列,而噪声像素点由于很难被选上而大幅减小了对输出的影响。
2.3 背景模型构建与前景检测
VIBE算法是由比利时列日大学首次提出的一种目标检测算法,针对VIBE算法的特点,本文利用VIBE算法来实现初始背景模型构建和前景检测[8]。VIBE算法为场景中每个像素p(x)建立一个包含N个样本模型。
如图3所示,黑色实心点p1,p2,…,pN表示像素点Pt(x)的N个背景模型,空心圆点Pt(x)表示当前位置x的待分类像素点。定义一个球体区域S(Pt(x))来表示像素点Pt(x)所允许的差异度范围。根据图像中待分类像素与模型M(x)相似度来检测其前景,若不相似,则分类为前景,否则为背景。
图3 M(x)模型
背景模型的构建实际上就是式(1)中VIBE模型的构建。视频序列第一帧开始,从第一帧图像中随机N次选取当前像素领域中像素点的灰度值,存放到模型M(x)中,从第一帧就完成了对模型的构建和初始化,第二帧就进行前景目标检测。
VIBE算法前景检测:根据在前景目标区域定位的灰度模型M(x)获得前景目标区域矩形框,由VIBE算法,当有运动目标进入时,模型M(x)可迅速检测出前景区域。对前景区域进行形态学处理,使前景区域趋向完整,然后找出前景区域轮廓线,得到最大外接矩形框。矩形框里面的图像就是要检测出的运动目标。前景检测的算法流程图如图4所示。
图4 前景检测的算法流程图
2.4 背景更新
当监控场景中出现异常物体运动或光线变化的干扰造成当前像素点的设计背景值无效时,使用连续帧间差分法,利用图像序列中相邻的两帧或多帧之间差异来处理背景突变。其基本原理为:采集两帧实时图像,若两帧图像相位位置的像素点的值的差分不大于系统为该像素点维护阈值[9]。即满足条件
则对应计数值 D(x,y)增加 1,否则 D(x,y)=0。当D(x,y)增加到设定值N时,系统将实时像素值作为估计背景像素值。式(2)中 E(x,y,k)和 E(x,y,k -1)分别是第k帧和第k-1帧的亮度分量,T为阈值。在背景模型建立时,用输入的第一帧初始化背景图像。算法流程图如图5所示。
图5 背景更新算法流程图
3 实验结果
本文主要针对室内场景下见识系统进行研究,所以将来实验室作为本文的试验场所,系统算法在Linux集成开发环境下进行开发,并将算法移植到系统设计的硬件平台上进行脱机运行。系统处理速度为10帧/s,达到满足实时性要求,在实验室环境下对运动目标进行检测结果如图6所示。该实验表明在复杂的背景下该系统依然能准确地提取背景,检测出运动物体,且检测画面能在显示器上流畅地显示。
图6 运动目标检测结果
4 结束语
本文采用TI公司的TMS320DM6446作为系统图像处理器,在该硬件平台上采用由帧间差分法和VIBE算法相结合的运动目标检测算法,帧间差分法负责背景突变,VIBE算法运用于检测运动目标。实验结果表明,在室内场景背景下,系统在满足实时性情况下能够克服光线变化等因素的干扰,准确地检测出运动目标,能够在显示屏上输出流畅的检测画面,现场试验取得了良好的效果。但系统也存在占用较大内存的缺点,在运动目标提取方面还需要进一步优化。
[1] 李刚,邱尚斌,林凌,等.基于背景差法和帧间差法的运动目标检测方法[J].仪器仪表学报,2006,27(8):961 -964.
[2] Elgammal A,Harwood D,Davis L.Non - parametric model for background subtraction[C].Processing of the 6th European Conference Computer Vision Dublin Ireland,2000:751-767.
[3] 黄鑫娟,周杰敏,刘伯杨.自适应混合高斯背景模型的运动目标检测方法[J].计算机应用,2010,30(1):71-74.
[4] 赵剑宇.基于TI-Davinci平台的运动目标检测与跟踪系统开发[D].天津:天津大学,2011.
[5] Barnich O,Droogenbroeck M V.Vibe:A universal background subtraction algotithm for video sequences[J].IEEE Transactions on Image Processing,2011,20(6):1709 -1724.
[6] 邱祯艳,王修晖.一种结合Grabcut Vibe目标检测算法[J].中国计量学报,2012,3(23):250 -256,288.
[7] 陈兵旗,孙明.实用数字图像处理与分析[M].北京:清华大学出版社,2008.
[8] 张磊,傅志中,周岳平.基于HSV颜色空间和Vibe算法的运动目标检测[J].计算机工程与应用,2014,50(4):182-185.
[9] 滕游,董辉,俞立.基于DSP的运动目标检测与跟踪系统设计[J].浙江工业大学学报,2009,37(6):607 -609.