[0021] 下面结合附图描述本发明改进Kalman-MeanShift算法的深度图像人体目标跟踪方法。
[0022] 图1为改进算法流程图,主要包括以下几个步骤:
[0023] (1)首先针对待跟踪目标,初始化MeanShift跟踪区域,得到初始跟踪区域质心;
[0024] (2)对跟踪框质心运动轨迹建立相关运动模型,从而用Kalman滤波器预测目标在每一帧中的大致位置;
[0025] (3)将当前MeanShift跟踪区域质心位置的深度值与初始跟踪区域质心位置深度值相比较,若二者相差较大则表明当前的目标区域深度值较初始时刻变化较大,此时更新目标直方图模板为当前跟踪区域的直方图;
[0026] (4)计算每一帧Meanshift跟踪区域质心位置与Kalman滤波器预测质心位置的距离,若当前跟踪区域质心位置与Kalman滤波器预测到的质心位置距离过大,则认为跟踪目标正在经过障碍物,且该障碍物被Meanshift误判断为跟踪目标并发生跳变;
[0027] (5)将误跟踪框设定为障碍物位置区域,生成一块大小与误跟踪框大小相同、深度值全为1的掩膜,将掩膜覆盖到障碍物区域,障碍物被屏蔽;
[0028] (6)启动人体目标检测机制,用事先训练好的Adaboost分类器重新检测出人体目标,并将检测得到的矩形框作为Meanshift新的跟踪框;
[0029] (7)计算当前跟踪区域质心与屏蔽区域质心距离,若该距离较大,则认为人体已经不再靠近障碍物区域,解除屏蔽,消除掩膜。
[0030] 下面逐一对各步骤进行详细说明。
[0031] 步骤一,模板更新
[0032] (一)基于人体目标深度值的模板更新方法
[0033] MeanShift是一种基于模板匹配思想的跟踪算法。跟踪初始化后,初始帧的目标区域颜色分布直方图即为跟踪过程中的模板。在深度图像中,由于人体运动,人体目标区域的深度值会发生变化,因此初始帧的目标模板在深度图像中不能作为整个跟踪过程的模板,模板更新方法旨在让人体目标远离或者靠近深度相机时,都有相应的模板用来进行准确跟踪,其实现思想即设定阈值,实时比较当前帧的跟踪区域深度与模板深度,若二者相差大于阈值,就更新当前跟踪区域为新的模板,具体过程如下:
[0034] 1)记录初始帧跟踪模板区域质心位置的深度值Pini;
[0035] 2)在每一帧的跟踪过程中,计算当前跟踪区域质心位置深度值Pcur与模板区域质心位置深度值Pini之差;
[0036] 3)设定深度差阈值D1,若在某一帧中,当前跟踪区域质心位置深度值与模板区域质心深度值差值过大,即当
[0037] |Pini-Pcur|>D1 (1)
[0038] 成立,则更新目标模板,用当前跟踪区域颜色直方图作为新的模板同时重置Pini的值为新的模板区域质心位置深度值。
[0039] 步骤二,障碍物屏蔽
[0040] (一)障碍物干扰判断
[0041] 在跟踪开始之前,建立线性的运动模型,用于跟踪过程中Kalman滤波器对目标质心位置的预测。跟踪过程中,可以利用Kalman滤波器预测位置与当前跟踪区域的质心位置的距离作为障碍物是否干扰跟踪的判断。一般情形下,相邻帧间人体运动的位置变化比较小,并且Kalman滤波器的预测位置与MeanShift跟踪质心比较接近,但当目标靠近障碍物,跟踪框质心会瞬间偏离,而Kalman滤波器预测位置在两帧间不会出现大幅移动,因此如果在某一帧中,Kalman滤波器预测位置y1与当前跟踪框质心位置y2过大,即当[0042] Dis(y1,y2)>D2 (2)
[0043] 成立,则认为人体目标正在受障碍物干扰且已经发生跳变,此时认定跳变后的区域为障碍物区域。
[0044] (二)障碍物屏蔽方法
[0045] 障碍物屏蔽即让MeanShift在后续跟踪过程中不再将目标区域收敛到障碍物区域,因此屏蔽的具体做法是在障碍物区域覆盖一块掩膜,将其与附近区域像素区分开。
[0046] 步骤三,目标检测再跟踪
[0047] (一)基于机器学习的再跟踪方法
[0048] 屏蔽障碍物后需要再跟踪的步骤,来进行后续的跟踪。由于靠近障碍物造成的跳变是由障碍物与人体目标的深度值过于接近引起的,因此在跳变发生前,跟踪框就有小幅度的偏差,Kalman滤波器的预测位置已然不够准确,所以利用目标检测的方法来实现再跟踪。用事先由多种深度、多种姿态、多种角度下的大量深度图像人体数据集训练好的能应用于一般情形下深度图像人体检测的分类器重新检测出人体区域,将检测得到的区域作为新的跟踪区域,就完成了再跟踪。
[0049] 步骤四,障碍物屏蔽解除
[0050] 对于静态背景而言,障碍物屏蔽能一直生效且不影响正常跟踪,而对于深度相机会改变视角的动态背景,在深度相机视角改变后,障碍物已经不在被屏蔽的区域,因此在这种情形下需要解除障碍物屏蔽。无论视角如何改变,被跟踪的人体目标应该始终在深度相机视角内,因此,判断是否需要解除障碍物即判断人体目标是否远离屏蔽区域即可,给定阈值,在屏蔽机制响应后的各帧中,计算当前跟踪区域质心位置y2与屏蔽区域质心位置ys的距离,若距离过大,即当
[0051] Dis(y2,ys)>D3 (2)
[0052] 成立,则认为人体目标已远离障碍物区域,可以解除屏蔽。
[0053] 实验表明,改进后的Kalman-MeanShift算法针对深度图像的人体目标跟踪具有很高的可行性,跟踪成功率较传统方法有明显的提高。