基于少量关键序列帧的人体姿态识别方法

2019-08-08 08:11:02蔡兴泉涂宇欣余雨婕高宇峰
图学学报 2019年3期
关键词:关键帧马尔科夫姿态

蔡兴泉,涂宇欣,余雨婕,高宇峰

基于少量关键序列帧的人体姿态识别方法

蔡兴泉,涂宇欣,余雨婕,高宇峰

(北方工业大学信息学院,北京 100144)

针对传统人体姿态识别数据采集易受环境干扰、难以解决人体运动姿态的相似性和人体运动执行者的特征差异性等问题,提出一种基于少量关键序列帧的人体姿态识别方法。首先对原有运动序列进行预选,通过运动轨迹取极值的方法构造初选关键帧序列,再利用帧消减算法获取最终关键帧序列;然后对不同人体姿态分别建立隐马尔科夫模型,利用Baum-Welch算法计算得到初始概率矩阵、混淆矩阵、状态转移矩阵,获得训练后模型;最后输入待测数据,应用前向算法,得到对于每个模型的概率,比较并选取最大概率对应的姿态作为识别结果。实验结果表明,该方法能够有效的选取原始运动序列的关键帧,提高人体姿态识别的准确性。

人体姿态识别;序列帧;帧消减;隐马尔科夫模型

人体姿态识别是计算机视觉领域的重要研究难题,在智能监控、智能家居、人机交互、服务机器人等领域具有广阔的应用前景。随着社会的快速发展,智能服务机器人将会走进家庭,照顾人们的日常起居。面向智能服务机器人的人体姿态识别技术是当前急需解决的难题。

当前,关于人体姿态识别的数据采集易受环境干扰,采集的数据掺杂噪声;人体运动姿态的相似性,比如打电话和吃东西、跑和跳等的过程相近;人体运动执行者的特征有差异,比如身体高矮胖瘦、动作快慢等。针对这些问题,本文主要研究一种基于少量关键序列帧的人体姿态识别方法,通过红外深度相机采集人体姿态序列帧数据,实现帧消减减少数据量,最终实现人体运动的各种姿态识别。

1 相关工作

对人体姿态识别技术运动序列进行特征提取及分类,按照不同的匹配方法可分为模板匹配法和概率网络法[1]。模板匹配法是通过将待测序列与已定义的动作模板进行匹配,完成人体姿态识别。此类方法普遍具有实现简单、运算复杂度低的特点,但存在对噪声和运动时间间隔变化敏感、抗干扰能力差、准确性不足等问题[2-4]。概率网络法是先定义人体的静态姿势,每个静态姿势为一个状态。运动序列就是在该类状态间进行一次遍历,相似动作的运动序列通常具有相似的转移概率[5]。进行人体运动识别时,通过计算各个遍历的联合概率,对相似的行为序列进行分类。该类方法通常计算复杂度较高,但准确性高、鲁棒性强,也使其成为目前研究的主流。

文献[6]提出了一种基于帧间距的关键帧提取的方法用于实现对运动序列关键帧的压缩。该方法通过提取代表运动数据内容的关键姿势作为关键帧,然后消除运动序列中差异较大的帧,最后采用四元数球面插值进行关键帧重构。该方法在提取人体边界姿势时准确率较低。文献[7]提出了一种基于部位检测的人体姿态识别,使用随机森林法将较小的人体部位合并,用均值偏移算法获取各部位关节点的位置。该方法可提高图像中的人体姿势的准确率,但无法进行实时的姿态识别。文献[8]提出了改进的基于支持向量机(support vector machine, SVM)的方法用于人体姿态识别。首先从运动序列中提取多种特征组成矩阵,之后利用奇异值分解等方法对运动采集数据进行特征降维,最后对数据降维后的子空间数据利用支持向量机进行特征分析,达到姿态识别的目的。该方法在数据规模较大时训练效果欠佳。文献[9]提出了基于三维人体关节特征和特定关节的隐马尔科夫模型的方法用于人体运动识别。首先通过对所有单个运动建立隐马尔科夫模型,然后通过对关节运动信息和时序判断运动过程中关节点的自由度信息,确定不同的运动特征。最后,针对不同活动中特定关节点的三维信息利用隐马尔科夫模型进行训练和匹配。该方法使用时需要较高的先验知识,存在需要预设隐状态数量以及维度灾难等问题。

随着深度学习技术的不断发展,基于深度学习的相关算法也广泛应用于人体姿态识别技术[10-12]。文献[11]提出了一种基于深度神经网络的人体动作识别方法。采用三维建模的方法建立人体模型,分层次地识别人体各部位的行为,从底层行为组合成为高层的动作和活动,应用隐马尔科夫模型完成人体行为的学习工作。该方法可以有效识别人体复杂姿态,但需要通过不断移动相机实现多角度的人体图像获取,易存在捕捉数据不够精准的问题。文献[12]提出了采用蒙版关节轨迹在深度视频序列的动作识别方法。本文也是受此启发,对视频序列进行处理,实现人体姿态识别。

为了更好地实现使用少量关键帧序列对人体姿态进行准确识别,本文提出了一种基于少量关键序列帧的人体姿态识别方法。

2 基于少量关键序列帧的人体姿态识别算法

为了实现人体姿态识别,本文首先定义人体运动姿态数据格式,然后基于深度相机获取人体姿态序列帧数据,接着基于预选策略实现帧消减,最后实现基于隐马尔科夫模型的人体姿态识别。

2.1 定义人体运动姿态数据格式

进行人体姿态识别前,需要保存序列帧的数据。针对不同数据源命名格式和内容格式的不同的问题,需要对序列帧的数据进行格式定义。数据集对20个骨骼点进行采集,分别对骨骼点数量、坐标方式和计量单位等重要参数进行定义,并构建相应数据库。在构建人体运动姿态数据库时,采用的数据存储格式为:

(1) 每20行数据存储为一帧数据,其中每一行代表一个骨骼点的数据;

(2) 每行包含4列数据,依次为空间坐标系下的轴、轴、轴的坐标和置信度分数。其中置信度分数用来对数据中可能存在的遮挡等情况进行区分。数据集中已标注置信度分数的数据直接引用,未标注的部分采用手动标注和机器标注的方式共同进行。如此,定义人体运动姿态数据格式,构建相应的数据库,为后续训练和识别准备。

2.2 基于深度相机获取人体姿态序列帧数据

采用深度相机获取人体运动姿态序列帧数据,具体分以下5步完成:

步骤1.使用深度相机获取深度图像,由深度图像获取像素点的深度距离和用户索引值;

步骤2.根据深度相机有效距离设定深度阈值范围,保留深度值为1.2~3.5 m的点,舍去其余点;

步骤3.将深度图像进行二值化处理;

步骤4.采用人体目标识别方法,提取人体运动数据,进行人体像素点的判定;

步骤5.检测识别结果,并对识别结果进行膨胀腐蚀等预处理操作。

2.3 基于预选策略的帧消减

关键帧的选取是姿态识别中的关键步骤,主要对目标识别获取的实时数据进行处理,关键帧技术通过对原有动作序列的处理,可以有效减少姿态序列的数据量和后续计算,使用少数关键帧代表完整的原始动作序列,达到数据降维、减小数据量目的。针对关键帧选取时无法兼顾压缩比和重建误差、可移植性差等问题,本文提出了一种基于预选策略的帧消减算法。该方法通过对原始三维骨骼数据进行计算,分2步完成:

步骤1.对原有运动序列进行初选,通过运动轨迹取极值的方法构造初选关键帧序列。将人体各关节点的运动轨迹视作空间中的连续曲线,通过选取曲线上极值点的所在帧作为关键帧,构造预选关键帧序列。

步骤2.利用帧消减算法获取满足不同用户需求的最终关键帧序列。通过将关键帧选取过程中的2个优化目标分别设置为最大重建误差和关键帧数量,达到兼顾重建误差和压缩比的目的。利用帧削减算法逐帧删除重建误差小的预选关键帧,最终得到满足指定重建误差和压缩比要求的关键帧序列。

2.3.1 运动插值重建和重建误差

使用运动插值重建方法对关键帧进行插值以及重建原始运动序列。设1和2时刻关键帧序列中的对应关键帧分别为(1)和(2),则时刻的关键 帧为

猜你喜欢
关键帧马尔科夫姿态
基于叠加马尔科夫链的边坡位移预测研究
攀爬的姿态
学生天地(2020年3期)2020-08-25 09:04:16
基于改进的灰色-马尔科夫模型在风机沉降中的应用
全新一代宋的新姿态
汽车观察(2018年9期)2018-10-23 05:46:40
跑与走的姿态
中国自行车(2018年8期)2018-09-26 06:53:44
基于改进关键帧选择的RGB-D SLAM算法
基于相关系数的道路监控视频关键帧提取算法
马尔科夫链在教学评价中的应用
基于聚散熵及运动目标检测的监控视频关键帧提取
论“关键帧”在动画制作中的作用