徐健,陈倩倩,黄磊,孙泽维
(西安工程大学 电子信息学院,陕西 西安 710048)
纺织是我国重要的国民经济行业,而纱管跟踪与检测在纺织行业中起着重要的作用,尤其是在纱管数量较多或者纱管颜色相近时,容易导致纱管遗漏和放错,使生产效率下降。因此,智能纺纱检测与跟踪就显得尤为重要。
目标跟踪是指对视频图像序列的运动目标用跟踪窗口进行锁定。在目标跟踪过程中会由于遮挡、光照强度以及目标尺度变化对跟踪产生影响[1]。在跟踪算法中,MeanShift算法——均值漂移算法,它是由Fukunaga提出的一种非参数估计算法,该算法由于实时性好和快速匹配等特性被广泛应用于目标跟踪领域[2-3]。然而,传统的均值移位算法在目标跟踪的应用中效果并不理想,该算法跟踪窗口的大小是固定的,容易导致误跟踪。而CamShift(continuously adaptive mean-shift)即连续自适应均值漂移算法可以随着目标物体的尺寸变化而自适应调节搜索窗口的大小[4-6],但是当背景较为复杂,或者有许多与目标颜色相似像素干扰的情况下,容易导致目标跟踪失败。
CamShift算法是以颜色直方图为目标特征信息,因此,适用于目标与背景具有明确区别的目标跟踪系统中[7-9]。熊昊等[10]提出加入SURF特征,改善跟踪窗口在遭遇大面积背景色干扰时易发散的问题,但对于目标较小或者表面纹理较少时影响较大;文献[11-12]引入背景减法和帧间差与CamShift相结合解决光照变化、阴影等问题;文献[13]将颜色和纹理相融合,克服依靠目标模型不足的问题。上述算法虽然在一定程度上改善了一些问题,但是对于运行过程中的跟踪精度和实时性没有得到较好解决。
本文基于以上理论研究基础,在传统CamShift跟踪算法的基础上加入了基于颜色识别和卡尔曼预测机制的运动目标检测方法,该方法借助颜色直方图有效降低目标跟踪丢失现象,同时融入卡尔曼预测机制,实现自动跟踪运动目标,增加了系统的实时性和鲁棒性。
CamShift目标跟踪方法是在Meanshift算法基础上的一个拓展[14]。算法对视频序列中的每一帧图像都要进行MeanShift运算,通过寻找窗口质心位置不断进行迭代操作,从而实现对运动目标的跟踪。另外,可以根据目标物体大小尺寸的变化自适应调节跟踪窗口的大小,提高跟踪效率。
CamShift跟踪算法的具体步骤如下。
(1)颜色直方图反向投影:由于RGB颜色空间模型对光照强度比较敏感,光照强度不同,提取的颜色特征也会产生差别,从而跟踪效果容易受到影响,因此,在跟踪算法执行前需要将RGB颜色空间转化为HSV颜色空间。从初始定义的搜索窗口中获取目标物体的颜色分量H并做直方图,这个直方图表示不同颜色分量H出现的概率和像素个数,将输入图像中的每个像素点的颜色值与选定搜索窗口的颜色直方图相对应并替换颜色出现的概率,这样就可以输出颜色概率分布直方图。构造带有核函数的目标模型概率分布,即
(1)
式中:k(*)为核函数;b(xi)为索引函数,它反映像素xi所在的bin序号;δ(x)为狄拉克(Delta)函数,用以判断xi的索引值与特征值u是否相等,它只有在像素xi属于第u个bin时才等于l,否则为0,以此来实现对像素点按bin进行分类;h为跟踪窗宽;C为归一化常数,如式(2)所示。
(2)
(3)
构造目标颜色模型,由RGB转换成HSV空间分量分布图,在HSV空间中计算目标区域的颜色直方图,H,S,V的量化等级分别是16,4,4,颜色直方图的分量值16×4×4=256。结果如图1所示。
图1 颜色直方图
(2)搜索窗口质心位置:对初始定义的跟踪窗口利用MeanShift算法进行计算,通过零阶矩和一阶矩计算出跟踪窗口的质心位置,同时利用二阶矩对窗口的大小进行自适应调节,随后将质心位置作为下一帧图像的输入,重新搜索窗口的质心位置,反复迭代,直到窗口的质心位置不发生变化时,从而实现对目标物体的跟踪。即零阶矩和一阶矩可表示为
(4)
窗口的质心位置可表示为
(5)
自适应调节窗口大小可表示为
(6)
参数a,b,c为
(7)
(3)CamShift迭代过程:这一步是将新计算出的窗口中心与质心进行比较,当两点之间的位置大于设定的阈值时,则重复如上步骤,直到两点之间的距离满足要求时,停止操作。
目标跟踪的过程就是通过连续迭代MeanShift向量的梯度,下降搜索,求出具有良好实时性和可移植性的目标区域;但是算法也存在了一定的缺陷,其跟踪窗口的大小是固定的,不能随着目标物体的大小变化而自适应调节搜索窗口的大小。纱管目标跟踪连续迭代搜索过程变化曲线如图2所示,CamShift跟踪算法的流程如图3所示。
图2 连续迭代搜索过程变化曲线
图3 CamShift跟踪算法流程
本次实验通过不断改变纱管的方向以及将纱管靠近或者远离相机来对MeanShift跟踪算法和CamShift跟踪算法进行比较(注:纱管上有无纱线对于检测和跟踪影响不大,可以忽略不计),其跟踪效果如图4所示。
图4 CamShift跟踪效果
图4为Cam Shift跟踪算法的效果图,从图4可以看出,纱管发生转动、靠近或者远离摄像头时都能自适应改变跟踪窗口的大小和方向,其跟踪效果明显优于MeanShift跟踪算法效果。
传统的Camshift跟踪算法需要手动选择初始跟踪窗口,使纱管分拣喂纱过程操作繁琐,降低生产效率;同时,单一颜色特征的跟踪算法很难满足实时跟踪的要求,因此,在Cam Shift跟踪算法的基础上加入了基于颜色识别的运动目标检测方法和卡尔曼预测机制,以提高跟踪系统的性能。
卡尔曼滤波器是一种基于其过程的一系列先前观察值和测量值,对该过程状态进行递归估计的数学模型,Kalman滤波通过状态方程和观测方程来描述一个动态系统并能实时给出观测系统状态量的最优估计值[15]。
卡尔曼滤波器模型描述了一个基于k时刻状态观测值对离散时间过程状态进行估计的过程。
根据卡尔曼滤波原理,具体实现步骤如下。
Step1:初始化。通过第一帧图像,选定目标物体的初始位置,构造状态模型并初始化卡尔曼滤波器。
Step2:目标检测。根据卡尔曼滤波器的预测结果,确定当前帧图像中目标搜索区域,并使用目标检测方法在预测区域寻找与目标模型最匹配的候选位置。
Step3:遮挡处理。当目标物体出现遮挡时,判断候选模型与目标模型的相似度并调整卡尔曼滤波器的相关参数。
Step4:更新。更新卡尔曼滤波器。
Step5:输入下一帧图像,跳转到Step2,重复上述步骤直至结束。
改进的CamShift跟踪流程图如图5所示。
图5 改进的CamShift跟踪流程图
在该实验中,对不同时刻,颜色和轮廓特征的权重进行统计。本次实验选取整个跟踪过程的连续200帧图像,统计结果如图6所示,图7为特征权重分布示意图。
图6 纱管和Kalman的CamShift跟踪轨迹
图7 特征权重分布示意图
在不同时刻,目标的颜色和轮廓特征有不同的权重分配,在120帧左右时,目标被障碍物遮挡,颜色特征权重有所下降,但两者融合起来对目标状态进行量化,在一定程度上改善了单一特性的跟踪弊端,获得了较为稳定的跟踪效果。纱管运动轨迹和Kalman的CamShift跟踪轨迹如图6所示。
本文实验采用的编译环境为Visual Studio 2010下配置OpenCV3.2版本,并统一规定视频分辨率为960像素×544像素、帧速设定为30帧/s、传送带速度为60 mm/s,针对纱管在运输过程中几种常见的情况,本文分别使用传统的CamShift和改进的CamShift跟踪算法进行了3组实验。
目标遮挡实验:目标纱管在传送带上运输时,将其他纱管放置在目标纱管(本次实验选取的目标纱管为绿色纱管)的上方形成遮挡效果,实验效果图中左上角白色区域的数字表示为当前帧数,图中所显示的坐标为跟踪窗口的质心坐标,如图8和图9所示。
图8 CamShift目标遮挡跟踪效果
图9 改进算法目标遮挡跟踪效果
从传统的CamShift跟踪算法效果图中可以看出,如图8(b)第149帧图像中目标纱管被遮挡时,跟踪窗口变大无法准确跟踪绿色纱管,当遮挡物拿开后跟踪窗口仍然停留在目标纱管被遮挡的位置附近,见图8(c)。在改进的CamShift跟踪算法中红色矩形框为运动目标检测窗口,红色椭圆形框代表跟踪窗口、绿色框代表卡尔曼预测窗口、蓝色框代表测量状态窗口,当物体被遮挡时,可以继续跟踪原纱管裸露出来的一小块区域,如图9(b)所示,当遮挡物体被拿开时,重新锁定目标纱管进而继续跟踪纱管。目标遮挡误差距离如表1所示。
表1 目标遮挡质心偏离误差
目标实际质心位置与跟踪窗口质心位置之间的偏差距离计算公式可表示为
(8)
通过计算,传统的CamShift跟踪算法受遮挡影响较大,目标被遮挡时无法继续跟踪,偏差距离逐渐增大;改进的CamShift跟踪算法稳定性较好,当遮挡物取出后重新锁定目标纱管,距离偏差维持在3个像素左右。
相近颜色干扰实验:实验共进行了两组,第一组将粉红色纱管和橘红色纱管放置在一起进行比较,实验效果如图10(a)和(b)所示;第二组选择颜色更为相近的绿色纱管进行跟踪比较,实验效果如图10(c)和(d)所示。
图10 相近颜色干扰实验
传统的CamShift跟踪算法无法准确地跟踪目标颜色的纱管,跟踪窗口将两个运动目标融合在一起,最终导致跟踪两个运动目标;改进的CamShift跟踪算法相对比较稳定,可以准确地跟踪目标颜色的纱管,没有出现融合现象。将相近颜色纱管干扰产生的质心偏离误差进行对比,如表2所示。
从表2可以看出,改进的算法在颜色相似干扰下,跟踪窗口的质心与目标纱管质心之间的距离偏差在5个像素范围内。
表2 相近颜色干扰质心偏离误差
光照变化实验:截取纱管在不同光照处的跟踪效果图进行比较,跟踪效果如图11~12所示。
图11 CamShift光照变化跟踪效果
图12 改进算法光照变化跟踪效果
图11(a)和图12中(a)分别表示传统算法和改进的CamShift跟踪算法在光照变化前的跟踪效果图,2种方法都能很好地锁定目标纱管位置。当目标纱管驶入高亮区域时,传统的CamShift跟踪算法跟踪窗口变大,无法准确地跟踪目标纱管,如图11(b)所示,而改进的CamShift算法通过更新预测仍然可以良好跟踪,如图12(b)所示,当驶出高亮区域后,传统的跟踪窗口逐渐变小,恢复跟踪能力,如图11(c)所示,图12(c)为改进算法驶出高亮区域的效果图。对两种算法在光照变化时质心距离偏差进行了比较,如表3所示。
表3 光照变化质心偏离误差
根据表3可得,传统的CamShift跟踪算法受光照影响较大,在高亮区域两质心之间的偏差距离达到74个像素,而改进的CamShift跟踪算法能够有效抑制光照影响。
通过上述3个对比实验可以得出,无论是目标被遮挡,或者相近颜色干扰,或者光照强度较强的情况下,本文改进的算法都可以很好地跟踪,而且跟踪稳定性较好,相比于传统的算法,目标的质心坐标之间的偏差大大减小,从而提高了改进算法的精准性。
针对传统Meanshift算法的不足,提出一种基于CamShift目标检测并结合 Kalman 预测模型对运动目标进行跟踪的改进算法。首先CamShift目标跟踪算法可以根据目标物体大小尺寸的变化自适应调节跟踪窗口的大小,提高跟踪效率。而在CamShift跟踪算法的基础上加入了基于颜色识别的运动目标检测方法和卡尔曼预测机制,提高了基于单一颜色特征的实时跟踪效率,同时将运动目标区域作为跟踪窗口可以避免人工设定跟踪窗口带来的误差。实验证明,改进算法能很好地适应近似颜色干扰、目标遮挡、物体加速运动等情况,提高了跟踪系统的精准性和鲁棒性。