APP下载

一种基于运动基识别的人体关节运动跟踪粒子滤波估计方法

2021-02-24张亚南朱方叶龙张勤

关键词:直方图滤波粒子

张亚南,朱方,叶龙,张勤

(1.中国传媒大学媒介音视频教育部重点实验室,北京 100024;2.移动网络和移动多媒体技术国家重点实验室中兴通讯股份有限公司,深圳 518000)

1 引言

人体运动跟踪是视觉监控系统,虚拟现实,医学分析等当前众多领域[1][2][3]中所研究的关键技术之一,但由于跟踪维度高、背景混乱、遮挡现象严重等多方面原因,其效果距离复杂场景中的实际应用还有一定的距离。人体运动跟踪任务是从图像中检测出人物,并对目标人物进行逐帧的位置或关节运动状态的定位与估计。将跟踪问题采用动态系统的贝叶斯估计方法[7]进行解决是目前常用的人体运动跟踪方法,它的思路是将目标跟踪问题转换成在贝叶斯理论框架下利用状态方程预测目标状态的先验概率密度,并利用最新的测量值对先验概率密度进行修正,不断求解从而得到目标状态的后验概率密度估计。卡尔曼滤波[8][9]是建立在高斯模型上用于解决非平稳随机过程内线性预测问题的方法,但是由于高斯模型是单峰模型,难以对于因遮挡所带来的非线性运动情况进行有效处理,因此适应性更高的粒子滤波算法[10][11][21]逐渐成为实现人体运动贝叶斯跟踪的主要手段。

然而对于粒子滤波算法而言,粒子的数量会随着状态空间的维度增加呈指数增长。由于人体关节运动的高维度属性,因此如何提高粒子采样的有效性成为使用粒子滤波方法进行人体关节运动跟踪过程中所需解决的主要问题[4]。一种提高粒子采样有效性的方法是在粒子权值赋值侯进行粒子状态的优化,Deutscher 等人[12]提出利用模拟退火算法实现在高维空间中关节模型的优化。M. Bray 等人[13]使用“随机元下降”作为样本优化器来实现高维运动跟踪。另一种方法是利用人体运动模型来降低状态空间的维度,D.Ormoneit 等人[14]使用PCA 算法在低维线性子空间中呈现人类行走,然后估计人和活动之间的自然变化。Rohr[15]将问题的维度降低到步行周期的阶段,并使用卡尔曼滤波器进行身体位置的估计。

使用针对特定运动形式的人体关节轨迹预测模型进行粒子状态转移空间的约束是一种基于先验空间建模的预处理思想。在特定目标的运动建模方面,Ling Guan[5][6]提出了分层时空人体运动模型,将最小运动单元定义为运动基。一个运动序列解析为一组运动片段,单个运动片段即为运动基。Simonyan 等人[16]在2014年首次提出了创造性的双流网络,利用单帧RGB 作为输入处理空间维度的信息和使用多帧密度光流场作为输入处理时间维度的信息并融合。为了更好的捕获时序信息,2015年Tran.D 等人[17]提出了C3D 卷积网络,利用三维卷积核处理视频信息。在此基础上Tran.D 与Y.Lecun 对时空卷积又有了新的认知[19][20],提出R(2+1)D 网络即将2D 的空间卷积和1D的时间卷积分离开来,使用残差网络进行学习[18],与C3D 对比,R(2+1)D 卷积更容易解决达到系统优化的目的。

在本文中,我们提出了一种基于运动基识别的人体关节运动跟踪粒子滤波估计方法。首先,在运动解析的过程中,我们先使用运动基定义运动空间,然后在运动空间中进行运动基的识别,从而得到运动基的概率密度分布,再通过概率密度分布分配粒子的多少。同时在粒子状态更新阶段,选取颜色直方图特征计算粒子适应度,在对粒子状态进行重采样更新的基础上修正运动基的概率密度分布。本文的主要贡献在于提出了一种运动状态不确定条件下的基于预测空间建模的粒子滤波器实现方案,并将其在人体关节运动跟踪应用中进行了应用验证。实现结果表明,本文提出的新型粒子滤波器架构在关节跟踪准确性上远优于传统粒子滤波器方案,并且我们还与现有的基于深度学习的点对点人体关节运动跟踪方法进行了对比,本文所提出方法在遮挡严重的情况下对于关节运动的预测性能对比深度学习方法也有一定的优势。

2 粒子滤波理论架构

2.1 粒子滤波理论基础

贝叶斯滤波是一种利用输入观测值和时域观测模型递归地估计未知概率密度函数的方法,基于视频的人体运动跟踪的过程通常用动态系统模型来描述,主要包括状态方程和观测方程,如公式(1)、(2)所示。

其中x为系统状态,y为测量值,f,h是状态转移函数和测量函数,v,w 为过程噪声和测量噪声,噪声都是独立同分布的。

从贝叶斯理论的观点来看,状态估计问题就是根据之前一系列的已有数据(后验知识)递推的计算出当前状态的可信度。它需要通过预测和更新两个步骤来递推计算,如公式(3)、(4)所示。

贝叶斯后验概率计算公式中需要对积分进行求解,为了解决公式中积分计算较难的问题,采用蒙特卡洛采样计算后验概率。粒子滤波是基于蒙特卡罗思想的贝叶斯滤波算法,基本思想是用一组样本来近似表示系统的后验概率分布,以样本均值代替积分计算,从而获得状态的最小方差估计。假设可以从后验概率中采样到N 个样本,那么后验概率的计算可表示为公式(5):

在粒子滤波器的执行过程中,随着时间的推移,会出现粒子权值退化现象,此现象一般采用粒子重采样的方法复制高权重的粒子进行解决。粒子重采样的操作使得算法向粒子权重高的地方收敛,进而得到目标状态的最优估计。

2.2 基于预测模式识别的粒子滤波框架

在粒子滤波算法中,状态方程的状态转移函数是唯一的(图1(1)所示),但在现实情况下,基于时间序列的运动形式不只有一种,并且状态转移函数也是不唯一的,这就需要算法有运动模型自适应调整的能力。因此我们提出了一种基于运动模式识别的粒子滤波状态估计方法(图1(2)所示),即从原始的求解粒子滤波算法后验概率p(xt|y1:t)演变成求解p(xt,mt|y1:t)。对于人体运动跟踪问题来说,我们需要根据前几帧的位置来提取特征以此匹配当前运动最合适的模式,然后再对粒子状态进行估计。这种方法是先识别运动模式,再通过匹配最大似然化的模式进行状态的估计。方法如下公式(7)表示,其中t 属于时间序列的某个时间段。

图1 (1) 状态估计的粒子滤波时间序列(2) 联合状态估计与模式预测的粒子滤波时间序列

3 粒子滤波理论架构

3.1 总体架构

根据2.2 中提出的基于预测模式识别的粒子滤波理论,本文提出一种基于运动基识别的人体关节运动跟踪粒子滤波估计方法。人体的关节结构具有多维度特性,单对粒子进行预测估计会产生粒子分散和消失现象,因此在粒子状态预测阶段,我们先对人体运动模式进行识别,运动模式被定义为运动基,通过R(2+1)D 网络识别运动基以获得预测模型中初始粒子个数的概率分布。再通过提取运动基的关节轨迹模式特征,对过程中的粒子进行行为空间的有效约束。在粒子状态更新阶段,我们采用颜色直方图特征对预测过程中的粒子进行修正,并对权值较小的粒子进行重采样。最后根据模式转移矩阵和轨迹特征样本的似然度来更新下一阶段的运动类型和运动状态估计。图2所示为利用运动模式识别对粒子滤波进行估计来实现人体运动状态的跟踪。

图2 人体运动跟踪与识别的整体框架

3.2 粒子状态预测模块

预测模型是影响关节运动准确跟踪的主要因素之一。在粒子滤波预测阶段,我们需要对运动模式进行识别来获得粒子初始分布状态,再利用提取的模式特征信息对行为空间进行有效的约束,即从原始的求解粒子滤波算法p(xt|y1:t-1)演变成求解p(xt,mt|y1:t-1)。

3.2.1 基于运动基模型的预测模式空间构建

对于人体而言,需要对运动方向的最大最小值来定义运动基开始和结束的人体动作。人的肢体所能表达的动作类型是无限的,但是这些动作类型的实现都是基于平面运动方向的延伸。所以为简单起见,只考虑发生在二维空间的人体运动,如表1所示,根据权重大小分为四种类别,可划分成10类运动基。

表1 运动基类型

3.2.2 运动基识别

在进行粒子滤波算法的预测和更新过程之前需要先对粒子进行初始化采样。由于人体关节具有多个自由度并且每个自由度的关节点位置差异明显,故需要通过运动基识别来获取运动关节跟踪的先验信息以保证粒子预测的有效性。因此我们需要在初始化的时候对运动基先进行一个有效的约束,通过识别运动基的概率来为运动模式分配对应的粒子。我们采用R(2+1)D 网络来实现运动基的识别,R(2+1)D 网络在三维卷积网络的基础上增加了残差模块,可以更好地提取时空域的特征。如图3 所示,R(2+1)D 网络通过初始化五层残差卷积并根据卷积层规格设置每层中的块数,首层只包含一个卷积层,通过在空间轴上执行2D 卷积到中间子空间,然后在时间轴上执行1D 卷积来输出;第二层输出和第一层输出大小相同不进行下采样,右侧分支直接相加;最后三层在每一层的第一个block 进行下采样,这条主线部分增加了一次卷积(包括空间卷积和时间卷积),并通过执行全局平均池化层来为批次中的每个元素生成512 维向量,形成整个残差网络特征提取器得到训练模型。最后通过输入数据集的测试视频到训练模型中,得到所识别出的概率分布。

图3 R(2+1)D网络结构

3.2.3 关节运动轨迹模型

(1)人体骨架模型

本文挑选了14 个人体部位的关节点来表示二维人体骨架模型,旨在准确地表示人体动作。动作实例就是由这14 个骨骼关节点的坐标随时间变化的序列组成,如图4所示。

图4 二维骨架运动模型

(2)关节运动位移信息

每个人的身高、胖瘦、形体各不相同,以至于在表征运动时的初始位置也不尽相同,不同的人表征相同动作会有一定的差异性,故我们选用帧间关节点相对位移近似消除差异性来拟合关节的运动轨迹。

公式(8)定义第i 个关节在相邻时刻的帧间位移向量:

第i 个关节在模式m 内的帧间位移表示为公式(9):

所以人体在单一模式内的帧间位移表示如公式(10),其中N=14:

(3)运动轨迹模型

在进行不同类型运动的时候,人体的骨架姿势与各关节位置都具有明显的差异性。但在进行相同类型运动的时候,不同的人的骨架姿势及关节位置的变化是类似的。因而可以通过寻找每种运动类型的骨架关节运动变化和运动轨迹的规律,来对每类运动基建立运动模型。关节点的运动轨迹是由该关节点不同时刻的位置向量构成的序列,因此我们采用均值归一化的位移向量序列描述关节点的运动轨迹,如公式(11)所示:

根据得到的位移向量模板去拟合运动轨迹曲线模型,模式M共含有28条关节曲线,如公式(12)所示。Tri代表关节点i 的运动轨迹,I 代表自由度的数量,M=1,2...,10。

3.3 粒子状态更新模块

我们利用目标的颜色直方图特征表示观测值,特征是由HSV三个颜色通道组成的110维子块直方图,量化bin为16:16:16。在更新过程中通过提取粒子观测图像所对应的颜色直方图特征,引入巴氏距离来计算特征直方图分布与参考模型之间的相似度和粒子的权重信息,如果相似度大于0.7,则直接用本帧的图像特征作为下一帧的初始参考图像,否则则结合上一帧的图像特征以及人体关节位移信息来当作下一帧的初始位置。巴氏距离计算公式(13)、(14)如下:

其中ρ为两直方图的Bhattacharyya系数;p为候选目标直方图分布;q为模板直方图分布;d为两直方图的Bhattacharyya距离,其值越小,表明两直方图的相似度越高;反之,两直方图相似度越低。

4 人体关节运动跟踪实验

4.1 数据准备

为了简化设计,假设人体运动技能序列是有限的,针对上述的运动基概念,我们构建了一个新的数据集来完成跟踪与识别实验。具体来说,我们采集了40个人在简单背景场景下的广播体操视频,视频包含10类运动基,通过剪辑将视频分为若干个运动基视频,最后一共得到了4022个视频,每个视频的时间在2s左右,运动基序列如图5所示。

图5 运动基序列

4.2 运动跟踪过程及实验结果

在跟踪之前需要对粒子初始化,初始化在运动跟踪过程中起着重要作用,它可以利用更多的先验信息去进行跟踪。首先需要分配预测模型中的粒子个数,我们对数据集进行分类,通过环境配置、数据预处理等步骤之后将其输入到网络中进行训练,进而得到识别结果的概率,图6是识别每类运动基的平均准确率。

图6 R(2+1)D网络识别的10类运动基准确率

我们根据已知的前几帧的数据和初始化的粒子可以匹配到有最大似然度的特征样本,因此就可以根据预测模型里的运动轨迹模型得到此刻运动基的模式特征轨迹,由此对运动基的行为空间进行约束,使粒子能够在可见的范围内采样。人体模型的大小和初始化姿势可以固定为先验信息,图7是具体运动基的运动轨迹模型。

图7 根据位移矢量模板拟合成运动轨迹曲线模型

粒子在跟踪过程中会因权重方差越来越大导致退化现象,因此我们需要对粒子进行重采样,首先判断是否需要重采样,若需要则再判断粒子权值是否低于重采样的阈值,重采样过程中总的粒子数保持不变。我们对所建立的运动基数据库中的测试视频进行运动跟踪实验,跟踪结果如图8和图9所示。

图8 不同的人在相同运动序列下的关节点跟踪

图9 同一个人在不同运动序列下的关节点跟踪

4.3 运动结果评估

为了更加准确地体现改进算法的跟踪结果,本文采用人体运动跟踪平均误差率对算法性能进行对比分析。利用相同的实验平台环境,粒子数为100。图10是将改进的粒子滤波器与传统粒子滤波器进行对比,可以看出随着时间的增加传统粒子滤波器的误差越来越大,且不能较好的适应运动模型的变化。图11是将我们的方法和深度学习的方法进行比较,在第40,80,117帧时深度学习表现出较大的误差,具体表现在第40帧的图像中,实验者正在进行蹲下这个行为动作,但由于锁骨关节被头部所遮挡,导致锁骨以上部位均未识别成功;在第80帧的图像中,人体的各个关节距离较近且存在遮挡,造成关节点连接絮乱,左膝盖与左手腕直接相连。因此深度学习所存在误差具体表现为关节无法跟踪或者跟踪的关节点的位置会出现严重偏差而使得平均误差变大。

图10 提出的方法与传统粒子滤波器的平均误差比较

在预测过程中,我们在运动状态不确实的情况下利用运动基识别和关节模式特征来有效的约束粒子的采样,从而在更新过程中得到的粒子平均权重均比深度学习以及传统粒子滤波器的平均权重高。由此可知我们提出的算法在跟踪以及关节遮挡方面具有较低的误差,并且在处理遮挡问题的情况时会表现出明显的优势。从图11中也可以看出深度学习在出现关节遮挡的时候,如第80帧,之后的8帧都会存在一定误差,随时间增加误差会逐渐降低;但我们的算法中预测模型克服了误差积累的弱点,在出现误差的情况下也能够较快的适应运动的变化,提高跟踪过程的稳定性。

图11 提出的方法与深度学习点对点跟踪方法的平均误差比较

5 结论

本文提出一种基于强约束预测模型的关节运动跟踪粒子滤波架构,使用运动基定义行为运动空间,然后在运动空间中进行运动基的识别,通过对预测模型中的运动基识别得到先验概率分布来约束粒子的采样,并在预测阶段利用模式轨迹特征约束人体运动,使其达到有效跟踪。本文提出的方法能够鲁棒的适应运动变化以及人体遮挡等跟踪问题,并且在跟踪性能和识别效果方面优于传统的粒子滤波算法以及点对点跟踪的深度学习方法。但是本文的算法适用于单人动作,多人交互运动时模型之间会存在影响,需要进一步改进。

猜你喜欢

直方图滤波粒子
基于HP滤波与ARIMA-GARCH模型的柱塞泵泄漏量预测
基于改进自适应中值滤波的图像降噪方法*
碘-125粒子调控微小RNA-193b-5p抑制胃癌的增殖和侵袭
基于Matlab GUI的云粒子图像回放及特征值提取
一种考虑GPS信号中断的导航滤波算法
用直方图控制画面影调
一种用于抗体快速分离的嗜硫纳米粒子的制备及表征
例析频率分布直方图
中考频数分布直方图题型展示
问:超对称是什么?