基于自适应ViBe算法的动态背景运动目标检测*

2023-11-20 07:14汤旻安王晨雨罗引航
传感器与微系统 2023年11期
关键词:鬼影阴影前景

汤旻安,王晨雨,罗引航

(兰州交通大学自动化与电气工程学院,甘肃 兰州 730070)

0 引 言

随着计算机视觉领域的发展,运动目标检测技术的运用逐渐成熟。尽管运动目标检测技术在国内外学者的大量研究中得到了快速发展,但它仍然是一个活跃的研究领域[1]。近年来,国内外科学家提出了许多目标检测算法,如较为常用的帧差法[2]、背景差分法[3]、光流法[4]等传统算法,以及快速发展的深度学习算法[5,6]。与深度学习不同的是,传统算法因其训练样本要求少、实时性强、算法操作简单等优点仍被广泛应用[7]。其中,背景差分法中的ViBe(visual background extractor)算法和高斯混合模型(Gaussian mixed model,GMM)[8]是较为常用的运动目标检测算法[9]。

ViBe算法[10~13]具有模型简单、计算量小、处理速度快和检测精度高等优点[14]。然而,ViBe 算法也带来了诸如鬼影、背景适应性差和阴影等问题。针对这些问题,研究人员对ViBe算法进行了大量改进。文献[15]使用样本集和当前像素之间的最小距离来自适应调整半径阈值,但在处理像素波动较大的情况下效果并不显著。文献[16]通过计算直方图的相似性来消除鬼影,并使用高斯混合阴影模型和YCbCr空间颜色信息来消除阴影,可以较好地过滤掉不相关的像素信息,然而,当图像中存在噪声和场景变化时,算法易将部分前、背景像素误判。文献[17]通过设置像素的生命长度区间,并根据区域之间像素的最大类间方差调整阈值来消除鬼影,这可以更好地区分前景和背景,但该算法需要花费大量时间来处理鬼影现象,实时性差。

为了解决传统算法不能有效消除鬼影现象和自适应处理动态背景影响的问题,本文提出了一种基于自适应ViBe算法的动态背景下运动目标检测方法。

1 传统ViBe算法原理

传统的ViBe算法是一种包括背景建模、前景分割和背景样本更新的目标检测算法。与其他算法不同,ViBe算法采用随机替换背景像素样本的更新策略,在一定程度上可以应对像素变换的不确定性[18]。该算法的具体步骤如下:1)背景建模:提取视频序列的第一帧;然后对每个像素的8个邻域进行随机采样,并将采样后的像素存储在相应像素的样本集中。2)前景分割:在二维欧氏空间中,计算当前帧中每个像素与相应背景样本像素之间的欧氏距离,如果大于半径阈值,则匹配数将增加1个;当匹配数大于匹配阈值时,像素为背景,否则为前景。3)背景样本更新:ViBe算法使用保守的更新策略,当一个像素被判断为背景点时,它会随机替换相应背景样本中的一个像素;如果图像中的像素被连续判断为前景,则该像素被更新为背景。

2 改进ViBe算法

2.1 背景动态建模

在对第一帧的背景建模时,ViBe算法因将运动目标区域采样为背景像素而产生鬼影现象。文献[19]引入了帧差运算来提取局部真实运动目标区域。然而,帧差法检测到的目标区域受帧差间隔影响较大。在此基础上,本文结合感知哈希算法与频率调谐(frequency tuning,FT)算法填充目标区域。背景动态建模的具体步骤为:

1)哈希值分类:将序列图像压缩为64 级灰度图像,计算图像的平均灰度值。然后,将像素值大于平均值的像素记录为1,否则记录为0,并且通过一定顺序组合获得16 位十六进制数据。最后,按视频帧的顺序将每个帧图像(从第二帧开始)与前一帧的哈希值序列进行比较。如果图像间的汉明距离为0,则标记为同一组,否则标记为新的数据组,将该序列分为n组,H1,H2,…,Hn。

2)上下限阈值设置:记当前帧Ik的哈希值分组为Hm。根据不同场景条件,设置哈希值的区间阈值p,往往目标运动越快,区间阈值取值越大。与此同时,设置上限阈值TU以及下限阈值TL,以增强改进算法的鲁棒性,TL≤P≤TU。

3)多帧差分与分割:将当前帧Ik分别与分组Hm-p,Hm-2p中的最后一幅图像Il1,Il2之间执行差分运算,并由Otsu算法得到分割阈值进行分割,得到差分图像ID,ID=Imb(Ik12)。其中,Ik1=Ik-Il1,Ik2=Ik-Il2,Ik12=Ik1∩Ik2;Imb(·)为使用阈值对图像进行二值化处理。

4)或运算:获取当前帧的显著性图像IS,通过Otsu 算法得到分割后的图像IC。由图像ID与图像IC之间的或运算,得到真实的目标区域图像IF,IF=ID∪IC。

5)背景区域填充:按照传统ViBe算法获得当前帧的运动目标图像IV。然后,初始化图像中IF为假和IV为真的像素,将背景像素填充入当前帧图像。

2.2 自适应前景分割

文献[20]定义了图像中像素的递归最小距离,并将最小距离与半径阈值进行比较,以自适应地调整半径阈值。最小距离方程如式(1)所示

式中di(x,y)图像Ii中像素在(x,y)处的最小距离,dmin(x,y)为当前帧中像素值与其对应背景样本集中像素值之间的最小欧氏距离,N为背景样本集中元素个数。

如式(1)所示,本文使用窗口中的像素标准偏差表示区域的灰度信息,结合最小距离计算背景复杂度

式中μ(x,y)为窗口中像素的平均值,I(x,y,n)为像素I(x,y)及其八邻域像素值,如图1所示。α1和α2分别为像素在时间和空间上的权重,均取值为0.5。

图1 动态窗口

固定的调整因子可以在一定程度上减少背景干扰,但不能动态调整每个像素的阈值。文献[21]采用分散系数(一组数据的标准偏差与其平均值的比率)代替固定的调整因子,并用空间一致性系数(窗口中背景像素与像素总数的比率)调整背景模型更新率可以使区域划分更加精确,因此自适应阈值R(x,y)和更新速率φ(x,y)定义如下

式中b为比例因子,λ为设置的固定阈值,SCC(x,y)为空间一致性系数,φ为更新率调整因子。

自适应阈值分割可以滤除前景图像中以点的形式存在的噪声之外的大部分背景干扰。本文根据前景图像的连通域信息进行二次判断,滤除连通域像素个数小于Ta的区域,并通过形态学处理填充目标区域中的孔洞。

2.3 阴影消除

由于阴影与计算机视觉中的目标相同,具有明显的运动规律,因此很难去除。本文算法将先通过图像的颜色信息进行预处理。首先,将当前帧和真实背景图像灰度化。将当前帧图像矩阵除以背景图像矩阵,得到比例图像矩阵。然后,将比例图像像素值小于η的像素分割出来获得图2(c)。由于动态背景的影响,本文滤除了连通域较少的区域。对图2(c)进行二值化以获得待检测阴影区域,如图2(d)所示。之后,将当前帧图像在HSV 空间中进行阴影检测,滤除待检测区域为真而HSV 阴影检测为假的区域,检测方差如式(7)所示。在滤除步骤后,如图2(e)中所示,确定了新的待检测阴影区域。最后,将待检测区域的像素值乘以255,并使用拉普拉斯算子计算像素梯度。梯度值较小的像素区域为阴影,像素值置0,并且使用形态学进行填充,获取如图2(f)所示的目标图像。式(7)如下

图2 仿真结果

式中(x,y)和(x,y)分别为当前帧和背景图像亮度通道中的值。

3 实验仿真

实验平台为一台64位Windows系统和8 GB内存的计算机。实验在MATLAB 2018b 软件中进行,视频材料选用CDW2014数据集中部分剪辑片段。

在自适应前景检测部分中,本文选用传统的ViBe 算法、GMM算法、文献[15,20]中的算法与本文改进算法进行比较。ViBe算法预设的半径阈值R=20,背景建模样本数N=20,匹配阈值Tp=2,更新速率φ=16,选定的动态窗口均为3 ×3,及W=3,H=3。TL和TU的值通常根据帧间对象的移动速度来选择,在本文中,它们的选取区间为[2,5]。GMM算法选用的是MATLAB软件Vision工具箱中的内置算法,混合模型选择了3个高斯分量。

3.1 鬼影消除

选择CDW2014数据集中公路(highway)部分视频进行实验仿真。为了检测鬼影现象,视频材料将有运动目标的图像作为首帧。实验仿真图像如图3 所示。可以看出,在背景建模之后,算法的前几帧的前景检测效果相对较差,因此在图3(a)和图3(b)中的前景区域中缺少大量像素。图3(c)之后,算法的检测效果逐渐稳定,传统ViBe算法引起的鬼影现象也更加明显。与传统ViBe 算法使用样本集像素确定当前像素不同,改进后的算法结合了当前帧的显著性信息和帧差信息,因此在图3(d)中可以看出,改进后的算法滤除了大量的鬼影区域。本文提出的检测算法能够较好地滤除鬼影现象,同时保留大部分前景目标信息。

图3 仿真图像

3.2 自适应前景检测

本节选择CDW2014 数据集中的办公室(office)、独木舟(canoe)、秋天(fall)、天桥(overpass)和行人(pedestrians)图像序列进行仿真。实验仿真结果如图4所示。

图4 前景检测图像

从实验结果中可以看出,传统的ViBe算法不能处理动态背景的干扰和运动目标的阴影。在office 场景中,由于背景光照不均匀等因素的影响,造成了一些前景区域的缺失,而本文的算法相对保留了更多的目标信息。通过连通域的二次检测和形态学处理,减少了背景像素干扰和空洞现象。在canoe和fall场景中,图像中的动态背景干扰更为明显。ViBe算法和文献[15,20]中的算法都保留了大量目标信息。但在处理背景干扰时,本文算法滤除了较小的像素点,更加突出了运动目标特征。但由于选择了较小的连通域阈值,图像中依旧保留了一些背景像素。在overpass和pedestrians 场景中,目标检测受到了背景和阴影等因素的影响。因为阴影的运动特性,ViBe、GMM 和文献[15]都完全检测到了阴影,而文献[20]和本文的算法都对阴影过滤有一定的影响。文献[20]主要使用LBSP 功能滤除阴影,因此在滤除阴影时很容易使前景像素部分缺失,从而影响图像质量。本文算法通过参数调整和形态学补偿,逐层滤除阴影,显示出比文献[20]更好的前景检测效果。

本文使用查准率(Precision)、召回率(Recall)和F-measure值来衡量几组图像质量,各指标的计算方法如下所示

式中 TP 为正确检测前景的点数,TN 为正确检测背景的点数,FP为错误检测前景的点数,FN为错误检测背景的点数。

从表1中的数据可以看出,传统的ViBe 算法和GMM算法背景适应性差,不同场景下图像准确率和召回率波动大,检测效果不稳定。相比之下,文献[20]中的算法和本文中的算法相对稳定,但本文算法的Fm测度相对较高,检测出的图像处理质量更好。

表1 图像质量指标

4 结 论

针对前景检测中鬼影、背景适应性差和阴影等问题,提出了改进的自适应ViBe 算法。改进算法结合单帧图像信息消除鬼影,根据背景的复杂程度自适应调整分割阈值,利用像素颜色信息、像素梯度信息和矩阵信息滤除阴影。实验表明,改进后的算法能够快速消除鬼影现象,更精确地检测出动态场景中的目标区域。

猜你喜欢
鬼影阴影前景
我国旅游房地产开发前景的探讨
四种作物 北方种植有前景
你来了,草就没有了阴影
离岸央票:需求与前景
让光“驱走”阴影
如何消除胶印“鬼影”?
基于单应性矩阵的图像拼接方法的对比分析
量子纠缠的来历及应用前景
阴影魔怪