江晗
【摘要】为了准确检测出内河中的运动船舶并实时跟踪船舶,提出了一种改进的Vibe算法和Camshift算法组合的多目标跟踪方法。首先,通过Vibe算法得到运动的前景目标,再运用图像形态学处理和连通域标记进行多目标分离,准确地提取各目标区域,最后利用Camshift算法跟踪多个目标船舶。采用了一种基于邻域背景区域直方图与前景区域直方图匹配程度的决策方式来解决Vibe算法中的鬼影问题。实验结果表明,改进后的算法在运动目标检测的准确率和识别率上均有所提高,且组合算法对多目标跟踪的运算速度较快、效率较高。
【关键词】Vibe算法 船舶检测Camshift算法 多目标跟踪Opencv
0引言
内河航运在我国经济中扮演着极其重要的角色,它具有输送量大、成本低、排污小、耗能省等优点,是一种较为环保的运输方式,在运输大规模货物上有着无与伦比的作用。内河水域航道窄、弯道多、支流多,内河船舶船型杂乱、船载设备设施参差不齐,为在这些复杂环境下提高内河航道的监管效率,高度整合水文气象、全球定位系统( Global Positioning System,GPS)、船舶自动识别系统(Automatic Identification System.AIS)、电子江图、管道闭路电视系统(Closed Circuit Television,CCTV)、雷达、船舶业务等信息系统,已成为内河航道监管的发展趋势。而CCTV系统作为航道监管的关键部分,如何从繁杂的视频中获取尽可能多的有用信息提高水上交通安全监管的工作效率,实现航道监控、船舶检测、船舶实时跟踪等目的成为研究热点。基于内河航道船舶监控视频的多目标检测和跟踪的主要问题是来自于复杂背景的干扰、天气变化、目标外观变化和光照强度等问题。
对视频中的内河船舶进行检测和跟踪主要分为运动目标检测和跟踪检测出的目标两个部分。运动目标检测目前国内外常用的算法有光流法、背景差分法和帧间差分法。其中光流法的计算量较大,易受光照变化影响,不适用于实时监控系统,帧间差分法虽然计算量小、原理简单,但是检测到的目标不完整,所以本文采用的是由Olivier Bamich和Marc Van Droogenbroeck提出的可视化背景提取(Visual Background Extractor)算法,即Vibe算法。Vibe算法用邻域像素来建立背景模型,再经过比较当前输入像素值和背景模型来得到运动前景。初始化只需要一帧,且样本的更新是随机替换的,能确保样本值在一个周期内平滑的指数衰减,从而会增强背景模型对视频场景变化的适应性,将会使检测效果更好。但该算法还有一些待改进的地方,如鬼影问题。为了从Vibe算法检测出的目标中找到鬼影区域,文中采用了一种根据邻域背景区域直方图与前景区域直方图匹配程度来决策的方式,确定鬼影区域,消除鬼影。
现在常用的目标跟踪算法有基于Camshift算法的跟踪、基于Kalman滤波的跟踪、基于粒子滤波的跟踪等。其中在Meanshift算法基础上改进的Camshift目标跟踪算法能够适应目标的大小变化来自动调节搜索窗口大小,且鲁棒性好、计算简单,十分适合实时跟踪。
1、Vibe算法的改进方法
Vibe算法的背景建模方法会出现鬼影问题。如图1所示,因为Vibe算法是初始背景模型是利用视频的初始帧来建立的,则当第一帧图像中含有运动目标的情形下(如图1(a)所示),就会产生鬼影,如图1(c)所示。出现鬼影的原因主要有两种:(1)原本静止的目标状态转变为运动,背景变化的速率和背景模型的更新速率达不到同步,就会产生鬼影;(2)运动目标存在于背景模型的第一帧中。 为了解决和改善前景中的鬼影问题,接下来对Vibe算法进行了改进。如图2所示:
如图2(b)所示,用A代表含有运动目标的最小外接矩形区域,用Af代表Vibe检测到的目标,用Ab代表矩形框内的背景区域,则Ab=A-Ai。
算出Af的直方图Hf和Ab的直方图Hb,对比Hf和Ab这两个直方图的匹配度,若该区域是运动目标,由于Af和Ab的颜色排列差别很大,所以Hf和Hb匹配度低;如果该区域是鬼影,则Af和Ab的颜色排列相接近,Hf和Hb的匹配度高。
即鬼影判别标准如下:
其中Dist(Hf,Hb)代表相邻背景与前景的直方图匹配度,T代表阈值。运动目标的前景与背景的颜色直方图差别较大,由此可以鉴别出运动目标和鬼影。
2、运动目标检测与跟踪算法
首先对改进后的Vibe算法检测到的前景目标进行去噪、形态学处理,提取连通分量和区域填充,获得较为完整的跟踪目标。然后再用Camshift算法对提取到的前景目标进行跟踪,运动目标跟踪流程如图3所示。
3、实验结果及分析
本文算法的实验发平台是Qt5.7.O+VS2015,同时还结合了Opencv3.1提供的库函数。
为了验证Vibe算法改进后的运动目标检测效果,本文分别对Vibe算法和改进后的Vibe算法进行了实验。
如图4(a)所示,视频的第一帧图像就存在运动船舶,即背景模型的初始帧存在运动目标,如图4(c)所示,当视频运行到第274帧,采用原来Vibe算法,检测到的前景目标产生了鬼影。而如图4(d)所示,采用改進后的Vibe算法,得到的运动目标检测结果中,成功的去除了原来的鬼影。
为了验证本文跟踪算法的性能,下面用本文的目标跟踪算法分别对单运动目标跟踪(图5)和多运动目标跟踪(图6)进行实验。
采用本文的检测和跟踪方法,进行多组实验,统计实验结果并整理实验数据后,可知单目标跟踪比多目标跟踪的准确度要高,之所以有这样的结果,主要是因为在多目标跟踪的过程中运动目标会相互遮挡。
本文算法虽然在单目标跟踪上准确度较好,多目标跟踪上略差一些,但是算法的处理速度很快,跟踪速率平均为0.120s/帧,能满足实时跟踪的需求。
4、结语
提出了一种改进的Vibe算法和Camshift算法组合的多目标跟踪方法。采用了一种基于邻域背景区域直方图与前景区域直方图匹配程度来决策的方式对Vibe算法进行了改进,且与Camshift算法结合的目标跟踪算法鲁棒性高,运算简单。实验结果表明,改进的Vibe算法在运动船舶检测的准确性上得到了提高,而且目标跟踪的运算效率较高能满足实时跟踪的要求。而如何提高多目标跟踪的准确率,解决多目标跟踪中运动目标相互遮挡的问题,是下一步继续研究的方向。
参考文献:
[1]杨光伟,肖广贞.水上交通智能管理系统在内河海事的应用[A].中国航海学会内河海事专业委员会、武汉内河交通安全法规研究所.中国航海学会2014年海事管理学术年会优秀论文集[C],中国航海学会内河海事专业委员会、武汉内河交通安全法规研究所:,2014:6.
[2]Wei p,Lu X,TangT,et al.A highway vehicledetectionmethod based on the improvedvisual background extractor[C].InternationalConferem:e on hzzy SystenIs and XnofvledgeDiscovery.IEEE,2018(1):1519-1524.