基于背景减除的运动检测在嵌入式监控系统中的应用
2013-11-20卢静,李莉
卢 静,李 莉
(河南工程学院 计算机科学与工程系,河南 郑州 451191)
随着计算机技术、网络技术、嵌入式技术和视频压缩技术的快速发展,嵌入式视频监控的应用范围越来越广泛.视频监控的主要目的就是发现监控过程中的异常情况并及时处理,监控系统中的异常情况主要是运动目标检测,该过程是将原始图像中的运动变化区域从背景图像中提取与分析,它是整个视频监控的基础,检测结果的准确性将直接影响整个监控系统的性能.目前,常用的运动目标检测算法主要有光流法[1]、帧差法[2]、背景减除算法[3]等,每种算法计算的复杂性、实时性和准确性都不同.
由于嵌入式视频监控在硬件方面的局限性,导致它对检测过程中的运算量和实时性均有较高的要求.背景减除法具有计算量小、实时性高、检测位置准确等优点,同时由于一般监控摄像机的背景较为固定,所以本研究使用一种基于背景减除的方法进行运动检测.又因该方法对动态场景的变化太敏感,故在背景维护部分使用了一种改进的背景维护策略.实验表明,用本方法可以有效提高监控过程中运动目标检测的准确性.
1 背景减除法
背景减除法的工作原理是利用当前帧图像与背景图像进行差分,从而检测出当前帧中的运动变化区域.该方法的基本思想是首先建立背景模型,然后将每帧图像与背景模型做差分运算,像素变化比较大的区域即为运动目标,工作流程如图1所示.
图1 背景减除算法流程Fig.1 Background subtraction algorithm process
(1)该工作流程中的图像预处理主要有两个作用:①把图像转换为灰度图,在YUV颜色空间中,Y分量表示像素点的亮度,而人眼对亮度的变化最敏感,故可把原图像转换为用Y分量表示的灰度图,利用Y分量检测图像中的运动对象;②通过降低帧率或帧的大小减少待处理的数据量,以保证嵌入式视频监控在实时性方面的高要求.
(2)建立/更新背景模型:背景模型是该算法的核心,背景模型的选取既要对背景环境的变化有足够的鲁棒性,又能准确地检测出运动目标.进行背景建模的方法有很多,主要分为两类——基于像素信息的背景建模和基于区域信息的背景建模.不同的方法依据的理论基础也不相同,但主要手段都是对样本图像序列进行统计分析,提取出图像背景并建立背景模型.
(3)运动检测:将当前帧图像与背景图像进行差分运算,根据设置的检测阀值,若当前帧中的像素与背景图像中对应位置的像素的差分运算结果大于阀值,则分离出这部分像素作为前景(运动目标),否则视为背景,用公式表示为
|Ft(x,y)-Bt(x,y)|>T,
(1)
其中,Ft(x,y)为t帧中(x,y)位置的像素值,Bt(x,y)为t帧中(x,y)位置的背景像素值,T为检测阀值.
(4)后期处理:通过上述运动检测分离出来的运动目标往往范围过大,除了实际的运动目标外,通常还包含一些干扰区域,例如背景中原来静止的部分发生移动,像风吹动窗帘、水面波动等;光线的突然变化也会影响背景的提取,从而造成误检.后期处理的任务就是排除这些异常,去除影响检测结果的干扰、噪声等,提高检测的准确性.
(5)输出目标图像:将运动检测部分检测到的前景像素置1、背景像素置0,形成二值图像后输出.在输出的图像中,运动目标区域显示为白色,未改变的区域以黑色显示,即从当前帧中把运动目标分离出来.
2 背景更新策略
背景的维护与更新是背景减除算法的核心算法,它直接影响到运动目标检测的准确性.由于本研究是在嵌入式视频监控系统中进行运动目标检测,所以对算法的复杂性与检测的实时性都有较高的要求,故使用了一种基于W4模型[4]的改进算法,该算法实现简单,运算量小,能够满足实时性的要求.而且,该算法对运动目标比较敏感,能够精确地检测出运动目标.
2.1 建立背景模型
设训练周期为T,从已知的视频序列中抽取连续M帧图像,记做I1,I2,…,IM,用Yn(x,y)(n=1,2,…,M)表示帧号为n的图像中(x,y)位置处的像素亮度值,计算所有M帧图像中该位置亮度的最大值YMAXt(x,y)、最小值YMINt(x,y)及最大邻间差分值YDMAXt(x,y),则
YMAXt(x,y)=MAX(Yn(x,y)),n=1,2,…,M,
(2)
YMINt(x,y)=MIN(Yn(x,y)),n=1,2,…,M,
(3)
YDMAXt(x,y)=MAX(Yn(x,y)-Yn-1(x,y)),n=2,…,M,
(4)
初始背景模型中每个像素点都用这3个值表示.
2.2 运动目标分割
该过程主要将运动目标从当前帧图像中分离出来,用Ft(x,y)表示当前帧中(x,y)处像素的亮度值,若满足式(5)或式(6),则认为该像素为前景,对该像素进行二值化处理,否则按照2.3中的论述更新背景模型:
|Ft(x,y)-YMAXt(x,y)|>YDMAXt(x,y),
(5)
|Ft(x,y)-YMINt(x,y)|>YDMAXt(x,y),
(6)
对判断为前景的像素进行二值化处理,用St表示输出的图像,则
(7)
二值化处理后,当前帧中的运动区域在St中以白色表示,即完成运动目标的分离.
由于Ft(x,y)表示当前帧中某点的亮度值,所以当监控场景中的光线强度突然变化时,式(5)或式(6)的条件也成立,这样就会造成误检,这种情况应单独处理.当光线突然增强或减弱时,当前帧中所有像素的亮度都会发生变化,针对这个特点,可以构造出另外一种算法以应对光线强度的突然改变.
令Sf表示当前帧中所有像素的亮度之和,Sb表示背景图像中所有像素的亮度和,则
(8)
(9)
其中,w表示当前帧的宽度,h表示当前帧的高度.令T表示亮度变化阀值,则当|Sf-Sb|>T时表示光线强度突然发生变化,这种情况应排除在异常事件之外.
2.3 背景更新
实际中的背景总是要发生变化的,这时就必须对背景进行更新,否则背景中就会存在大量的虚假信息,影响检测结果的准确性.本研究使用基于背景消减法的算法进行背景模型的更新,背景消减法主要通过对前景图像进行阀值处理并根据处理结果,用当前帧中的图像更新背景模型.
通过上面的讨论可知,根据式(5)或式(6)可检测出前景图像,令It(x,y)表示当前运动区域中(x,y)处的亮度值,则阀值可表示为
T=MIN(|It(x,y)-YMAXt(x,y)|,|It(x,y)-YMINt(x,y)|,|It(x,y)-YDMAXt(x,y)|).
根据T的值,决定更新背景模型中(x,y)处哪个分量的值:
若T=|It(x,y)-YMAXt(x,y)|,则
YMAXt+1(x,y)=αFt(x,y)+βYMAXt(x,y),
(10)
若T=|It(x,y)-YMINt(x,y)|,则
YMINt+1(x,y)=αFt(x,y)+βYMINt(x,y),
(11)
若T=|It(x,y)-YDMAXt(x,y)|,则
YDMAXt+1(x,y)=αFt(x,y)+βYDMAXt(x,y),
(12)
其中,α(0<α<1)和β是背景更新因子(β=1-α).
3 算法实现
根据上述讨论,将基于背景减除的运动检测算法在嵌入式视频监控系统中进行了实现,系统采用C/S模式,其体系结构如图2所示.该系统的前端工作在嵌入式Linux平台上,主要完成视频的采集、图像预处理、运动检测、视频数据的压缩与存储及网络传送功能,其软件部分采用模块化思想进行设计.
图2 嵌入式视频监控系统体系结构图Fig.2 Embedded video surveillance system architecture
(1)视频采集模块.采集原始的视频序列,使用Linux的v4l[5]实现,帧率25帧/s.
(2)图像预处理模块.为后续的运动检测模块提供图像,从原始的视频序列中每隔5帧抽取1帧作为该模块的输入.
图3 运动检测处理流程Fig.3 Moving objects detection process
(3)运动检测模块.提取每帧中的Y分量,根据RGB与YUV颜色空间的变换关系,计算每帧图像中的Y分量:Y=0.3R+0.59G+0.11B,把原始图像转变为用Y分量表示的灰度图.根据上述文中背景更新策略中的算法检测出运动目标,输出运动目标的二值图像并进行现场帧的抓拍、存储或发送现场帧图像到用户指定的位置,其处理流程如图3所示.
(4)压缩编码模块.该模块主要完成视频信息的压缩编码.本系统使用软件实现数据压缩编码方案,选用的数据压缩标准为H.264[6].H.264是一种成熟的高效率编码标准,其编码器是开源的,可以从网上下载,本系统中使用的是t264,对转换后的YUV格式数据进行逐帧压缩.
(5)网络传输模块.通过该模块将编码后的数据打包发送到网络中,由于本系统对实时性的要求较高,所以本模块使用了RTP传输协议.实际网络环境中带宽的变化往往不可预料,网络抖动会降低传输质量,造成传输时延增大、丢包等现象的发生,这可能导致监控过程中的关键画面丢失,所以该模块需具备网络带宽自适应性,可通过RTCP的反馈信息进行码率的动态调整,具体过程在文献[7]中有详细的讨论,此处不再赘述.
(6)设备控制模块.该模块根据用户的控制命令完成对摄像头设备的控制.
(7)存储管理模块.该模块使用嵌入式数据库MySQL存储编码后的视频数据,供以后的检索和回放.由于系统硬件的限制,所以扩充一块USB接口硬盘来存放数据库,系统中的设备信息、用户信息、运动检测模块检测到的现场帧添加时间、地点信息也存储在该数据库中.本模块的存储管理采用等长分组存储策略,按时序关系给待存储的数据分组,每个分组存储于一个大小固定的存储单元内.
4 实验结果
本实验只对运动检测部分进行分析,监控系统运行在飞凌S3C2440开发板上,摄像头为普通的USB摄像头,监控画面通过开发板自带的3.5寸触屏进行预览,监控过程中若检测出运动目标则对该帧图像进行抓拍.
图4为监控过程中的某帧图像,图5为背景,对这两帧图像进行灰度处理后得到用Y分量表示的灰度图,如图6所示.图7为经过中值滤波后的检测结果.
图4 原始图像 图5 背景图像 Fig.4 Original image Fig.5 Background image
图6 原始灰度图 图7 检测结果 Fig.6 Gray scale image Fig.7 Detection result
5 结束语
本研究使用了一种改进的背景减除算法进行运动检测,该算法实现简单,有较好的实时性,对移动目标非常敏感.在该算法的基础上,使用H.264编码技术,实现了一个具有运动目标检测功能的嵌入式视频监控系统.实验证明,该系统能准确地捕捉到视频中的运动目标,环境适应性较强.
参考文献:
[1] Iketani A,Kuno Y,Shimada N. Real time surveillance system detecting persons in complex scenes[C]∥Proceedings of Image Analysis and Processing.Lonelon,1999:1112-1115.
[2] Anderson C,Burt P,Waals G. Change detection and tracking using pyramid transformation techniques [C]∥Proceedings of SPIE Intelligent Robots and Computer Vision.Lonelon,1985:72-78.
[3] Collins R T. A system for video surveillance and monitoring[EB/OL].http://www.cs.cmu.edu.
[4] 代科学,李国辉.监视视频运动目标检测减背景技术的研究现状和展望[J].中国图像图形学报,2006,11(7):919-927.
[5] 范永开.Linux应用开发技术详解[M].北京:人民邮电出版社,2006.
[6] Thomas W,Gary J S,Gisle B,et al.Overview of the H.264/AVC video coding standard[J].IEEE Transactions on Circuits and Systems for Video Technology,2003,13(7):560-576.
[7] 卢静,李华.网络带宽自适应传输算法的研究与实现[J].河南工程学院学报:自然科学版,2010,22(1):12-14.