1. 引言
人体动作识别一直是计算机视觉、人工智能和模式识别等热门研究方向 [1],在人体动作识别的研究中,需要准确地将人体动作信息通过技术手段转换成能够精确运算和分析的数据,通过程序让计算机处理这些数据,这些数据的获得就需要大量的人体动作数据作为支撑。传统的人体动作识别技术应用OI。LSTM神经网络分析算法、深度学习方法、CNN算法等建立模型 [2],但在建立人体模型和程序算法的过程中,运算准确率并不理想,错误率较高。新加坡国立大学的Shi Yuan Tang等设计了一种可穿戴步态辅助系统。该系统通过脚腕佩戴力敏电阻来记录行走过程中的步态信息数据,然后使用神经网络进行步态数据建模,对步态数据进行分析和处理,最终结果表明两种模型的验证精度均达到了80% [3],在融合多种数据进行识别方面,毛峡等 [4] 提出一种基于RGB和骨骼信息的多模态人体行为识别框架。识别率依然不是很高,还有很大的提升空间。微软的Kinect深度相机的上市,使研究人员低成本获取视频中人体各关节点三维坐标信息和场景深度信息等 [5] [6],人体骨骼中关节的层次结构和不同语义角色为动作识别提供了重要信息 [7] [8]。基于此本文提出了一种基于骨骼三维信息结合隐马尔科夫模型人体动作识别方法,通过此方法来改进以上人体动作识别率低的问题。
2. 人体动作三维特征提取
人体在完成某一些动作时,身体的各个关节空间坐标位置会发生一定的变化。本文使用Kinect深度相机获取人体骨骼关节点三维坐标作为实验特征变量,利用关节点在不同动作位置变化来提取有用的动作特征,以各关节点三维坐标的平均值作为坐标原点,获取骨骼关节点在三维坐标系中的变化,从而得到骨骼关节点空间位置特征。如图1所示本文获取20个人体骨骼。
首先获取坐标原点
,人体20个骨骼关节点的三维坐标的平均值即是坐标原点
,
,
,
,Mi代表第i个骨骼点的三维坐标,M0代表的是坐标原点。20个关节点在X、Y、Z轴的变化量为
,
,
。
表示第t贞的特征向量。如果人体动作包含N贞
,则每一帧得到的骨骼关节点向量的维度是20 × 60。为了减少人体高矮胖瘦对实验的影响,对特征向量进归一化,同时除以头部
到坐标原点
的距离
。
Figure 1. Three dimensional view of human skeleton
图1. 人体骨骼三维图
3. 基于隐马尔科夫的姿态表示
根据形成的骨架模型库,从视频中获得骨架三维信息,在实验中将训练视频提取出骨架之后,根据骨架信息库对其进行分类,从而获得骨架相应编号,这样就将人体动作的序列变成了可以使用隐马尔科夫模型性对应的观测值序列表示。
每个动作的隐马尔科夫模型由5各参数确定:
1)
代表模型的隐状态数,可以理解为动作的特征的动作数。
2)
观测值,代表骨架信息的种类数。
3)
是隐马尔可夫模型各隐状态之间的概率转换矩阵。
4)
是隐马尔可夫模型隐状态到观测状态之间的概率转换矩阵。
5)
为隐状态的初始概率矩阵。
从骨架信息库中得到的观测序列的编号,经过训练更新HMM与样本序列对应的初始参数,这就是HMM对这个动作的基本描述,待识别的动作序列,经过得到的动作编号序列,可通过个续联的模型,就是更新之后的HMM新参数,来完成每个模型的匹配值计算。
HMM模型的训练方法
通过EM算法,重复迭代完成模型的训练。主要包括以下4个步骤。
1) 初始化参数:选定合适的隐状态个数
,根据骨架信息库确定观测序列
,随机生成
。
2) 确定迭代次数,通常迭代次数可取10次左右。
3) 当前模型相关概率的计算:按照状态
的观测概率分布
生成
,按照状态
的状态转移概率分布
生成状态
,
。
4) 初始化概率分布矩阵:
。
HMM的评估问题利用前向或者后向概率计算方法来解决,前向概率计算由前向算法公式递归关系计算,后向概率计算由后向算法公式递归关系计算。
前向算法:
1) 初始值:
2) 递归对
3) 终止
4. 实验与分析
4.1. 训练和验证模型
隐马尔科夫模型的参数设置:隐状态数S = 20,可观测值O = 30,状态转移矩阵
,观测矩阵
,初始概率
,
。
实验对5种常见动作走路、跑步、坐下、站立、下蹲进行测试。实验中,选取30个身高和体型上有差异的的测试人员,每个人重复做动作30次,每组动作具有900个动作样本,共有4500个动作样本。本文对5种动作走路、跑步、坐下、站立、下蹲做实验,实验结果如下表1所示。
Table 1. Confusion matrix of human motion recognition in this paper
表1. 本文人体动作识别混淆矩阵
基于传统K-means和DTW算法的人体动作识别结果,如下表2所示。
Table 2. Human motion recognition confusion matrix of traditional K-means
表2. 传统K-means的人体动作识别混淆矩阵
通过表1和表2可以看出,本文的人体动作识别算法,对以上5中人体动作识别的准确率有了明显的提高,且识别速度比之前也有明显的加快。
4.2. 方法优化
为了提高识别的鲁棒性,对动作人体进行关键帧提取,每个动作用4个关键动作进行表示,对相似动作进行合并,共得到15个关键帧,得到新的隐马尔科夫模型参数值S = 10,O = 15,对Weizman数据库中的走路、跑步、跳跃、站立、坐下进行测试得到的结果如表3所示。
Table 3. Confusion matrix of human motion recognition in this paper
表3. 本文人体动作识别混淆矩阵
4.3. 算法比较
在实验过程中,本文的实验与其他两种动作识别方法进行了对比。方法一基于多模态的人体动作识别研究 [9],方法二文献 [10] 基于关节角度特征向量,使用SVM分类器的动作识别方法。表4为三种方法在识别率上的混淆矩阵对比。从表4的结果可以看出:方法一的平均识别率为90.18%,方法二的平均识别率为88.54%,容易受到噪声干扰。本文方法的平均识别率为96.00%,明显的高于前两种方法的识别率,同时本文方法克服了人体骨骼点空间位置和角度的变化,及被测人员体型差异的影响,如下表4所示。
(a) 方法一的识别率混淆矩阵
(b) 方法二的识别率混淆矩阵
(c) 本文的识别率混淆矩阵
5. 结语
基于关键骨骼点深度三维坐标和隐马尔科夫模型提出了一种新的人体动作识别算法,对不同用户的5种基本生活动作可达到96%的识别率,是一种可靠的人体动作识别方案,该方法可以用于智能监控识别系统,为公安系统提供人员动作数据,降低犯罪率。
基金项目
浙江省教育厅,校企合作访问工程师项目,FG2020272,基于多模块融合的人体异常行为智能识别技术研究;浙江省自然科学基金委员会,公益技术研究计划,LGF21F020007,智能视频监控中基于情境感知和多模态的人体异常行为识别技术研究。