APP下载

基于灰度投影运动估计的ViBe改进算法

2021-01-26唐悦吴戈

关键词:鬼影前景背景

唐悦,吴戈

(长春理工大学 电子信息工程学院,长春 130022)

在近几年的发展中,运动目标的检测受到了许多关注,逐渐成为计算机视觉领域和视频监控处理领域研究的热点话题,应用范围也是十分的广泛,譬如道路视频监控、机器人导航、车辆辅助驾驶、海洋监测和车辆行为分类。运动目标检测是后续运动目标行为识别、跟踪、分类的基础。因此,要从道路上拍摄的视频序列中准确地识别移动的目标就变得十分重要,由于道路上难免会有场景变化、光照变化、阴影等许多不确定的问题,导致检测实际目标的任务变得越来越困难。

ViBe算法计算量比较小而且速度快,并对图像中产生的噪声有一定的鲁棒性,检测效果相比于其他的算法有一定的优势。但是它的缺点也十分的明显,诸如鬼影、阴影、目标不完整等问题。针对这些待解决的缺点,文献[1]通过结合视觉显著性判断背景模型中存在的鬼影目标,通过判断背景模型中每个像素点的鬼影程度,结合模糊准则自适应改变时间子采样因子,加快消除鬼影的速度。文献[2]通过扩大了样本值的范围,避免了重复选择样本。每个像素的邻域更新采用隔行更新的方式,防止了错误分类的扩散。小物体丢弃和孔填充策略用于消除噪声的影响。同时增加了阴影去除模块,提高了阴影存在时算法的鲁棒性。文献[3]提出在背景模型初始化阶段采用像素的菱形邻域来简化样本信息;其次,在前景运动目标提取阶段引入自适应分割阈值来适应场景的动态变化;最后,在更新阶段提出背景重建和调整更新因子方法来处理光照变化的情形。文献[4]提出ViBe算法结合三帧差法对抑制鬼影及减少空洞方面的改进,同时将显著性检测运用到运动检测中,检测的效果明显,具有较高的鲁棒性。文献[5]采用多帧连续图像初始化背景模型,降低了单帧图像初始化所产生的“鬼影”对前景检测精度的影响;在匹配过程中,引入自适应的匹配阈值,克服了单个的全局阈值对动态背景适应能力差的问题;最后,在更新过程中引入空间一致性判断与模糊准则来减少算法的误检,提高了算法的鲁棒性。由于ViBe算法[6]是对第一帧进行初始化,若第一帧将背景运动目标错误的认为前景,在后续的分割和提取前景目标时,鬼影的出现会给目标的正确检测造成干扰对。文献[7]提出了一种基于改进三帧差法和边缘检测法结合的运动车辆检测算法,以解决三帧差法检测车辆轮廓不完整的问题。然后将改进三帧差法融合混合高斯背景建模得到最后的结果,以解决单一采用三帧差法检测到的运动车辆内部信息不太完整,和单一采用混合高斯背景模型对光照敏感的问题。提高了算法对车辆检测的准确性以及对外部光照变化的适应能力。文献[8]提出了改进的灰度投影算法,能够估计运动背景的平移、缩放等运动参数,并且准确地在动态背景下对运动目标检测。文献[9]提出了一种基于颜色特征和轮廓特征相融合的检测方法来提高对于目标检测的准确性,并对所需的阈值改为动态阈值,并对阈值的确定算法进行了改进,从而提高了检测效率。

本文针对检测到的运动区域经常有“鬼影现象”的出现,以及背景发生变化时产生的干扰会对检测的前景目标图像有误检现象,提出了一种基于阴影运动估计的ViBe算法改进,在运动区域的目标进行检测时可避免鬼影、抗动态背景模型中干扰等方面有很好的优势,可以准确的在动态背景下检测出运动目标的位置信息。

1 ViBe算法

1.1 前景检测过程

采集到视频图像中的背景图像,通常被定义静止的或是移动非常缓慢的目标,前景图像则和背景图像不同,前景图像是不断有连续性运动的目标,前景检测算法也相当于一个分类问题,判断全部的像素点是前景点还是背景点。

ViBe为所有背景模型中的像素点提供了一个样本集,该样本集中的像素值是对应像素点之前的像素值和相邻点的像素值。然后比较之后每一帧中的新的像素值和其相邻点的像素值。每一帧中的新的像素值和样本集中的像素值进行比较,如果像素值相差不大,就认为该点为背景。

图1 ViBe在二维颜色空间(C1,C2)中的欧氏距离

坐标轴上小黑色实心圆V1,V2,V3,…,VN表示在点x处样本集中的N个像素值,坐标轴上小空心圆点V(x)表示还需要分类的某一帧在点x处的像素值。将一个SR(V(x) )以小空圆心点V(x)为中心,R为半径的区域。

将SR(V(x) )和背景模型样本集的交集记为U,可用公式(1)表示,比较待分类像素在x点处的像素值V(x)与背景模型的相似度。当U中的元素个数大于定义的阈值#min时,说明待分类像素点和背景模型相似度较高,则认为该点为背景点,反之为前景点,可表示为:

为了使背景模型适应缓慢运动的背景变化,背景模型中样本的存在时间是用指数的单调衰减来近似表示的,这使得样本的衰减平稳。同时使用了二次抽样,使得在样本有限的前提下还可以代表无限时间的样本特征[10]。

ViBe背景模型是否准确,主要从三方面的角度出发,第一取决于样本集个数N,第二取决于半径R,第三取决于阈值最小值(#min)。经过多次实践,发现当N值为20,R取值为20,#min取值为2的情况下,通常得到的效果是较好的。一般情况下没有必要改变各背景模型中N、R、#min的值,几乎都是确定不变的。

ViBe与其他算法不同之处主要在于两个部分:背景模型初始化和背景模型更新。

1.2 背景模型的初始化

背景模型初始化即背景模型的建立,有些检测算法需要学习输入的连续多帧的视频图像,若视频图像的背景发生了变化,则需要重新花费较多的时间对背景进行再一次的学习,但是这样就不能保证视频检测的实时性。

ViBe算法与其它算法不同,它只需要使用一帧视频图像来建立背景模型。通常在视频序列中背景的选取为第一帧图像,这为输入的视频图像的每一帧中所有像素点提供一个样本集,样本集中为该点原本的值和随机抽取的与该点相邻的像素点,如下所示:

其中,M0(x)表示初始背景模型中的像素点的样本集;NG表示相邻点。这种背景模型初始化的优点是计算量小且速度快,而且在背景突然变化的情况下能够被及时处理。它在建立背景模型时不需要花费大量的时间,并且还能在检测到背景变化比较急剧时,会摒弃最初建立的模型,采用发生变化后的第一帧图像对背景模型进行重新的构建,在完成初始背景模型的构建后,接下来是对背景模型进行更新。

1.3 背景模型的更新策略

为了达到让背景模型在不断变化(如背景物体遮挡、光照变化等)的情况下仍然可以保持很好的鲁棒性,接下来对背景模型进行不断更新。下面是几种背景模型更新策略:

(1)普通更新策略

两种普遍使用的背景模型更新策略:

①保守更新策略:前景点不会被用于对模型进行填充。

这个策略的缺点在于会产生Ghost区域。在初始化的过程中,实际上是静止的物体在检测的时候有时也会被错误的检测为运动物体,如果采用的是保守更新策略,静止的物体会则视为运动的物体。

②Blind策略:前景和背景二者都可以被用来更新背景模型。

这样的策略缺点在于,当物体的移动速度非常缓慢时,则会被判断成背景,无法检测出来运动的目标。

(2)ViBe算法的更新策略

ViBe算法采用的更新策略是:保守的更新策略+前景点计数法方法+随机子的采样。

前景点计数法:将所有的像素点进行统计,如果某一个像素点在检测的过程中连续多次被检测为前景,就把这些像素点更新为背景点;

随机的子采样:如果将输入的视频序列中的每一帧都去更新背景模型中的全部像素点,这个更新的过程也是需要很长时间的,当其中的一个像素点被归类为背景点时,就用的概率去更新背景模型,φ是时间采样因子,一般取值为16。

(3)ViBe算法具体更新的方法:

随机选取了要更换的样本集中的样本值,并将要替换的样本值进行更新,对这些要更换的样本值进行随机的更新,可以确保样本值平滑的生命周期。一个样本值在t时刻不被更新的可能性是(N-1)/N。假如在确保时间是连续的前提下,那么在经过时间dt后,样本值不发生变化的可能性为:

也可以写作:

上面的公式表明,样本值在模型中是否更新,与时间t无关,无论样本值在模型中存在的时间多长或多短,它被更新的概率是恒定的。

2 基于灰度投影运动估计的ViBe算法改进

本文提出的算法流程图如图2所示。首先结合了三帧差分法和ViBe算法对运动目标进行了实时检测,接下来采用阴影运动估计的方法估计两帧图像之间的缩放参数和平移参数,根据这两个参数映射到当前的背景图像中,实现了背景图像的补偿,得到了真实的背景,但是在拍摄视频图像的过程中,背景可能还会由于外界的因素发生(光照不均匀)变化,所以使用了自适应阈值估计判别检测的目标是否为前景目标,能够使得非静态背景下的模型更加稳定。

图2 前景目标检测流程图

2.1 结合三帧差分的ViBe运动检测算法

三帧差分法具有算法的时间复杂度低、运行速度快、对光照并不是十分的敏感,而且适用性也比较好,不会产生鬼影现象等优势。但是在检测的过程中会出现空洞的现象,通过将三帧差分法的过程结合到ViBe算法中对其进行改进,以此能够达到除外界因素的影响。对于ViBe算法容易产生“鬼影”现象,除了采用不同的更新策略之外,还通过将三帧差分法引入到ViBe算法中,将两种方法结合可以快速消除“鬼影”。在传统的ViBe算法中要经过几十帧或者几百帧才能消除“鬼影”现象,但也不能够彻底消除。若要结合三帧差分的ViBe算法,不仅可以消除鬼影现象,而且还可以自适应的选择检测的方法。

2.2 灰度投影运动估计

灰度投影是用图像的总体灰度分布的变化规律,获得当前输入帧图像相对于所选取的参照帧的运动矢量,它将图像投影到x和y方向上,并在这两个方向上形成投影矢量,为了能够获得偏移量,也是通过匹配图像投影矢量,在对图像进行预处理和滤波环节处理之后,视频序列的帧将映射成为灰度值,用形成的一维信息表示成为二维图像信息。

如果图像的背景发生了变化,则该图像的灰度值也会随着背景的平移而平移,接下来需要计算第n帧和参照帧图像的行和列投影曲线,同时结合参照帧图像曲线的峰值,确定当前帧图像的相对列、行的位移向量值,计算过程如下:

式中,Gk表示第k帧图像的灰度投影值;Gr表示参照帧图像的灰度投影值;m、cl分别表示比较相关参照位移矢量的搜索宽度、选取匹配矢量的长度。

图像的投影矢量会出现拉伸和缩短两种情况,本文将这两种情况称为缩放,本文不使用传统的方法,因为这并不能求解出矢量尺度,而使用的是缩放投影矢量特征,并设Gk(j′)、Gr(j)分别为缩放后和参照帧图像的投影矢量。如果假设α是缩放因子,则如下所示:

式中,n为因缩放参数而引起的噪声;Gk(j′)和Gr(j)二者之间的误差值如下:

可根据对数变换的特性,将乘法运算转换为加法运算,利用对数变换的方法,将投影矢量映射到一个新的对数空间。

如果G1(x) =G2(αx),那么则有下式的变换:

通过这种变换,可以把矢量的伸缩变换为平移,再对变换后的矢量进行相关的运算,即可将缩放参数c求解出来。

利用灰度投影估计法求出了第n帧相对于第n-1帧的背景图像缩放参数,首先将第n-1帧图像配准到第n帧图像,类似的方法将第n帧图像配准到第n+1帧图像,将其做差分运算可得到背景图像,为了获得更准确的背景图像在二值化处理的过程中采用了自适应阈值估计的策略。将得到的真实的背景作为检测运动目标的背景模型,用其建立背景采样样本集,从第一帧视频图像开始检测运动目标。

3 实验仿真结果及分析

如图3所示,分别是ViBe算法、结合三帧差分的ViBe算法以及本文算法对前景目标检测的实验结果图。图3(a)是从视频中截取的第300帧的原始图片。图 3(b)、图 3(c)、图 3(d)对ViBe算法、结合三帧差分的ViBe算法、和本文所提出的算法进行测试。可以看出本文改进后的算法在单目标场景下可以准确地检测出前景运动目标的位置,并且可以避免“鬼影”的出现。图3(b)是ViBe算法所检测出的前景目标图像,ViBe算法表现出第一帧建模的特点,保留了第一帧图像所包含的所有前景信息,造成了误检,形成了“鬼影”的现象。图3(c)是结合是三帧差分的ViBe算法检测的前景目标图像,通过算法的优化,该算法提取的前景目标图像即使在一定程度上减少了前景的信息量,但是仍然存在少量的运动目标信息。图3(d)是通过本文算法提取出的前景目标图像,前两者算法所提取的前景目标图像都存在着运动目标的信息,而本文算法提取到的前景目标图像完整清晰,实验结果表明本文算法可以提取出完整、准确的前景目标图像,可以为后期的目标识别与分类的准确性提供了基础性的保障。

图3 三种算法在单目标运动场景下的实验结果

图4在三种目标的运动速度不同的情况下对算法的准确性进行了实验仿真。由图4的仿真结果可以看出,行人、电动车的运动速度不相同,这样会影响算法对前景图像检测的准确度。对于传统的ViBe算法,如果视频帧中的第一帧图像存在运动的目标,在接下来的检测过程中若运动的目标速度较慢,由图4(a)所示一定会检测到“鬼影”,造成误检,结合三帧差分法的ViBe算法在对运动目标的速度进行检测时,在既有人又有车的环境下进行仿真测试,当运动目标快慢不一样的情况下,“鬼影”的像素面积比ViBe算法产生的“鬼影”的像素面积减少了许多,而且行人的鬼影也消失了。本文所提出的算法进行的试验测试,由图4(d)的实验结果图可以看出本文的算法在运动目标既包括有人又有车的情况下,相比前两种算法可以更准确的检测到前景目标图像以及相应的位置信息。

图4 三种算法在多目标运动场景下(人和车)的实验结果

图5是在多目标运动的场景下对传统的ViBe算法、结合三帧差分法的ViBe算法以及本文所提出的算法进行的试验测试,由图5可以看出本文的算法在运动目标明显增多的情况下,也可以准确的检测到前景目标图像以及相关的位置信息。

图5 三种算法在多目标场景下(全部车辆)的实验结果

图5(a)为原视频中第2 600帧图像,图5(b)为ViBe算法检测出来的结果,由于在拍摄的过程中相机存在抖动,在对图像进行检测时左上角会有误检的目标出现,在检测过程中会造成分不清哪一类是前景运动目标,会将部分背景图像目标检测为前景运动目标,以及鬼影检测成为前景运动目标,图5(b)和5(c)检测的效果存在着差异,图5(d)中可以清楚地看到本文通过灰度投影运动估计的ViBe改进算法在对前景运动目标进行检测的过程中彻底消除了鬼影以及由背景图像误检的前景运动图像,检测出来的目标更加完整和清晰。

4 结论

为了验证本文算法在交通场景中的应用效果,选用了5组测试视频进行对比试验,并且与传统的ViBe算法以及文献[4]提出的ViBe算法结合三帧差法,对抑制鬼影及减少空洞方面有了改进,同时将显著性检测运用到前景目标检测中,效果明显,具有较高的鲁棒性。仿真实验显示本文算法解决了ViBe算法消除“鬼影”速度慢和背景图像变化等问题,可得到更完整的前景目标,在智能视频监控系统领域有良好的市场应用前景。未来进一步工作可以对前景运动区域着手采用深度学习的算法对运动目标实时检测追踪,还可以考虑复杂环境下对多运动目标检测进行研究。

猜你喜欢

鬼影前景背景
“新四化”背景下汽车NVH的发展趋势
我国旅游房地产开发前景的探讨
《论持久战》的写作背景
四种作物 北方种植有前景
离岸央票:需求与前景
如何消除胶印“鬼影”?
晚清外语翻译人才培养的背景
基于单应性矩阵的图像拼接方法的对比分析
量子纠缠的来历及应用前景
实时的静止目标与鬼影检测及判别方法