APP下载

改进ViBe 算法及其在运动船舶目标检测中的应用

2023-05-04杨家轩宋庆垚

舰船科学技术 2023年5期
关键词:鬼影前景背景

杨家轩,秦 硕,宋庆垚,

(1.大连海事大学 航海学院,辽宁 大连 116026;2.辽宁省航海安全保障重点实验室,辽宁 大连 116026)

0 引 言

在计算机视觉领域中,运动目标检测是国内外学者研究的热点。目前,帧差法[1-2]、光流法[3]、背景差分法[4],是应用较为广泛的几种检测方法。背景差分法会先确定背景模型,然后将图像序列中的当前帧和背景模型进行对比,并进行减法运算,得到前景运动区域,从而确定运动物体的各项特征。混合高斯模型(GMM)[5]、码本(codebook) 算法[6]和视觉背景提取(visual background extractor, ViBe)算法[7-8]都是背景差分法的应用。与帧差法、混合高斯模型和codebook 算法相比,ViBe 算法计算量小,运行速度快,实时性高,抗噪声干扰能力强,还具有较好的鲁棒性。同时,ViBe 算法不受运动目标的速度影响,静态背景下检测效果良好,与以上算法相比,前景检测效果较为优异。但其缺点也很明显,如“鬼影”、检测目标不完整以及对动态背景鲁棒性差等问题。

为了弥补原始ViBe 算法的不足,杨依忠等[9]提出了一种“与”和“或”类型三帧差法与原始ViBe 算法相结合,通过“与”运算减少海面闪烁点被误检测为前景的情况,再通过“或”运算尽可能地保留运动目标,最后对结果进行显著性检测。该方法在一定程度上抑制了首帧出现的“鬼影”,在近距离的大型目标上检测效果理想,但是不适用于小目标检测。VAN D 等[10]在ViBe 算法的基础上引入了闪烁等级的概念,并引用了codebook 算法中的颜色畸变测量。杨毅等[11]在原始ViBe 的基础上扩大样本取值范围,结合自适应阈值和闪烁等级,对输入的视频序列采用高斯金字塔变换,获得不同分辨率的图像,最后对这些图像分别使用改进的Vibe 算法检测出结果,并进行融合。该方法可以有效抑制海面闪烁点,但未对目标“鬼影”进行抑制,造成船舶运动目标的误检。

基于以上分析,为了提高运动船舶识别的检测率和准确性,本文对传统V i B e 算法进行改进。在ViBe 算法的基础上,本文算法用多帧连续图像初始化背景模型,减少“鬼影”对前景检测结果的影响;通过自适应阈值和闪烁等级抑制海面杂波,再通过多帧前景图像像素点对比消除“鬼影”,提取移动的船舶。最后对输入的动态视频进行高斯金字塔多尺度分解,提取出第4 层的低分辨率视频。本文算法流程如图1 所示。

图1 算法流程图Fig.1 Flow chart of the algorithm

1 ViBe 算法

ViBe 算法流程如下:初始化单帧图像中每个像素点的背景模型、对后续的图像序列进行前景目标分割和模型更新[11]。

1.1 模型初始化

算法对视频进行处理时,使用首帧图像进行初始化。首先,为每一个像素点创造一个大小为N的样本集,从每个像素的8 个邻域中随机选取N个像素值放入N个模型样本中,背景模型M(x)如下:

式中:vi表示背景模型中样本的像素值;N为背景模型中样本的数量。

1.2 前景检测

模型初始化之后,从第2 帧图像开始,将每个新的像素点与模型中已有的样本进行对比,以此判断是否是前景像素。假设v(x)是当前像素点x的像素值,ViBe 算法会定义一个以v(x)为圆心,R为半径的圆形区域SR(v(x)),该区域包含了到v(x)的欧氏距离小于等于R的所有像素点,如图2 所示。其中,C1和C2为二维颜色空间的分量,M表示M(x)落在SR(v(x))内的样本数量,当M大于预设阈值时,v(x)为背景,否则为前景。图中黑色点表示M(x)的样本点。

图2 背景模型示意图Fig.2 Schematic of backgrounding model

1.3 模型更新

当前像素v(x)被分类为背景点时,v(x)会以1/φ的概率更新自身的背景模型,之后会随机替换样本模型中的某一像素点,同时也会以1/φ的概率更新其8 个邻域内像素点背景。

2 改进的ViBe 海面船舶运动目标检测算法

2.1 背景建模

ViBe 算法使用视频的第1 帧初始化式(1)中的参数。如果在第1 帧中有1 个像素是前景目标,那么作为前景的像素也将被分类为背景样本点。若第1 帧存在前景目标,则前景像素也将被分类为背景样本点。由于前景一直运动,某些长时间保持不变的前景区域被认为是“鬼影”。如图3(b)所示,矩形框内为运动目标残留的鬼影区域。因此,在初始化时,为了弱化运动目标对背景建模的影响,本文算法采用前N 帧图像进行建模。

图3 “鬼影”检测Fig.3 Ghost detection

式中,PN(x)为前N帧图像的像素值。

在摩尔定律的指引下,芯片特征尺寸不断减小,芯片上可集成的功能模块增多,设计的复杂度也逐渐上升.工艺参数波动对芯片良率的影响越来越明显,因此有时不得不进行过度设计,以增加时序阈度提高芯片良率.流片后,工艺参数的波动固定,针对参数的波动和具体的芯片工作需求,对特殊延时器件进行调整,即可提高芯片良率.

2.2 背景建模自适应阈值和闪烁等级

ViBe 算法中所采用的固定半径R不能适应海面动态背景的变化,易受海浪杂波的干扰,产生大量的误检。因此,使用自适应阈值[12-15],并根据动态背景的变化自动调整阈值。参考文献[12]将阈值定义为:

式中:L(x)是当前帧;Li(x)为背景模型样本。T反映背景的变化程度,R根据T的动态变化自适应地调整模型进行更新,如下式:

式中:ε为阈值调节改变量,设置门限RH和RL(分别取40 和20)防止阈值变化较大。当环境变化较小时,R(x)趋于稳定;当背景变化较大时,R(x)就会逐渐增大。

引用文献[10 - 11]中的闪烁等级B降低海面杂波的干扰。闪烁等级即若某一背景像素的8 邻域中存在前景,根据像素的8 邻域状态与前一帧同位置像素8 邻域状态不同,对B进行修改。若B≥30,认为该像素正在闪烁,表示为:

式中:B为闪烁等级;SI为像素点8 邻域状态,SI-1为上一帧同位置像素的8 邻域状态;

式中:v(x)为像素值。

2.3 “鬼影”消除策略与前景检测

“鬼影”消除策略如下:

步骤1以是否检测到“鬼影”作为第1 个判断,连续两帧中相同位置的像素被判断为前景。如果存在“鬼影”,则进行步骤2,否则跳转至步骤3。

步骤2结合帧间信息,增加第2 次判断,即统计前n帧中相同位置的前景像素的次数,并与n比较。如果小于n,则确定为前景像素,否则为“鬼影”。此时“鬼影”更新为背景像素,如式(7)所示。

步骤3通过改进的ViBe 算法提取前景区域,然后与Log 边缘检测和形态学运算提取的前景目标进行“与”运算,消除“鬼影”。

其中:I(x,y)是值为(x,y)的像素,1 是前景,0 是背景。

在前景检测过程中,基于背景模型提取运动前景,并进行如下操作:

步骤1第2 次判断“鬼影”后,提取船舶运动的前景区域W1;

步骤2利用Log 算子对当前帧进行边缘检测,将运动目标区域简化并进行填充;

步骤3利用形态学运算先膨胀,将运动区域边缘进行连接;然后腐蚀,消除边缘周围纤细区域,得到目标区域W2;

步骤4将W1和W2两个运动区域进行“与”计算,得到最终目标区域W。

由于改进ViBe 算法仍存在些许的海浪杂波,同时边缘检测也易检测非目标边缘,如图4(b)和图4(c)所示。将边缘检测和改进的ViBe 算法进行“与”运算可以进一步抑制改进的ViBe 算法残留的海面杂波以及干扰边缘带来的影响,从而获得完整目标的显著图,如图4(d)所示。

图4 船舶目标区域显著图Fig.4 The significant area of the ship's target area:

3 多尺度分解

前景检测是在不同分辨率的同一视频上执行的。与高分辨率视频相比,低分辨率视频具有模糊、尺寸较小、灰度值变化小等特点,从而抑制了海面杂波。高斯金字塔可以对视频图像进行多尺度采样,还可以将它们排列成金字塔的形式。金字塔层数越多,图像尺寸越小,分辨率越低。假设第k层输入图像的分辨率为M×N,则经过低通滤波和下采样之后,第k+1 层图像的分辨率为M/2×N/2。

在动态背景下,海上航行船舶的检测会到受海浪的影响,为了减少海面杂波的干扰,采用高斯金字塔提取5 层分辨率视频,使用改进的ViBe 算法提取船舶运动目标。如图5(b)、图5(c)和图5(d)所示,前3 层分辨率视频中存在大量海面杂波干扰,高分辨率还降低了运行速度。单帧视频的运行时间分别为1 018 ms,285 ms,153 ms,如表1 所示。从图5(f)和表1 可以看出,海浪的干扰得到了抑制,第5 层分辨率视频的单帧视频处理耗时为29 ms。然而,由于丢失了部分船体,目标检测不完整。在第4 层分辨率视频中,海杂波得到了很好的抑制,而且舰船目标的显著区域也比较完整,如图5(e)所示。同时,单帧视频运行时间为97 ms,满足实时性要求。因此,本文对分辨率为1 280×720 的视频采用高斯金字塔分解,得到第4 层160×90的低分辨率视频。根据以上实验结果,使用改进的ViBe 算法提取运动船舶目标的前景,避免了海浪对高分辨率船舶目标提取精度的影响,可以准确提取运动中的船舶目标。

图5 船舶目标区域显著图Fig.5 The significant area of the ship's target area

表1 5 层分辨率视频单帧画面运行时间对比Tab.1 Comparison of running time of single frame image of layers resolution video

4 实验结果与分析

实验中使用分辨率为1 280 ×720,604 帧的视频进行仿真。改进算法的部分参数取值与ViBe 算法一致,其中背景样本数设置为20,最小匹配个数设置为2,模板更新率设置为16,R的初始值是20。

ViBe 算法在进行船舶目标检测时会受到大量海浪杂波的影响,如图6(b)所示。在ViBe 算法基础上加入自适应动态阈值和闪烁等级判断,鲁棒性较好,对海浪杂波的抑制较为明显(见图6(c)),船舶目标检测的准确率得到了提高。

图6 海面杂波抑制效果对比Fig.6 Sea clutter suppression effect

经过高斯金字塔分解,得到第4 层160 ×90 低分辨率视频,之后通过多帧连续图像初始化背景模型,加入像素点对比,从而消除“鬼影”对船舶目标检测的影响,如图7 所示。图7(b)为ViBe 算法对前景提取的效果,存在“鬼影”的干扰,而本文算法采用像素点对比,“鬼影”抑制效果显著,如图7(c)所示。船舶运动目标前景提取完整,可以避免“鬼影”对海面船舶检测准确性的影响。图8(c)为ViBe 算法前景检测结果,受“鬼影”区域的影响较大,存在目标检测不完整以及误检等问题。图8(d)为本文基于像素点对比的前景检测结果,“鬼影”区域得到抑制,船舶目标检测完整且准确。

图7 “鬼影”抑制效果对比Fig.7 Comparison of ghost suppression

图8 前景检测效果对比Fig.8 Comparison of foreground detection

图9 为同一视频下3 种算法第82,208,263,465 视频帧前景显著区域提取结果对比图。从图9 第2,3 列82 帧和208 帧可以看出,ViBe 算法和文献[11]中产生的“鬼影”区域严重影响船舶运动目标前景提取完整度和准确度,而本文算法在“鬼影”区域的抑制上效果显著,船舶运动目标前景提取完整。从第2,3 列可知,ViBe 算法对“鬼影”区域的更新缓慢,文献[11]中在263 帧视频图像已完成“鬼影”区域上的更新,但依然存在部分海浪杂波的影响造成海面船舶运动目标的误检,如图9(c)所示。在465 帧时,由于背景变化过快,ViBe 算法和文献[11]的背景更新速度无法满足背景的变化,出现大面积区域误检,而本文算法结合边缘检测进行前景区域的提取,避免了大面积区域的误检,相比ViBe 算法和文献[11],本文改进的ViBe 算法所得目标区域较为完整和准确。在低分辨率视频下进行检测,不仅能抑制“鬼影”区域的影响,还可以降低动态背景下海面噪声的干扰,同时也适用于小目标船舶的检测。

图9 前景显著区域对比Fig.9 Comparison of foreground salient area

选取检测率(true precision rate,TPR)和虚警率(false precision rate,FPR)作为检测结果的评价标准[16]。

式中:NFP为背景区域将运动船舶检测为目标的次数;NTP为背景区域没有将运动船舶检测为目标的次数;NTP为目标区域运动船舶目标被成功识别的次数,NFN为目标区域运动船舶目标未被检测到的次数。

在相同的实验条件下进行仿真,结果如表2 所示。可知:本文算法的TPR(检测率)为92.5%,而ViBe 算法、文献[11]中算法的TPR 分别为60.1%和80.8%,本文算法的检测效果明显优于其余两者;本文算法的FPR (虚警率)为6.2%,ViBe 算法、文献[11]中算法的FPR 分别为26.3%和9.1%,与其相比,FPR 分别降低了20.1%和2.8%。由于本文算法加入了“鬼影”消除策略,比ViBe 算法和文献[11]在单帧视频图像耗时多61 ms 和38 ms,平均时间控制在97 ms 以内,满足实时检测的要求。

5 结 语

为了解决运动船舶检测中的“鬼影”问题,本文对ViBe 算法进行改进。结果表明,本文改进的ViBe算法的TPR(检测率)为92.5%,ViBe 算法和文献[11]中的算法的TPR 分别为60.1%和80.8%,本文算法在“Ghost”抑制方面也明显优于ViBe 算法和文献[11]中算法。本文提出的ViBe 算法对海上运动船舶检测过程中的“鬼影”抑制效果明显,抗海浪干扰强,可以快速准确地检测出运动船舶。因此,本文算法对海浪背景下船舶目标检测有较好的适用性,同时为海上船舶目标检测提供了参考,并为海上船舶目标跟踪奠定了可靠的基础。

猜你喜欢

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