陈锡锻 陈鹏
摘 要:针对人体跟踪过程中因遮挡、姿态变化而导致的跟踪器鲁棒性变差的问题,提出一种基于深度相机和卡尔曼滤波的人体目标跟踪方法,在深度图像下,基于人体骨架关键点,将人体目标分解成若干个关键点的位置状态,分别建立各关键点运动的数学模型,通过卡尔曼滤波器的跟踪,增加了人体目标跟踪不确定性的描述,提高了对遮挡、识别错误等不利因素的鲁棒性。
关键词:人体目标;深度相机;卡尔曼滤波;鲁棒性
中图分类号:TP391 文献标志码:A 文章编号:1672-0105(2022)01-0072-05
Application of Depth Camera and Kalman Filter in Human Target Tracking
CHEN Xiduan, CHEN Peng
Abstract: In view of the poor robustness of the tracker caused by occlusion and attitude change in the process of human tracking, a human target tracking method based on depth camera and Kalman filter is proposed. In the depth image, based on the key points of human skeleton, the human target is decomposed into the position state of each key point, and the mathematical models of the movement of each key point are established respectively, Through the tracking of Kalman filter, the description of human target tracking uncertainty is increased, and the robustness to adverse factors such as occlusion and recognition errors is improved.
Key Words: human targets; depth camera; Kalman filter; robustness
引言
人体目标跟踪在人员安全监控、运动员比赛分析、智能人机交互等领域具有广泛的应用[1],研究人体目标跟踪技术,助力公共安全、智能交通、智慧城市等领域的发展,这对于促进社会发展具有深远的意义[2]。
實现人体目标跟踪任务前,首先需要解决的问题是如何对人体目标进行实时性、强鲁棒性的检测。本文针对人体跟踪过程中因遮挡、姿态变化而导致的跟踪器鲁棒性变差的问题,提出一种基于深度相机和卡尔曼滤波器的人体目标跟踪方法,该方法在深度图像下,基于人体骨架关键点,将人体目标分解成若干个关键点的位置状态,分别建立各关键点运动的数学模型,通过卡尔曼滤波器的预测跟踪,增加了人体目标跟踪不确定性的描述,提高了跟踪器对遮挡、识别错误等不利因素的鲁棒性。
1 人体骨架关键点
深度相机的骨架提取算法可获取到丰富的人体姿态信息。检测到的人体骨架关键点总共有17个,分别为头部、颈部、躯干、左肩、右肩、左肘部、右肘部、左手、右手、左胸、右胸、左腰、右腰、左膝、右膝、左足和右足,如图1所示。
在人体目标跟踪时,对人体骨架关键点建立运动数学模型如下:
(1)
其中[j=1,…,17]为人体目标关键点[j]的状态,[xjp,k],[yjp,k]和[zjp,k]分别为关键点[j]在x、y和z轴上的位置,[xjv,k],[yjv,k]和[zjv,k]分别为关键点[j]在x、y和z轴上的速度,[xja,k],[yja,k]和[zja,k]分别为关键点[j]在x、y和z轴上的加速度。
2 卡尔曼滤波器
卡尔曼滤波器是一个对动态系统的状态序列进行线性最小误差估计的算法,一般用于线性系统[3]。卡尔曼滤波在物体互相遮挡和测量值带噪声的情况下仍然可以实现实时目标跟踪的效果,预测时具有无偏、稳定和最优的特点[4-5]。
2.1 算法描述
根据公式(1)建立的人体骨骼关键点的运动数学模型,建立卡尔曼滤波状态和观测模型如下所示:
(2)
(3)
其中,[Fjk]为关键点[j]的状态转移
(4)
[wjk-1]和[vjk]分别为零均值且协方差为[Qjk-1]和[Rjk]的高斯白噪声。基于当前时刻各关键点的状态估计值,利用公式(5)和(6)预测下一时刻关键点[j]的状态[xjk]和[Pjk]。
(5)
(6)
其中,[xjk-1]与[Pjk-1]为k-1时刻的状态估计值,接着,深度相机采集人体目标深度图像,实现人体目标的识别,并计算出人体各关键点的位置,读取人体目标各关键点的量测值[zjk],[j=1,…,17]。并利用公式(7)和(8)计算关键点[j]在卡尔曼更新后的状态估计值[xjk]和[Pjk]。
(7)
(8)
其中[Kjk]如下:
(9)
2.2 算法实现流程
基于深度相机的卡尔曼滤波人体目标跟踪算法的具体做法如下,其流程图如图2所示:
(1)将人体目标状态分解成17个关键点的位置状态,建立各关键点运动的模型,并确定卡尔曼滤波器参数;
(2)根据上一时刻的人体目标关键点位置估计,分别预测下一时刻人体目标关键点位置;
(3)读取深度图像传感器的信息,识别并计算人体目标关键点位置,读取人体目标关键点位置信息;
(4)根据读取到的人体目标关键点位置信息,分别对预测的人体目标关键点位置进行量测更新;
(5)重复执行步骤2~步骤4,完成人体目标的鲁棒实时跟踪。
3 实验與分析
在人体运动目标自动跟踪系统的实际应用中,考虑到卡尔曼滤波算法需要进行大量的矩阵运算,故在本文中将卡尔曼运动预测跟踪方法做了简化,不考虑系统误差和观测误差对系统的影响[6],在室内环境,固定背景情况下,采用卡尔曼预测方法,预测人体目标各关键点下一时刻目标最可能出现的位置,获取实验数据,并对结果进行分析。
深度相机采用北京韵动体感科技有限公司的YDSENS韵动体感深度摄像头,1 080P分辨率,深度范围为0.5~4米,实时性高,摄像头帧率为每秒30帧。其中SDK支持人体骨架关键点识别,同时支持市场上多种相机,包括Intel Realsense。其深度原始图片与深度图像如图3所示,图片左侧为行人目标图像,右侧为深度图像下的骨架关键点图。
人体目标跟踪效果如图4所示,其中图(a)为正常行人目标下的人体目标跟踪图,图(b)为手臂部分被遮挡后的人体目标跟踪图,图(c)为双手被挡后的人体目标跟踪图,图(d)为人体加速向右上方运动并遮挡右腿的人体目标跟踪图。由图可知:在深度图像下,利用卡尔曼对人体目标骨架关键点进行运动预测从而实现人体目标跟踪,效果比较理想。
为了方便数据的分析处理,将运动目标各关键点的三维坐标数据转化为二维坐标数据,将各关键点实际位置坐标(X,Y)和卡尔曼滤波得到的数据四舍五入以.csv文件的形式保存,其部分数据如表1所示。
人体局部数据(右手)所得实际值与卡尔曼预测值数据做对比,其中被遮挡人体部位数据处理为(0,0)坐标,图5为X坐标数据,图6为Y坐标数据。从中我们可以看出,在2~2.5秒时间里,由于右手部分被遮挡,从而观测数据丢失,因而卡尔曼预测值与实际值有偏差,但在整体预测过程中,卡尔曼对运动目标跟踪有着较好的效果。
采取跟踪精度为算法性能指标来评价算法性能,跟踪精度定义为预测目标位置与实际位置之间的距离误差小于特定阈值的帧数与总帧数之比[7],其中误差距离公式如下:
(10)
其中[(xp,yp)]为人体预测目标中心位置,[(xt,yt)]为表示实际目标所在中心位置,实验以25的距离作为特定阈值,本文通过比较传统卡尔曼人体目标跟踪方法与本文方法的跟踪精度,其中在遮挡性环境下测试算法性能时,通过间断性遮挡人体目标部位进行实验,得到结果如表2所示:
由表2我们可以得知在无遮挡环境下本文方法和传统方法的跟踪精度相差无几,在遮挡环境下,尤其是遮挡上半身部位和大面积遮挡下半身部位,本文算法能够显著提高系统的跟踪精度,增强系统的鲁棒性。
4 结语
在深度图像下,基于人体骨架,本文首先将人体骨架分为17个关键特征点,并分别对各关键点建立运动数学模型,其次通过卡尔曼滤波器对各关键点进行目标跟踪,从而增加了人体目标跟踪不确定性的描述,最后通过实验测试得出数据和结果。
从实验测试结果可以看出:在深度图像下,基于人体骨架关键点,采用卡尔曼预测人体骨架关键点,增加了人体目标跟踪不确定性的描述,对人体目标的运动趋势和方向能够做出正确的预测估计,特别对于人体跟踪过程中因遮挡、姿态变化而导致的跟踪器鲁棒性变差的问题能够很好的解决,从而能够较准确完成人体目标跟踪任务,为系统的整体稳定性提供了保证。
收稿日期:2022-01-26
基金项目:2021年浙江工贸职业技术学院院级课题“基于结构特征匹配与渐进卡尔曼滤波的人体目标跟踪方法研究”(G210101)
作者简介:陈锡锻(1989—),男,浙江苍南人,浙江工贸职业技术学院助教,主要研究方向:模式识别、信号与信息处理、语音识别;陈鹏(1979—),女,四川开江人,浙江工贸职业技术学院讲师,主要研究方向:图像处理、数字排版、界面设计。