融合五帧差分和codebook模型的运动目标检测

2018-12-03 06:33李春敏邬春学熊乃学
电子科技 2018年11期
关键词:码本差法码字

李春敏,邬春学,熊乃学

(上海理工大学 光电信息与计算机工程学院,上海 210000)

运动目标检测是当前图像技术等研究的焦点和热点,广泛应用于多个领域[1],如行人检测、智能监控、智能机器人等。运动目标检测是一个通过使用特定算法把与背景存在相对运动的前景目标从图像序列中分离出来的过程。

本文主要对随时间变化不大的静态场景下的运动目标进行检测分析,旨在获取一种高效率、高质量的检测方法。目前常用的运动目标检测方法包括:光流场法[2]、帧差法[3]和背景差法[4]。光流场法计算复杂度高、实时性差、硬件要求也非常高,难以满足运动目标检测的实时检测的要求。帧差法[5]运算量小且易于实现,虽然能较好地适用于光照变化和对实时性要求相对较高的场合,但不能完全提取出所有相关的特征像素点。帧差法阈值的选取对检测效果影响很大,可通过融合其他方法以提高整体性能。背景差法[6]运算复杂度小、耗费时间短、易实现,可以获得期望的效果,因此在实时监控中,背景差法是最常用的方法。背景差法[7]的关键是建立一个良好的背景模型。目前,根据不同的应用场景有很多不同的背景建模方式:Wren等[8]提出了单高斯背景模型,该模式无法应对复杂背景,如波动的水和摆动的树叶[9];Stauffer和Grimson[10]在单高斯模型基础上,提出了混合高斯分布模型,能较好的克服背景中物体的小幅度运动、光照的缓慢变化,但该方法的检测效率低,不利于对运动目标的实时监控[11]。为了克服这些问题,研究人员又提出了非参数方法[12]。该方法可以快速的检测出前景,但对背景变化很敏感。基于上述存在的问题,Kim等人[13]提出了codebook模型算法,该算法运算量小、检测精度高、实时性较好,但不能适应光照的突变且对阴影的去除效果不佳。文献[14]提出了基于YUV空间的码本模型算法,相比传统的RGB空间模型,其码字描述更加简单,对移动目标检测的处理效率更高。本文结合帧差法和codebook模型的优缺点,采用YUV空间下的codebook模型,融合五帧差法进行运动目标检测,并进行相应改进,最后采用自适应阈值方法反复优化来提高检测的准确性。

1 运动目标融合算法

帧差法可以较好地应对光照变化,但目标提取存在空洞现象。背景差法可以较完整地提取目标,但不能很好地应对光照的变化。本文将两种方法融合,可以弥补各自的缺点,并有效去除噪声和阴影,以获得更好的检测效果。

1.1 基于YUV颜色空间的codebook背景模型

YUV颜色空间具有亮度分量Y和色度分量U、V相互独立的优点,它可以由RGB颜色空间直接经线性运算转化而来,又可以避免使用RGB颜色空间而带来的复杂乘法与开平方运算。为了提高运动目标检测速度,本文将彩色图像转为灰度图,将灰度值作为YUV空间的Y分量进行处理。

该算法假设X={x1,x2,…,xN}是某像素X的序列采样值,长度为N,其中,xi表示YUV空间下像素的Y分量,定义C={c1,c2,…,cL}为该像素的码本,ci(1≤i≤L)表示码字,每个码本的码字不一定相同,每个码字定义为ci={Ymax,Ymin,fi,λi,pi,qi},码字各元素的含义如表1所示,codebook基本算法包括背景建模和前景检测。

表1 码字各元素的含义

1.1.1 基于YUV颜色空间的codebook背景模型

(1)码本模型的训练。

步骤1码本的初始化,将每个像素的码本置空,即L=0,C=Ø;

步骤2对于训练图像序列的任意像素X的序列,采样值X={x1,x2,…,xN},按时间序列,t=1,2,…,N执行以下步骤

1) 若码本为空(C=Ø)或不存在匹配的码字,则创建一个新码字CL

L=L+1;
cL={Yt,Yt,1,t-1,t,t}

(1)

2)若码本不为空,且存在匹配的码字ci,同时Yt∈则按下式更新码字

ci={max(Ymax,Yt),min(Ymin,Yt),fi+
1,max(λi,t-qi+pi+1),pi,t}

(2)

(2)非背景码字的删除。

训练结束后,计算该像素每个码字没有再次出现的最大时间间隔

λi=max{λi(N-qi+pi-1)}
M={cm|cm∈C∩λm≤TM}

(3)

消除冗余码字以得到纯净的背景码本M,M为描述背景的码字集合,即删减非背景码字以后的码本,C表示训练得到的初始码本,TM表示码字相邻两次出现时间间隔的阈值,通常取训练帧数的一半,即N/2。

1.1.2 前景检测

采用与训练码本相同的方法进行新像素与码字的匹配,若匹配,更新码字并且判断为背景点,按照1.1.1节(1)中的步骤2的2)更新码字;若与码本中的所有码字均不匹配,判断为前景点,并以此获得前景图像Zk(x,y)。

1.2 融合五帧差法的运动目标检测

文献[15]提出了三帧差法,这是对传统帧差法的改进,它虽然能快速地检测出运动目标的轮廓,相比传统帧差法有较好的检测效果,但仍然存在空洞现象。文献[16]在三帧差法的基础上,提出了五帧差法,可以在一定程度上有效地克服三帧差法的不足。该算法的基本原理是:

(1)选取视频图像序列中连续五帧图像fk-2(x,y),fk-1(x,y),fk(x,y),fk+1(x,y)和fk+2(x,y),其中fk(x,y)为中间帧,分别将其转为相应的灰度图像,得到相应的五帧图像Ik-2(x,y),Ik-1(x,y),Ik(x,y),Ik+1(x,y)和Ik+2(x,y)。

(2)对第k-2、k帧图像,第k-1、k帧图像,第k、k+1帧图像和第k、k+2帧图像分别做差分运算,得到的差分结果为

d1(x,y)=|Ik(x,y)-Ik-2(x,y)|
d2(x,y)=|Ik(x,y)-Ik-1(x,y)|
d3(x,y)=|Ik(x,y)-Ik+1(x,y)|
d4(x,y)=|Ik(x,y)-Ik+2(x,y)|

(4)

对差分结果di(x,y)(i=1,2,3,4)分别进行二值化

(5)

由于传统的阈值T是固定值,适应性较差,本文在文献[16]的基础上,采用了OTSU法[17]来确定最佳阈值,以便较好地适应光照的变化。其基本思想是根据图像的灰度值将图像分为两类:c0和c1。当两类类间方差最大时所对应的阈值即为最佳阈值。视频中图像的灰度范围为[0,255],c0对应灰度值范围为[0,T]的像素,c1对应于灰度值范围为[T+1,255]的像素。设图像像素总数为N,灰度值为k的像素的个数为nk,则k的概率取值如下

(6)

c0出现的概率为

(7)

c1出现的概率为

(8)

整幅图像的均值为

(9)

ω0和ω1的均值分别为

(10)

(11)

类间方差定义为

σ2=ω0(μ0-μT)2+ω1(μ1+μT)2
=ω0ω1(μ0-μ1)

(12)

由灰度最小值到灰度最大值遍历T,当T=argmaxσ2时,方差取最大值,即此时的阈值T为最佳阈值。

接着将得到的二值图像分两组进行取“与”操作和取“异或”操作。首先取“与”操作,将同时存在的运动目标都取出

H14(x,y)=g1(x,y)⊗g4(x,y)
H23(x,y)=g2(x,y)⊗g3(x,y)

(13)

其中“⊗”代表与运算。再进行异或操作,以此来获得两幅图像的差异区域:将g1(x,y)和g4(x,y)进行异或运算得到L14(x,y);将g2(x,y)和g3(x,y)进行异或运算得到L23(x,y)。由于在这个操作中会比原来存在较多的噪声,接着取“或”操作将相同的以及各自的运动像素合在一起

Ak(x,y)=H14(x,y)⊕H23(x,y)
Bk(x,y)=L14(x,y)⊕L23(x,y)

(14)

其中,“⊕”代表或运算。这时存在的前景运动目标像素是最多的,但是重影现象和噪声也增多,最后一步将生成的两帧取“与”操作,很好地克制“或”运算导致的目标重叠现象,改善了目标的检测效果。

Rk(x,y)=Ak(x,y)⊗Bk(x,y)

(15)

(3)由于五帧差法也继承了帧差法的缺点,使得获取的前景目标图像存在“空洞”现象。对得到的目标进行膨胀、腐蚀等形态学后处理,以剔除噪声,减少空洞现象,使边缘轮廓更连续,目标区域更加显著。

1.3 融合的运动目标提取

通过codebook模型和五帧差法获得了可能的运动目标的像素,若只使用其中一种方法来确定运动目标,则检测结果将会不理想。因此,将改进后的五帧差法和codebook模型法所得到的运动区域作“或”运算,便可以得到精确的运动区域。在得到codebook模型法前景图像下的Zk(x,y)和五帧差法下的前景图像Rk(x,y)后,按下式进行运动目标提取

Fk(x,y)=Zk(x,y)⊕Rk(x,y)

(16)

1.4 形态学处理

融合五帧差法和codebook模型法后得到的前景图像往往存在中间有空洞、周围有毛刺等不平滑的情况,为了提高准确性,对最终得到的前景图像进行膨胀和腐蚀以及两者组合的开运算和闭运算的形态学处理。

1.5 融合模型实现方法

本文提出的改进的运动目标检测方法主要包括4个步骤:(1)采用codebook模型进行背景建模和前景检测,并获得前景图像;(2)通过改进的五帧差法获得前景图像;(3)对步骤(1)和步骤(2)中获得的两幅前景图像进行或运算,得到精确的前景图像;(4)为了去除背景噪声和相机抖动的影响,进行形态学处理,以获得更精确的运动目标。

2 实验结果及分析

本实验平台采用Intel Core(i5-4590M)3.30 GHz双核处理器、4 GB内存、Windows 7操作系统。文中以Visual Studio 2013为软件平台,借助OpenCV3.2库函数对算法进行优化和改进。采用两段视频作为实验数据,进行了实验,分别对五帧差法、高斯混合模型算法、原始codebook方法、YUV颜色空间下codebook算法以及本文改进算法的实验效果进行对比。本文对两个视频在320×240、640×480、1024×768三种不同分辨下进行了实验。视频1为道路视频,拍摄于上海市区某段道路,场景中存在光线的局部变化,采用的大小是640×480。视频2拍摄于上海理工大学校园内某处,场景中存在上方草坪和树叶的晃动,采用的大小是640×480(本文实验视频素材为摄像头静止状态所拍)。实验结果中(a)为原图,(b)为五帧差法下检测的结果,(c)为混合高斯模型法下的检测结果,(d)为原codebook法下的检测结果,(e)为YUV颜色空间codebook法下的检测结果,(f)为本文改进算法下的检测结果。

图1 视频1目标检测结果

图1的测试帧是视频1中的第625帧,该时刻道路两边行人和左边3排车辆融为背景,右边两排车辆缓慢移动。实验结果表明,五帧差法能检测出汽车的大致轮廓,但提取出的运动目标不完整;高斯混合模型法目标提取比较完整;原始codebook算法检测的结果形状较饱满,但包含很多噪声,对一些高亮度噪声干扰产生了误检,比如图中下方地面上的虚线被误判为前景;YUV颜色空间下codebook方法虽减少了噪声,但仍将地面上的虚线判为了前景;相比之下,本文改进后的方法能抑制噪声的影响,且很好的适应局部光照变化,避免了融入背景的误判,目标分割结果更加准确、完整。

图2 视频2目标检测结果

图2为视频2的第330帧,从检测结果可以看出,五帧差法获取的前景图像目标提取不完整,且提取出的运动目标存在明显空洞现象;高斯混合模型法目标提取比较精确,但存在噪声,没有克服树枝晃动干扰;原始codebook算法结果相对较好一点,但检测出的运动目标有大面积阴影,同时左侧的井盖部位出现了误检,且噪点较多;YUV颜色空间下codebook算法检测出的运动目标比较完整,去除了阴影,减少了噪点,但左侧的井盖部位仍然出现了误检;本文算法检测出的运动目标完整且无阴影、背景噪点少、对树枝晃动干扰敏感度低且基本去除了误检。

最后给出了这两个视频在不同分辨率及不同方法下处理速度的比较,单位为帧·s-1。方法(I)、(II)、(III)、(IV)、(V)分别为五帧差法、高斯混合模型法、原始codebook方法、YUV颜色空间下codebook方法和本文改进算法。

表2 视频1处理速度比较 /帧·s-1

表3 视频2处理速度比较 /帧·s-1

由表2和表3可以看出,五帧差法处理速度最快;高斯混合模型的实时性最差,为该算法需要计算复杂的概率分布模型;YUV颜色空间下的codebook算法比RGB颜色空间下的codebook算法处理速度快。

3 结束语

本文将光流场法、帧差法、背景差法这3种常用的运动目标检测方法进行比较后,确定采用对不同场景适应性更强的基于codebook模型的背景差法作为本文运动目标检测的方法。针对在RGB颜色空间下复杂的乘方与开平方运算,选择YUV作为颜色空间模型,同时融合改进的五帧差法,采用自适应阈值,以适应光照变化的场景。实验表明该算法在正常情况下能够较好地提取出不同环境下的运动目标区域,检测准确率较高、易于实现,在一定程度上提高了实时性,节省了内存,对复杂环境下的运动目标检测适应性更强。该算法既提高了背景差法目标提取的准确性,又减少了五帧差法的运动目标空洞现象,能够有效地去除噪声和阴影,具有良好的检测效果和抗干扰能力。但是本文算法也有不足之处,其在计算速度上慢于码本模型算法和五帧差法,仍需要进一步改进。

猜你喜欢
码本差法码字
免调度NOMA系统中扩频码优化设计
例谈“定比点差法”在解几问题中的应用
基于有限域上仿射空间构造新码本
基于Zadoff-Chu 矩阵的最优码本构造方法
放 下
几类近似达到Welch界码本的构造
基于动态差法的交通量监测技术应用
数据链系统中软扩频码的优选及应用
放下
关于用逐差法计算纸带加速度合理性的讨论