摘要:为改进静态背景下三帧差法检测容易出现虚假边缘、空洞等现象以及背景差分法中背景更新缓慢、适应能力差的问题,提出一种融合边缘检测的改进三帧差法与背景差分法相结合的算法。该算法加入了边缘检测算子,对传统的三帧差分法进行改进,然后与基于Surendra算法的背景差分法进行结合,运用多种逻辑运算,经图像后处理综合得到运动区域图像。实验结果证明,此算法有效避免了鬼影、空洞、双影等的出现,对环境适应性好,与传统方法相比,算法准确率高,可满足实时性的要求。

近年来,对运动目标的分析是计算机视觉和计算机图形学相互融合的一个重要研究方向。几十年来,计算机视觉领域就此问题进行了大量研究[1],通过不断的实验和应用出现了许多简便、高效的算法[2]。文献[3]中提出了一种将相邻帧差法和混合高斯模型结合改进的运动目标检测方法,可以有效检测无明显干扰背景的运动物体;文献[4]提出了一种融合帧差法的改进ViBe算法,可以快速消除鬼影现象,同时能获得更完整的目标,实时性较好;文献[5]结合帧差法与经典混合高斯模型,提出了一种基于七帧差分法与改进混合高斯模型的运动目标检测算法,有效解决了背景更新缓慢和易出现虚假目标的现象,鲁棒性较好;文献[6]提出了一种背景减法和背景更新相结合的运动目标检测方法,克服了背景更新方法的缺点,复杂度低,适合复杂环境。

文献[7]对常见的视频序列中的运动目标检测方法进行研究和分析,并对这些方法的优越性和不足进行了比较。目前,最常用的基础算法有帧间差分法、背景差分法和光流法。帧间差分法的优点是不需要提取和更新背景,程序复杂度相对较低,对光线的变化不敏感,可以检测到运动目标的边界;缺点是噪声对图像的影响较大,检测到的运动目标轮廓不完整,容易发生“空洞”“双影”等现象。背景差分法的优点是适用于背景不变的情况,检测及时,实时性强,运动目标的检测比较完整;缺点是适应能力差,不能应对环境的剧变。背景的选取十分重要,如果选取不合适,将会严重影响检测效果[8]。光流法采用光流场的信息,能够得到完整的运动信息,可以较好地从背景中区分得到不同的运动目标,甚至可以识别到运动目标的一部分;缺点是要对图像序列中所有帧的像素进行计算,若没有专业硬件的支持,要想实现图像序列的实时检测比较困难,无相应条件不宜采用。针对上述不足,本文在帧差法与背景差分法的基础上提出了改进算法。

1 背景差分法

1.1 Surendra算法原理

背景差分法关键之处在于背景的选取,若提取的背景图像反映不出实际的场景效果,将会影响到运动目标的识别,同时会导致后期的运动目标跟踪出现失误。因此,准确建立一个准确表征背景的图像十分重要。到目前为止,各种背景建模方法(如高斯混合背景建模等)都需要一个高效的自适应算法来更新参数。本文算法采用Surendra算法进行背景模型的建立更新[9]。

Surendra算法的基本原理:做前后两帧图像的差分,然后判断差分值的亮度值,从而找到运动区域。如果差分图像中某一像素点的差分亮度值比阈值低,那么该像素点为背景像素点;若比阈值高,则为前景像素点。

算法步骤如下。

第一步:建立初始背景图像。

一般会选取第一帧图像为初始背景,在环境变化明显情况下会有显著影响,所以本文考虑用算数平均法来建立背景图像。选取连续输入的N 帧图像的前N/2 帧图像数据求平均来作为初始背景图像,如此可以尽可能降低或避免环境剧变引起的影响。

第二步:令迭代次数i=1 ,m 为最大迭代次数,T 作为阈值。

传统的Surendra算法采用固定的阈值,需要多次试验才可获取合适的阈值。本文阈值T 的选取采用Otsu方法,自适应选取效果更佳。

第三步:帧间差分图像:

第四步:背景图像Bi(x,y) 用二值图像Di 来更新。

因为为一固定不变的数值,与背景像素无直接关系,所以对的取值进行改进,令的取值与像素值相关。于是,改进之后背景亮度值的变化可以用系数来反映:

其中,Bi(x,y) 和Di(x,y) 分别为背景图像和前景图像在(x,y) 处的像素点的灰度值;fi 为第 帧图像; 为学习速率,表示背景更新速度的快慢。当 取值太小时,背景更新速率较稳定,但无法及时更新背景,满足不了实时性要求;当 取较大值时,算法可以较快适应场景变换,但噪声也会混入,一些前景的物体会被更新到背景中。

这时 是与背景变化率相关的系数。当Bi(x,y)- fi(x,y)=0 时,背景像素的灰度值不发生变化, 的变换也同时反映了背景像素的改变。 变大时,背景像素的实时更新变快; 变小时,背景更新速率随之变慢,这样就实现了实时性要求[10]。

第五步:i=i+1 ,返回第三步骤,循环执行,直至i=m 时循环结束,这时的背景图像即Bi(x,y) 。

对Surendra算法进行改进,初始背景的选取不再是单一的选取第一帧为背景,而是选取N/2 帧图像求平均作为初始背景,以有效避免因环境剧变导致的影响;对于更新系数 为一固定值的情况,引入式(3),加强更新速率 与像素之间的关系,有效提高了识别的实时性和准确性;对于阈值的选取,采用Otsu方法自适应选取。

1.2 背景差分法获取目标

根据上述步骤得到背景图像Bi 后,将当前帧Ii 与背景Bi 进行背景差分,得到的差分图像DBi(x,y) 中的像素灰度值d 大于设定的阈值T ,则可判定为所要检测的运动目标,表达式为:

Gx 是对原图x 方向上的卷积,Gy 是对原图y 方向上的卷积:

由式(7)、式(8)两个卷积算子对图像进行运算,带入式(2)便可求得图像的梯度值G(x,y) ,然后利用合适的阈值TH 进行判断。若 g(x,y)>TH ,则(x,y) 为边缘点,{ g(x,y)} 为一个二值图像,即它是图像的边缘图像;反之,则不是。

Sobel算子利用像素上下、左右相邻点的灰度加权算法,根据在边缘点处达到极值这一现象进行边缘检测。因此,Sobel算子对噪声具有平滑作用,可提供较精确的边缘方向信息。它很容易在空间实现,对于灰度渐变和噪声较多的图像处理得较好,不仅可以产生较好的边缘检测效果,而且因为Sobel引入了局部平均,使其受噪声的影响也较小[12]。通过边缘检测后的图像,边缘信息更加明显,从而最大程度弥补了帧差法中获取运动目标信息缺失不完整的缺点。

2.2 融合边缘检测的改进三帧差法

该算法中三帧差法运动目标的获取主要是基于图像序列帧与图像边缘提取的基本操作之间的关系。对三帧图像都进行边缘检测,获得边缘图。对前一帧和当前帧执行“异或”操作得到异或图;当前帧图像与后一帧图像进行差分二值化得到二值图。将异或图与二值图执行“与”操作,再进行形态学处理,最终完成目标的初步提取[13]。

算法步骤如下。

第一步:分别对前一帧Ii-1(x,y) 、当前帧Ii (x,y) 、后一帧Ii+1(x,y) 进行滤波去噪。

第二步:用Sobel边缘检测算子提取已去噪的三帧图像的边缘,可以获得三帧图像的边缘图像:Li-1(x,y) 、Li (x,y) 和Li+1(x,y) 。

第三步:将前一帧图像Ii-1(x,y) 与当前帧图像Ii (x,y) 差分,并进行二值化。

第四步:将当前帧图像Ii (x,y) 与后一帧图像Ii-1(x,y) 差分执行“异或”操作得到异或图。

3 系统总体设计

对前面得到的初步前景图DBi 、异或图A(i-1,i) 以及差分图A(i,i+1) 进行综合处理。

第一步:对图像DBi 和图像A(i-1,i) 进行“或”运算,合并两幅图像所有的运动目标信息:

第二步:将运动目标全部信息图H(x,y) 与帧间差分图A(i,i+1) 求“与”运算,求两者共同部分,即得出运动前景目标:

本算法在背景差分法和帧差法的基础上进行改进,融入了边缘检测算子,既有效防止了背景更新缓慢导致的误检、漏检,还克服了帧差法边缘不清晰、易出现空洞等现象。

整体流程图如图1所示。

4 图像的后处理

进行逻辑“与”运算后,得到的运动目标中仍然存在许多的空洞、间隙、孤立的点、孤立的区域。这些存在都会影响运动目标识别的准确性和运动目标的后续跟踪,需要将空洞、间隙进行填充,将这些孤立的点、孤立的区域去掉。一些较小的孤立点、区域,可以采用形态学方法进行处理,运用合适的模板对图像进行形态学膨胀操作,也可以处理断裂和空洞部分。形态学腐蚀操作可以消除孤立的点和区域。当形态学处理后,一些小的干扰可以去除,但是对于一些较大的空洞区域,仅仅进行形态学处理效果不佳。此时,可以再利用连通区域分析方法对这些区域进行填充,使用四连通区域检测方法寻找运动目标轮廓,计算出每个连通区域的面积,设置轮廓面积阈值。面积小于阈值的,当作噪声抛弃;对于大于阈值的,定为目标连通域,用前景色对轮廓内部填充,消除孤立噪声点,获得轮廓完整、清晰的运动目标。

5 实验结果分析

在PC机(Windows7系统,Intel(R)Core(TM)i5-3210M)利用MTALAB 2016a版本对图像序列进行处理。该图像序列为自然室外环境下固定背景行人的正常走动,摄像机为普通家用摄像机,分辨率为180×144,整个视频帧序列共76帧。由于背景差分法计算量较小而三帧差法计算量较大,故将连续的三帧图像变成每帧间隔相同帧的三幅图像。因为各帧间运动目标移动速度较小,所以对最后的识别结果无影响,仍然可以保持准确性。

对图像序列中信息比较集中的15帧(前一帧)、35帧(当前帧)、55帧(后一帧)图像分别采用两帧差法、三帧差法、sobel边缘检测、Surendra算法以及本文提出的算法处理图像序列,利用MATLAB进行编程实验,结果如图2~图7所示。

图3中两帧差法检测结果和图5中三帧差法检测结果都出现了目标信息丢失和边界不连续的情况;图6中背景差分法检测的结果对光照等外部条件非常敏感,存在较多非目标点,目标信息发生丢失;本文算法相比上述而言,降低了对光照等外部条件的敏感度,几乎完整提取运动目标的轮廓,检测更加准确,实时性方面也有提高。

目前,比较主流的算法多用识别率和误检率来衡量准确率。基于参考文献[14]引入一个新的综合指标H ,来评估目标识别算法的性能。识别率越高和误检率越低时,H 值越大。H 值越大,则其检测准确率越高。

H 值定义如下:

分别用两帧差法、三帧差法、Surendra背景差分法以及本文算法对多个不同的视频帧序列进行检测,统计其识别率与误检率,如表1所示。

由表1可以得知,各个算法都能有效识别运动目标,但是通过对比可以得出文中算法的识别率相对最高,达到了99.4%,而误检率相对最低,仅为2%。Surendra算法由于对光照等环境因素比较敏感,误检率达到了19%。利用本文提出的算法识别率较高,误检率较低,可以有效识别运动目标。

6 结 语

文中算法利用帧差法与背景差分法各自的优势进行互补,同时结合边缘检测,解决了帧差法空洞、双影以及轮廓不清晰等问题,也解决了背景差分法因外界环境(光照等)剧变引起的错误检测导致出现许多伪运动目标的问题。总体来说,所提算法获得的运动目标边缘更加连续,轮廓更加清晰,目标信息更加丰富,检测结果较好,对后期的目标跟踪、异常分析、识别分类等都具有重要的参考价值。但是,该算法是在静态背景下进行研的究,对于动态背景下效果不佳,存在场景上的局限,需做进一步研究。

参考文献:

[1] 高祥,胡文才,王露露等.融合动态-静态图像特征的运动目标检测方法[J].计算机工程与设计,2017,38(06):1585-1687.

[2] Che Z,Wang X,Sun Z,et al.Motion Saliency Detection Using a Temporal Fourier Transform[J].OPtics & Laser Technology,2016,80(06):1-15.

[3] 於正强,潘赟,宦若虹.一种结合帧差法和混合高斯的运动检测算法[J].计算机应用与软件,2015,32(04):129-132.

[4] 魏洪涛,李瑾,吴细秀.融合帧差和ViBe的运动目标检测算法[J].计算机应用研究,2017,34(05):1565-1568.

[5] 王红茹,童伟.基于自适应高斯模型的实效运动目标检测算法[J].计算机工程与设计,2016,37(10):2700-2704.

[6] 杨锦彬,石敏.一种新型的视频序列运动目标检测方法[J].通信技术,2011,44(10):49-51.

[7] 夏永良,李卫丽,甘勇等.智能视频监控中的运动目标检测技术研究[J].通信技术,2009,42(06):185-187.

[8] 何炜.自适应运动目标检测和跟踪技术研究[D].昆明:云南大学,2011:21-25.

[9] 纪清华,禹素萍.基于Surendra背景减除法和四帧差分法的目标检测算法[J].计算机应用与软件,2014,31(12):242-244.

[10]龙腾.基于Surendra改进的运动目标检测算法[J].电子设计工程,2013,21(14):151-153.

[11]陈莉.数字图像处理算法研究[M].北京:科学出版社,2016:34-35.

[12]金汉均,梅洪洋.Sobel算子在提取视频运动目标轮廓中的应用研究[J].电子测量术,2014,37(11):29-32.

[13]刘红,周晓美,张震.一种改进的三帧差分运动目标检测[J].安徽大学学报,2014,38(06):56-58.

[14]郭春凤.基于五帧差分法的动态目标检测新算法[J].重庆科技学院学报(自然科学版),2015,17(05):87-89.

作者简介:

赵柏山,沈阳工业大学 信息学院副教授,研究生导师,博士,主要研究方向为数字图像处理、通信信号与信息处理、保密通信等;

郑茂凯,沈阳工业大学 信息学院硕士,主要研究方向为数字图像处理;

张 帆,中国人民解放军94969部队硕士,主要研究方向为信号处理、保密通信。

(本文选自《通信技术》2018年第十一期)

原创声明 >>>

本微信公众号刊载的原创文章,欢迎个人转发。未经授权,其他媒体、微信公众号和网站不得转载。

网 络 强 国 建 设 的 思 想 库

—— 安 全 产 业 发 展 的 情 报 站 ——

创 新 企 业 腾 飞 的 动 力 源