一种提升鬼影抑制性能的改进视觉背景提取算法

2024-03-10 09:54张义飞
郑州航空工业管理学院学报 2024年1期
关键词:鬼影时域背景

杜 瑾,苏 雨,张义飞,邹 坤

(1.中国空空导弹研究院,河南 洛阳 471000;2.空基信息感知与融合全国重点实验室,河南 洛阳471000;3.西北工业大学,陕西 西安 710072;4.中航光电科技股份有限公司,河南 洛阳 471000)

0 引 言

相机等摄影录像设备的广泛使用和互联网信息的快速传播带来了大量视频数据,目标在这些数据中占较小比例却包含了大部分信息量[1]。作为处理视频的计算机视觉任务的第一步,运动目标检测为视频中运动目标“在哪里”的问题提供可靠信息,可以高效提取视频数据信息,在智能视频监控、智能交通系统、航空航天、国防军事等需要自动分析视频的领域有着潜在经济价值和良好应用前景[2,3]。运动目标检测的任务是确定视频帧中运动目标所在区域,即分离视频中的前景运动目标和背景,为视频每一帧生成指示运动目标的二值图。

背景减除法是较为常用的运动目标检测算法,其关键步骤是将背景图像与当前图像的像素、区域等进行比较,从而获得运动目标所在区域[4]。依照建模方式,背景减除法可分为基于参数的方法、基于样本的方法、基于低秩的方法和基于深度神经网络的方法[2]。基于样本的背景减除法应用较为广泛,通常是通过收集一系列样本值来建立背景模型。Barnich等[5]提出的视觉背景提取算法(visual background extractor,Vibe)是较流行的基于样本的方法之一,其核心是利用第一帧图像内各像素的邻域像素产生背景样本,通过判别当前帧各像素点和背景样本的相似度来区分前景和背景像素。该算法只需利用一帧图像的邻域像素完成初始化,且计算量小、内存占用小,由于其快而准的检测能力而受到越来越多的关注[6]。

原始Vibe 算法采用保守更新的方式,不能及时更新背景模型以适应背景变化,因此利用Vibe 算法检测运动目标的挑战之一是易引入“鬼影”[7]。如果Vibe 的背景样本中包含运动区域像素,当运动目标离开该区域时,该区域一系列联结的像素点会被误判为前景运动目标,即“鬼影”(“ghosts”)。因此,若视频初始帧包含的运动目标或原本静止的运动目标开始运动,会出现鬼影现象,即原本属于背景的像素被错误分类为前景像素。每帧检测结果中的鬼影作为虚假目标,其所在区域的像素在检测结果中属于对运动目标的误检像素,且可能与真实目标区域的像素粘连,导致难以将视频帧中的前景运动目标准确提取出来,这会对运动目标检测的后续任务造成干扰[8]。如何快速有效地消除鬼影是运动目标检测算法需要解决的问题之一[9]。本文对这一问题进行研究,提出使用时域区间参考模块来已知鬼影,以达到准确提取运动目标的目的。

针对鬼影问题,文献[7]、文献[10]和文献[11]都提出在背景模型中加入计算像素被判定为前景次数的模块,但该方法需依据经验提前设定全局计数阈值,对复杂场景适应性较差。利用鬼影区域与运动目标区域的邻域特性存在差异(如方差[12]、直方图[6,13,14]等),可以确定鬼影像素点,但此类方法对时间信息利用不足。考虑到初始化背景样本中包含运动区域像素是引入鬼影的因素,文献[11]和文献[15]都采用前几帧作为初始化背景样本选取的范围,使得初始化背景模型包含背景信息,但该方法对于后续视频帧中原本静止的目标转为运动状态产生的鬼影抑制效果较差。上述方法对Vibe 算法的改进方式主要可分为两类,或是在Vibe 算法背景初始化阶段利用视频某几帧来扩大背景样本抽取范围,或是利用一定的手段确定鬼影区域再对其进行处理[3]。为充分利用视频帧序列的时空信息,本文将利用多个视频帧与判别鬼影的改进方式综合考虑,提出利用时域区间内的像素信息来区分鬼影像素与运动目标像素,在识别出鬼影像素后将其划分为背景像素,从而缓解鬼影现象。

本算法研究对象是视频中的运动目标,因此选择运动目标检测常用的CDnet2014[16]数据集中的视频序列作为实验对象。本文提出的TIR-Vibe 算法相比原始Vibe 算法加入了时域区间参考(temporal integral reference,TIR)模块,该模块利用连续视频帧区间内同一位置像素的统计值,以该统计值作为二次判别前景像素的参考依据,通过比较当前帧前景候选像素与参考值的差异来识别鬼影像素,从而去除误判为前景的鬼影像素,最终实现对视频序列中运动目标的检测。

1 Vibe算法

Vibe 算法是一种基于样本一致性进行建模的背景减除法,本文为缓解原始Vibe 算法带来的鬼影问题,加入了时域区间参考模块来改进Vibe算法。

1.1 背景模型及其初始化

Vibe 算法为每个像素建立的背景模型M(x) ={v1,v2,…,vN}为N个背景样本的集合(N取值为20 时效果最好[5]),模型建立在图1 所示的2D 欧式颜色空间(C1,C2)内,其中,v(x)为当前像素,vi为第i个背景样本,图1中展示了N= 6时v(x)的背景模型,其中每个黑色实心圆表示v(x)的每个背景样本[5]。与其他常用的背景减除法不同,Vibe 算法根据邻近像素具有相似性的思想,只需一帧图像即可完成模型初始化。对于第一帧图像中的各像素,其背景模型是通过在其邻域中随机选取N次像素填充而得到的。

图1 像素v(x)的背景模型

1.2 像素判别

与其他背景减除法的判定思想相同,V i b e 算法根据像素与背景模型的相似程度来判定像素为背景或者前景,其判别指标是距离阈值R和决策阈值#min。具体而言,如图1 所示,在当前像素v(x)的所有背景样本中,如果样本在以该像素为中心、半径为R的圆内(满足dist(v(x),vi)<R),则认为像素与该背景样本匹配,这样的样本的个数记为#R,即#Rv(x) =#{SRv(x) ⋂{v1,v2,…vN}}。然后,将#R与设定好的决策阈值#min比较,如果#R小于#min,则判定其为前景像素,否则认为该像素与其背景模型相似程度较高,把该像素分类为背景像素,并更新其背景模型[5]。

1.3 背景更新

依据是否将前景像素点包含到模型中,背景减除法更新机制分为保守更新机制和盲目更新机制。保守更新的模型不包含前景像素,但在静止的背景物体突然开始移动的情况下(比如,停着的车开始行驶)会引起“死锁”,即被错误分类为前景的背景样本并不会被加入背景模型中;盲目更新机制会把前景像素包含进背景模型,但同时也意味着不能有效检测出移动速度很低的运动目标。Vibe 算法采取的是保守更新机制,并引入无记忆更新、随机时间子采样和邻域像素空间传播的样本更新策略。如果某个像素经判别被认为是背景像素,则从它的背景模型中随机抽出一个样本替换为当前像素,而不是“先进先出”的替换方法,这种无记忆更新的方式保证了每一个样本更新概率相同,都有指数平滑衰减寿命,从而提高算法的鲁棒性[17]。由于在现实场景中,并非需要更新每一帧像素的每一个背景样本,因此,Vibe 引入了随机时间子采样,并引入时间子采样因子Φ(Φ = 16)[5]。出于空间一致性的考虑,在更新某个像素的背景模型的同时,其邻域像素的背景模型也会被随机更新,即空间扩散。综合以上策略,若v(x)被判定为背景像素,则以1/Φ 的概率随机选取背景模型中的一个样本并用该像素值代替样本值,同时以相同的概率随机替换其邻域像素的背景样本。

2 用于抑制鬼影的时域区间参考

2.1 鬼影问题

为说明“鬼影”问题,截取CDnet2014 的baseline视频组中highway 视频序列第1000 帧以后的序列帧,即以原1001 帧作为新视频序列初始化帧。由于highway 序列第1001 帧中含有运动目标,当使用原始Vibe 算法时,这些目标区域像素会被包含到初始化背景样本,使得后续帧中该区域被误检为前景。如图2所示,对第1001帧对应groundtruth图中的运动目标用外接矩形框指示,同样位置和大小的方框在后续第1201帧的检测结果图对应的区域内出现鬼影,可以看出,经过200帧后原始Vibe算法仍未完全消除鬼影像素。

图2 “鬼影”现象

如前所述,因Vibe 算法采取了保守的背景更新方式,所以易出现“鬼影”问题,尽管其样本更新策略可使鬼影像素慢慢吸收进背景模型中,但经过较多帧数后才可将鬼影区域完全消除,对检测准确度不利。本文基于视频帧序列中背景部分占有较大比例的规律,使用一定长度时域区间内多个连续视频帧的像素统计值获得背景参考,根据像素值与背景参考的差异区分出前景像素与鬼影像素,并将鬼影像素归为背景像素,以实现对鬼影的抑制。

2.2 时域区间参考

对于一个视频帧序列,将其按照选定的时域区间长度划分为若干区间,例如,一个200 帧的视频序列按照25 帧的时域区间长度将划分为8 个区间。在时域区间内,均值和众数在一定程度上可反映像素值时间分布的总体情况和出现频次,而中位数可以降低异常像素值的影响,本文的时域区间参考模块综合利用这些统计数。在本文提出的时域区间参考模块中,使用每一区间内的每个视频帧在同一位置处的像素值组成该位置像素的时域区间集合,综合使用取均值、取中位数等统计方式对该集合进行处理,获得该集合的像素统计值,该像素统计值即该位置处像素在该区间内获得的时域区间参考值,以该值作为辨识鬼影像素与前景像素的背景参考值。通过对视频帧每个位置处像素作上述统计学处理,便可获得对应的时域区间参考帧,时域区间参考帧相当于对视频画面中运动目标所占区域做了一定的时域平滑处理,以使该区域像素取值偏离原本的运动目标像素而更接近背景像素。

图3(c)、图3(d)和图3(e)展示了以pedestrians 视频序列第701 帧至725 帧为时域区间时,分别取时域上的均值、众数和中位数的情况下获得的参考帧。设选定的时域区间长度为m,即该区间内有m个连续视频帧,以这m帧图像中同一位置处像素作为统计对象,该位置处的背景像素参考值是按照以下方式做统计处理而获取的,记为由第k个区间获得的时域区间参考帧,则由第k个区间获得的视频帧中(x,y)处背景像素参考值(x,y)为[18]:

图3 时域区间参考帧

公式(1)中,mode、mean 和median 分别表示统计一组数据的众数、平均数和中位数。{(x,y)}k表示第k个区间内m帧图像中(x,y)处像素ft(x,y)的集合。

2.3 鬼影抑制

利用上述背景像素参考值,对上一节介绍的算法检测出的前景像素做进一步处理,以这些前景像素为前景候选像素,然后对这些前景候选像素进一步作前景像素和鬼影像素的区分,区分依据是欧氏空间内像素的距离。若fg'(x,y)为经上一节算法判别出的前景像素(即前景候选像素),则鬼影像素的判别规则如公式(3)所示。

其中,SegMap(x,y)表示二值分割图中(x,y)的像素,dist表示欧式距离,fg表明将当前像素分类为前景像素,ghost则表明当前像素为鬼影像素,应当归为背景像素。若前景候选像素与背景像素参考值的距离小于距离阈值,则认为该像素位于鬼影区域,将该像素分类为背景像素。鬼影像素也应当吸收进背景模型中,按照Vibe 算法的无记忆更新策略和随机时间子采样策略,更新鬼影像素对应的背景样本模型,即以1/Φ 的概率随机替换其背景模型中的某个样本为该像素值。图4(c)中左侧白色区域为鬼影,图4(b)是利用时域区间参考模块获得的背景参考帧,比较图4(c)和图4(d)可以看出利用时域区间参考,检测结果左侧的鬼影得到了抑制。

图4 时域区间参考与鬼影

3 实 验

实验平台是Windows 10 操作系统的电脑,使用MATLAB R2017a在CDnet2014[13]数据集上进行验证,该数据集为视频连续帧提供有前景目标的参考真值图像,其中,highway、pedestrians等涉及监控场景的视频包含了一般场景需要应对的噪声、动态背景等挑战,因而可被用作评价运动目标检测算法通用性的测试数据。

3.1 鬼影抑制效果

为验证算法的鬼影抑制效果,分别从highway 序列第1001 帧和pedestrians 序列第601 帧开始截取视频帧序列,记为high 序列和pedes 序列,以这两个首帧含有运动目标的视频序列作为待处理视频序列。

Vibe 算法和本文算法对high 序列和pedes 序列的处理结果可通过图5 直观比较,图5(a)自左至右对应high 序列第26 帧、第101 帧、第201 帧,图5(b)自左至右对应pedes 序列第30 帧、第66 帧、第115 帧,图5(a)和图5(b)自上至下对应输入帧、groundtruth、原始Vibe 检测结果和本文算法检测结果。以high 序列为例,其以highway 视频帧序列第1001 帧为初始化帧,原始Vibe 算法对high 序列的检测结果中明显出现了鬼影现象。经25 帧后,本文算法已将大部分鬼影区域消除,而在原始Vibe 算法的检测结果中,仍可以清晰看出初始化帧中的运动目标的外观和所在区域,而这些区域内像素应被归为背景;经200 帧后,本文算法的检测结果中已几乎不存在鬼影像素,而原始Vibe 算法检测结果的左下区域和右上区域仍存在较多鬼影像素。对于pedes 序列,统计初始帧(即pedestrians 序列第600帧)运动目标在后续帧检测结果中引起的鬼影像素的个数,本文算法的时域区间长度取为25,由于本文不涉及对阴影的研究,故阴影引起的鬼影像素不在计数范围内。后续帧中该区域内前景像素个数如图6所示,本文算法经50帧左右已基本将鬼影消除,而Vibe算法经250帧左右仍只抑制了部分鬼影像素。

图5 鬼影抑制效果

图6 鬼影像素个数的变化

3.2 运动目标检测结果

本文使用的CDnet2014 数据集关于运动目标像素的参考真值数据可用,因而使用像素级的定量评价指标作为算法性能的评价标准[1]。定量评价指标基于TP、TN、FP、FN这4 个参数,即混淆矩阵的4个分类(如图7所示)。

图7 混淆矩阵的4个分类

常用的运动目标检测指标包括准确度、召回率和F1值。准确度反映算法对运动目标所在区域的检测准确度,召回率描述算法对运动目标包含像素的检测完整情况,F1 值则是调和平均二者所得的值。依据以上指标构建的曲线也可用来表示算法的性能,在运动目标检测评价中常用的曲线是precisionrecall(P-R)曲线。理想情况下,准确度和召回率越高,P-R 曲线越靠右上角,F1 值越大,表明算法具有越好的性能。

图8 展示了在pedes 序列和pedestrians 序列上,Vibe 算法、三帧差法、混合高斯模型法(GMM)以及本文算法的检测结果的P-R 曲线。通过图9 中的P-R曲线可看出,本文算法对应的曲线均比其他算法对应的曲线更靠近右上角,即本文算法具有更高的检测准确度和完整度。对于首帧存在运动目标的pedes序列来说,本文算法与原始Vibe 算法的P-R 曲线差异更为明显,这表明本文算法可以提升抑制鬼影性能,并改善算法的检测性能。

图8 P-R曲线示意图

图9 不同算法在各序列帧上的检测结果

图9 中,自左至右分别为待处理视频帧、检测结果参考真值、三帧差法检测结果、混合高斯模型法检测结果、Vibe 算法检测结果和本文算法检测结果,表1 给出了各算法检测结果的准确度、召回率和F1 值,其中总体一栏对应的性能指标为各序列上性能指标的平均数。high 序列、pedes 序列和PETS2006 序列的初始帧中含有运动目标,从图9(a)-(d)、图9(i)-(j)可以看出鬼影影响了Vibe 算法检测结果的准确度,而本文算法的检测结果中几乎不存在鬼影。此外,三帧差法的检测结果完整度较差,对应着较低的召回率;混合高斯模型法召回率相对较高,但同时也为检测结果引入了过多噪点,会对运动目标检测后续任务造成额外干扰。

表1 各算法检测结果评价

从图9中各算法对不同序列的检测结果可看出,本文算法鲁棒性较好,不仅可较好地消除鬼影,而且对噪点也有一定的抑制作用。对于highway 和pedestrians 序列,本文算法的F1 值分别比Vibe 算法提高了13.69%和6.42%;对于初始帧有运动目标存在的high 序列和pedes 序列,本文算法具有最高的准确度,且F1 值分别比Vibe 算法提高了14.02%和20.40%,这进一步验证了本文算法通过加入时域区间参考模块可以改进对鬼影的抑制效果。从总体结果来看,本文算法有着最高的准确度和F1值,而在各测试序列中,本文算法与其他算法相比都对应了最高的F1 值,这表明本文算法可以同时较为准确而完整地检测出运动目标。实验表明,本文提出的时域区间参考模块对原始Vibe 算法有明显的改善作用,且对于首帧包含目标的视频序列改进效果更为显著。

4 结 论

Vibe 算法作为一种经典的运动目标检测算法,可以较好地检测出运动目标,但由于其保守更新背景模型,在检测初始帧存在运动目标的视频序列时会出现鬼影现象。本文针对Vibe 算法的这一问题进行研究,在原始算法框架的基础上引入更多的时空信息,在判别前景目标像素时加入了一个时域区间参考模块,通过像素值与参考值之间的差异性进一步确定背景像素和运动目标像素,以便去除原始算法产生的误检像素点。实验结果表明,本文所提出的加入时域区间参考模块的算法可有效抑制鬼影像素,提高运动目标检测的准确率,具有较好的检测性能。

猜你喜欢
鬼影时域背景
“新四化”背景下汽车NVH的发展趋势
《论持久战》的写作背景
基于时域信号的三电平逆变器复合故障诊断
如何消除胶印“鬼影”?
晚清外语翻译人才培养的背景
基于极大似然准则与滚动时域估计的自适应UKF算法
基于单应性矩阵的图像拼接方法的对比分析
基于时域逆滤波的宽带脉冲声生成技术
基于时域波形特征的输电线雷击识别
实时的静止目标与鬼影检测及判别方法