ViBe算法鬼影抑制方法研究 下载: 1199次
1 引言
在计算机视觉领域,运动目标检测越来越受到人们的重视。它通过对视频序列图像的分析来提取运动目标,是后续图像处理的基础,因而被广泛应用于导航、视频监控以及交通检测等众多领域。后续图像处理包括目标跟踪、目标识别和目标行为理解等高级应用。
目前常用的运动目标检测方法主要分为帧差法[1-2]、光流法[3]、背景减法[4]。背景减法算法的核心是对背景的建模,当前帧和背景模型之间显著差异的区域被认为与移动对象相对应。一般背景减法算法包括高斯混合模型算法[5]、码本算法[6]和视觉背景提取(ViBe)算法[7-8]。其中ViBe算法计算量比较小,速度非常快,而且对噪声有一定的稳健性,检测效果很好,但其缺点也很明显,诸如鬼影、阴影、目标不完整等问题。针对这些不足,科研人员提出许多关于运动目标检测的改进算法。文献[ 9]提出利用Surendra背景更新法得到纯净背景,将得到的纯净背景对ViBe算法进行初始化背景建模,以解决鬼影问题,然而Surendra背景更新法需要经过多次迭代才能得到较为纯净的背景,增加了算法的复杂度。文献[ 10]提出ViBe算法融合深度线索和颜色信息以分割前景区域,同时,在建立了背景模型和深度模型的基础上,提出一种新的更新策略,可以有效地消除鬼影和阴影。文献[ 11]提出利用超像素分割将原始图像分割为若干个超像素区域,再对ViBe算法检测的结果进行像素点分类,在目标检测的初始阶段实现鬼影信息的准确检测,并且更新鬼影区域像素点的背景模型,从而消除鬼影。文献[ 12]提出ViBe算法结合三帧差法的方法抑制鬼影及减少空洞,同时将显著性检测运用到运动检测中,检测的效果明显,具有较高的稳健性。文献[ 13]提出一种基于多尺度空间的ViBe算法,对输入的视频进行金字塔变换预处理,再在不同的分辨率下将得到的检测结果进行融合,最后结合帧间信息,加入二次判断策略来抑制鬼影,从而加快鬼影的消除。
由于ViBe算法是对第一帧进行初始化,若第一帧存在运动目标,在对后续帧检测时会产生鬼影。本文算法首先利用平均背景法得到真实背景;然后利用ViBe算法,根据得到的真实背景建立背景模型,从而消除鬼影;最后将改进的算法结合形态学运算,以提高检测精度。实验结果验证,本文算法在保证运算速度的同时也可有效地消除鬼影。
2 ViBe算法及鬼影问题分析
2.1 ViBe算法
ViBe 算法是一种基于像素的运动目标检测算法,其基本思想是为每个像素存储一组过去在相同位置或邻近位置获取的值,然后将该集合与当前像素值进行比较,以确定该像素是否属于背景,并在背景模型中随机选择要替换的值来适应模型。ViBe算法的具体步骤如下。
1) 背景建模。ViBe算法对第一帧图像P的每一个像素(x,y)建立一个大小为N的背景模型,即B(x,y)={b1,b2,…,bN},其中bi为(x, y)的8邻域随机采样值,i=1,2,…,N,N为背景模型中的样本值。
2) 前景检测。对第k帧图像fk(k=2,3,…,n)进行计算,即
式中:dfk为第k帧图像fk在(x, y)处的像素值与其对应的背景样本集元素bj的欧氏距离;j=2,3,…, N;n为图像帧数。
判断当前像素点(x, y)是否为背景,将dfk与预先设定的阈值R相比较,如果小于阈值R,并且数量足够多,则为背景,否则为前景。则第k帧图像fk在(x, y)处的二值化结果为
式中:Ck(x, y)为第k帧图像fk在(x, y)处的二值化结果;R为半径阈值;T为个数匹配阈值。
3) 背景更新。如果当前像素(x, y)被判断为背景像素,即Ck(x, y)=0时,则它有1/φ的概率去更新背景模型,同时它也有1/φ的概率去更新该像素邻域中的某一像素。其中φ为时间采样因子。那么经过时间dt,样本依然保留的概率为
(4)式表明一个样本值在模型中是否被替换与时间t不相关。
2.2 鬼影问题分析
鬼影是背景差分法检测运动物体的主要缺陷之一。当对背景初始化建模时,运动目标处于背景中,运动后则会产生鬼影。ViBe算法利用第一帧初始化背景模型,其初始化方式为随机地选取每个像素周围位置的像素值来建立背景样本,因此当第一帧中存在运动目标时,模型初始化会将运动目标的像素填充进背景样本中,在后续帧进行检测时,便会出现鬼影现象。
而对于鬼影的检测与消除,文献[ 14]提出用连续两帧分别与背景模型作差分,根据两帧差分结果判断鬼影,并且将判定为鬼影的像素设置为背景点进行背景更新,达到消除鬼影的目的。过程表达式为
式中:I为当前像素;B为背景模型;Fk,k+1为前后两帧与背景模型比较的结果值;δ为阈值;k为当前帧;Dk为当前帧在像素点(x, y)处与背景帧在像素点(x, y)处差分运算的结果;⊕为异或运算。
图 1. 鬼影产生。(a)真实背景;(b)第1帧;(c)第12帧;(d) ViBe检测结果
Fig. 1. Ghost generation. (a) Real background;(b) 1st frame; (c) 12th frame; (d) ViBe test result
文献[ 15]提出在像素点空间传播时进行二次匹配来衡量前景像素点的鬼影程度,并调整疑似鬼影区域的更新速率,实现快速消除鬼影。匹配公式为
式中:v(x1)为背景像素点x1的像素值;v(x2)为前景像素点x2的像素值,x2是x1的邻域像素;R(x2)为邻域前景像素点x2的当前匹配阈值;λ为鬼影参数;dist(·)为两个像素值的差值。Pghost(x2)为像素点x2鬼影因子,表示该点作为鬼影点的可能性,若判断出该前景点是鬼影像素,则提高空间传播速率,实现快速消除鬼影的目的。
上述方法只是提高了消除鬼影的效率,并不能从第一帧起就有效地消除鬼影,对于完全消除鬼影仍然需要一定的时间,其原因是由于没有使用接近真实背景的图像进行ViBe算法的背景建模。若是使用接近真实背景的图像进行ViBe背景样本初始化,便可以从第一帧起就能有效地消除鬼影。
3 改进的ViBe算法
综上所述,使用真实背景进行模型初始化是消除鬼影的重要一环,因此利用平均背景法得到真实背景,然后利用真实背景进行ViBe算法的背景样本初始化,就可以解决鬼影问题。
3.1 改进的平均背景法
在ViBe算法中,由于背景样本初始化过程会把运动目标错误地初始化为背景,因此本文通过预处理过程来得到真实背景,然后使用得到的真实背景初始化背景样本,从而达到在对后续帧检测时消除鬼影的目的。
平均背景法是一种建立背景模型的方法。简单地说,就是从视频中获取一系列连续的帧,并且计算这些帧中的各个像素的平均值来表征背景,即
式中:
本文认为应用的场景背景不会发生变化,因此不需要提前设定M值,而是采用视频的前m帧求平均,从而得到真实背景。经过大量的实验验证,m确定为输入视频总帧数的1/2。
使用平均背景法得到真实背景的步骤如下。
1)输入连续的m帧图像,得到视频帧的大小,即一帧图像的长宽高h、w、d。
2)获得每帧图像的矩阵,对其进行转置, 即
并将转置矩阵进行相加,对T矩阵各列取均值,即
3) 将得到的矩阵A利用函数reshape恢复成h×w×d的图像矩阵,得到真实背景矩阵Bm,即
式中:reshape(·)为重塑矩阵函数。
图 2. 背景图像。(a)原始ViBe算法得到的背景;(b)本文算法得到的背景
Fig. 2. Background image. (a) Background obtained by original ViBe algorithm; (b) background obtained by proposed algorithm
3.2 形态学后操作
上述方法虽然可以消除鬼影对前景检测的影响,但在实际检测中,由于受到运动目标表面颜色或者环境的干扰,检测目标会出现空洞,从而影响运动目标的检测。为了得到更完整的目标,使用形态学运算。形态学基本运算包括腐蚀、膨胀、开运算和闭运算。开运算是先腐蚀再膨胀,闭运算是先膨胀再腐蚀。
在本文中形态学的处理过程为
式中:S为运动目标检测后的目标;E为宽度为5 pixel的正方形结构元素;S1为输出结果;Θ为膨胀操作;☉为腐蚀操作。
式中:S1(x, y)为输出结果;S2(x, y)为中值滤波后的图像;W为二维模板,3×3区域;med{·}为中值滤波;h'、l分别为x、y方向的邻域数量。
首先利用(11)式连接目标,填充空洞,再经(12)式消除小目标,最后得到经过形态学操作后的图像。
3.3 改进的ViBe算法的运动目标检测
运动检测具体实现步骤如下。
1)背景建模。利用经平均背景法预处理得到的真实背景Bm来构建N幅背景样本,即
2)前景检测。计算当前图像中的像素到背景样本的距离,并且设定阈值R。如果小于阈值R,并且数量足够多,则为背景,否则为前景。
式中:
3) 背景更新。如果当前像素被判断为背景像素时,则它有1/φ的概率去更新背景模型,同时它也有1/φ的概率去更新该像素邻域中的某一像素。
4) 运动目标输出。将检测到的目标,使用形态学闭操作以及中值滤波运算来填充空洞,消除小目标,得到较为完整的运动目标。
4 实验结果及分析
4.1 实验验证
本实验运行环境为 Windows10 64位操作系统,Inter(R) Core(TM) i5-7500 CPU处理器,16 GB内存,MATLAB R2016a仿真系统。为了验证本文算法对鬼影消除的实际效果,选取了两组视频进行实验验证,并且与三帧差分法、传统的ViBe算法以及文献[ 9]中的算法进行比较。本文中N=20,R=15,T=2,φ=5。
为了验证本文算法能够解决第一帧存在运动目标而引起的鬼影问题,设置两组对比实验,所选用的待检测视频的第一帧均存在运动目标,如
图 3. 待检测视频的第一帧。(a) Car图像序列;(b) Highway II图像序列
Fig. 3. 1st frame of video to be detected. (a) Car image sequence; (b) Highway II image sequence
设置的第一组对比实验采用序列图像Car, 该视频图像分辨率为320×176,实验对比结果如
图 4. Car图像序列结果对比。(a)输入图像;(b)三帧差分法;(c) ViBe算法;(d)文献[ 9]算法;(e)本文算法
Fig. 4. Comparison of Car image sequence results. (a) Input image; (b) three-frame difference method; (c) ViBe algorithm; (d) algorithm in Ref. [9]; (e) algorithm in this paper
图 5. Highway II图像序列结果对比。(a)输入图像;(b)三帧差分法;(c) ViBe算法;(d)文献[ 9]算法;(e)本文算法
Fig. 5. Comparison of Highway II image sequence results. (a) Input image; (b) three-frame difference method; (c) ViBe algorithm; (d) algorithm in Ref. [9]; (e) algorithm in this paper
为了了解本文算法在复杂交通下的鬼影去除性能,选用Highway II视频进行第二组实验。实验中图像序列Highway II的分辨率为160×120,该视频取自高速公路,车流量较大。
从
4.2 算法性能评估
为了准确、全面地评价本文算法与文献[
9]算法、三帧差分法和ViBe算法的性能,采用精确度(P)、召回率(R')以及错误分类比 (PWC)作为量化指标
式中:TP为正确检测为前景的数量;TN为正确检测为背景的数量;FN为被错误地检测为背景的数量;FP为被错误地检测为前景的数量。(14)式表明,精确度与召回率越高,算法性能越好。
图 6. 两组视频下4种算法的P与R'的直方图。(a)精确度直方图;(b)召回率直方图
Fig. 6. Histograms of P and R' of four algorithms for two groups of video. (a) Precision histogram; (b) recall histogram
表 1. 四种算法的PWC对比
Table 1. Comparison of PWC of four methods%
|
在Car视频图像中,本文算法要比传统ViBe算法低了将近27个百分点,而在Highway II视频图像中也低了将近20个百分点。也就是说,本文算法要比原始ViBe算法可靠得多。虽然在Car视频序列中本文算法与三帧差分法以及文献[ 9]算法相比,PWC并没有显著性的降低,但是在Highway II视频图像中本文算法的优势还是比较明显的。本文算法在Highway II图像序列中的PWC要比在Car图像序列中的PWC低得多,且Highway II视频图像比Car视频图像要复杂,也就是说,本文更适用于复杂场景中的鬼影去除。
为了验证本文算法的运算效率,以保证监控应用中的实时性,本文分别用四种算法对2组视频多次实验,统计了每种算法对不同视频的处理速度。视频帧Car的分辨率为320×176,Highway II视频图像的分辨率为160×120。从
表 2. 两组视频的处理速度对比
Table 2. Comparison of processing speeds for two groups of videoframe ·s-1
|
5 结论
由于ViBe算法采用第一帧进行背景建模,因此当第一帧中存在运动目标时,后续帧检测时便会产生鬼影。为了快速地消除鬼影,本文提出一种改进的ViBe算法。首先利用平均背景法得到真实背景,并用得到的真实背景建立背景模型;同时采用ViBe算法实现前景检测、背景更新以及运动目标输出;最后利用形态学操作对检测结果加以完善。与三帧差分法、传统的ViBe算法、文献[ 9]中的算法进行实验对比,并定量评估了各自的结果。实验表明,本文改进的ViBe算法能在保持目标检测实时性的同时,有效地消除鬼影对目标检测准确度的影响。
[1] Migliore DA, MatteucciM, NaccariM. A revaluation of frame difference in fast and robust motion detection[C]∥Proceedings of the 4th ACM international workshop on Video surveillance and sensor networks - VSSN '06, October 27-27, 2006, Santa Barbara, California, USA. New York: ACM, 2006: 215- 218.
[2] 崔杰, 胡长青, 徐海东. 基于帧差法的多波束前视声呐运动目标检测[J]. 仪器仪表学报, 2018, 39(2): 169-176.
Cui J, Hu C Q, Xu H D. Moving target detection for multi-beam forward-looking sonar based on frame-difference method[J]. Chinese Journal of Scientific Instrument, 2018, 39(2): 169-176.
[3] 李成美, 白宏阳, 郭宏伟, 等. 一种改进光流法的运动目标检测及跟踪算法[J]. 仪器仪表学报, 2018, 39(5): 249-256.
Li C M, Bai H Y, Guo H W, et al. Moving object detection and tracking based on improved optical flow method[J]. Chinese Journal of Scientific Instrument, 2018, 39(5): 249-256.
[4] Ahmed S H, El-Sayed K, Elhabian S Y. Moving object detection in spatial domain using background removal techniques-state-of-art[J]. Recent Patents on Computer Science, 2008, 1(1): 32-54.
[5] Chen H Y, Cui Y J, Li S, et al. An improved GMM-based algorithm with optimal multi-color subspaces for color difference classification of solar cells[J]. IEEE Transactions on Semiconductor Manufacturing, 2018, 31(4): 503-513.
[6] MurgiaJ, MeurieC, RuichekY. An improved colorimetric invariants and RGB-depth-based codebook model for background subtraction using kinect[M] ∥Gelbukh A, Espinoza F C, Galicia-Haro S N. Human-inspired computing and its applications. Lecture notes in computer science. Cham: Springer, 2014, 8856: 380- 392.
[8] Huang W, Liu L, Yue C, et al. The moving target detection algorithm based on the improved visual background extraction[J]. Infrared Physics & Technology, 2015, 71: 518-525.
[9] 刘春, 翟志强. 改进的ViBe运动目标检测算法[J]. 传感器与微系统, 2017, 36(1): 123-126.
Liu C, Zhai Z Q. Moving target detection algorithm with improved ViBe[J]. Transducer and Microsystem Technologies, 2017, 36(1): 123-126.
[10] Zhou X Q, Liu X F, Jiang A M, et al. Improving video segmentation by fusing depth cues and the visual background extractor (ViBe) algorithm[J]. Sensors, 2017, 17(5): 1177.
[11] 陈海永, 郄丽忠, 杨德东, 等. 基于超像素信息反馈的视觉背景提取算法[J]. 光学学报, 2017, 37(7): 0715001.
[12] 杨依忠, 张强, 汪鹏飞. 基于改进ViBe算法与三帧差法的运动检测算法[J]. 合肥工业大学学报(自然科学版), 2018, 41(8): 1052-1058.
Yang Y Z, Zhang Q, Wang P F. A novel moving objects detection algorithm based on improved ViBe and three-frame differencing algorithm[J]. Journal of Hefei University of Technology(Natural Science), 2018, 41(8): 1052-1058.
[13] 茅正冲, 沈雪松. 融合多尺度变换的改进Vibe算法[J]. 激光与光电子学进展, 2018, 55(11): 111501.
[14] 魏洪涛, 李瑾, 吴细秀. 融合帧差和ViBe的运动目标检测算法[J]. 计算机应用研究, 2017, 34(5): 1565-1567, 1571.
Wei H T, Li J, Wu X X. Moving object detection algorithm using ViBe combined with frame-difference[J]. Application Research of Computers, 2017, 34(5): 1565-1567, 1571.
[15] 王旭, 刘毅, 李国燕. 基于改进视觉背景提取算法的运动目标检测方法[J]. 激光与光电子学进展, 2019, 56(1): 011007.
[16] 朱文杰, 王广龙, 田杰, 等. 基于多特征的复杂场景运动目标检测[J]. 光学学报, 2018, 38(6): 0612004.
[17] GoyetteN, Jodoin PM, PorikliF, et al. Changedetection.net: a new change detection benchmark dataset[C]∥2012 IEEE Computer Society Conference on Computer Vision and Pattern Recognition Workshops, June 16-21, 2012, Providence, RI, USA. New York: IEEE, 2012: 12865138.
Article Outline
马永杰, 陈梦利, 刘培培, 段瑞国, 马芸婷. ViBe算法鬼影抑制方法研究[J]. 激光与光电子学进展, 2020, 57(2): 021007. Ma Yongjie, Chen Mengli, Liu Peipei, Duan Ruiguo, Ma Yunting. ViBe Algorithm-Based Ghost Suppression Method[J]. Laser & Optoelectronics Progress, 2020, 57(2): 021007.