魏 捷
(同济大学 电子与信息工程学院,上海 201804)
目标识别的目的在于从采集到的视频序列中提取出运动目标。传统的运动目标识别算法主要有以下3种:背景差分法、帧间差分法以及光流法。其中背景差分法利用已提取的参考背景帧与当前帧进行差分并通过阈值判断来提取运动目标,该方法的优点是能够较为完整地获取运动目标,缺点是对场景中由光照引起的动态变化比较敏感。帧间差分法对相邻的两帧或三帧图像进行差分处理,通过行阈值判断分割出图像中的运动区域。它具有运算速度快、实现简单、对动态场景有较好适应性等优点,但提取出的运动目标区域完整性较差,很容易在运动区域内部产生空洞。光流法反映了场景中每一点的亮度变化趋势,不需要知道任何场景先验信息便能检测独立运动的对象,但此方法的抗噪性差并且计算量大,需要硬件支持不适宜实时检测[1]。
运动目标检测[2]任务主要分为两部分,第 1部分是划分运动区域和静止区域即区分前景与背景,第 2部分是背景帧的像素更新算法。具体流程如图1所示。
预处理的主要工作是去除原始图像序列中部分不相关的信息以便后续图像处理工作,同时把彩色图像转化为灰度值图像序列。
首先提取相邻两帧图像Ik(i, j)、Ik-1(i, j )进行差分,记IZ(k,k-1)=|Ik-Ik-1|。然后当前帧Ik(i, j)与背景帧Bk( i, j)进行差分,记IBk=|Ik-Bk|。初步划分运动区域,对IZ(k,k-1)进行二值化膨胀腐蚀处理结果记为B1。对IB(k,k-1)进行二值化和膨胀处理结果记为B2。记B3=B1∪B2,B3中灰度为 0的即背景像素点记为Bb,灰度为255的即为运动像素点Bm。
帧间差分[3]容易在运动目标内部产生空洞,提取出的运动区域比实际的区域小。背景差分可以较为完整的提取运动区域,但受到光线等因素的影响会产生额外的杂点。所以在做两者做与运算之前对B2做腐蚀的形态学运算,腐蚀运算可以有效遏制部分杂点对判断区域的影响。帧间差分法[4]可以完整的检测出运动区域的外延部分,所以在做B1、B2与运算的时候可以弥补B2腐蚀运算时损失的外边缘部分。最后运算结果的完整性在可以接受范围内,仅仅在实际运动区域运动之外还有部分因光线影响产生的杂点。
在实验中发现视频采集时如果外界环境没有明显变化时,文中上述融合算法有较为不错的目标识别效果。在实验环境受到光线影响时,比如图像采集过程有云层遮挡阳光导致环境亮度明显改变[5]。在此类情况下FD算法的查全率只有0.393 4,使得在此基础上建立的融合算法结果精度相应降低,针对这个问题文中提出利用平均灰度计算判决阈值的方法,试验结果证明该算法可以有效解决亮度变化对目标识别的影响。
计算背景图像的平均灰度,计算区域为Bb记为:
计算当前帧的平均灰度,计算区域为Bb记为:
这里把平均灰度的差作为运动区域提取的参考阈值,在此基础上重新采样背景差分域。
其中Bb表示背景区域,Bm表示运动区域。重新采样的目的在于对光感杂点进行二次过滤,近一步提高区域提取的精确性。
按权重更新背景区域。公式为Bk=(1-a)·Bk-1+aIk。考虑到被遮蔽的部分无法用当前帧的像素信息进行更新,更新机制采用参考原有像素信息结合灰度值变化进行更新。运动区域按权重和平均灰度值差更新。公式为Bk=(1-b) Bk-1+bIk( T1-T2)。
除去运动物体,在获取的图像中还存在着很多细小的残留噪声,即便是物体本身也可能是不完整的,甚至物体内部还存在着被漏检的空洞。由于背景上物体的轻微扰动及噪声的影响,往往会使一些属于背景上的像素点被误检为前景的运动目标。为了消除这些影响,首先对上一步获得的差分图像采用中值滤波和数学形态学腐蚀、膨胀等处理,填充图像内部空洞,去除图像中细小噪声及小面积的非人体运动部分,从而得到完整的运动目标提取完整运动目标。在阈值分割时,目标区域与背景区域的像素值相近时,差分出的前景区域可能会出现突刺散点,所以利用开启运算滤掉突刺,切断细长搭接利用闭合运算填充缺口或孔洞,搭接短的间断其较好地反映出运动目标在当前图像中的位置从而提取完整的运动目标。
实验硬件环境为Pentium(R) 4 CPU 2.8 GHz 512 MBit内存;软件环境:Windows XP、MATLAB R2006b,测试程序以 15 F/s的帧率获取尺寸为320×240的视频序列图像能够满足实时处理的要求。
为定量分析算法性能,使用准确率P、查全率R和Jaccard系数Jc3个指标对各种算法检测结果进行比较。设TP表示正确检测目标像素数;FP表示将背景像素错检为目标像素的个数,即造成虚警的误检像素数;FN表示将目标像素错检为背景像素的个数,即漏检像素数。准确率P、查全率R和Jc分别定义为:
准确率P反映虚警率,值越大虚警率越低;查全率R反映目标分割的完整性,值越大完整性越高;Jc权衡准确率和查全率,反映算法的综合性能。文中对连续30帧的图像进行处理。利用基准图像和各个方法检测结果,计算测试序列的3个指标值,结果如表1所示。
表1 算法检测性能比较
分析试验结果由图2可知,FG算法方法会在运动区域内部产生空洞,即车顶和车头部分。而 FD算法在与路面颜色较近的车玻璃区域有较大的误判。针对传统检测算法自身的不足和缺陷,提出的算法可以很好的解决单纯使用帧间差分法产生的内部空洞问题。当场景亮度有明显变化时,可以看到FD算法出现较大偏差,而平均灰度值算法的引入在一定程度上解决了亮度跳变对结果的影响。
文中融合了平均灰度算法,使用当前统计值代替理论值进行计算,达到了提高识别精度的目的。实验结果与预期理论分析基本一致。
实验结果表明 FD算法的虚警率低,分割完整性最差为0.393 4。FG算法的虚警率最高为0.118 2,全查率比较理想为0.665 3。融合算法集合前两种算法的优点,虚警率0.898 6,全查率0.572 9。在后处理之后算法的Jaccard提高到0.739 4。
提出的算法与传统算法相比可以较快速的检测出运动图像,算法运算量较小,不需要很大的存储空间,适用于实时监测系统。算法可以适应光线的变化,并能在短时间内重建背景参考图像,所以该算法可用于室外场所图像处理工作。
此外,提出的算法还存在一些问题:例如当场景中目标有较多重合时对运动目标处理较差,需要研究更好的模型来解决目标之间相互遮挡的问题;另外对部分运动物体与背景图像灰度相近时,误判率偏高。在这些方面还有很多问题需要继续研究。
图2 实验结果
[1] 姜旭,朱灿焰.视频处理技术在智能交通系统的应用[J].通信技术,2010,43(01):99-102.
[2] SIEBEL N T, MAYBANK S. The ADVISOR Visual Surveillance System[J]. In Proceedings of the ECCV 2004 Workshop,2004,34(03):103-111.
[3] 于雪莲,宋洋,刘晓红.运动目标检测和目标区域的估算[J].通信技术,2011,44(05):119-121.
[4] 薛丽霞,罗艳丽,王佐成.基于帧间差分的自适应运动目标检测方法[J].计算机应用研究,2011,28(04):1551-1553.
[5] 户磊,刘渭滨,邱亚钦,等.光照变化下的运动目标检测方法[J].中国科技论文在线,2011,6(04):280-286.