改进的Camshift轮船目标跟踪算法

2018-03-16 06:32张永梅刘萌萌
计算机工程与设计 2018年2期
关键词:概率分布轮船卡尔曼滤波

张永梅,刘萌萌,郭 莎

(1.北方工业大学 计算机学院,北京 100144;2.北方工业大学 电子信息工程学院,北京 100144)

0 引 言

在视频图像中,轮船驶过的波浪、海面上的漂浮物、山峰等都可能造成感兴趣目标的遮挡,并且轮船经常会受到同色系背景的干扰,这种情况下很容易导致跟踪失败。针对上述问题,越来越多的学者对现有的跟踪算法进行了更深入的研究和改进[1-4]。闰钧华等使用卡尔曼滤波对Camshift跟踪到的结果进行预测和修正,并且使用直方图匹配来决断初始遮挡的时刻,在此基础上将最小面积作为度量判定程度[5]。然而,由于Camshift方法采用颜色直方图为匹配模板,目标与背景颜色相同时,导致搜索窗会变大;陈杏源等[6]将Camshift和SURF算法结合在一起,弥补了Camshift算法在应用过程中受到干扰后发生误跟踪的缺陷,但是其在复杂场景下实时性差[7];费智婷等[8]基于粒子滤波跟踪算法框架,通过局部背景加权直方图对目标进行描述,然而在光强度很高的情况下,海浪和船舶颜色会很接近,跟踪效果并不太理想[7]。

在本文中,围绕以色调、边缘以及运动为特征的Camshift算法,无损卡尔曼滤波估计并校正跟踪窗的质心位置大小,Bhattacharyya距离描述跟踪情况,以跟踪干扰和部分遮挡情况下移动中的轮船。

1 传统的Camshift算法

以往的Camshift算法基于原始窗中的颜色特征生成概率分布图,遍历搜索目标的质心坐标,实现对目标的跟踪。传统Camshift算法具体步骤参见如文献[7]。

传统的Camshift算法根据颜色特征中的色调分量进行跟踪,当采集到的轮船图像背景稳定,并且目标与背景差异较大时,Camshift对于此类图像有较好的跟踪效果,能根据目标的大小改变跟踪窗的大小。本文主要针对的是水上轮船,视频图像包含很多波浪,其颜色和船体的颜色比较相近,并且大波浪可能遮挡住船体,这种情况下传统的Camshift无法有效地跟踪轮船。

2 改进的Camshift轮船目标跟踪算法

以往的Camshift算法以颜色为依据跟踪,因此当目标和背景的颜色差异不大时,容易丢失。实际上,行人和车辆跟踪也面临这样的问题,不过在这方面也有了一定的成果[9-13]。

林建华等[12]基于光照变化,采用色调、Sobel边缘梯度、局部三值模式(local ternary patterns,LTP)纹理创建多特征模板,从而让算法能够在更广泛的光照条件下应用。

宋晓琳等[13]在其研究中指出,在监控车辆时,如果车辆和路面颜色比较一致,跟踪窗范围超过目标,同时还存在多余路面问题,要解决这一问题,首先提取原始图像的LBP纹理特征,然后计算得包含线端、角、边缘的纹理。

为了更好地跟踪行人、车辆,学者们对Camshift算法进行了优化,以色调、纹理、边缘等为特征。本文研究的是如何跟踪移动中的轮船,轮船在海面移动时,会导致水面出现大量的波浪,由此造成干扰,其纹理特征十分明显,因此选择纹理为轮船的特征是不合理的。同时兼顾边缘以及运动特征,就能够大幅削弱背景的干扰。

2.1 边缘特征提取

轮船具有刚性的特点,它的特征在于稳定,不会发生形变现象,因此能够选择边缘信息为主要的特征。常见的边缘检测算子有Prewitt算子、Sobel算子、 Kirsch算子、罗盘算子、Laplacian等算子。本文是在视频中跟踪目标,对实时性有较高的要求,因此在检测边缘特征时选择了计算过程复杂性低、效率高的Sobel算子。计算并得到像素点(x,y)处的水平梯度dx和垂直梯度dy,此时就能够确定目标边缘梯度方向θ,统计方向θ并获取边缘直方图[7]

(1)

2.2 运动特征提取

本文探讨的是固定场景下的跟踪,提取运动前景,从而将抖动的背景剔除出去。当前应用最广泛的前景检测方法有背景减除法,帧差法,光留法等,前者的准确性和背景选择直接有关,后者在实时性方面的表现不太理想,而三帧差法最显著的优势就在实时性方面[7]。并且选取连续的三帧视频图像进行差分运算,相比两帧帧差,可以去除抖动背景和波浪的干扰。

如图1所示,取连续的三帧图像,其中i表示第i帧图像,Di(x,y)表示第i帧与第i-1帧图像的差分图像,Di-1(x,y)是第i-1帧与第i-2帧图像的差分图像,将得到的两个差分图像进行与运算得到Bi(x,y),再进行形态学膨胀腐蚀操作,得到运动特征Mi(x,y)。

图1 三帧差分原理

2.3 多特征融合方法

Camshift算法基于概率分布图对目标进行搜索,所以,本文根据色调、边缘特征,绘制两张概率分布图,根据式(2),同时结合运动特征,获取最后的概率分布图。最终的概率分布图中剔除了大量背景和波浪

(2)

式中:Hi(x,y)表示第i帧根据色调直方图生成的概率分布图中(x,y)点的灰度值,Si(x,y)表示第i帧根据边缘特征生成的概率分布图中(x,y)点的灰度值,Mi(x,y)表示第i帧中检测到的运动区域在(x,y)点的灰度值,Li(x,y)表示最终融合后的概率分布图在(x,y)点的灰度值,如果Mi(x,y)所表示的像素是0,证明该点为背景;否则,证明该点处在运动区域上,最终概率分布值是这一像素点的色调概率分布值与边缘概率分布值结合在一起得到的,α、β依次代表融合系数[7]。

首先,对搜索窗进行初始化处理,对同心且长宽均为初始窗两倍的矩形窗进行计算,得到两个窗的色调以及边缘直方图,最后通过计算确定相同特征下直方图的相似性。Dh代表在色调直方图上两窗的相似度,Ds代表在边缘直方图上两窗的相似度,这里的相似度方法采用直方图相交距离,α、β计算公式如下[7]

(3)

(4)

在视频里面选择一帧轮船出现的图像,如图2(a)所示,对该图进行分析可知,岸上的树、水面中的波浪和轮船的颜色差异并不太大。在概率分布图里面,灰度值是衡量像素和目标模型相似性的指标。基于色调获取的概率分布如图2(b)所示,轮船和背景的某些部位的灰度值是一致的,因此在跟踪时,跟踪窗会逐渐增大,最终囊括整个图像。通过Sobel边缘梯度方向获取的概率分布如图2(c)所示,该图的灰度值比较小,并不包含船舶附近的波浪和树枝。通过三帧差分方法获取的运动区域如图2(d)所示,可以跟踪移动中的船舶,并且剔除了大部分背景,不过轮船移动导致的波浪十分复杂,并未完全剔除出去。将图2(b)、图2(c)、图2(d)结合在一起,由此获取的概率分布如图2(e)所示。对该图进行分析可知,船舶的灰度值处于较高水平,并且和背景之间存在容易分辨的间隔,波浪被完全剔除出去。

图2 概率分布

2.4 无损卡尔曼滤波

在实际目标跟踪系统中,系统的状态和测量模型都具有非线性的特点,而且含有噪声,而标准卡尔曼滤波器无法准确地对目标位置进行预测。常用的非线性滤波器有扩展卡尔曼滤波(EKF),无损卡尔曼滤波(unscented Kalman filter,UKF),以及粒子滤波(PF)。其中,无损卡尔曼滤波在采样方面的方法是确定的,因此从根本上避免了粒子滤波方法所面临的粒子点退化问题。通过UT(unscented)变换,得到非线性的状态方程,解决了扩展卡尔曼滤波中的线性化错误,并且不用计算Jacobian矩阵,因此较扩展卡尔曼滤波更为精确。

无损卡尔曼滤波[14,15]是卡尔曼滤波的改进,在其基础上,利用UT变换来解决均值和协方差的非线性转移,实现在非线性系统下对目标准确估计。UT变换主要是利用某种采样策略收集Sigma点,这些点可以反映输入信息的分布状态,然后将每个点进行非线性变换,获取变换后的特性。

本文主要研究轮船等水上运动目标,轮船快速移动,或目标被其它物体所遮挡时,卡尔曼滤波器无法对其位置进行准确的预测。为此,选择无损卡尔曼滤波预测目标位置和搜索窗尺寸,即便目标被遮挡或存在背景干扰,也能够提供比Camshift更为准确的质心位置,然后基于Bhattacheryya距离判断遮挡和干扰。Bhattacharyya距离的计算表达式是

(5)

其中

(6)

在式(5)和式(6)中,d(y)代表Bhattacharyya距离,p(y)代表Bhattacharyya系数,pu(y)代表目标模型直方图,qu(y)代表候选模型的直方图。Bhattacharyya距离有助于分析原始模型和候选窗中直方图分布的相似程度,从而评价遮挡或干扰程度,其值越小,证明二者越相似。若Bhattacharyya等于零,说明二者完全匹配,若等于1,说明二者完全不匹配。所以在这里要设定具体的判决门限值Tb,若Bhattacharyya距离小于该值,证明目标并未被遮挡。Bhattacharyya距离在作为衡量遮挡或者背景干扰的程度,在大多数的论文研究中均采用固定阈值。本文进行了一系列的实验,在目标并未被遮挡时,直方图彼此间的Bhattaacharyya距离,其值在0.2-0.44范围内,因此把判决门限值Tb设置为0.45。

2.5 本文改进的Camshift算法

通常而言,轮船和波浪、背景的颜色差异并不大,并且轮船容易被遮挡,此时采用经典Camshift进行跟踪,由于该方法仅仅以颜色为依据,因此很有可能出现目标丢失的情况。为此,对该方法进行优化,引入更多的特征,最终获取符合目标特征的概率分布图。通过三帧差分法提取运动特征,同时将大部分噪声剔除出去。充分利用轮船的色调、边缘以及运动特征,从而剔除波浪、水面其它物体的干扰。经典Camshift方法并未应用预测机制,一旦目标被遮挡,或相邻两帧目标移动距离太远,就会出现目标丢失的问题。为此,选择无损卡尔曼滤波,调整目标位置的预测值,同时基于Bhattacharyya距离表征轮船的跟踪情况。

在跟踪方面应用以色调、边缘以及运动特征为依据的Camshift算法,同时利用无损卡尔曼滤波预测并校正目标中心的位置,改进后的Camshift算法的程序流程如图3所示,具体步骤如下:

(1)初始化搜索窗,提取搜索窗内的色调和边缘特征,创建目标特征模型,得到融合系统,对无损卡尔曼滤波进行初始化处理;

(2)读取下一帧图像,提取色调和边缘特征,基于前一步骤的模型绘制概率分布图,通过三帧差分获取运动特征,由此得到最后的概率分布图;

(3)通过Camshift算法,搜索位置并且计算Bhattacharyya距离;

(4)基于Bhattacharyya值确定轮船的位置。若d(y)小于等于Tb,当前帧的目标位置和大小为Camshift算法的结果。如若不然,证明Camshift目标丢失,把无损卡尔曼滤波预测提供的结果当做最终结果。

(5)基于上一步骤获取的目标坐标,调整无损卡尔曼滤波中的参数;

(6)重复(2),直到不存在下一帧图像。

图3 算法思路

3 实验结果与分析

本文将改进后的算法与传统Camshift算法和文献[5]Camshift与卡尔曼滤波结合的方法进行了比较。实验数据包括多组游艇、商船在内的轮船视频,了解在存在部分遮挡以及同色系干扰情况下能否成功跟踪目标。因篇幅有限,本文只给出了2组实验数据,跟踪结果如图4~图9所示。

图4 传统的Camshift算法跟踪效果

图5 Camshift与卡尔曼滤波结合的跟踪效果

图6 本文改进方法的跟踪结果

图7 传统的Camshift算法跟踪结果

图8 Camshift与卡尔曼滤波结合的跟踪效果

图9 本文改进方法的跟踪效果

图4~图6给出了跟踪结果,跟踪对象是单个游艇,图像中右下角的数字表示视频中第几帧。该视频中游艇激起的波浪较大,和游艇的颜色相近,只利用色调直方图会导致跟踪窗扩大,而且在前30帧图像里面,存在其它船舶的干扰。

图4即为使用经典Camshift算法提供的结果,图中目标为白色,图里面还存在其它的船舶,也是白色,所以椭圆窗会不断扩大,并且还有波纹的存在。目标船舶上人的救生衣、岸上的道路和背景里面的凉亭颜色差异不大,所以到了第40帧后,目标丢失,跟踪结果里面仅存在凉亭、道路等。

图5采用Camshift算法与卡尔曼滤波相结合的方法,椭圆代表经典Camshift算法提供的结果,矩形代表优化后的跟踪结果。第20帧受到非目标船舶的影响,经典Camshift跟踪目标丢失,而优化后的算法依旧能够准确地跟踪目标。

图6为优化后的方法的跟踪情况,由此可见,新的算法始终保持对目标的跟踪,跟踪窗里面的背景信息很少,比传统Camshift方法,以及Camshift与卡尔曼结合的方法鲁棒性好。

图7~图9采用一组室外游艇、轮船视频,跟踪对象是由左到右行驶中的单个轮船目标。该视频中游艇与非目标船舶重叠、遮挡,目标的颜色和岸上的石头、水面波浪的颜色差异很小。

图7为经典Camshift算法所得到的结果,对该图进行分析可知,目标和非目标船舶的颜色存在差异,如果后者遮挡前者,跟踪效果不会受到明显的影响,不过目标船舶和背景、水面的波浪颜色基本相同,所以跟踪窗逐渐扩大,将岸边也当做目标进行跟踪。

图8即为采用Camshift算法与卡尔曼滤波相结合方法的跟踪结果,Camshift得到的结果包含了岸上的石头,到第40帧后,目标和波浪、背景颜色差异不大,导致Camshift跟踪错误,在这种情况下,卡尔曼滤波一直修正Camshift的跟踪结果,第80帧矩形窗里面依旧存在大量的背景信息。

图9即为本文方法的跟踪效果,在整个过程中,跟踪窗内都能看到目标,并未发生偏离现象,鲁棒性较好。

表1给出了不同跟踪算法性能的对比情况,该表里面平均每帧处理时间是视频的总处理时间和总帧数的商。在本文中,将边缘、运动特征引入到经典Camshift算法中来,同时应用无损卡尔曼滤波,对该算法进行改进,从而提高了算法的跟踪成功率,不过整个跟踪过程却变得更加复杂。对于经典Camshift算法而言,其实时性和统计概率分布图中目标质心位置时的迭代次数有关。对表1里面的数据进行分析可知,本文方法跟踪成功率更高,迭代次数更少,平均每帧处理时间比Camshift与卡尔曼滤波结合缩短了将近一倍,在运行时间上和经典Camshift算法差异非常小。

表1 不同跟踪算法的性能比较结果

对表1里面的准确率数据进行分析可知,应用经典Camshift算法和 Camshift与卡尔曼滤波结合的方法,如果单纯地以颜色特征为依据来跟踪,若目标和背景的颜色比较相似,在这种情况下容易出现目标丢失的问题。因此,本文对经典Camshift方法进行改进,引入其它方面的特征,解决颜色干扰问题,同时应用优化后的非线性无损卡尔曼滤波改进,有效地提高了算法的跟踪成功率。

对比无损卡尔曼滤波和经典卡尔曼滤波的性能表现,详见表2,通过均方根误差评价其在预测目标位置和速度方面的偏差。海面上的运行轨迹必定随机,非线性,并且环境嘈杂,在这种情况下卡尔曼滤波的误差比较大,无损卡尔曼滤波性能表现更为突出。

表2 不同滤波器的性能比较结果

4 结束语

经典Camshift以颜色直方图为目标模板,因此当目标颜色和背景比较相似时,容易出现目标丢失的问题,为此,我们应该引入新的边缘和运动特征,将二者和颜色特征融合在一起,从而解决颜色相似的问题。应用无损卡尔曼滤波纠正目标预测位置,和卡尔曼滤波相比,其结果更为准确和稳定。通过Bhattacharyya距离反映跟踪情况。Camshift目标丢失后,以无损卡尔曼滤波的结果为准。

本文提出了改进的Camshift轮船目标跟踪算法,将基于不同特征信息的Camshift算法和无损卡尔曼滤波方法综合起来,即便轮船被部分遮挡,或受到背景颜色的干扰,也能够保持良好的跟踪效果,鲁棒性和实时性较好。

[1]Jun Liua,Ye Liub,Guyue Zhanga,et al.Detecting and tracking people in real time with RGB-D camera[J].Pattern Recognition Letters,2015,53(11):16-23.

[2]Thanh-Hai Tran,Thi-Lan Le.Vision based boat detection for maritime surveillance[C]//International Conference on Electronics Information and Communications,2016,43(2):1-4.

[3]TENG Fei,LIU Qing,GUO Jianming,et al.Inland waterway ship tracking using a TLD framework[J].Journal of Applied Sciences-Electronics and Information Engineering,2014,32(1):105-110(in Chinese).[腾飞,刘清,郭建明,等.TLD框架下的内河船舶跟踪[J].应用科学学报,2014,32(1):105-110.]

[4]FAN Ling.Research and simulation of ship tracking method based on visual search[J].Ship Science and Technology,2015,37(9):181-185(in Chinese).[樊凌.基于视觉搜索的舰船跟踪方法研究与仿真[J].舰船科学技术,2015,37(9):181-185.]

[5]RUN Junhua,CHEN Shaohua,AI Shufang,et al.Target tracking with improved Camshift based on Kalman predictor[J].Journal of Chinese Inertial Technology,2014,8(4):536-543(in Chinese).[闰钧华,陈少华,艾淑芳,等.基于Kalman预测器的改进的Camshift目标跟踪[J].中国惯性技术报,2014,8(4):536-543.]

[6]CHEN Xingyuan,ZHENG Liexin,PEI Hailong.Object trac-king system based on Camshift and SURF[J].Computer Engineering and Design,2016,37(4):902-905(in Chinese).[陈杏源,郑烈心,裴海龙.基于Camshift和SURF的目标跟踪系统[J].计算机工程与设计,2016,37(4):902-905.]

[7]LIU Mengmeng.The research and design of moving target re-cognition and track[D].Beijing:North China University of Technology,2017,35-49(in Chinese).[刘萌萌.移动目标识别与跟踪方法研究与设计[D].北京:北方工业大学,2017:35-49.]

[8]GU Xin,FEI Zhiting.Object tracking based on local background weighted histogram[J].Systems Engineering and Electronics,2016,38(1):200-204(in Chinese).[顾鑫,费智婷.基于局部背景加权直方图的目标跟踪[J].系统工程与电子技术,2016,38(1):200-204.]

[9]Xiao wei An,Jaedo Kim,Youngjoon Han,et al.Optimal co-lour-based mean shift algorithm for tracking objects[J].IET Computer Vision,2014,8(3):235-244.

[10]Wang Qiu.Optimization of segmentation algorithms through mean-shift filtering preprocessing[J].IEEE Geoscience and Remote Sensing Letters,2014,11(3):622-626.

[11]XU Xiaohang,XIAO Gang,YUN Xiao,et al.Moving object tracking in complex background and occlusion conditions[J].Opto-Electronic Engineering,2013,40(1):23-30(in Chinese).[许晓航,肖刚,云霄,等.复杂背景及遮挡条件下的运动目标跟踪[J].光电工程,2013,40(1):23-30.]

[12]LIN Jianhua,LIU Danghui,SHAO Xiankui.Multi-feature fusion Camshift algorithm and its further improvement[J].Journal of Computer Applications,2012,32(1):2814-2820(in Chinese).[林建华,刘党辉,邵显奎.多特征融合的Camshift算法及其进一步改进[J].计算机应用,2012,32(10):2814-2820.]

[13]SONG Xiaolin,WANG Wentao,ZHANG Weiwei.Vehicle detection and tracking based on the local binary pattern texture and improved Camshift operator[J].Journal of Hunan University(Natural Sciences),2013,40(8):52-58(in Chinese).[宋晓琳,王文涛,张伟伟.基于LBP纹理和改进Camshift算子的车辆检测与跟踪[J].湖南大学学报(自然科学版),2013,40(8):52-58.]

[14]LIU Houde,LIANG Bin,XU Wenfu,et al.Motion prediction and autonomous path planning for spinning target capturing[J].Journal of Jilin University(Engineering and Technology Edition),2014,44(3):757-764(in Chinese).[刘厚德,梁斌,徐文福,等.自旋目标运动预测及自主捕获路径规划方法[J].吉林大学学报(工学版),2014,44(3):757-764.]

[15]YANG Lihua,GE Lei,LI Baolin,et al.Particle filter algorithm based on strong tracking UKF[J].Computer Enginee-ring and Design,2015,36(9):2432-2435(in Chinese).[杨丽华,葛磊,李保林,等.强跟踪UKF粒子滤波算法[J].计算机工程与设计,2015,36(9):2432-2435.]

猜你喜欢
概率分布轮船卡尔曼滤波
基于深度强化学习与扩展卡尔曼滤波相结合的交通信号灯配时方法
离散型概率分布的ORB图像特征点误匹配剔除算法
轮船
卡尔曼滤波在信号跟踪系统伺服控制中的应用设计
弹性水击情况下随机非线性水轮机的概率分布控制
基于递推更新卡尔曼滤波的磁偶极子目标跟踪
基于有色噪声的改进卡尔曼滤波方法
关于概率分布函数定义的辨析
基于概率分布的PPP项目风险承担支出测算
中国第一艘轮船的由来