贾倩倩,韩丽娜,黄凌霄
(宁夏大学信息工程学院,宁夏 银川 750021)
在数字化时代的潮流下,人们对图像处理技术的应用需求正在增加。检测移动物体的技术是图像处理的一个重要组成部分,在智能监测、智能交通、工业化过程控制、航空航天、军事勘察等领域广泛应用。另外,目标检测技术还是身份识别领域的一个基础算法,其在人脸识别、步态识别、人群计数和实例分割等后续任务中发挥着重要作用。
在基于静态背景的目标识别中,由于实际应用场景中各种因素的干扰,计算机受到硬件发展速度的制约,运行速度、算法时间和空间复杂度具有一定上限,所以运动目标检测的实时性和鲁棒性难以同时取得最佳效果。通过帧间差分法、混合高斯算法和ViBe 算法的优缺点对比,期望找到一个较好的算法,从而在静态背景下可以获取实时性较好、精度较高的目标检测结果。
目标检测是一种基于目标对象形态学和特征区别的图像分割技术。从这个角度来看,视频图像可以分为3 个部分,分别是目标图像、背景图像和噪声图像,这可以将目标检测转换为目标对象和背景图像之间的二元分割问题。根据运动目标的特性,通常根据监视设备是否与运动对象同步运动,将其划分为以下2 种类别。
2.1.1 动态背景下的运动目标检测及其算法
动态背景下的目标检测是指运动图像场景中存在目标对象和摄像仪器的相对运动,相较静态背景的情况更加复杂。目前大多采用的方法是计算监控仪器的运动参数,采用背景补偿的方法检测运动目标。常见的动态背景下的运动目标检测方法包括光流法、块匹配补偿背景算法等。伴随着背景图像的变化,运动目标也随时发生着位置变化,摄像仪器处于相对运动的状态,图像中目标的位置变化与背景本身的相对运动就会叠加并且混合在一起,而且由于摄像仪器的运动,将会导致目标的形状、尺寸以及视频光照条件发生变化[1-2]。与此同时,现实中多运动目标的遮挡和外界干扰遮挡的情况常有发生,这些也都是动态背景下需要解决的问题。
2.1.2 静态背景下的运动目标检测及其算法
基于静态背景的运动目标检测算法包括帧间差分法、模板匹配、高斯混合算法和ViBe 算法等。一些人尝试应用一些优秀的算法,如机器学习来检测视频序列图像中的运动目标。然而,由于计算机硬件的限制,现实中的计算速度和算法复杂度都有一定的上限,难以在实时性和鲁棒性方面达到某一个较高平衡点,因此,本文选择程序算法相对简单、运行效率高、实时性较好、识别结果较好的帧间差分法、混合高斯算法与ViBe 算法进行比较。
2.2.1 帧间差分法
帧间差分法(Frame difference method)也称二帧差分法,主要应用场景是背景图像固定,而运动目标随时间动态变化的场景。在以上前提条件下,使邻近2 个视频帧的像素值发生相减操作。理想状况下,背景的部分误差为0,而运动范围的误差不为0。此时,选择一个适当的阈值滤波掉视频帧的背景,以便获取到完整的运动目标。其模型为:
式中:It(x,y)为t时刻像素点(x,y)的灰度值;It-1(x,y)为t-1 时刻像素点(x,y)的灰度值;Dt(x,y)为提取的运动目标的二值图像;T为阈值。
具体步骤如下:将当前帧进行灰度化;通过中值滤波去除噪声影响,保留边缘特征;对相邻两帧求差值的绝对值,再进行差值绝对值的二值化,这时阈值设置对实验结果有明显影响,因此选择一个合适的阈值是很重要的;进行开运算以及函数填充,一方面使边界平滑,另一方面使图形空洞被填充。
二帧差分法检测结果如图1 所示。
图1 二帧差分法检测结果
从图1 可以看出,二帧差分法的优点是运算简便、即时性较强、对各种动态环境的适应力强、鲁棒性较强;缺陷是检查的目标轮廓不完整,检查出的结果带有“空洞”。另外,测试结果在运动方向上目标被拉长,在检测快速运动的物体时会出现“鬼影”,并且检测不到慢速运动的物体。
三帧差分法的具体步骤为:在二帧差分法的基础上,同时获取当前帧、上一帧、下一帧。同时,对相邻的三帧进行灰度化处理,再使用中值滤波去除噪声影响,保留边缘特征,然后对当前帧与上一帧的差值绝对值进行阈值二值化,同理将后一帧与当前帧差值绝对值阈值二值化,结果将所获得的2 个差分图进行像素比较操作,所得差分图即为三帧差分图。
其数学模型如下:
式中:D1(x,y)、D2(x,y)分别为对应的差分结果;fk-1(x,y)、fk(x,y)、fk+1(x,y)分别为第k-1、k、k+1 帧图片像素点的灰度值;E1(x,y)、E2(x,y)为三帧差分图的阈值二值化结果。
T为预先设点的阈值,如果T选取得过小,会出现大量噪声,严重影响检测结果;反之阈值选择过大,则会出现运动目标检测不完整或者漏检的情况[3]。
三帧差分法检测结果如图2 所示。
从图2 可以看出,三帧差分法具有原理简洁、运算量小、可以迅速监测到现场中的运动等优点。当运动目标速率较快时,运动目标的检测结果比两帧差分法更完整。然而,由于运动目标前后图像存在重叠部分,检测到的运动目标内部会存在较大的连通空洞,降低了移动目标的可识别性[4-5]。
通过三帧差分图和二帧差分图的比对,可以清晰地看到与二帧差分图相比,虽然三帧差分法去掉了二帧差分图出现的“重影” 现象,使运动目标轮廓更加清晰,但同时三帧差分法同样在使用了阈值构建差分图进行转换后,帧间差分图效果良好,三帧差分图目标的轮廓很多被“腐蚀” 掉了,让“空洞” 变得更大,从而过程中不能准确地检测到目标的轮廓以及内部像素点信息,使目标检测的误差变大。因此,三帧差分法适用于运动目标形体较小、运动速度快、对轮廓信息要求不高的无遮挡的场景中。
2.2.2 混合高斯算法
混合高斯算法(Gaussian Mixture Model,GMM)克服了在常规的帧内差分法和背景差分法等计算中普遍存在的光照突变对结果产生的重大干扰。其通过使用高斯模型的个数选择场景,增强了对环境本身的适应性功能。而混合高斯算法则需要对视频图像帧的每一像素点都进行模拟,具体可以表示为:
式中:K为模型个数;ωi,t为权重;μi,t为均值;φi,t为协方差矩阵。
高斯混合模型建模步骤如下。
模型初始化:将第一帧图像作为初始背景图像。
更新模型的参数:把当前帧的像素点和多个高斯点进行比较。如果像素点不能和高斯分布共存,则会影响像素点的和的背景值。
背景提取和前景检测:根据优先排列,对高斯分布作出排序。根据以下公式判断:
混合高斯算法检测结果如图3 所示。
图3 混合高斯算法检测结果
从图3 可以看出,混合高斯算法的优点是在背景情况较复杂的情况下表现良好,可以根据视频环境动态建立背景模型。但在单一场景下的处理效果就不尽如人意了。在日常生活中,运动目标识别经常被周围环境等诸多因素干扰,如复杂背景、光照突变场景、目标遮挡、阴影等。往往在复杂的场景下,对运动目标检测算法的适应性要求更高,显然已有单一的实时算法还无法满足复杂场景的变化。但是只对背景区域进行更新,而对该帧的前景区域不进行更新,容易在检测过程中产生虚影。因此,混合高斯模型在复杂变化中的稳定性要远高于帧间差分法。
该系统的开发环境选用Matlab,在算法选取后,开始以GUⅠ图形用户接口沟通的方式进行了界面的设计。帧间差分法、混合高斯模型法、ViBe 算法虽然是比较主流的实时目标检测算法,能够快速清晰地检测到运动对象的细节信息,但也存在部分缺陷,比如帧间差分法中视频背景为固定的,ViBe 算法起始页存在运动的对象会产生鬼影区域,混合高斯算法运行时效性较差等。目标检测算法在智能监控系统、智能机器人检测以及军事战略制导等领域中发挥着越来越重要的作用[6-7]。
根据检测结果所呈现的问题来看,后续运动目标检测的研究方向需要从以下几个方面着手:①遮挡问题。移动目标的识别具有一定的视野局限,希望能够增加多角度目标检测,从而更加全面准确地获取并识别运动目标,应对在识别过程中产生运动目标相互遮挡或者外界遮挡物遮挡的特殊情况。②阈值自适应选择问题。帧间差分法和ViBe 算法的改进自适应选择合适的阈值,让运动目标的识别精度更加稳定。③特殊环境下算法的健壮性和稳定性。在遭遇雨、雪、雾、霾等影响视野距离的天气时,期望仍然能够利用该系统准确地识别。本文所研究实现的实时算法在实际社会应用中具有重大价值和意义。目前基于深度学习的运动目标识别已经取得了重大发展成果,但在实际复杂场景中的目标识别仍然面临着很多挑战,需要进一步研究。