李晓波 徐国强 杨秀宇 赵广源
(1.华晋焦煤有限责任公司 吕梁 033000)(2.焦作煤业集团赵固(新乡)能源有限责任公司 新乡 450000)(3.中国矿业大学信息与控制工程学院 徐州 221116)
随着计算机相关技术的突飞猛进,运动目标检测与跟踪技术逐渐受到越来越多的关注,尤其对于煤炭等高危险行业领域、交通领域以及军事领域。目标检测和目标跟踪是计算机视觉中的重要步骤,同时也是十分具有挑战性的研究领域。跟踪算法可以被分为四大类:基于模型计算、基于主动轮廓、基于均值漂移和基于特征匹配。其中,基于均值漂移类 中 CAMshift(Continuously Adaptive Meanshift)算法因实时性能突出且可适应目标尺寸变化,逐渐成为一种备受关注的跟踪算法[1~3]。但是,CAMshift算法也具有一定的局限性。其中,CAMshift算法对目标颜色特征的提取并不完整;同时只利用颜色特征进行跟踪,当背景色彩与目标色彩过于相似时,跟踪的准确性降低,甚至丢失目标;在目标丢失后,缺少对目标重新定位的计算机制。
目前,一些学者已经就上述缺陷进行改进。文献[4]将HSV颜色模型中的三个颜色通道数值重新定义,提取目标颜色信息作为特征模板,将模板信息映射到每一帧图像中,通过Meanshift算法[5]求解目标候选区域。而当前景和背景的颜色相差不大时,算法的跟踪效果会不理想,因为只利用了颜色信息。
文献[6~7]将CAMshift算法和Kalman算法相结合,通过Kalman算法对目标位置进行预测,可以在一定程度上减弱目标移动速度过快对跟踪效果的影响。文献[8]结合Meanshift算法和最小二乘法跟踪目标位置,该算法对于目标突然加速的情况也容易跟踪失败。文献[9]将CAMshift和结构化局部稀疏权重建模方法相结合,对目标遮挡、形变、重叠的情况有一定的适应能力。文献[10]通过背景减除方法获取目标的运动信息,并结合颜色信息组成模板,来调整CAMshift搜索窗。如果丢失目标,该算法则不能重新定位。文献[11]通过在不同手势,不同背景以及不同光照的情况下训练手部的形状,并结合CAMshift的反向投影和光流法得到的运动速度来实现目标预测。但该算法实时性较差。文献[12]将CAMshift与 SIFT(Scale Invariant Feature Transform)算法相结合构建多特征模板的跟踪算法。该算法效果较好,但计算量偏大。
本文提出利用HSV颜色空间中的色调分量H和饱和度分量S构建目标的颜色直方图,并结合SURF算法建立多特征跟踪算法,以提高跟踪算法在相似颜色背景和目标被遮挡时的鲁棒性,并且改善目标无法重新定位时的跟踪效果。
Bradski于1999年对Meanshift算法做出了改进,得到CAMshift算法[1],即连续自适应 Meanshift算法。
CAMshift算法的计算步骤如下:
1)读取视频序列图像,将原始的RGB颜色空间转换到HSV颜色空间。
2)手动选取感兴趣区域,对感兴趣区域内所有像素点的色调分量H进行直方图统计并归一化,得到将上述直方图反向投影至当前帧图像,形成颜色概率分布图。
3)使用Meanshift算法在颜色概率分布图上计算以下参数。
零阶矩与一阶矩:
4)根据以上参数计算出搜索窗的位置和尺寸。
质心坐标:
搜索窗的尺寸:
根据上述结果作为下次计算的的初始值。
5)在当前图像中重复执行步骤4),直到搜索窗口的迭代过程收敛为止。
6)重复执行2)~5),直到视频序列读取完毕。
本文算法引入饱和度分量S,则以上计算中获取颜色概率分布图的步骤更改为:
对H和S分量进行组合,得到{H-bin,S-bin}二维坐标系,并计算在目标区域内落入对应bin的像素点数量。根据bin中的像素点数量,得到H-S直方图,并对H-S直方图进行归一化。
图1 传统CAMshift算法和改进CAMshift算法的关键步骤效果对比
本文实验的硬件环境:处理内核是Intel(R)Core(TM)2 Duo CPU 3.00GHz,运行内存为3.48G,程序开发工具为VS2010+OpenCV 2.4.9。
通过图2分析得到,改进CAMshift算法的搜索窗口定位准确,鲁棒性高。在第146帧光照变化比较剧烈的时候,仍然能够准确地跟踪目标,而传统CAMshift算法已经丢失目标。
图2 传统算法和改进算法的跟踪结果对比
实验结果如图3所示,横坐标为视频帧数,纵坐标为搜索窗的对角线长度,其中红线是CAMshift算法,蓝线是改进CAMshift算法。在0-92帧时间段内,目标远离摄像头,CAMshift算法和改进CAM-shift算法的搜索窗对角线的长度逐渐减小。在93-183帧时间段内,虽然目标和摄像头的距离不变,但光照变化剧烈,CAMshift算法的搜索窗对角线却远大于目标外框的对角线。改进CAMshift算法的搜索窗大小和目标相当。183帧以后,目标重新走近摄像头,目标尺寸逐渐增大,当目标开始离开摄像区域时,目标尺寸又逐渐减小。由图3可以看出,改进CAMshift算法的搜索窗的变化趋势符合目标实际尺寸变化的规律。
图3 跟踪精度对比实验图
多特征算法的流程是先使用改进CAMshift算法对目标进行跟踪,当跟踪误差过大时,再利用SURF算法[13]搜索和匹配目标,并将目标位置输入改进CAMshift算法进行跟踪。
SURF是基于SIFT特征改进的特征,由于与SIFT算法[14]的比较相近,因此SURF特征也具有SIFT特征所具有的特性,并且降低了运算量
3.1.1 特征点的检测
Bay等采用Hessian矩阵(Determinant of Hessian,DoH)用于对特征点的搜索工作[15]。Hessian矩阵在点X处的计算式更新为
式(6)中,σ为尺度因子参数,Lxx(X,σ)是高斯函数的二阶偏导,在内部像素的意义与 Lxx(X,σ)类似。
3.1.2 特征描述算子生成
为了实现旋转不变性,SURF为特征描述子设定一个主方向。
如图4所示,在设定的主方向上,构建20σ×20 σ的正方形区域,区域中心为特征点,并将该正方形区域分成4×4个子邻域,使用Haar小波变换分别计算所有子邻域沿主方向和其垂直方向的结果dx、dy,并根据结果构成基于主方向的4维向量,组合所有子邻域的4维向量,得到特征点描述算子向量。
图4 64维特征向量描述符
3.2.1 目标丢失的判断条件
本文利用巴氏距离来判定目标是否丢失。进行目标跟踪时,候选目标和原目标的色调分量H直方图分别为{巴氏距离计算公式如下。
式(7)中,l(p,q)为巴氏距离计算结果,数值越大,则候选目标与原目标越相近。本文将判定目标是否丢失的阈值设为0.7。
3.2.2 目标丢失后的重定位
多特征算法的流程图如图5所示。
1)输入视频帧图像,确定感兴趣区域。
2)计算感兴趣区域的H-S联合直方图。
3)使用改进CAMshift算法对目标进行跟踪。
4)计算候选目标和原目标之间的巴氏距离,若结果大于等于阈值(0.7),则重复步骤3);若结果小于阈值(0.7),则使用SURF算法进行匹配,并将匹配结果的外接矩形作为本帧图像的搜索窗,然后重复步骤3)。
图5 多特征算法流程图
多特征融合算法验证实验场景有目标被遮挡和前后景颜色相似两种情况。
目标被遮挡的实验如图6所示。
图6 传统算法与多特征算法实验结果对比图
通过图6可发现,多特征融合算法的实验结果果明显比传统CAMshift算法要好。在第296帧,旗杆遮挡了目标,两种跟踪算法都丢失目标。在第316帧,目标重新出现,传统CAMshift算法无法继续跟踪目标,而多特征算法则重新发现目标,继续进行跟踪。
图7 多特征算法的关键步骤效果图
该场景下多特征融合算法的关键步骤效果如图7所示。在第173帧,将运动目标作为SURF算法的模板。在第296帧,旗杆将目标遮挡,根据巴氏距离可以判定改进CAMshift算法丢失目标,下面将改用SURF算法对目标重定位并在第311帧重新确定目标,把目标的位置和大小输入改进CAMshift算法,从第312帧后继续使用改进CAMshift算法进行跟踪。
图8为目标被遮挡的实验中候选目标区域与原目标之间的巴氏距离变化图,其中,横坐标是图像帧序号,纵坐标是巴氏距离。
图8 巴氏系数的曲线变化图
前后景颜色相似的实验如图9所示,场景为一只蜜蜂在黄色的花上缓慢移动。
图9 传统CAMshift算法和多特征融合算法效果比较图
在第17帧,传统CAMshift算法搜索窗开始偏离目标,之后搜索窗口逐渐变大,目标跟踪失败。相比之下,多特征融合算法在第17帧以后仍能继续跟踪目标。
通过以上两个实验可以得出,多特征融合算法在目标被遮挡和前后景颜色相似的场景中均能达到很好的跟踪效果。
本文提出一种基于改进CAMshift的多特征跟踪算法。通过结合色调分量H和饱和度分量S改进了CAMshfit算法对颜色的区分度。基于此,再引入SURF算法从而构建多特征跟踪算法。实验表明本文算法在目标被遮挡和前后景颜色相似的场景均能保持较理想的跟踪效果。但是,多特征算法仍然只是一个半自动跟踪算法,确定目标阶段需要手动圈定感兴趣区域,这将是后续的研究内容。