时间:2024-07-28
庄哲民章聪友*杨金耀李芬兰
①(汕头大学电子工程系 汕头 515063)
②(汕头市超声仪器研究所有限公司 汕头 515000)
基于灰度特征和自适应阈值的虚拟背景提取研究
庄哲民①章聪友*①杨金耀②李芬兰①
①(汕头大学电子工程系 汕头 515063)
②(汕头市超声仪器研究所有限公司 汕头 515000)
针对虚拟背景提取(Visual Background extractor,ViBe)算法在目标检测时容易出现鬼影和运动目标阴影的缺点,该文提出了一种基于灰度特征和自适应阈值的ViBe背景建模改进方法。该算法首先利用ViBe算法进行背景建模,得到前景目标,然后对前景目标进行灰度特征判断和自适应阈值比较,得到没有鬼影和运动目标阴影的运动目标。实验结果表明,改进后的算法可以很好地弥补ViBe算法的不足,提高ViBe算法的识别准确率。
计算机视觉;运动目标检测;背景建模;虚拟背景提取(ViBe);自适应阈值;灰度化特征
运动目标的检测是计算机视觉和数字图像处理领域的一个重要研究内容,在智能视频监控等许多领域有着广泛的应用。它处于整个视频处理系统的最底层,是各种后续高级处理如目标跟踪、目标分类、行为识别、场景理解等的基础。
目前最常用的运动目标检测方法是背景建模法,主要分为两大类,一类是基于参数的背景模型,该类方法为每个像素点建立一个参数模型用以表示背景,其中最为典型的是混合高斯模型[1,2],可用于复杂运动的背景建模,但是模型计算复杂度高;另一类是基于像素样本的背景模型,这类方法的背景模型可以及时初始化,具有较好的抗噪能力,且算法的复杂度低[3],此外,还有基于颜色信息的背景建模方法[4]和基于自组织神经网络的背景建模方法[5]等方法,其中,基于颜色信息的算法将像素点的差异分解成Chromaticity差异和Brightness差异来对背景进行建模,对光照具有很强的鲁棒性;而基于自组织神经网络的算法则利用神经网络特性对背景进行建模,不仅对光照具有较强的鲁棒性,而且具有较强的实用性。
虚拟背景提取(Visual Background extractor, ViBe)算法[6,7]是基于像素样本背景模型的运动目标检测算法,该算法具有计算量小、内存占用少、处理速度快、检测效果好和应对噪声稳定可靠的特点,非常适合嵌入照相机等小型设备中。但是这种算法的初始化容易出现鬼影和运动目标阴影,它会影响背景的建模和更新速度,也会对后续的运动物体跟踪、分类和识别等操作造成不利的影响。
目前已经发表的一些文献提到了解决鬼影和运动目标阴影的问题。如文献[8]等利用背景差分方法获得前景目标块,再把它分为运动目标、鬼影和阴影3类,利用时空差分方程近似计算前景的光流以区别运动目标和鬼影;文献[9,10]等利用帧差法判断前景区域像素在当前帧和前帧图像之间的差异,记录它们的运动或静止状态,从而确定属于运动目标还是鬼影;文献[11]等通过分析阴影与背景颜色空间中的特性,在测到运动目标的同时消除阴影。文献[12]等通过纹理检测获取阴影纹理信息,来进行阴影消除。但是这些方法都存在计算复杂度高或者当车辆与阴影颜色相似时造成误检的问题,削弱了ViBe算法检测速度快、准确率高的特点。
由于当前图像鬼影块位置的灰度特征和对应位置前帧图像之间的分布非常相近,但是因为运动目标会发生移动,因此运动目标的灰度特征和对应位置前帧图像之间的分布则相差较远,本文将利用这一特性可以对鬼影进行检测;在目标阴影检测中,虽然RGB颜色空间检测运动物体阴影的效果比HSV颜色空间好[13,14],但其阈值需要人为地设置,不是自适应的,只可以用来解决固定场景下的运动物体阴影检测,为此,本文将引入Ostu[15,16]算法对阈值进行自动寻找。对此,本文结合ViBe算法本身的特点,提出了一种新的基于灰度特征统计和自适应阈值RGB颜色空间的ViBe改进算法。通过实验仿真证明,改进后的算法可以有效地消除鬼影和运动物体阴影,提高算法的识别率和正确率。
文献[6,7]等人提出的ViBe背景建模法是一种基于概率统计的运动目标检测算法,适用于任何场景,而且采用随机选择的更新机制,使得一个像素只需要作1次比较、占用1个字节的内存,从而有效地提高了检测的精度和减少了计算的负载。ViBe算法主要由3部分组成:ViBe背景模型的工作原理、模型的初始化方法和模型的更新策略。
2.1 ViBe背景模型的工作原理
在ViBe模型中,背景模型为每个背景点存储了一个样本集,并将每一个新的像素值和样本集进行比较来判断是否属于背景点。因此,如果一个新像素值属于背景点,则它应该和样本集中的采样值比较接近。通常,定义vx为x点处的像素值,vi是一个含有指数i的背景样本值,每一个背景像素x的模型M(x)是由N个随机背景样本值构成的集合,即
通过对M(x)的判定,可以确定像素值v(x)是否为背景像素值,其中这个模型是通过前帧获取的。如图1所示。
图1中SR(v(x))表示以x为中心,以R为半径的区域,用U表示SR(v(x))与M随机背景样本集合的交集来判断相似度,即
图1 ViBe背景模型
当U大于一个给定的阈值#min时,便就认为x点属于背景点。
2.2 模型的初始化方法
ViBe背景模型的初始化可以看做是填充像素的背景样本集的过程。由于在一帧图像中不可能包含视频全部的时空分布信息,所以ViBe算法利用了相近像素点具有相近的时空分布的特性,即:对于一个像素点,随机地选择它的邻居点的像素值作为它的模型样本值。我们将第1帧的背景模型集合作为其初始化的背景模型,即其中,Mt=0(x)为第1帧的背景模型集合,NG(x)为像素点x在时空分布上相近的邻居集合,y是根据统一性原则从NG(x)中随机选择的像素点,vt=0(y)为第1帧所选取的像素点的像素值。
这种初始化方法的优点是对噪声的反应比较灵敏,计算量小,速度快,可以很快地进行运动物体的检测,缺点是容易引入鬼影区域。
2.3 模型的更新策略
背景模型的更新目的就是使得背景模型能够适应背景的不断变化,比如光照的变化,背景物体的变更等。其方法是从背景样本模型中随机选取一个样本,用已确定背景点对其进行替换,每一个背景点有1/φ的概率去更新其对应的模型样本值和其邻居点的模型样本值。对背景点的邻居点进行更新时,随机选取该背景点8领域中的一个像素值替换随机选取的邻居像素值,如果背景模型样本集取N=6,则会存在有6种可能的背景更新模型。以图1的背景模型为例,假设像素点x已判断为背景点,图2为其中的3种更新背景模型结果,其中图2(a)为背景点x替换原背景集合样本v3,图2(b)为背景点x替换原背景集合样本v1,图2(c)为背景点x替换原背景集合样本v5。
3.1 基于灰度特征直方图统计的鬼影消除
图2 背景模型更新后其中3个可能的模型
目前检测鬼影的算法大概可以分为两大类:一是判断获得的前景目标的运动属性,二是利用自适应的背景维护和更新,从而来区分运动目标和鬼影,前者不能解决颜色和场景相近的运动目标检测为鬼影的问题[9],而后者是ViBe[6,7]算法中鬼影消除的常用方法,虽然这种方法最终能够消除鬼影,但算法非常耗时。
为此,基于鬼影与前景运动目标在统计学上的差异,本文提出对前景目标采用灰度特征直方图处理,完成对鬼影的识别,其具体方法为:
首先,利用ViBe算法式(3)对背景进行建模,然后利用式(2)获得前景目标,并把彼此相连的前景目标像素点通过形态学处理连接成前景块,得到相应帧的前景,记为Fi,接着,采用非线性灰度变换技术将Fi转换为灰度图像。以指数函数作为映射函数进行灰度变换,即
其中f(x,y)为原图像(x,y)像素值,g(x,y)为变换后的像素灰度值,a,b,c为可调参数。
然后,对得到的灰度图像进行直方图统计得到H,同时求出前第k帧(这里k可取5)相应位置图
iF像的灰度特征统计直方图kH,然后用交集表示iFH和kH的直方图匹配,匹配公式为
其中M表示iFH和kH的匹配程度。鬼影的判断式如下:
其中T为阈值(一般取0.9)。通常,鬼影块的匹配程度很高,而运动目标块的匹配程度则很低。在判断出鬼影之后,可以及时地更新ViBe的背景模型,消除鬼影所带来的干扰。
总之,虽然当前图像鬼影块位置的灰度特征和前帧图像对应位置之间的分布非常相近。但由于运动目标会发生移动,当运动目标会发生快速移动且移动距离较远时,运动目标灰度特征和前帧图像对应位置之间的统计分布相差较大,因此可以将当前前景目标的灰度特征统计直方图与前帧图像相对应位置的灰度特征统计直方图进行比较,从而判断出前景目标是否为鬼影。
3.2 基于自适应阈值的RGB颜色空间的阴影检测
在视频跟踪中,常用的阴影检测[17]算法主要分为两大类:一类是基于模型[18,19],另一类是基于阴影性质[20,21]。基于模型类别的是通过利用场景、目标的3维几何结构和光源等已知信息来识别运动目标阴影,基于阴影性质类别的主要就是利用阴影的亮度、颜色、纹理和模式等特征来识别的。以上两种阴影检测算法无法在复杂背景下使用,因此将传统的阴影检测算法与ViBe算法相结合,在使用上具有一定的局限性。
因此,为了使ViBe算法能够进行阴影检测并适用于任何场景。本文提出基于自适应阈值RGB颜色空间对阴影检测算法进行改进,虽然通过实验发现RGB颜色空间特征的阴影检测效果比HSV颜色空间好,但是只限于固定的场景,没有普遍性,其主要原因是阈值的设定问题。因此,本文提出利用Ostu[15,16]对阈值进行自适应计算。实验仿真表明,该方法提高了RGB颜色空间特征阴影检测算法的准确率和自适应性。
首先,我们把图像总像素数N定义为其中,图像的灰度值为1~m级,灰度值i的像素数为ni。
各灰度值的概率pi定义为
然后用k将灰度级分成两组,即C0={1,2,…,k}和C1={k+1,k+2,…,m},C0的概率w0定义为
C1的概率w1定义为
C0的平均值0μ定义为
C1的平均值1μ定义为
两组灰度级总的方差2σ定义为
因此,把得到的前景目标图像设为F,对应的背景图像为b,F对应的RGB分量为FR,FG,FB,b对应的RGB分量为bR,bG,bB。阴影像素必须同时满足式(15)的3个条件。
TR,TG,TB分别表示R,G,B 3个颜色通道上的前景像素与对应背景点的差值门限。
为了对3个阈值TR,TG,TB进行自适应设置。首先设置3个分量的量级为mR,mG,mB, 3个分量第i级的像素数分别为nRi,nGi,nBi,由于各个分量总像素数相等为,各分量的量级的概率分别为pRi=nRi/N,pGi=nGi/N,pBi=nBi/N,同时把各分量灰度级在某一阈值处分割成两组,然后把这些值代入式(9)~式(14)进行迭代计算,当被分成的两组间方差为最大时,就可以得到各个颜色分量的自适应阈值。
通过引入这个计算阈值的方法,使基于RGB颜色空间特征的阴影检测方法的阈值可以自适应计算,从而避免人为主观的设置,可以适合各种场景。
3.3 改进的ViBe算法的实现
改进的ViBe算法的实现流程如图3所示。
图3给出ViBe改进算法的整体流程图,该算法的完整步骤如下所示,通过对获取的前景目标进行判断,得到完整的运动目标:
图3 改进的ViBe算法实现流程图
首先当获取到视频的第1帧时,为每个像素建立一个ViBe背景模型,并用式(3)对其进行初始化;接着,从视频第2帧开始,每个像素和对应的ViBe背景模型通过式(2)进行比较,判断该像素是否属于背景点。如果属于背景点,则用该背景点对通过8邻域随机选取的背景模型中的某个样本进行替换以达到对像素的背景模型进行更新的目的。同时可以得到本帧视频的前景目标;对获得的前景目标进行形态学去噪,主要是去除一些小的前景目标,形态学的去噪方式主要是对前景目标进行腐蚀和膨胀操作;然后,对形态学去噪之后的前景目标进行连通域标号。连通域标号是指将不同的连通域用唯一的号码来表示该连通域,用来区分一个像素是否在某个连通域内;对每个连通域标号之后,分别对各个连通域和前帧对应的区域灰度化并进行灰度直方图统计,通过式(5)进行直方图匹配计算得到匹配度,将匹配度代入式(6)判断连通域是否为鬼影,如果是则更新背景模型,不是,则对前景目标进行去阴影操作。对得到的前景目标获取它们的RGB颜色分量,分别代入式(7)~式(14)获取RGB分量各自的阈值并代入式(15)得到没有阴影的运动目标;最后,对得到的运动目标进行形态学操作得到完整的运动目标。
本实验在VS2010+OpenCV2.4.3平台上编程实现,所用电脑配置为Pentium(R) Dual-Core CPU E6700 3.2 GHz,内存为2.00 GB。选择一段标准视频作为测试样本,视频的大小为720×480。
利用本文算法对视频序列Highway进行检测,在第5帧,视频中汽车由于运动在背景中产生鬼影(用方框标示),如图4(b)所示;在第9帧分别得到汽车前景和鬼影,其灰度特征直方图分别如图4(g)和图4(h)所示,同时得到汽车前景和鬼影对应位置第5帧图像的灰度特征直方图,分别如图4(e)和图4(f)所示。可以看出,对于汽车前景块,图4(e)和图4(g)二者的灰度特征直方图具有较大的差异,而对于鬼影块,图4(f)和图4(h)二者的灰度特征直方图差异则较小。通过这个依据,可以判断出哪个是鬼影,并消除鬼影,如图4(d)所示。
在这个实验中,基于灰度特征统计直方图的算法,在第5帧出现鬼影之后,经过4帧左右就可以检测并消除鬼影,比原ViBe算法要大于50帧才能识别并消除速度快。
在得到运动目标之后,开始对运动目标进行去阴影处理。图5(a)为第9帧前景运动目标(用方框标示),可以看到,方框包含着运动目标和阴影块。图5(b)为对应第9帧的背景图像。分别求出运动目标像素点和其对应位置背景点的3个R,G,B分量,由于式(15)的3个阈值需要人为主观地去设置,对RGB颜色空间检测阴影的实用性产生了不利影响。本文提出利用Ostu算法,使式(15)中的阈值可以随场景光照情况的不同而自适应改变。
如图5(c)所示,通过自适应阈值的RGB颜色空间可以比较理想地去掉阴影,图5(d)为改进的ViBe算法分割出来的运动目标。
为了说明本文算法的性能,将本文算法、混合高斯模型算法(OpenCV自带算法)和原ViBe算法,在处理速度、算法正确率(算法正确率=识别出的运动目标数/实际的运动目标数)、鬼影检测正确率(鬼影检测正确率=识别出的鬼影数量/实际的鬼影数量)、鬼影识别时间和阴影检测正确率(阴影检测正确率=识别出的阴影面积/实际的阴影面积)等方面做了对比分析,如表1所示。
图4 Highway实验结果
图5 阴影检测实验结果
表1 算法性能比较
从表1可以看出,本文算法的处理速度处于原ViBe算法和混合高斯模型算法之间,能满足实时处理视频帧的要求;算法正确率、鬼影检测正确率和鬼影识别时间均好于原ViBe算法和混合高斯模型算法,并且能够实现阴影检测,大大降低对后续视频帧操作的不利影响。
总之,在本文中,通过利用灰度直方图的统计识别出鬼影与运动目标,是因为包含鬼影对应位置的帧图像在后帧图像中的对应位置并没有任何改变,而由于运动目标的运动性,其后帧图像的对应位置会不断地发生变化,而灰度图像的描述可以反映整幅图像的整体和局部的色度和亮度等级的分布和特征,而且图像的灰度化并不会给ViBe算法的运行速度带来明显的影响;而在本文算法中提出利用基于Ostu的RGB阴影检测算法,是因为ViBe算法适用于任何的场景,但基于RGB的阴影检测算法只能针对特定的场景设定特定的阈值,并不适用于ViBe算法。而Ostu算法可以针对特定的场景把直方图在某一阈值处分割成两组,不断进行迭代计算,当被分成的两组间方差为最大时,便得到阈值,从而实现自动寻找阈值。通过自适应阈值的计算,可以使阴影检测算法适用于任何场景,在不同的场景自动设置不同的阈值,适用于ViBe算法,并且提高了ViBe算法的计算效率。
针对ViBe算法无法消除鬼影和运动阴影的不足,本文提出了一种基于灰度特征和自适应阈值的ViBe改进算法。利用该算法对背景进行建模,得到预前景目标,并对预前景目标进行灰度特征判断和自适应RGB颜色空间阈值比较,得到没有鬼影和运动目标阴影的运动目标。实验结果表明,该算法可以很好地消除前景目标的噪点,抑制运动目标的阴影,而且在前景目标出现鬼影的时候可以快速地识别并且及时地更新背景模型。
[1] Stauffer C and Grimson W E L. Adaptive background mixture models for real-time tracking[C]. IEEE Computer Society Conference on Computer Vision and Pattern Recognition, Ft. Collins, CO, USA, 1999, 2: 246-252.
[2] Zivkovic Z. Improved adaptive Gaussian mixture model for background subtraction[C]. Proceedings of the 17th IEEE International Conference on Pattern Recognition, Cambridge, UK, 2004: 28-31.
[3] Wang H and Suter D. A consensus-based method for tracking: modeling background scenario and foreground appearance[J]. Pattern Recognition, 2007, 40(3): 1091-1105.
[4] Horprasert T, Harwood D, and Davis L S. A statistical approach for real-time robust background subtraction and shadow detection[C]. IEEE International Conference on Computer Vision (ICCV), Kerkyra (Corfu), Greece, 1999: 1-19.
[5] Maddalena L and Petrosino A. A self-organizing approach to background subtraction for visual surveillance applications[J]. IEEE Transactions on Image Processing, 2008, 17(7): 1168-1177.
[6] Barnich O and Van Droogenbroeck M. ViBe: a powerful random technique to estimate the background in video sequences[C]. IEEE International Conference on Acoustics, Speech and Signal Processing, Taipei, China, 2009: 945-948.
[7] Barnich O and Van Droogenbroeck M. ViBe: a universal background subtraction algorithm for video sequences[J]. IEEE Transactions on Image Processing, 2011, 20(6): 1709-1724.
[8] Cucchiara R, Grana C, Piccardi M, et al.. Detecting moving objects, ghosts, and shadows in video streams[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2003, 25(10): 1337-1342.
[9] Calderara S, Melli R, Prati A, et al.. Reliable background suppression for complex scenes[C]. Proceedings of the 4th ACM international Workshop on Video Surveillance and Sensor Networks, New York, 2006: 211-214.
[10] Piccinini P, Calderara S, and Cucchiara R. Reliable smoke detection in the domains of image energy and color[C]. 15th IEEE International Conference on Image Processing, San Diego, CA, USA, 2008: 1376-1379.
[11] Yuan J, Wu J, and Cheng Y. Shadow detecting algorithms research for moving objects base on self-adaptive background[C]. IEEE International Conference on Modeling, Identification & Control (ICMIC), Wuhan, China, 2012: 197-200.
[12] McFeely R, Glavin M, and Jones E. Shadow identification for digital imagery using color and texture cues[J]. IET ImageProcessing, 2012, 6(2): 148-159.
[13] Salvador E, Cavallaro A, and Ebrahimi T. Cast shadow segmentation using invariant color features[J]. Computer Vision and Image Understanding, 2004, 95(2): 238-259.
[14] Xiao M, Han C Z, and Zhang L. Moving shadow detection and removal for traffic sequences[J]. International Journal of Automation and Computing, 2007, 4(1): 38-46.
[15] Yoshikawa F, Toraichi K, Wada K, et al.. On a grading system for beef marbling[J]. Pattern Recognition Letters, 2000, 21(12): 1037-1050.
[16] Feng B, Wang Z, and Sun J. Image threshold segmentation with Ostu based on quantum-behaved particle swarm algorithm[J]. Computer Engineering and Design, 2008, 29(13): 3429-3434.
[17] Sanin A, Sanderson C, and Lovell B C. Shadow detection: a survey and comparative evaluation of recent methods[J]. Pattern Recognition, 2012, 45(4): 1684-1695.
[18] Jeong S, Kang S, and Kim J. Vehicle detection based on the use of shadow region and edge[C]. Fifth International Conference on Digital Image Processing. International Society for Optics and Photonics, Beijing, China, 2013: 88782Y-88782Y-4.
[19] Xu Z and Pan J. Fast detect shadow from single outdoor image[C]. 2011 Seventh IEEE International Conference on Natural Computation (ICNC), Shanghai, 2011, 4: 1827-1831.
[20] Jiang K, Li A, Cui Z, et al.. Adaptive shadow detection using global texture and sampling deduction[J]. IET Computer Vision, 2013, 7(2): 115-122.
[21] Shi W and Li J. Shadow detection in color aerial images based on HSI space and color attenuation relationship[J]. EURASIP Journal on Advances in Signal Processing, 2012, 2012(1): 1-13.
庄哲民: 男,1965年生,博士,教授,研究方向为智能信号处理.
章聪友: 男,1987年生,硕士,研究方向为数字图像处理.
杨金耀: 男,1962年生,硕士,高级工程师,研究方向为仪器研发.
李芬兰: 女,1964年生,博士,教授,研究方向为智能信号处理.
Investigation on Visual Background Extractor Based on Gray Feature and Adaptive Threshold
Zhuang Zhe-min①Zhang Cong-you①Yang Jin-yao②Li Fen-lan①
①(Department of Electronic Engineering, Shantou University, Shantou 515063, China)
②(Shantou Institute of Ultrasonic Instruments Limited Corporation, Shantou 515000, China)
In order to solve the problem of the ghost and the shadow of moving object, an improved Visual Background extractor (ViBe) algorithm is proposed based on gray feature and adaptive threshold. The new method firstly applies the ViBe algorithm to obtain the foreground object, and then uses the gray feature judgment, as well as the adaptive threshold comparison in the foreground object to get the moving object without the ghost and the shadow. Experiments show that the improved algorithm results in better recognition accuracy.
Computer vision; Moving object detection; Background modeling; Visual Background extractor (ViBe); Adaptive threshold; Gray feature
TP391.4
A
1009-5896(2015)02-0346-07
10.11999/JEIT140317
2014-03-10收到,2014-05-30改回
国家自然科学基金(61070152)资助课题
*通信作者:章聪友 11cyzhang1@stu.edu.cn
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!