APP下载

融合混合高斯模型和阈值自适应的改进Vibe算法

2020-07-22郝晓丽

太原理工大学学报 2020年4期
关键词:像素点前景像素

曹 融,郝晓丽

(太原理工大学 信息与计算机学院,太原 030600)

目前,在计算机视觉研究和数字图像处理领域,运动目标检测[1]一直是研究热点之一。帧间差分法、光流法和背景差分法是目前比较经典和常用的目标检测算法。帧间差分法[2]是一种通过对视频图像序列中的连续相邻两帧进行差分运算来检测运动目标的方法,其特点是算法复杂度较低,稳定性较好,但比较容易出现“空洞”的现象。光流法[3]利用图像序列中像素在时域上的变化以及相邻帧之间的相关性来检测运动目标,其不仅算法时间和空间复杂度高、抗噪能力较弱,且难以保证实时性。背景差分法[4]的检测效果比较依赖背景模型,主要原理是为图像中每个像素点建立相应背景模型,通过将当前像素点与其背景模型比对来确定该像素点是前景像素点还是背景像素点。

Vibe算法[5]是BARNICH et al在2011年提出的一种目标检测算法。Vibe算法基于非参数化的背景建模,具有检测效果好、速度快,且算法时间和空间复杂度低的优点。传统Vibe算法特定的背景建模及初始化方法使得在目标检测初期会产生“鬼影”现象,其局限性不利于实际场景的应用。因此,针对其弊端,国内外的许多专家学者进行了研究。文献[6]通过计算图像分割阈值来判定和抑制“鬼影”像素,但经过大范围的动态背景处理之后仍会残留较多的噪声点;文献[7]通过记录相关像素值的时域变化,并结合帧间差分法来判定“鬼影”像素,并针对性提高“鬼影”的消除速率,但会出现前景像素可能被加入背景样本的情况;CHENG et al[8]提出针对“鬼影”区域的每个像素都进行特殊的初始化处理,但“鬼影”像素仍然消除较慢;闵卫东等[9]通过引入最大类间方差法,同时结合动态阈值来抑制“鬼影”现象,但该方法在光照和背景的变化剧烈等动态复杂环境下效果不佳;杨依忠等[10]提出通过首帧建立背景模型,在前5帧中每个像素点的邻域随机选4个像素点背景模型,并结合三帧差法做“或”运算去改善漏检的问题,但其在运动目标速度缓慢时其检测效果不是很理想。

本文提出了一种融合混合高斯模型[11]和阈值自适应的改进Vibe运动目标检测算法。通过融合混合高斯背景模型和形态学处理来消除“鬼影”,并在背景更新阶段采用自适应动态阈值T(Px)和R(Px)提高算法精确度以适应复杂环境。实验结果表明,在保证一定实时性的前提下,本文改进算法可快速有效地消除“鬼影”现象,并具有良好的检测准确性和可靠性。

1 Vibe算法原理描述

Vibe算法是一种基于背景建模和背景更新的前景检测算法。大致原理是为每个像素点建立一个包含该像素点当前像素值及其八邻域点的像素值的样本集,当新的像素点出现需要判断新像素点是属于背景点还是前景点时,则通过将其的像素值与之前样本集中所包含的采样值进行比较来判断。具体来看,该算法主要有背景建模及初始化、前景检测以及背景更新三个步骤。

1.1 背景建模及初始化

背景建模阶段,需要为每个像素点建立一个包含有N个像素值的背景模型,可记为M(x)={v1,v2,…,vk,…,vN},通常N=20.初始化阶段,选择视频图像序列的首帧,在每个像素点的八邻域内随机选择任意一点的像素值存储至当前像素点的背景模型中,并重复N次,则得到初始背景模型M(x).

1.2 前景提取

首先在欧式空间内定义一个半径为R的圆,v(x)为圆心,用该圆来表示与v(x)的欧氏距离小于匹配阈值R的所有像素点的集合,如图1所示。

图1 Vibe算法阈值判定原理图Fig.1 Schematic diagram of threshold determination of Vibe algorithm

然后统计M(x)中与v(x)欧氏距离小于R的像素点的个数,若数量大于最小匹配数Dmin,则判定该像素点为背景像素点;若数量小于最小匹配数Dmin,则此像素点为前景像素点。如公式(1)所示(其中0表示判定为背景点;1表示判定为前景点)。

(1)

1.3 背景模型更新

背景模型的更新策略是,若某个像素点被判定为前景像素点,此像素点则无需更新背景样本集。另外,为避免误检测的前景像素无法被修正,连续k次被判定为前景像素的像素点会被修正为背景像素。当某像素点被判定为前景像素点时会有1/w的概率来更新该像素点和其邻近某个像素点的背景样本集。其中,w为时间采样因子,故样本值在时间t时刻不更新的概率为(N-1)/N,该样本值则经过时间dt后仍然被保留的概率为:

(2)

2 本文改进方法

2.1 融合混合高斯模型并结合形态学处理“鬼影”

传统Vibe算法使用的背景模型初始化方法会导致在目标检测的初期产生“鬼影”现象,而混合高斯背景建模方法在目标检测初期的准确性较高,故考虑在背景建模及初始化阶段将背景模型进行形态学膨胀处理后,与混合高斯背景模型进行融合来消除传统Vibe算法在检测初期产生的“鬼影”。

2.1.1混合高斯模型

混合高斯模型的原理是,为表示图像中每个像素点所具有的特征建立K个高斯模型(K通常取3~5),像素点I(x,y)的取值序列在t时刻可表示为{X1,X2,L,Xt}={I(x,y,i)|1≤i≤t},则像素点Xt通过加权函数表示的概率密度函数为:

(3)

式中:ωk,t表示第k个高斯模型的数学期望;∑k,t为第k个高斯模型的协方差矩阵;η为高斯概率密度函数:

(4)

(5)

其中,α为模型的学习速率。

如果某像素点与K个已知高斯分布无匹配的高斯分量,则重新建立一个高斯分布,并由大到小进行排序,背景模型由上述序列中前L个高斯模型来决定:

(6)

其中,TB为背景模型阈值。

2.1.2形态学运算——膨胀

在图像的形态学运算中,膨胀或腐蚀[12]就是将图像(或图像的部分区域,称为A)与核(称为B)进行卷积。核的形状和大小可以为任意,同时有一个单独定义的参考点。可以把核视为图像的一种模板或者类比成掩码,而膨胀就是求局部最大值的操作。简单来说,膨胀会使目标区域的范围“扩大”,目标边界会向外扩张。所以图像通过膨胀处理可以填补目标区域中产生的某些空洞,同时消除包含在目标区域中的噪声。

图2 图像的膨胀示意图Fig.2 Schematic diagram of expansion principle

2.2 结合阈值自适应提高检测精确度

传统Vibe算法进行目标检测时,匹配阈值半径R和背景模型的更新概率T都是定值,故不能较好地适应复杂场景变化,鲁棒性较差。例如,当更新半径R设置较大时,导致像素值与背景像素值比较接近的前景像素就会被误检为背景像素;而更新半径R设置较小时,部分背景像素会被误检为前景像素,且检测结果中就会出现较多噪声。本算法为每个像素点设置自己的阈值匹配半径R(Px)和背景模型的更新概率T(Px),可根据背景变化复杂程度自适应调整变化。定义为公式:

(7)

式中:I(Px)表示新像素点的像素值;Bj(Px)表示样本像素。用公式(7)中计算新像素点与样本集的方差Lt(Px)来度量背景变化复杂程度。

当背景变化复杂程度较高时,R(Px)应自适应性增大,以规避错误的前景像素值对背景模型的干扰;相反,在背景变化复杂程度较低的稳定场景中,R(Px)应自适应性缩小,算法对场景细微变化的敏感度应增加。故定义公式为:

R(Px)=R(Px-1)×|1-Lt(Px)| .

(8)

当背景变化复杂程度较高时,背景模型的更新概率T(Px)应自适应性降低,可以保持背景模型与实际的一致性;相反,在背景变化复杂程度较低的稳定场景中,T(Px)应自适应性提高,以保证可以准确地检测到目标物体。故定义公式为:

(9)

2.3 算法具体步骤

步骤1视频图像输入。

步骤2背景建模及初始化。在每个像素点的八邻域内随机选择任意一点的像素值存储至当前像素点的背景模型中,并重复N次,则得到初始背景模型M(x),同时为每个像素点建立混合高斯背景模型。

步骤3统计M(x)中与v(x)欧氏距离小于R的像素点的个数,若数量大于最小匹配数Dmin,则将该像素点矩阵值设置为0;若数量小于最小匹配数Dmin,则将该像素点矩阵值设置为1,由此得到初步结果f(x,y).

步骤4对f(x,y)进行形态学膨胀处理得到f′(x,y).

步骤5将图像中每个像素点与对应的K个高斯分布进行匹配判断,将背景图像像素点的矩阵值设置为0,否则设置为1,由此得到结果g(x,y).

步骤6将f′(x,y)和g(x,y)进行逻辑“与”运算得到最终结果h(x,y),其中像素点矩阵值为0的为背景像素点,像素点矩阵值为1的则为前景像素点。

步骤7更新背景模型,并自适应调整阈值匹配半径和背景模型更新概率。

3 实验结果与分析

为验证本文改进算法的有效性,实验使用PETS2009和CDnet中选取的共3段视频数据,并将实验结果分别与经过三帧差分算法、GMM算法、传统Vibe算法所得出的实验结果进行对比。实验软件开发环境为Visual studio 2017,算法程序使用C++并借助openCV4.0.0编写,实验硬件配置为:CPU Intel(R) Core i7-8750H 2.20 GHz,RAM 8G.

3.1 主观性分析

为验证本文算法针对“鬼影”的消除效果,分别对场景一和场景二两段视频数据进行了实验,结果如下。

场景一为一段单目标通过监控画面的视频(Test1),实验结果如图3所示。其中图(a)为视频第15帧原图像,(b)(c)(d)(e)分别为经过三帧差分算法、GMM算法、传统Vibe算法以及本文改进算法得出的检测效果图。可以明显看出,三帧差分算法(b)检测出的前景区域较为模糊,且轮廓不完整;经过GMM算法(c)得出的前景区域轮廓较为完整,但目标内部存在“空洞”;经过传统Vibe算法(d)得出的前景区域轮廓清晰完整,且目标内部无“空洞”,但存在“鬼影”现象;经过本文改进算法(e)得出的前景区域,轮廓清晰,目标内部无“空洞”,也无“鬼影”现象。故经对比可以得出,本算法可快速有效去除“鬼影”。

图3 场景一实验结果对比图Fig.3 Scene 1 comparison of experimental results

场景二为一段多目标通过监控画面的视频(Test2),实验结果如图4所示。其中图(a)为视频第23帧原图像,(b)(c)(d)(e)分别为经过三帧差分算法、GMM算法、传统Vibe算法、本文改进算法得出的检测效果图。可以明显看出,三帧差分算法(b)检测出的前景区域较为模糊,多个目标轮廓已失真;经过GMM算法(c)得出的前景区域轮廓较为完整,但6个目标中有5个目标内部存在“空洞”;经过传统Vibe算法(d)得出的前景区域轮廓清晰完整,且目标内部无“空洞”,但有三个目标出现“鬼影”,且存在较多无关噪点;经过本文改进算法(e)得出的前景区域,轮廓清晰完整,6个目标内部均无“空洞”和“鬼影”现象,且噪点有所减少。故经对比可以得出,本文算法可快速有效去除“鬼影”。

为验证本文算法引入阈值自适应后针对复杂环境的适应性,选取了一段复杂背景环境下拍摄的视频(场景三)数据进行实验,结果如下。

图4 场景二实验结果对比图Fig.4 Scene 2 comparison of experimental results

场景三为一段行人通过监控画面的视频,其中背景环境中存在波动的湖面以及较多摇曳的树叶,背景复杂度较高,实验结果如图5所示。其中图(a)为视频第408帧原图像,(b)(c)(d)(e)分别为经过三帧差分算法、GMM算法、传统Vibe算法、本文改进算法得出的检测效果图。可以明显看出,三帧差分算法(b)检测出的前景区域完全失真,难以辨别目标;经过GMM算法(c)得出的前景区域轮廓较为清晰,但内部空洞严重;经过传统Vibe算法(d)得出的前景区域轮廓清晰完整,且目标内部无“空洞”,但周围摇曳的树叶产生了较多无关的噪声,影响了检测效果;而经过本文改进算法(e)得出的前景区域,轮廓清晰完整,无关噪声较少,复杂环境对检测效果影响不大。故经对比可以得出,本文算法对复杂环境的适应性较强。

图5 场景三实验结果对比图Fig.5 Scene 3 comparison of experimental results

3.2 客观性分析

为了更加客观而全面地评价本文改进算法的检测效果,故选取Precision精度、Recall召回率以及F-Measure评价值三个定量指标来评价检测的性能和实际效果[13]。Precision精度表示正确分类的前景像素点的个数占检测出的全部前景像素点的比值;Recall召回率指标表示正确分类的前景像素点的个数占真实的前景像素点个数的比重;F-Measure评价值则综合考虑精度和召回率2个指标,F-Measure数值越大,反映检测的整体效果越好。计算公式分别如式(10)、式(11)、式(12)所示:

(10)

(11)

(12)

式中:P代表Precision精度;R代表Recall召回率;F代表F-Measure评价值;TP代表被正确检测为前景的像素数量;FN代表被错误检测为背景的像素数量;FP代表被错误检测为前景的像素数量。

对场景一和场景二两组视频序列进行实验后得出4种算法的性能指标统计结果见表1所示。从表1可以看出,本文改进算法在精度和召回率方面与另外三种传统检测算法相比明显较高,同时综合评价指标F-measure较另外三种传统检测算法分别提升了32.34%、21.89%、13.94%.

表1 性能评价结果Table 1 Performance evaluation results

经过本文算法处理后输出的视频图像速率基本与原视频同步,主观来看通过肉眼基本无法分辨延迟。为了更加客观地验证本文算法的实际运算效率,对三组实验视频序列T1、T2、T3分别使用4种检测算法进行多次实验,分别得出相应的平均处理时间,实验结果如表2所示。实验结果表明,本文改进算法在运算效率方面与另外三种传统检测算法基本保持一致,延迟在500 ms以内,基本可以满足实时性。

表2 效率评价结果(平均处理时间)Table 2 Efficiency evaluation results(Average processing time) ms

4 结束语

本文提出一种改进的Vibe算法。在背景建模及初始化阶段,通过结合图像形态学处理并融合混合高斯背景模型消除“鬼影”,并在背景更新阶段引入自适应的更新半径和更新概率来提高算法精确度,使得算法可以适应多目标复杂环境。为验证本文算法的有效性,分别使用三种经典目标检测算法和本文改进算法进行反复实验,得出主观性评价结果和客观性指标评价结果。实验结果表明,在基本保证一定实时性的前提下,本文改进算法可以快速有效地消除“鬼影”现象,对复杂环境适应性较强,并具有良好的检测准确性和可靠性,可广泛应用于视频监控、医疗、遥感等领域。但是本文改进算法在运算效率方面还有待进一步优化和提升,这将是今后工作的重点和研究方向。

猜你喜欢

像素点前景像素
像素前线之“幻影”2000
图像二值化处理硬件加速引擎的设计
我国旅游房地产开发前景的探讨
基于局部相似性的特征匹配筛选算法
四种作物 北方种植有前景
“像素”仙人掌
离岸央票:需求与前景
一种X射线图像白点噪声去除算法
基于canvas的前端数据加密
量子纠缠的来历及应用前景