基于多流空间注意力图卷积SRU网络的骨架动作识别

2022-08-13 08:22赵俊男佘青山
电子学报 2022年7期
关键词:骨架注意力卷积

赵俊男,佘青山,孟 明,陈 云

(杭州电子科技大学自动化学院,浙江杭州 310018)

1 引言

人类行为的识别是计算机视觉中一项基本又富有挑战性的任务,促进了许多应用的产生,如人机交互、异常行为检测等[1].与传统利用RGB 图片或视频流进行动作识别的方法相比,基于骨架的动作识别不受背景杂波、光照变化等限制,对目标动作的表示更加健壮.

近年来,研究人员充分挖掘骨架数据的图结构信息,开始将图卷积网络推广到骨架图上,来进行动作识别任务.Yan等[2]提出了基于图的动态骨架建模通用公式,提出时空图卷积(Spatio-Temporal Graph Convolutional Networks,ST-GCN)网络,应用于骨架动作识别.ST-GCN 采用空间图卷积捕捉骨骼数据的空间信息,利用时间卷积在时间维度上对数据建模,获得了更好的识别效果.而Si 等[3]发挥了长短时记忆网络(Long Short Time Memory,LSTM)强大的序列建模性能,并将空间图卷积操作嵌入LSTM 的门计算中,提出了注意力增强图卷积LSTM 网络(AGC-LSTM),取得了比ST-GCN更好的效果.Lei 等[4]则更多地关注骨骼数据蕴含的二阶信息,包括骨骼的长度和方向,提出了多流注意增强型自适应图卷积网络(MS-AAGCN).该方法增加了骨骼图构造模型的灵活性,增强了模型的泛化能力,显著提高了识别精度.然而,上述算法为了达到更高的识别精度,采取叠加多层网络或者使用时间维度建模能力强的模块,会导致模型在训练和测试中更耗时.因此,以上算法仍然存在模型推理速度慢、计算复杂度高等问题,值得进一步研究.

最近,Lei 等[5]提出了一种简单循环单元(Simple Recurrent Unit,SRU)结构,具有比LSTM 更高的并行性和更快的推理速度.She 等[6]提出一种全局上下文注意力时空SRU 模型(GCA-ST-SRU).该方法首先通过SRU单元来构建模型,以克服LSTM 推理速度慢等的问题.但是该方法未考虑骨骼间的结构联系,而且对数据的利用比较单一.

为了解决上述方法的不足,本文提出了一种新的多流空间注意力图卷积SRU 网络(MSAGC-SRU)方法.首先,用图卷积算子替换SRU 模型中的单元结构门的全连接计算,提出图卷积SRU(GC-SRU)方法.同时对数据的空间和时间域进行建模.然后,为了加强关节间的区分性,进一步引入了空间注意力网络,构建空间注意力图卷积SRU(SAGC-SRU)网络,使模型更加关注重要的关节.最后,受MS-AAGCN 方法中多流数据输入方式的启发,进一步提出一种简单高效的多流数据融合方式,该方式将多数据流一次输入、同时训练,能显著减少运行时间.最后在两个公共数据集上的实验表明,所提方法在识别精度和计算效率间达到了良好的平衡.

2 本文算法

基于骨架的动作识别是对骨架序列进行建模,并学习序列的时间动力学信息.本文提出一种端到端的多流空间注意力图卷积SRU 网络(MSAGC-SRU),用于骨架动作识别任务,其网络架构如图1所示.

图1 MSAGC-SRU网络架构

对于骨架序列,本文首先通过多流数据融合方法,得到多流融合数据.然后,设计三层SAGC-SRU 网络来模拟时空特征,如图2 所示.其中,图卷积算子能够捕捉骨骼数据的空间结构信息和时间动态的判别特征.同时,在SAGC-SRU 层的输出位置引入空间注意力网络,增加了对重要关节点的关注度.参考Si等人[3]的设置,本文在SAGC-SRU 数据输入时,在时间维度上进行平均池化操作.能够在时间域上压缩输入数据和参数的量,增加SAGC-SRU 顶层的时间感受野,同时减小网络过拟合的可能性,并加快了模型的推理速度.最后是全连接层,实现动作的分类任务.

图2 GCN可视化过程

2.1 多流数据融合

骨架数据的一阶(关节点坐标)和二阶信息(骨骼的方向和长度)[4]以及它们的动态信息都是区分不同动作的重要信息.因此,有必要对骨架数据的多种模式建模.受到Lei等[4]相关工作的启发,本文使用4种模式的数据流,分别为以原始关节点坐标为输入的节点流,以关节点空间坐标的差分为骨骼流,以及基于节点流和骨骼流数据在时间维度上的差分得到的动态数据流.

一般定义靠近骨架重心的关节点为父关节i,远离重心的为子关节j,在第t帧的骨架中,设父关节vi,t=(xi,t,yi,t,zi,t)和子关节vj,t=(xj,t,yj,t,zj,t),则骨骼可表示为

通过式(1)对原始的节点流数据处理,可以得到骨骼流数据.设vi,t=(xi,t,yi,t,zi,t)为第t帧的关节,vi,t+1=(xi,t+1,yi,t+1,zi,t+1)为第t+1 帧的关节,则两帧间节点的动态流信息可以表示为

本文没有采用将各流数据依次训练后,再将训练结果融合的方法.而是在一次训练中同时输入多流融合数据,减少实验次数,减少训练时间.如图1 的多流数据融合部分所示,具体步骤如下:

步骤1:原始骨架序列数据为节点流数据,经过上述骨骼的定义式(1),得到骨骼流数据;

步骤2:将Step1 获得的两流数据拼接后,通过全连接层,将信息编码成高维向量,作为数据的融合特征;

步骤3:通过步骤Step2 得到的两流融合数据,获取其动态流数据.再和它拼接后经过全连接层和ReLU激活函数,得到目标的多流融合数据.

2.2 空间注意力图卷积SRU

图卷积神经网络(Graph Convolutional Network,GCN)是一种通用而有效的图结构数据学习表示框架[3].在基于骨架的动作识别中,设ς t={vt,εt}表示第t帧的人体骨骼图,vt={vt1,vt2,...,vtN}是N个关节点的集合,则εt={(vti,vtj):vti,vtj∈vt,vti~vtj}可以表示成骨骼边的集合,vti~vtj表示节点i和节点j是无向边连接.邻接矩阵At可以通过εt指定:

在一个骨架图上,定义节点vti的邻集B(vti)={vtj|d(vtj,vti)≤D},其中d(vtj,vti)表示从节点vti到vtj的任何路径的最小长度.可以给出在点vti上的图卷积公式:

其中,X(vtj)表示节点vtj的特征,W(·)是一个权重函数,vtj为与vti距离为1 的相邻节点.ℓ(·)是一个映射函数.因为邻集B(vti)的节点数量是变化的,权重函数数量是固定的,所以需要将所有相邻的节点映射到一个固定标签的子集[4]中,每个子集都有一个唯一的关联权重向量.本文参考了ST-GCN[2]的映射策略,将B(vti)分为三个子集:第一个子集为vtj本身,第二个为空间位置上比vtj更靠近骨架重心的邻点集合,第三个则为更远离重心的邻点集合,Zti(vtj)即为对应子集个数.

引入邻接矩阵,图卷积可以表示为:

其中,k∈{1,2,…,k}是根据映射策略得到的子集的固定标签.Ak是标签k空间构型中的邻接矩阵是一个度矩阵.为了更好地理解图卷积在骨架序列数据中的计算过程,图2 给出可视化形式.图中c表示骨架数据的输入通道数,t是数据的序列长度,v是骨架数据中的关节点数量,h表示输出通道.

本文选择GCN 与SRU 结合.SRU 是一种简单的循环单元模型[7],它解决了因反向传播引起的梯度消失问题[8],并通过在门输入中隐去前一时刻的隐藏状态实现计算上的并行性[9],具有更快的训练速度和推理速度.从Di等人[10]的思路来看,SRU需要堆叠更多层,才能获得与单层LSTM 相似的性能.本文将SRU 应用到骨架动作识别中,需要对SRU进行改进.

本文使用空间注意力图卷积SRU(SAGC-SRU),对骨架序列数据进行时空域建模[11],结构如图3所示.将SRU 的输入门、遗忘门、重置门的全连接计算替换成图卷积计算,捕获数据的空间信息,并在隐藏状态引入空间注意力机制,来关注不同重要程度的关节点.

图3 SAGC-SRU模型结构

SAGC-SRU 的输入xt、隐藏状态和存储状态Ct都是图结构数据.其功能定义如下:

其中,AveragePooling 表示平均池化操作,使用Pytorch中的F.avg_pool1d 函数对输入xt进行平均池化.*表示图卷积算子表示W和的图卷积.⊙表示哈达玛积,σ(·)是Sigmoid激活函数,g(·)表示tanh激活函数,fatt(·)是选择关键节点信息的空间注意力网络.引入注意力机制后,输出Ht能增强关键点的信息,且不会削弱非关键点的信息,来保持空间信息的完整性[3].

2.3 空间注意力网络

一般情况下,不同动作涉及到不同关节点,不同关节点的重要程度就会不同.由此,本文提出一种空间注意力模型(Spatial Attention Model)来区分节点的重要程度,模型结构如图4 所示.该模型引入了软注意力机制[12],为帧内每个关节点分配一个空间注意权重,使得模型能够自适应地将注意力集中在某些关节上.

图4 空间注意力网络

空间注意力网络的输入是图卷积SRU(GC-SRU)的隐藏状态它含有骨架动作序列的时态信息和丰富的空间结构信息,有利于关键关节点的选择[13].首先将每个节点的输出信息通过一层全连接层和ReLU 激活函数,聚合成一个查询向量

其中,αt=(αt1,αt2,…,αtN)表示节点的注意力分数.全连接层防止了网络复杂化也提升了模型的泛化能力,最后利用激活函数得到注意力分数.

经过最后一层SAGC-SRU后,本文将所有节点和注意力分数加权后的特征聚合得到Ft,将每个时间步长的聚合特征Ft转换成C类的分数ot,其中ot={ot1,ot2,…,otC},i类的预测可以表示成式(14):

本文采用下面的损失函数来监督所建模型:

其中,Tj表示第j层SAGC-SRU上的时 间步长,y={y1,y2,…,yC}表示真实标签,与预测标签进行对比.λ和β是权重衰减系数,平衡了正则化项的作用,减轻了反向传播中的梯度消失和过拟合现象.本文分别设置λ和β为0.01和0.001.

3 实验结果与分析

3.1 数据集和评价指标

Northwestern-UCLA 数据集包含1 494 个样本,分别由三台Kinect 摄像头同时从三个不同的视角拍摄.一共涵盖10 个动作类别,分别是单手捡起、双手捡起、丢垃圾、四处走动、坐下、起立、穿、脱、扔、搬运.本实验采用了文献[14]中的评估方案:使用前两个摄像机视角的样本作为训练集,另一个视角的样本作为测试集.

NTU RGB+D 数据集包含56 880 个样本[12],包含60种行为,包含了日常、相互和健康相关的行为.对于该数据集,本文采用跨受试者(Cross Subjects,CS)和跨视角(Cross Views,CV)评估协议.在CS 协议中,由20 名受试者采集的数据构成训练集,其余20 名受试者用于测试.对于CV 协议中,前两个视角捕获的样本用于训练,另一个视角的数据用作测试.

为了评估算法在分类任务的有效性,本文使用主流的评估指标:分类准确率(Accuracy)和算法的浮点运算数(FLOPs).在Northwestern-UCLA 数据集的实验中,实验增加了训练1 000次训练和测试样本的耗时统计.

根据文献[15]提供的计算方法,FLOPs值计算与数据集的动作类别C、骨节点数量N、骨架序列长度T以及网络层类型等有关.以本文提出的MSAGC-SRU 模型和Northwestern-UCLA Dataset 为例,其中N=20,T=52.该模型的FLOPs 计算包含三部分:多流数据融合部分,三层SAGC-SRU网络层和最后的全连接分类层.

首先是多流数据融合部分,有两层的全连接层.根据实验的超参数设置,它们的FLOPs 分别为2×3×256×N×T和2×C2×N×T,其中C=512.然后是三层SAGC-SRU.每一层的SAGC-SRU 由SRU、图卷积、空间注意力机制三部分FLOPs 相加得到.SRU 的FLOPs 可表示为(3×2C2)×N×T.图卷积的计算过程已通过图2可视化,其将骨骼节点按分区规则分为三部分的图卷积操作.代码实现中,使用了Pytorch 中的torch.matmul函数,可视为矩阵相乘的操作.图卷积部分的FLOPs可表示为3×(NC2+N2C)×T×2.空间注意力部分使用了全连接层,FLOPs 可表示为2×2×C2×N×T.因为在时间维度上使用了平均池化,三层网络的T分别为26,13,7,C=512.最后一层是全连接层,FLOPs 为2×C×10,其中C=512.在计算完每部分的FLOPs 后,将其相加后乘以数据集包含的人数即为模型的FLOPs.

3.2 实验细节

实验使用Northwestern-UCLA和NTU RGB+D两个公共数据集,将抽取每个骨架序列中的固定长度T,其中Northwestern-UCLA数据集的T设置为50,NTU RGB+D数据集设为100.训练使用Adam 优化器来优化网络[16],Dropout 设为0.5,初始学习率分别设为0.001 和0.01,weight-decay 为1e-5,训练的批次大分别设为32 和64.网络设置三层SAGC-SRU 网络,实验均在Pytorch 框架上进行,GPU为2块NVIDIA GTX 1080ti.

3.3 实验结果

3.3.1 Northwestern-UCLA Dataset

为了验证本文所提方法的有效性,首先在Northwestern-UCLA 数据集上与同领域的其他先进方法进行对比.这里将要比对的方法包括:基于人工提取特征的方法[17,18]、CNN 和RNN 方法[19,20]、改进型LSTM 方法[3,21].结果如表1 所示.较于传统的手工提取特征方法和经典的RNN、CNN 方法,本方法在分类精度方面优势明显.本文提出的MSAGC-SRU 方法与Ensemble TSLSTM[21]方法相比,在分类精度上提高了3.9%,仅仅比AGC-LSTM 方法低了0.2%,但是FLOPs 值低于AGCLSTM 的1/2.初步说明,MSAGC-SRU 方法在大大减小计算复杂度的同时,能够达到良好的分类精度.

表1 Northwestern-UCLA 数据集上实验结果比较

为了说明本方法中采用的多流数据融合方法和空间注意力机制在实验中的有效性,再进行图卷积、数据融合方式和空间注意力机制的消融实验,以SRU 作为基线方法,并与AGC-LSTM 方法进行比较,实验结果如表2所示.以下实验方法将主要用于消融实验对比:

(1)SRU:标准的3层SRU堆叠网络;

(2)GC-SRU:3层GC-SRU网络,输入单流数据;

(3)MSGC-SRU:3 层的GC-SRU 网络,输入多流融合数据;

(4)SAGC-SRU:3 层SAGC-SRU 网络,输入单流数据;

(5)MSAGC-SRU:3 层的SAGC-SRU 网络,输入多流融合数据.

表2 给出了本文方法在Northwestern-UCLA 数据集上的消融实验结果.只加入图卷积运算的GC-SRU 方法的分类准确率为84.8%,比单纯的SRU 提高了3.5%,说明图卷积的应用提高了分类性能.当GC-SRU 使用多流融合数据时,其分类结果达到了90.3%,在单流输入的基础上提高了5.5%.在此基础上加入空间注意力机制,得到的SAGC-SRU以及MSAGC-SRU,分类精度分别为90.1%和93.1%.说明空间注意力机制同样带来比较大的性能提升.消融实验的结果表明,MSAGC-SRU方法中使用的图卷积、多流数据融合以及空间注意力机制都能提升模型的分类性能.

表2 Northwestern-UCLA 数据集上消融实验结果

下面,本文获取算法的训练和测试时间,能直观地看出MSAGC-SRU 的轻量级优势.表3 给出不同方法连续训练和测试1 000次的耗时.每次测试时只输入一个样本,并重复5 次实验,取测试时间的平均值.可以看出,SRU 的训练和测试速度是最快的,使用多流融合模块、图卷积运算和注意力机制都会增加模型的训练和测试耗时.与AGC-LSTM 方法相比,提出的MSAGCSRU 方法在该条件下的训练效率提高了2.1 倍,测试效率提升了2倍.

表3 在Northwestern-UCLA 上测试不同算法训练和测试1 000次样本的时间

表1~表3 的结果表明,MSAGC-SRU 方法在Northwestern-UCLA 数据集上,不仅在动作分类任务中表现出色,还大幅提高了模型的训练和测试效率,在分类准确率和计算成本之间有很好的平衡.

3.3.2 NTU RGB+D Dataset

为了验证本文方法的泛化能力,继续在更大的数据集NTU RGB+D 上实验.比较的方法包括ST-GCN[2]、2s-Adaptiva GCN[22]、AGC-LSTM[3]和MS-AAGCN[4],实验结果如表4所示.

表4 在NTU RGB+D数据集上实验结果比较

从表4 中可以看出,在CV 协议中,本文提出的MSAGC-SRU 方法比ST-GCN 提高了4.4%的分类准确率;在CS 协议中,本文方法提高了5.8%的准确率.与AGC-LSTM[3]相比,CV 协议中MSAGC-SRU 的分类精度低了2.3%,CS 协议中低了1.9%,但FLOPs 低于AGCLSTM 的1/2.与更先进的算法MS-AAGCN 相比,CV 协议下低了3.5%,CS 协议中低了2.7%,但是从算法复杂度看,本文方法的FLOPs 仅为MS-AAGCN 的1/3.结果表明,MSAGC-SRU 方法在类别增多、数据特征增加的情况下分类准确率有明显损失,但是显著降低了算法复杂度.在重视设备的运行效率的场景下,比如嵌入式或移动端的应用中,MSAGC-SRU 能尽可能保持损失很小的精度来满足非常高效的应用任务.

4 讨论

在Northwestern-UCLA 数据集的实验中,本文用混淆矩阵分析了训练模型的测试分类结果.从图5 中可以看到,SRU 方法在“单手捡起”和“双手捡起”两种动作间分类精度不高,在“丢垃圾”和“四处走动”两个动作也不能很好的区分,尤其是“扔”的动作识别效果很差,主要因为这些动作间的相似度较高,普通的SRU 方法不能很好的区分.而本文提出的MSAGC-SRU 方法很好的提高了对这些动作的分类精度,即使与AGCLSTM 相比,在“自处走动”、“搬”等动作的分类精度会略微高一些.这些结果表明,MSAGC-SRU 方法在骨架动作识别任务中是一种有效的方法.

图5 Northwestern-UCLA数据集上测试结果的混淆矩阵对比图

5 结论

本文提出了一种多流空间注意力图卷积SRU(MSAGC-SRU)方法,并应用于基于骨架的三维动作识别.MSAGC-SRU 方法将图卷积算子代替门的全连接运算,利用数据的空间信息.同时,引入空间注意力网络,增强节点的关注度.此外,为了表现骨骼数据的多样性,采用多流融合数据输入.在两个公开数据集上的实验表明,与先进方法比,所提出的MSAGC-SRU 提高了数倍的计算效率,同时保持了不错的分类准确率.接下来研究的开展会将该算法应用在嵌入式平台上,开发相关应用.

猜你喜欢
骨架注意力卷积
浅谈管状骨架喷涂方法
让注意力“飞”回来
基于3D-Winograd的快速卷积算法设计及FPGA实现
骨架密度对炭/炭多孔骨架压力浸渗铜的影响
如何培养一年级学生的注意力
卷积神经网络的分析与设计
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
周博士考察拾零(六十六)日光温室前屋面开机具作业门处骨架的处理方法
A Beautiful Way Of Looking At Things