一种基于优化ViBe算法的人形分割方法

2019-10-08 08:34王燕李旭健
软件 2019年7期
关键词:视频监控

王燕 李旭健

摘  要: 人形分割在视频监控研究中具有极其重要的意义。ViBe算法因其运算效率高、算法思想简单且容易实现的特性受到许多研究学者的青睐,并被应用到人形分割的研究中。针对ViBe算法在应用于人形分割研究时易于出现鬼影和容易对光照引起的阴影造成误检的现象,提出了一种改进的ViBe算法—VSFC(ViBe Surendra Five-frame Canny)算法。首先将利用Otsu自适应阈值的Surendra算法得到的初始背景用作背景模型的初始化。其次,通过将ViBe算法所得出的前景与五帧差分法得出的前景采用“与”运算的方式获得人形分割结果,并对得到的人形分割结果进行形态学处理,以便能够消除较大的噪声。最后利用Canny边缘检测算子对人形的边缘信息进行提取,利用小波融合方法将前面得到的人形结果和边缘信息进行融合,得到最后的人形分割结果。在更新机制方面,提出动则更新的更新思想,对于那些长时间静止不动的像素点,采取隔时更新的方式,提高了算法的实时性。

关键词: 视频监控;人形分割;ViBe算法;Surendra算法;五帧差分法;隔时更新

中图分类号: TP391.41    文献标识码: A    DOI:10.3969/j.issn.1003-6970.2019.07.018

【Abstract】: Humanoid segmentation is extremely important in video surveillance research. The ViBe algorithm is favored by many researchers because of its high computational efficiency, simple algorithm and easy to implement, and is applied to the research of human segmentation. Aiming at the phenomenon that ViBe algorithm is prone to ghosting and easy to cause false detection of shadow caused by illumination when applied to human-shaped segmentation, an improved ViBe algorithm-VSFC (ViBe Surendra Five-frame Canny) algorithm is proposed. The initial background obtained using the Otsu adaptive threshold Surendra algorithm is first used as the initialization of the background model. First, the initial background is obtained using the Otsu adaptive threshold Surendra algorithm, and this background is used as the initialization of the background model. Secondly, the human-shaped result is obtained by using the foreground obtained by the ViBe algorithm and the foreground obtained by the five-frame difference method to obtain the humanoid result, and the obtained humanoid result is processed morphologically to eliminate the large noise. Finally, the Canny edge detection operator is used to extract the edge information of the humanoid. The wavelet fusion method is used to fuse the previously obtained humanoid result and edge information to obtain the final humanoid segmentation result. In terms of the update mechanism, the update idea of the update is proposed. For those pixels that are still stationary for a long time, the method of updating at intervals is adopted to improve the real-time performance of the algorithm.

【Key words】: Video surveillance; Humanoid segmentation; ViBe algorithm; Surendra algorithm; Five-frame difference method; Interval update

0  引言

視频监控可以帮助人们实现实时监测的功能,在人们的生产生活中得到广泛应用,起着举足轻重的作用。人形分割技术是视频监控技术发展的奠基石,但因实际场景的复杂性、光照引起的阴影以及人与人之间的遮挡等因素,使得从监控视频中进行人形分割的技术仍然面临严峻考验。

2009年,Olivier Barnich等人首次提出基于样本的ViBe算法[1]。近幾年,Vibe算法作为一种有效、快速而且新奇的像素级前景检测算法,为研究学者们钻研人形分割技术开辟了新思路。但是该算法也具有一定的局限性:因为直接利用视频首帧构建模型,容易产生鬼影问题;容易将长时间静止不动的目标误判为背景;容易对光照所引起的阴影造成误检;运动目标容易出现空洞现象。针对鬼影问题,杨丹等[2]在初始建模阶段采用多帧平均法构建初始背景,但是多帧平均法仅仅适用于简单的监控场景。Qin等[3]利用Gabor加速鬼影的消融速度,并通过GPU加速改进随机扩展和更新速度。桂斌等[4]通过采用三帧差分法得到准确的背景图像以达到去除鬼影的目的。针对阴影问题,徐君妍等[5]在算法中加入帧间差分法进行阈值比较,根据帧间差分法的抗光照性,动态的调整更新率。但是帧间差分法容易产生“空洞”问题,并不能真正意义上的解决阴影问题。胡小冉等[6]基于先验知识和边缘检测方法消除阴影,不过人们的先验知识存在很大的局限性,并不能使所有情况下的问题都得到有效的解决。余烨等[7]将色度和梯度进行结合,用于去除阴影。

本文在此基础上提出了一种改进的ViBe算法—VSFC算法。首先,利用Otsu自适应阈值的Surendra算法得到初始背景,并将此背景用作背景模型的初始化。然后结合五帧差分法,通过将ViBe算法所得到的前景与五帧差分法得出的前景采用“与”运算的方式获得人形结果,并对得到的人形结果进行形态学上的处理,以便消除较大的噪声。最后提取人形的边缘信息,利用小波融合方法将前面提取的人形结果和边缘信息进行融合,得出最后的人形分割结果。另外,针对ViBe原有的更新机制,本文采用动则更新的更新方式,即在更新背景模型时,只更新运动的像素点,对于长时间静止的像素点,采用隔时更新的方式,能够有效降低算法的复杂度。该算法通过融合多种算法的优势,能够使复杂视频监控场景下ViBe算法带来的鬼影以及阴影误检问题得到有效解决。

1  初始化背景模型

ViBe算法是一种通用的前景检测算法,该算法首先为视频序列中的每个像素都创建一个独特的背景样本集,用此样本集作为背景模型[8]。通过将当前像素与背景模型中同一位置的像素作比较来确定当前像素是属于前景还是背景。但是该算法局限于采用第一帧来构建模型,倘若运动目标存在于视频的第一帧中,则很容易产生鬼影。故此,本文采用基于Otsu自适应阈值的Surendra算法通过不断迭代得到初始背景,并将此背景用于背景模型初始化  中[9]。背景模型初始化如下:

(1)选取监控视频序列中的第一帧图像 作为背景图像 ,假设图像灰度级为 ,在此通过Otsu方法计算当前帧 的阈值 。帧 的像素之和为 。对应于灰度级 的像素之和是 ,则第 级灰度出现的概率为: 。其中   , 。通过求当前帧 的平均值和方差,得到最优阈值 。

(2)求当前帧 的差分图像 :

(3)更新背景图像 :

符号 表示更新速度。此时 即为初始 背景。

(4)为每一个像素 都建立一个背景模型[10]: 。其中 表示像素8邻域随机背景样本值, 为待判定的像素点的像素值, 。

随机选取每个像素对应的8个邻域像素作为背景样本。初始化背景模型:

代表初始时间点, 为邻域的像素值, 为当前点的像素值。

2  前景分割

2.1  通过ViBe算法得到前景

上文完成了背景模型的创建,接下来需要对新的一帧图像计算当前像素点与其所对应的样本集中的像素点之间的欧氏距离,并统计距离小于阈值 的像素点数,然后与提前设定的匹配阈值 进行比较,若是结果小于该阈值,则判定该像素点为前景像素点[11]。

2.2  通过五帧差分法得到前景

本文利用文献[12]提出的五帧差分法进行前景提取,五帧差分法能够在一定程度上克服原算法检测位置不精确、容易出现“空洞”的不足,相对原始算法,所提取的运动目标更为准确。

此外,让差分结果 和 、 和 分别做“与”运算,得到 和 ,最后让 和 进行“或”运算得到最终人形结果 。在做“或”运算之前先对其进行二值化和中值滤波处理,以避免“空洞”现象的发生。

2.3 “与”运算和后处理

通过将前文中ViBe算法所得出的前景与五帧差分法得出的前景采用“与”运算的方式获得人形分割结果,并对得到的人形分割结果进行形态学处理,以便消除较大的噪声,最终得到准确无误的人形分割结果。在监控视频中,若是出现光照引起的阴影,ViBe算法常会对其造成误检。本文针对ViBe算法对光照的敏感性,利用小波融合方法将前面得到的人形分割结果和通过使用Canny算子提取的人形边缘信息进行融合,得出最终的人形分割结果。

3  背景模型更新

在更新时,ViBe算法随机选择要更新的像素,其更新策略具有一定的保守性。本文提出动则更新的策略,在监控视频中,对于始终静止不动的像素点在被判定为背景之后,为了提高实时性,本文采取隔时更新的方式,即对于长时间静止的像素点,隔一段时间更新一次,只更新运动着的像素点。采取这样的策略极大的提高了算法的实时性,降低了算法复杂度。

4  实验结果分析

本文所涉及的仿真实验均在Windows 10操作系统下通过matlab 2017b+opencv 4.0.0+VS 2015环境完成的。采用的数据集为changedetection.net上的2014 DATASET中的“Baseline”数据集。因为本文针对解决的重点主要是在进行人形分割时ViBe算法遇到的鬼影问题以及对光照带来的阴影误检问题,故选取数据集中的一个视频序列进行实验,以用来测试本文改进算法的鲁棒性和准确性。实验中,根据文献[13],将ViBe算法参数分别进行如下设置:样本数和阈值分别设为20, 匹配个数设为2。通过实验,本文算法能够有效解决ViBe算法在初始化背景模型时容易出现鬼影的问题。图1为本文算法所得到的初始背景图。

图2展示了在“Baseline”视频作用下的實验结果。图2(a)为利用五帧差分法得到的二值化结果图。图2(b)为将五帧差分法得到的结果图进行形态学处理优化后的结果。图2(c)和图2(d)是原始ViBe算法的检测结果,从中我们可以明显看出,随着算法的运行,ViBe算法所带来的鬼影现象逐渐改善。图2(e)是五帧差分法得到的前景图像和本文改进的ViBe算法得到的前景图像进行“与”运算的结果。图2(f)是采用Canny边缘检测算子得到的边缘特征图像。图2(g)为文献[2]中处理的实验结果。图2(h)为文献[16]得到的检测结果。图2(i)为本文算法所得到的最终人形分割结果。可以看出,本文所提出的算法对解决ViBe算法中出现的鬼影问题和阴影误检问题有良好的效果,能够很好的应用于人形分割当中,并取得不错的效果。

5  结语

本文针对ViBe算法在进行人形分割时容易出

(a) 五帧差分法第997帧二值化结果(b) 五帧差分法第997帧优化结果(c) ViBe算法第997帧结果   (d) ViBe算法第1028帧结果(e) 本文算法“与”运算结果(f) Canny算法边缘检测结果   (g) 文献[2]第997帧处理结果(h) 文献[16]算法第997帧结果(i) 本文算法结果现鬼影现象以及容易将光照导致的阴影误检为前景目标的问题,提出一种改进的ViBe算法—VSFC算法。在ViBe算法构建背景模型之前,首先采用Surendra算法获得初始背景,用于初始化背景模型。然后采用五帧差分法和ViBe相结合的方式提高算法准确性,并利用边缘检测和小波融合进一步的使人形分割更加准确。在更新策略方面,提出动则更新的思想,在进行背景模型更新时,只更新运动着的像素点,对于长时间静止的像素点采取隔时更新的方式。在仿真实验中,与其他算法相比,本文算法呈现出不错的效果且具有较强的鲁棒性,人形分割更为完整,适应性更强。

但是由于多种算法的结合,使得计算量大,从而导致运行效率不如其他算法,虽然准确率有所提高,但是实时性却有所降低。故,仍需要继续研究复杂视频监控场景下的人形分割工作如何进行,如何才能真正做到高鲁棒性、高效率、高准确性。

参考文献

[1] Barnich, O, Van Droogenbroeck, M. ViBE: A powerful random technique to estimate the background in video sequences[C]. Acoustics, Speech and Signal Processing, 2009. ICASSP 2009. IEEE International Conference on, 945-948, 2009.

[2] 杨丹, 戴芳. 运动目标检测的ViBe算法改进[J]. 中国图象图形学报, 2018, 23(12): 1813-1828.

[3] Qin L, Sheng B, Lin W, et al. GPU-Accelerated Video Background Subtraction Using Gabor Detector[J]. Journal of Visual Communication and Image Representation, 2015, 32: 1-9.

[4] 桂斌. 基于ViBe的运动目标检测与阴影消除方法研究[D]. 安徽大学, 2015.

[5] 徐君妍, 袁址赟, 崔宗勇, 曹宗杰. 基于帧间差分的ViBe运动目标检测[J]. 科学技术与工程, 2017, 17(27): 82-87.

[6] 胡小冉, 孙涵. 一种新的基于ViBe的运动目标检测方法[J]. 计算机科学, 2014, 41(02): 149-152.

[7] 余烨, 曹明伟, 岳峰. EVibe: 一种改进的Vibe运动目标检测算法[J]. 仪器仪表学报, 2014, 35(04): 924-931.

[8] 陈亮. 视频监控中运动目标的检测与跟踪[D]. 中国计量学院, 2015.

[9] 单玉刚, 汪家宝, 郝峰. 基于自适应阈值的Surendra背景提取方法研究[J]. 计算机技术与发展, 2017, 27(07): 91-95.

[10] 严红亮, 王福龙, 刘志煌, 沈士忠. 基于ViBe算法的改进背景减去法[J]. 计算机系统应用, 2014, 23(06): 130-134.

[11] 张玉婉. 智能视频监控中的目标检测算法研究[D]. 西安电子科技大学, 2017.

[12] 舒欣, 李东新, 薛东伟. 五帧差分和边缘检测的运动目标检测[J]. 计算机系统应用, 2014, 23(01): 124-127.

[13] Gao J, Zhu H. Moving object detection for video surveillance based on improved ViBe[J]. IEEE 2016 Chinese Control and Decision Conference (CCDC). 2016: 6259-6263.

[14] 刘春, 翟志强. 改进的ViBe运动目标检测算法[J]. 传感器与微系统, 2017, 36(01): 123-126.

[15] 杜晶晶. 智能视频监控中运动目标检测与跟踪算法研究[D]. 成都: 西南交通大学, 2009.

[16] Xian Sun. Target Detection Via Improved Vibe Algorithm[A]. 中国自动化学会控制理论专业委员会、中国系统工程学会. 第35届中国控制会议论文集(C)[C]. 中国自动化学会控制理论专业委员会、中国系统工程学会: 中国自动化学会控制理论专业委员会, 2016: 5.

[17] Yi Wang, Jodoin, P. -M, Porikli, F. et al. . CDnet 2014: An Expanded Change Detection Benchmark Dataset. Computer Vision and Pattern Recognition Workshops (CVPRW), 2014 IEEE Conference on. 2014.

[18] Li Y, Chen W, Jiang R. The Integration Adjacent Frame Difference of Improved ViBe for Foreground Object Detection[C]. International Conference on Wireless Communications. IEEE, 2011.

[19] Jinlan L, Lin W, Ruliang Z, et al. A Method of Fire and Smoke Detection Based on Surendra Background and Gray Bitmap Plane Algorithm[C]. 2016 8th International Conference on Information Technology in Medicine and Education (ITME). IEEE Computer Society, 2016.

[20] Mahoor E, Maghsoumi H, Asemani D. An improved motion detection algorithm using ViBe[C]. International Conference on Computing. IEEE Computer Society, 2015.

[21] Barnich O, Van Droogenbroeck M. ViBe: A Universal Background Subtraction Algorithm for Video Sequences[J]. IEEE Transactions on Image Processing, 2011, 20(6): 1709- 1724.

猜你喜欢
视频监控
基于变电站的微机防误系统的可视化监控技术研究
地铁高清视频存储技术的应用分析