2. 辽宁省航海安全保障重点实验室,辽宁 大连 116026
2. Key Laboratory of Navigation Safety Guarantee of Liaoning Province, Dalian 116026, China
在计算机视觉领域中,运动目标检测是国内外学者研究的热点。目前,帧差法[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算法检测出结果,并进行融合。该方法可以有效抑制海面闪烁点,但未对目标“鬼影”进行抑制,造成船舶运动目标的误检。
基于以上分析,为了提高运动船舶识别的检测率和准确性,本文对传统ViBe算法进行改进。在ViBe算法的基础上,本文算法用多帧连续图像初始化背景模型,减少“鬼影”对前景检测结果的影响;通过自适应阈值和闪烁等级抑制海面杂波,再通过多帧前景图像像素点对比消除“鬼影”,提取移动的船舶。最后对输入的动态视频进行高斯金字塔多尺度分解,提取出第4层的低分辨率视频。本文算法流程如图1所示。
ViBe算法流程如下:初始化单帧图像中每个像素点的背景模型、对后续的图像序列进行前景目标分割和模型更新[11]。
1.1 模型初始化算法对视频进行处理时,使用首帧图像进行初始化。首先,为每一个像素点创造一个大小为
$ M(x) = \{ {v_1},{v_2}, \cdots {v_N}\}。$ | (1) |
式中:
模型初始化之后,从第2帧图像开始,将每个新的像素点与模型中已有的样本进行对比,以此判断是否是前景像素。假设
当前像素
ViBe算法使用视频的第1帧初始化式(1)中的参数。如果在第1帧中有1个像素是前景目标,那么作为前景的像素也将被分类为背景样本点。若第1帧存在前景目标,则前景像素也将被分类为背景样本点。由于前景一直运动,某些长时间保持不变的前景区域被认为是“鬼影”。如图3(b)所示,矩形框内为运动目标残留的鬼影区域。因此,在初始化时,为了弱化运动目标对背景建模的影响,本文算法采用前N帧图像进行建模。
$ M(x){\text{ = }}\left\{ {{P_1}(x), \cdots {P_N}(x)} \right\} 。$ | (2) |
式中,
ViBe算法中所采用的固定半径
$ T = \frac{1}{{M \times N}}\sum\limits_{i = 0}^{N - 1} {\sum\limits_{j = 0}^{M - 1} {\left| {L(x) - {L_i}(x)} \right|} }。$ | (3) |
式中:
$ R(x) = \left\{ {\begin{array}{*{20}{c}} {R(x)(1 - \varepsilon )},&{R(x) > T}, \\ {R(x)(1 + \varepsilon )},&{{\rm{else}}} 。\end{array}} \right. $ | (4) |
式中:
引用文献[10-11]中的闪烁等级
$ B = \left\{ {\begin{array}{*{20}{c}} {B + 15},&{{S_I} \ne {S_{I - 1}}}, \\ {B - 1},&{{S_I} = {S_{I - 1}}}, \end{array}} \right.\begin{array}{*{20}{c}} {}&{B \in (0,150)} 。\end{array} $ | (5) |
式中:
$ v(x) = \left\{ {\begin{array}{*{20}{c}} 0&{B \geqslant 30}, \\ 1&{B < 30} 。\end{array}} \right. $ | (6) |
式中:
“鬼影”消除策略如下:
步骤1 以是否检测到“鬼影”作为第1个判断,连续两帧中相同位置的像素被判断为前景。如果存在“鬼影”,则进行步骤2,否则跳转至步骤3。
步骤2 结合帧间信息,增加第2次判断,即统计前
步骤3 通过改进的ViBe算法提取前景区域,然后与Log边缘检测和形态学运算提取的前景目标进行“与”运算,消除“鬼影”。
$ I(x,y) = \left\{ {\begin{array}{*{20}{c}} 1,&{count < n}, \\ 0,&{{\rm{else}}} 。\end{array}} \right. $ | (7) |
其中:
在前景检测过程中,基于背景模型提取运动前景,并进行如下操作:
步骤1 第2次判断“鬼影”后,提取船舶运动的前景区域
步骤2 利用Log算子对当前帧进行边缘检测,将运动目标区域简化并进行填充;
步骤3 利用形态学运算先膨胀,将运动区域边缘进行连接;然后腐蚀,消除边缘周围纤细区域,得到目标区域
步骤4 将
由于改进ViBe算法仍存在些许的海浪杂波,同时边缘检测也易检测非目标边缘,如图4(b)和图4(c)所示。将边缘检测和改进的ViBe算法进行“与”运算可以进一步抑制改进的ViBe算法残留的海面杂波以及干扰边缘带来的影响,从而获得完整目标的显著图,如图4(d)所示。
前景检测是在不同分辨率的同一视频上执行的。与高分辨率视频相比,低分辨率视频具有模糊、尺寸较小、灰度值变化小等特点,从而抑制了海面杂波。高斯金字塔可以对视频图像进行多尺度采样,还可以将它们排列成金字塔的形式。金字塔层数越多,图像尺寸越小,分辨率越低。假设第k层输入图像的分辨率为
$ {G_{k + 1}}(i,j) = \sum\limits_{ - 2}^2 {\sum\limits_{ - 2}^2 {w(m,n)} {G_k}(2i + m,2j + n)}, $ | (8) |
$ w(m,n) = \frac{1}{{256}}\left( {\begin{array}{*{20}{c}} 1&4&6&4&1 \\ 4&{16}&{24}&{16}&4 \\ 6&{24}&{36}&{24}&6 \\ 4&{16}&{36}&{16}&1 \\ 1&4&6&4&1 \end{array}} \right)。$ | (9) |
在动态背景下,海上航行船舶的检测会到受海浪的影响,为了减少海面杂波的干扰,采用高斯金字塔提取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,满足实时性要求。因此,本文对分辨率为1280×720的视频采用高斯金字塔分解,得到第4层160×90的低分辨率视频。根据以上实验结果,使用改进的ViBe算法提取运动船舶目标的前景,避免了海浪对高分辨率船舶目标提取精度的影响,可以准确提取运动中的船舶目标。
实验中使用分辨率为1280
ViBe算法在进行船舶目标检测时会受到大量海浪杂波的影响,如图6(b)所示。在ViBe算法基础上加入自适应动态阈值和闪烁等级判断,鲁棒性较好,对海浪杂波的抑制较为明显(见图6(c)),船舶目标检测的准确率得到了提高。
经过高斯金字塔分解,得到第4层160
图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算法所得目标区域较为完整和准确。在低分辨率视频下进行检测,不仅能抑制“鬼影”区域的影响,还可以降低动态背景下海面噪声的干扰,同时也适用于小目标船舶的检测。
选取检测率(true precision rate, TPR)和虚警率(false precision rate, FPR)作为检测结果的评价标准[16]。
$ \left\{ {\begin{array}{*{20}{c}} {{P_{FPR}} = {N_{FP}}/\left( {{N_{FP}} + {N_{TP}}} \right)},\\ {{P_{TPR}} = {N_{TP}}/\left( {{N_{TP}} + {N_{FN}}} \right)}。\end{array}} \right. $ | (10) |
式中:
在相同的实验条件下进行仿真,结果如表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以内,满足实时检测的要求。
为了解决运动船舶检测中的“鬼影”问题,本文对ViBe算法进行改进。结果表明,本文改进的ViBe算法的TPR(检测率)为92.5%,ViBe算法和文献[11]中的算法的TPR分别为60.1%和80.8%,本文算法在“Ghost”抑制方面也明显优于ViBe算法和文献[11]中算法。本文提出的ViBe算法对海上运动船舶检测过程中的“鬼影”抑制效果明显,抗海浪干扰强,可以快速准确地检测出运动船舶。因此,本文算法对海浪背景下船舶目标检测有较好的适用性,同时为海上船舶目标检测提供了参考,并为海上船舶目标跟踪奠定了可靠的基础。
[1] |
MIGLIORE D A, MAATTEUCCI M, NACCARI M. A revaluation of frame difference in fast and robust motion detection[C]//Proceedings of the 4th ACM international workshop on Video surveillance and sensor networks –VSSN’06, October 27–27, 20061Santa Barbara, California. USA. New York: ACM, 2006: 215–218.
|
[2] |
崔杰, 胡长青, 徐海东. 基于帧差法的多波束前视声呐运动目标检测[J]. 仪器仪表学报, 2018, 39(2): 169-176. DOI:10.19650/j.cnki.cjsi.j1702414 |
[3] |
李成美, 白宏阳, 郭宏伟, 等. 一种改进光流法的运动目标检测及跟踪算法[J]. 仪器仪表学报, 2018, 39(5): 249–256.
|
[4] |
AHMED S H, ELHABIAN S Y. Moving object detection in spatial domain using background removal techniques-stste-of-art[J]. Recent Patents on Computer Science, 2008, 1(1): 32-54. DOI:10.2174/2213275910801010032 |
[5] |
CHEN H Y, CUI Y J, LI S, et al. An improved GMM based algorithm with optimal multi-color subspaces for color difference classification of solar cells[J]. IEEE Transactions on Setmiconductor Manufacturing, 2018, 31(4): 503-513. DOI:10.1109/TSM.2018.2867254 |
[6] |
MURGIA J, MEURIA C, RUICHEK Y. An improved colorimetiric invariants and RB-depth-based codebook model for background subtraction using Kinect[C]// Human-inspired computing and its applications. Lecture notes in computer science. Cham: Springer, 2014, 8856: 380–392.
|
[7] |
BARNICH O, DROOGENBROECK M. ViBe: a universal background subtraction algorithm for video sequences[J]. IEEE Transactions on Image Processing, 2011, 20(6): 1709-1724. DOI:10.1109/TIP.2010.2101613 |
[8] |
HUANG W, LIU L, YUE C, et al. The moving target detection algorithm based on the improved visual background extraction[J]. Infrared Physics & Technology, 2015, 71: 518-525. |
[9] |
杨依忠, 张强, 汪鹏飞. 基于改进ViBe算法与三帧差法的运动检测算法[J]. 合肥工业大学学报(自然科学版), 2018, 41(8): 1052-1058. |
[10] |
VAN D M, PAQUOT O, Background subtraction: experiments and improvements for ViBe[C]// IEEE Computer Society Conference on Computer Vision and Pattern Recognition Workshops IEEE, 2012: 32–37.
|
[11] |
杨毅, 邹卫军, 白云耀, 等. 基于改进ViBe的海面远距离运动目标检测[J]. 电光与控制, 2019, 26(11): 41-44. DOI:10.3969/j.issn.1671-637X.2019.11.009 |
[12] |
茅正冲, 沈雪松. 融合多尺度变换的改进Vibe算法[J]. 激光与光电子学进展, 2018, 55(11): 321-328. |
[13] |
闵卫东, 郭晓光, 韩清. 改进的ViBe算法及其在交通视频处理中的应用[J]. 光学精密工程, 2017, 25(3): 806–811.
|
[14] |
陈树, 丁保阔. 动态背景下自适应LOBSTER算法的前景检测[J]. 中国图象图形学报, 2017, 22(2): 161-169. DOI:10.11834/jig.20170203 |
[15] |
XIE Liang, ZHANG Xiao Hu, GUO Peng Yu, et al. ViBe with adaptive threshold based on energy minimization[J]. Applied Mechanics and Materids, 2015, 4088: 326-334. |
[16] |
PRASAD D K, RAJAN D, RACHMAWATI L, et al. Video processing from electro-optical sensors for object detection and tracking in a maritime environment: A survey[J]. IEEE Transactions on Intelligent Transportation Systems, 2017, 18(8): 1993-2016. DOI:10.1109/TITS.2016.2634580 |