本文在人体动作描述采用关键骨骼点的深度三维坐标,通过各个关节点的位置坐标关系来描述人体动作。进一步为每一类人体动作训练一个深度信息隐马尔科夫模型,从一定程度上解决了人体动作部分遮挡问题,对训练样本,参照得到的数据库完成编码,通过隐马尔科夫模型训练得到相应参数模型,通过训练得到的模型进行验证和测试,实验数据结果表明该方法具有精确率高的优点。
人体动作识别一直是计算机视觉、人工智能和模式识别等热门研究方向[1],在人体动作识别的研究中,需要准确地将人体动作信息通过技术手段转换成能够精确运算和分析的数据,通过程序让计算机处理这些数据,这些数据的获得就需要大量的人体动作数据作为支撑。传统的人体动作识别技术应用OI。
LSTM 神经网络分析算法、深度学习方法、CNN 算法等建立模型[2],但在建立人体模型和程序算法的过程中,运算准确率并不理想,错误率较高。新加坡国立大学的Shi Yuan Tang 等设计了一种可穿戴步态辅助系统。该系统通过脚腕佩戴力敏电阻来记录行走过程中的步态信息数据,然后使用神经网络进行步态数据建模,对步态数据进行分析和处理,最终结果表明两种模型的验证精度均达到了80% [3],在融合多种数据进行识别方面,毛峡等[4]提出一种基于RGB 和骨骼信息的多模态人体行为识别框架。识别率依然不是很高,还有很大的提升空间。微软的Kinect 深度相机的上市,使研究人员低成本获取视频中人体各关节点三维坐标信息和场景深度信息等[5] [6], 人体骨骼中关节的层次结构和不同语义角色为动作识别提供了重要信息[7] [8]。
基于此本文提出了一种基于骨骼三维信息结合隐马尔科夫模型人体动作识别方法, 通过此方法来改进以上人体动作识别率低的问题。
2. 人体动作三维特征提取 人体在完成某一些动作时,身体的各个关节空间坐标位置会发生一定的变化。本文使用Kinect 深度相机获取人体骨骼关节点三维坐标作为实验特征变量,利用关节点在不同动作位置变化来提取有用的动作特征,以各关节点三维坐标的平均值作为坐标原点,获取骨骼关节点在三维坐标系中的变化,从而得到骨骼关节点空间位置特征。如图1 所示本文获取20 个人体骨骼。
首先获取坐标原点()0000, , MX Y Z=,人体20 个骨骼关节点的三维坐标的平均值即是坐标原点()01220nXXXX=+++, ()01220nYYYY=+++, ()01220nZZZZ=+++, 0iMMM=−()1,2, ,20i =,Mi代表第i 个骨骼点的三维坐标,M0代表的是坐标原点。20 个关节点在X、Y、Z 轴的变化量为1220, , , ttttXMXXX= ∆∆∆, 1220, , , ttttYMYYY= ∆∆∆, 1220, , , ttttZMZZZ= ∆∆∆。
, , ttttxyzMMMM= 表示第t 贞的特征向量。如果人体动作包含N 贞[]123, , , , NMM MMM=,则每一帧得到的骨骼关节点向量的维度是20 × 60。
为了减少人体高矮胖瘦对实验的影响, 对特征向量进归一化, 同时除以头部1M 到坐标原点0M 的距离10MMM→=−。