顾 超
(东南大学机械工程学院,江苏 南京211189)
近年来,目标实时跟踪是视觉识别以及图像处理领域中备受关注的前沿方向.摄像头获取图像信息后,选中目标,然后实时跟踪目标.实现目标跟踪的关键在于合理的提取特征和准确的识别目标,同时要考虑算法实现的时间,保证实时性.目前,许多目标跟踪算法都已在工程中得到运用,运用较为广泛的算法有:(1)基于模板匹配的目标跟踪算法[1],这一算法的基本原理是,首先选取跟踪目标的特征(一般是边缘特征),作为模板,然后在以后的每一帧中,搜寻此模板,实现目标的跟踪.这种方法匹配速度比较慢,对噪声敏感,不适应匹配对象在旋转和缩放情况下的匹配问题.(2)粒子群优化(PSO)算法是一种基于群体智能的技术[2],该算法从一组随机解出发,通过迭代搜寻最优解,但是它没有像遗传算法那样应用交叉和变异算子,而是粒子在解空间追随最优的粒子进行搜索.该算法虽然取得了一定的成功,但该算法存在局部搜索能力差的缺点,不适合复杂环境下的目标跟踪.(3)TLD目标跟踪算法[3],TLD 即Tracking-Learning-Detection 的缩写,译为“跟踪-学习-检测”.顾名思义,TLD 目标跟踪有三部分组成,包括跟踪器、学习过程和检测器.在系统运作后,跟踪器和检测器并不是顺序工作,二者同时工作,不分先后.跟踪与检测的结果都作用于学习过程,学习的结果又反作用于跟踪器和检测器,系统得以实时更新,这样就形成一个闭环的跟踪系统,解决了跟踪目标外观变化带来的影响.TLD 技术有效的融合了跟踪与检测的过程,是一种自我更新的跟踪技术,但此方法具有较高计算量,算法还不成熟.(4)MeanShift 跟踪算法[4],是一种在一组数据的密度分布中寻找局部极值的稳定方法,稳定是相对的,在背景干扰较大以及目标被遮挡的情况,易出现跟踪目标丢失的情况.针对上述各种方法的不足,本文提出一种基于基于颜色直方图和深度信息的CamShift 目标追踪算法.
CamShift 算法的全称是"Continuously Adaptive Mean-Shift",即连续自适应的MeanShift 算法[5].“连续”是指该算法将对视频序列的每一帧都做meanshift 迭代,“自适应”是指该算法搜索窗口会自我调整尺寸.CamShift 算法具体步骤如下:
(1)选中搜索目标,记录输入的搜索窗口.
(2)根据颜色直方图求出跟踪目标的反向投影图.
(3)在反向投影图上进行meanshift 迭代,meanshift 向量指向重心,体现在反向投影图上就是向概率密度大的地方移动,最终移动到目标上.
(4)在操作下一帧图像时,参与迭代的搜索窗口用前一帧输出的窗口更新.
目标区域的初始化是指,在视频序列的第一帧图像之中,用一个窗口(窗口可以使对称的或歪斜的),获取初始目标区域的位置以及大小信息,由此可以计算出他的颜色直方图,一单确定了目标区域,就可以启动目标跟踪,目标区域在跟踪过程中自行调整.
图1 彩色图(左)与反向投影图(右)
图2 彩色图(左)与反向投影图(右)
直方图是一种数据分布的统计图[6],这些统计数据可以是诸如梯度、方向、色彩或其他特征,将统计数据组织到一系列事先定义好的bin 中,最终每个bin 的值都是相关数据的统计总量.在视觉跟踪领域,由于颜色特征不受物体扭曲、旋转等的影响,所以一般取颜色作为直方图统计对象.摄像头输出的图像格式一般为RGB 格式或YUV 格式,这两种数据格式离散而复杂,给后期处理带来麻烦.所以首先要将RGB 格式转化成一种有利于数字化操作的格式,这就涉及到颜色空间的转换[7].在各种颜色空间中,HSI 模型可以满足需求,HSI 中的H 分量表示色调,S 分量表示饱和度,I 表示强度.由于色调表示人的感官对不同颜色的感受,所以在颜色数据的处理时,可以将其他的色彩空间的值转化到HSI 空间,提取其中的H 分量,求出H 分量的颜色直方图.
根据获得的颜色直方图将原始图像转化成色彩概率分布图像,这个过程就被称作求反向投影.反向投影图与输入图像的大小相同,每点像素值设为颜色直方图中相关的bin 值.如果直方图是归一化的,此值便于一个概率值相关.以下是检验步骤:
(1)对测试图像中的每个像素(p(i,j)),获取色调数据并找到该色调(hi,j,si,j)在直方图中的bin 位置.
(2)查询模型直方图中对应bin 的数值.
(3)将此数值存储在新的反向投影图像中.也可以先归一化直方图数值到0 ~255 范围,这样可以直接显示反向投影图像(单通道图像).这样,如果颜色相似度越高,bin 数值就越大,体现在反向投影图中就越白.
(4)通过测试图像中的每个像素采用以上步骤,可以得到最终的反向投影图像.在图1(左),选取一个方形的目标物,提取颜色直方图,得到反向投影图1(右).
图3 Meanshift 向量图
图4 Meanshift 迭代结果
仅有颜色信息的反向投影图中,需要跟踪的目标易与环境中同颜色物体相混淆,如上图所示,图像中亮的部分为与跟踪目标相同颜色分布的物体,因此会给下面的处理造成很大的麻烦,有可能导致追踪失败.由此,需要一定的滤波方法,处理这些干扰.
深度信息是指场景中所有物体到摄像机的距离,不同的距离将会被转化成不同的灰度值,形成明暗层次鲜明的深度图.微软公司的kinect 摄像机可以同时给出深度图与彩色图,并且两幅图大小可以设为相同的640*480,每个像素点一一对应,所以融合深度信息的颜色直方图反向投影成为可能.
所谓融合深度信息的反向投影图,就是在原有的颜色直方图反向投影图的基础上,以深度数据为权重,达到滤波的目的.具体步骤如下.假设在当前帧,跟踪目标的质心离摄像机的距离为d,两帧图像之间目标的移动距离大约为m.于是在下一帧,深度图中数值在(d-2m,d+2m)区间的像素点将会以权重系数值1 映射到反向投影图中,即原来值为a,处理后将变成a*1.深度数值在(d-4m,d-2m)U(d+2m,d+4m)区间的像素点将会以权重系数值0.8 映射到反向投影图中,即原来值若为b,处理后变为b*0.8.以此类推,根据深度值偏移的大小赋予相应的权重系数.上面描述中,权重系数可按实际情况修改.融合深度信息的反向投影如图2.
Meanshift 算法是一种在一组数据的密度分布中寻找局部极值的稳定的方法,meanshift 只估计数据分布的梯度(变化方向),变化为0 的地方则表示是这个分布的峰值(虽然可能是局部的).Meanshift 算法步骤如下:
(1)选择搜索窗口.
(2)计算窗口的重心:设(x,y)是搜索窗口的像素点,I(x,y)是对应反向投影图中(x,y)的像素值,搜索窗口的零阶矩M00,一阶矩M10,M01计算如下:
像素分布的重心为:
(3)将窗口的中心移动到重心处:Meanshift矢量公式(3),其中Sk为搜索窗口,xi是指窗口内的每一个点,x 是指窗口的中心,Mh是所有点的合成矢量.从公式可以得出,窗口中心将会向着重心的方向移动,每一次移动之后将得到一个新的中心,直到中心和重心重合,迭代结束.具体步骤如下:
1)以搜索窗口的中心为圆心,搜索框内所有点都会和圆心产生一个向量,然后把这些向量都相加,相加的结果就是Meanshift 向量,如图3.
2)再以meanshift 向量的终点为圆心,重复以上步骤,就可得到一个新的meanshift 向量.如此重复下去,meanshift 算法可以收敛到概率密度最大得地方.也就是最稠密的地方,最终结果如图4.
要实现对目标的实时追踪,需要对每一帧图像都作MeanShift 运算,并将上一帧的结果(即搜索窗口的中心位置和窗口大小)作为下一帧搜索窗口的初始值,更新搜索窗口,如此一来,即使跟踪目标的大小变化或者外形扭曲等,该算法也可以自我更新搜索窗口继续跟踪.
表1 包括两个实验,实验1 采用本文所论述的基于跟踪方法,实验2 采用仅基于颜色直方图的Camshift 这一传统的跟踪方法.两个实验在同一实验环境下进行,检测两种方法跟踪目标物体的鲁棒性.实验1 中,手持目标物体移动到相似颜色的大物体附近,然后再移开目标物体,整个过程中,跟踪环始终跟随目标物移动.实验2 中,采用和实验1同样的检测方法,当目标物体靠近相似颜色物时,跟踪环发生偏移,不再跟随目标物.
对比两个实验结果,融合基于颜色直方图与深度信息的跟踪方法较仅基于颜色直方图的传统跟踪方法在跟踪目标物体鲁棒性方面有较大改进.
在视觉跟踪领域,对于含有相似物体的环境或是环境较为复杂的情况,单独用颜色跟踪不能获得良好的效果,本文提出一种融合颜色信息和深度信息的跟踪方案.实验结果表明,该方案的跟踪性能较传统方案有较强的鲁棒性.
表1 对比实验结果
[1] 付永会,张风超,张宪民.一种改进的基于颜色直方图的实时目标跟踪算法[J].数据采集与处理,2001,(03):309-314.
[2] 唐红艳,徐正光.基于PSO-RBF 的神经网络及其应用[A].冶金自动化研究设计院.全国炼钢连铸过程自动化技术交流会论文集[C].冶金自动化研究设计院,2006,(3).
[3] 李晓飞.基于视觉的船舶跟踪与三维定位技术研究与应用[D].广东工业大学,2014.
[4] 王年,丁业兵,唐俊,等.带宽自适应的Mean-Shift 目标跟踪算法[J].华南理工大学学报(自然科学版),2011,39,(10):44-49.
[5] 刘双.动态融合梯度信息的Camshift 算法改进研究[J].无线互联科技,2014,04:181-183.
[6] 汪启伟.图像直方图特征及其应用研究[D].合肥:中国科学技术大学,2014.
[7] 张学习,杨宜民.彩色图像工程中常用颜色空间及其转换[J].计算机工程与设计,2008,29(5):1210-1212.