一种基于注意力机制的LSTM人体行为识别方法
技术领域
本发明属于计算机视觉技术领域,具体涉及一种基于注意力机制的LSTM人体行为识别方法。
背景技术
随着人工智能时代的到来,实现各个领域的智能化已成为大势所趋,也将为人们的生活带来极大的便捷。计算机视觉作为人工智能领域的一个重要分支,可以看作是人工智能的“眼睛”,其主要任务是使用计算机对采集到的信息(图片或视频)进行分析处理以理解其中包含的语义信息。人体动作识别作为计算机视觉领域最热门的研究方向之一,受到了学术界和商业界的广泛关注,在现实生活中多个领域都有着广阔的应用前景。
人体动作识别的主要目的是能够从一段视频序列中判断出人的动作类别,其识别过程一般包括特征提取和分类器设计两个步骤。传统的动作识别方法,主要通过人工设计的特征进行特征提取,但是人工设计的特征往往要根据不同的任务进行特定的设计,依赖于数据库本身,因此其泛化能力和通用性较差。另外,传统的动作识别主要是针对数据量较小、动作种类较少且动作复杂度较低的小型数据集。然而,在当今信息爆炸和大数据的背景下,图像和视频数据呈指数级增长,这也使得传统的基于人工设计特征的动作识别方法无法满足需求。
近年来,随着深度学习技术的兴起,自动学习特征的方法即神经网络被广泛的使用。一些近年来的工作也显示了自动特征学习方法对于人体行为识别的研究也有着显著的效果。因此,通过设计一种基于神经网络的模型来自动学习具有判别性的特征以对人体行为进行分类具有非常重要的研究意义。
发明内容
针对上述存在的问题,本发明提出一种基于注意力机制的LSTM人体行为识别方法,以提高人体行为识别的准确率。
为实现上述目的,本发明具体技术方案如下:一种基于注意力机制的LSTM人体行为识别方法,包括以下步骤:
1)利用体感摄像头获取待测人体行为的人体骨架深度图像序列D,记为D={d1,d2,d3…dn},di表示D中第i个人体骨架深度图像;
2)人体前景分割,利用体感摄像头依次对D中的人体骨架深度图像进行像素评估,在视野范围内分割出与人体部位区域最相近的范围,利用边缘检测技术从人体区域范围中分割出完整的人体轮廓图像;人体骨架深度图像di对应的人体轮廓图像记为hi;
3)人体关键部位识别,利用骨架拟合方法从人体轮廓图像中识别人体关键部位,所述人体关键部位包括人体头部、躯干、左臂、右臂、左腿和右腿;
4)利用人体关键部位与虚拟骨架模型匹配的方法提取人体轮廓图像hi的人体关节点在相机坐标系中的坐标信息,所述人体关节点包括:头部、左肩膀、右肩膀、左右肩膀的中心点、左肘关节、右肘关节、左手掌、右手掌、脊柱基部、左髋关节、右髋关节、左膝关节、右膝关节、左脚掌、右脚掌;
5)将人体关节点在相机坐标系中的坐标信息转化为人体坐标系中的坐标信息;
6)利用Savitzky-Golay平滑滤波器依次对人体坐标系中的人体关节点坐标信息进行滤波,滤波函数如下:
fi=(-3xi-2+12xi-1+17xi+12xi+1-3xi+2)/35
其中,fi表示为第i时刻滤波器的输出,xi表示为第i时刻骨架节点的坐标信息;
7)根据人体结构依次将人体骨架深度图像序列中每一个图像中的人体关节点坐标信息分成5组,包括左臂坐标信息序列、右臂坐标信息序列、躯干坐标信息序列、左腿坐标信息序列和右腿坐标信息序列;所述左臂坐标信息序列包括左肩膀坐标信息、左肘关节坐标信息和左手掌坐标信息;右臂坐标信息序列包括右肩膀坐标信息、右肘关节坐标信息和右手掌坐标信息;躯干坐标信息序列包括头部坐标信息、左右肩膀的中心点坐标信息和脊柱基部坐标信息;左腿坐标信息序列包括左髋关节坐标信息、左膝关节坐标信息和左脚掌坐标信息;右腿坐标信息序列包括右髋关节坐标信息、右膝关节坐标信息和右脚掌坐标信息;
8)利用LSTM和注意力机制构建LSTM-Attention模块;
9)将左臂坐标信息序列、右臂坐标信息序列、躯干坐标信息序列、左腿坐标信息序列和右腿坐标信息序列分别送入5个相应的LSTM-Attention模块,提取左臂、右臂、躯干、左腿以及右腿的特征;
10)对提取到的左臂、右臂、躯干、左腿以及右腿的特征进行局部融合,并将融合后的特征送入相应的LSTM-Attention模块中进行特征提取,以提取到整个人体特征body′i;
11)将整个人体特征body′i输入到全连接层并计算其输出yi,其计算公式为:
12)利用softmax分类器计算人体行为类别结果对应的概率值,选取类别概率最大值对应的类别作为人体行为识别的输出结果;其中,softmax计算公式为:
其中,Pc表示属于人体行为类别c的概率,yi表示全连接层第i个输出。
进一步的,上述步骤中8)中所述LSTM-Attention模块构建方法包括如下步骤:
8.1)计算LSTM网络中输出的第t个特征向量ht,计算公式如下:
ht=σ(Wo[ht-1,xt]+bo)*tanh(σ(Wf·[ht-1,xt]+bf)*Ct-1+σ(Wi·[ht-1,xt]+bi)*tanh(WC·[ht-1,xt]+bC))
其中,ht-1表示上一序列隐藏状态信息,xt表示本序列数据,Ct-1表示上一层记忆单元,σ表示sigmoid函数,Wo为输入向量的输出权重,bo为输出偏置,Wf为遗忘门的权重矩阵,bf为遗忘门偏置,Wi为输入向量的更新权重,bi为更新偏置,WC为新候选向量的权重矩阵,bC为新候选向量偏置项;
8.2)将ht传入Attention层计算第t个特征向量对应的注意力得分mt,计算公式如下:
mt=tanh(Wtht+bt)
其中,Wt表示ht的权重,bt表示偏置;
8.3)分别计算注意力得分mt的权重;计算公式如下:
8.4)计算输出值z;计算公式如下:
z=Σistht。
进一步的,上述步骤中10)中提取整个人体特征body′i包括如下步骤:
10.1)利用人体关节点坐标信息对左臂、右臂、躯干、左腿以及右腿的特征进行局部融合,得到左臂-躯干、右臂-躯干、左腿-躯干以及右腿-躯干的局部融合序列;
10.2)将局部融合后的左臂-躯干、右臂-躯干、左腿-躯干以及右腿-躯干序列送入下一层4个LSTM-Attention模块中进行特征提取,得到左臂-躯干、右臂-躯干、左腿-躯干以及右腿-躯干的新特征;
10.3)对左臂-躯干、右臂-躯干、左腿-躯干以及右腿-躯干的新特征进行局部融合,得到上半身与下半身序列;
10.4)将上半身与下半身序列送入下一层2个LSTM-Attention模块中进行特征提取,提取到上半身以及下半身特征;
10.5)对获取的上半身以及下半身特征记进行局部融合,得到整个人体的序列;
10.6)将整个人体的序列送入下一层LSTM-Attention模块中进行特征提取,得到整个人体特征body′i。
本发明的有益效果在于提高了人体行为识别的效率和准确性,使用人体关节点坐标信息作为输入数据,具有数据量小、计算复杂度低的特点;使用LSTM网络能够学习不同帧之间的时序特征,使用注意力机制能够关注对人体行为识别结果有较大影响的网络权重;
附图说明
图1是本发明的人体行为识别方法流程图。
图2是本发明的人体行为识别方法的模型框架示意图。
图3是本发明的LSTM-Attention模块示意图。
具体实施方式
下面结合附图以及具体实施例对本发明作进一步的说明,需要指出的是,下面仅以一种最优化的技术方案对本发明的技术方案以及设计原理进行详细阐述,但本发明的保护范围并不限于此。
所述实施例为本发明的优选的实施方式,但本发明并不限于上述实施方式,在不背离本发明的实质内容的情况下,本领域技术人员能够做出的任何显而易见的改进、替换或变型均属于本发明的保护范围。
一种基于注意力机制的LSTM人体行为识别方法,其流程图如图1所示,其模型框架示意图如图2所示,包括如下步骤:
1)利用体感摄像头获取待测人体行为的人体骨架深度图像序列D,记为D={d1,d2,d3…dn},di表示D中第i个人体骨架深度图像;在本发明具体实施例中,体感摄像头为Kinect2.0;
2)人体前景分割,利用体感摄像头依次对D中的人体骨架深度图像进行像素评估,在视野范围内分割出与人体部位区域最相近的范围,利用边缘检测技术从人体区域范围中分割出完整的人体轮廓图像;人体骨架深度图像di对应的人体轮廓图像记为hi;
3)人体部位识别,利用骨架拟合方法从人体轮廓图像中识别人体关键部位,其中,人体关键部位包括人体头部、躯干、四肢;人体轮廓图像hi对应的人体关键部位分别记为:头部Headi、躯干Trunki、左臂Leftarmi、右臂Rightlegi、左腿Leftlegi、右腿Rightlegi;
4)利用人体关键部位与虚拟骨架模型匹配的方法提取人体轮廓图像hi的人体关节点在相机坐标系中的坐标信息,人体关节点包括:头部、左肩膀、右肩膀、左右肩膀的中心点、左肘关节、右肘关节、左手掌、右手掌、脊柱基部、左髋关节、右髋关节、左膝关节、右膝关节、左脚掌、右脚掌;其中,头部坐标信息,记为Ji-head(x,y,z);左肩膀坐标信息,记为Ji-shoulderleft(x,y,z);右肩膀坐标信息,记为Ji-shoulderright(x,y,z);左右肩膀的中心点坐标信息,记为Ji-spineshoulder(x,y,z);左肘关节坐标信息,记为Ji-embowleft(x,y,z);右肘关节坐标信息,记为Ji-embowright(x,y,z);左手掌坐标信息,记为Ji-handleft(x,y,z);右手掌坐标信息,记为Ji-handright(x,y,z);脊柱基部坐标信息,记为Ji-spinebase(x,y,z);左髋关节坐标信息,记为Ji-hipleft(x,y,z);右髋关节坐标信息,记为Ji-hipright(x,y,z);左膝关节坐标信息,记为Ji-kneeleft(x,y,z);右膝关节坐标信息,记为Ji-kneeright(x,y,z);左脚掌坐标信息,记为Ji-footleft(x,y,z);右脚掌坐标信息,记为Ji-footright(x,y,z);其中,i表示第i个人体轮廓图像,x表示人体关节点坐标信息x轴上坐标,y表示人体关节点坐标信息y轴上坐标,z轴表示人体关节点坐标信息z轴上坐标;相机坐标系坐标原点o位于体感摄像头的红外相机中心,x轴位于体感摄像机面向人体骨架深度图像向左方向,y轴位于体感摄像机面向人体骨架深度图像向上方向,z轴位于体感摄像机面向人体骨架深度图像方向;
5)将人体关节点在相机坐标系中的坐标信息转化为人体坐标系中的坐标信息,其中,人体坐标系的坐标原点o′为脊柱基部Ji-spinebase,转化公式如下:J′i-jointname(x,y,z)=Ji-jointname(x,y,z)-Ji-spinebase(x,y,z)
其中,Ji-jointname表示相机坐标系中人体关节点坐标信息,J′i-jointname表示人体坐标系中人体关节点坐标信息;
6)利用Savitzky-Golay平滑滤波器依次对人体坐标系中的人体关节点坐标信息进行滤波,滤波函数如下:
fi=(-3xi-2+12xi-1+17xi+12xi+1-3xi+2)/35
其中,fi表示为第i时刻滤波器的输出,xi=(x,y,z)表示为第i时刻骨架节点的坐标值;
7)根据人体结构依次将人体骨架深度图像序列中每一个图像中的人体关节点坐标信息分成5组,构建每一个图像的部分人体骨架序列{leftarmi,rightarmi,trunki,leftlegi,rightlegi},i表示第i个人体骨架深度图像;其中,leftarmi表示人体左臂坐标信息序列,rightarmi表示人体右臂坐标信息序列,trunki表示人体躯干坐标信息序列,leftlegi表示人体左腿信息序列,rightlegi表示人体右腿坐标信息序列;左臂坐标信息包括左肩膀坐标信息、左肘关节坐标信息和左手掌坐标信息;右臂坐标信息包括右肩膀坐标信息、右肘关节坐标信息和右手掌坐标信息;躯干坐标信息包括头部坐标信息、左右肩膀的中心点坐标信息和脊柱基部坐标信息;左腿坐标信息包括左髋关节坐标信息、左膝关节坐标信息和左脚掌坐标信息;右腿坐标信息包括右髋关节坐标信息、右膝关节坐标信息和右脚掌坐标信息;
8)利用LSTM和注意力机制构建LSTM-Attention模块,该模块示意图如图3所示;具体方法如下:
8.1)计算LSTM网络中输出的第t个特征向量ht,计算公式如下:
ht=σ(Wo[ht-1,xt]+bo)*tanh(σ(Wf·[ht-1,xt]+bf)*Ct-1+σ(Wi·[ht-1,xt]+bi)*tanh(WC·[ht-1,xt]+bC))
其中,ht-1表示上一序列隐藏状态信息,xt表示本序列数据,Ct-1表示上一层记忆单元,σ表示sigmoid函数,Wo为输入向量的输出权重,bo为输出偏置,Wf为遗忘门的权重矩阵,bf为遗忘门偏置,Wi为输入向量的更新权重,bi为更新偏置,WC为新候选向量的权重矩阵,bC为新候选向量偏置项;
8.2)将ht传入Attention层计算第t个特征向量对应的注意力得分mt,计算公式如下:
mt=tanh(Wtht+bt),
其中,Wt表示ht的权重,bt表示偏置。
8.3)分别计算注意力得分mt的权重;计算公式如下:
8.4)计算输出值z;计算公式如下:
z=∑istht。
9)将{leftarmi,rightarmi,trunki,leftlegi,rightlegi}分别送入5个相应的LSTM-Attention模块,提取左臂、右臂、躯干、左腿以及右腿的特征,记为{leftarm′i,rightarm′i,trunk′i,leftleg′i,rightleg′i};
10)对提取到的特征进行局部融合,并将融合后的特征送入相应的LSTM-Attention模块中进行特征提取,以提取到整个人体特征;包括以下步骤:
10.1)对{leftarm′i,rightarm′i,trunk′i,leftleg′i,rightleg′i}进行局部融合,得到以人体躯干为中心,与四肢进行融合的序列表达,记为{leftarm-trunki,rightarm-trunki,leftleg-trunki,rightleg-trunki},其中,leftarm-trunki表示左臂与躯干进行融合,rightarm-trunki表示右臂与躯干进行融合,leftleg-trunki表示左腿与躯干进行融合,rightleg-trunki表示右腿与躯干进行融合;
10.2)将{leftarm-trunki,rightarm-trunki,leftleg-trunki,rightleg-trunki}送入下一层4个LSTM-Attention模块中进行特征提取,提取到以人体躯干为中心,与四肢进行融合的新特征记为{leftarm-trunk′i,rightarm-trunk′i,leftleg-trunk′i,rightleg-trunk′i};
10.3)对{leftarm-trunk′i,rightarm-trunk′i,leftleg-trunk′i,rightleg-trunk′i}进行局部融合,得到上半身与下半身序列表达{upperbodyi,lowerbodyi};其中,upperbodyi表示将左臂-躯干与右臂-躯干进行融合形成上半身的序列表达,lowerbodyi表示将左腿-躯干与右腿-躯干进行融合形成下半身的序列表达;
10.4)将{upperbodyi,lowerbodyi}送入下一层2个LSTM-Attention模块中进行特征提取,提取到上半身以及下半身特征记为{upperbody′i,lowerbody′i};
10.5)对{upperbody′i,lowerbody′i}进行局部融合,得到整个人体的序列表达boddyi;
10.6)将bodyi送入下一层LSTM-Attention模块中进行特征提取,提取到的整个人体特征记为body′i;
11)将整个人体特征body′i输入到全连接层并计算其输出yi,其计算公式为:
12)利用softmax分类器计算人体行为类别结果对应的概率值,选取类别概率最大值对应的类别作为人体行为识别的输出结果;softmax计算公式为:
其中,Pc表示属于人体行为类别c的概率,yi表示全连接层第i个输出。