基于沙漏注意力高分辨率网络的人体姿态评估实验
2024-04-18张晓光程小舟
云 霄, 褚 菲, 张晓光, 程小舟
(中国矿业大学信息与控制工程学院,江苏徐州 221116)
0 引 言
人体姿态评估旨在对视频中或者图片中的人体行为进行检测并识别,可以作为“数字信号处理”“数字图像处理”“嵌入式系统原理及应用”课程中的典型案例进行实践教学,对提高学生学习兴趣和专业热情的培养至关重要。人体姿态评估的传统方法需要人工选择特征进行提取,在大规模姿态评估任务中需耗费人力资源,识别准确率也不高。目前,基于深度学习的人体姿态评估算法被相继提出,常用的方法有双流网络和3D卷积神经网络。
双流网络结构概念由Simonyan等[1]首次提出,该方法首先利用光流帧将视频分解为时空分量,以学习场景对象的外观和运动的空间、时间信息。Lin 等[2]提出时序移位模块实现了视频序列的时序关系捕捉。Zhang等[3]引入卷积注意力模块,着重关注视频图像中的局部细节信息和空间的时序特征表征能力。但双流网络计算成本高、速度慢,且不能对长时间视频建模;3D 卷积神经网络法运算速度快,在2D 卷积网络基础上增加了捕获相邻帧信息的时间维度关联,并进一步开发模型正则化和组合方案提高模型性能[4]。针对卷积神经网络产生过拟合问题,通过引入Dropout方法[5]抑制部分深度神经网络提取的特征参数,以避免巨大参数量使模型过度拟合训练。为了进一步解决过拟合导致部分有效特征失活问题,Zunino 等[6]提出了一种偏向于选择的方案,使得不该失活的有效特征得以保留。Peng等[7]提出一种3D最大残余特征图卷积网络,解决了卷积计算导致的网格退化和梯度消失问题。在普通的卷积操作基础上,图卷积神经网络关注到人体骨骼非欧式特性数据之间的拓扑结构,根据相邻关节点以及非相邻关节点之间的关系,捕获人体姿态特征作为图数据,实现人体姿态评估。Yan 等[8]提出时空图卷积(Spatial Temporal GCN,ST-GCN)模型将骨骼数据点从时间和空间两个维度上构建了完整的图结构。Liu等[9]在ST-GCN 的基础上提出双流网络框架,将人体骨骼转换为时空图和骨架姿态图像卷积后的特征进行融合,从动作的振幅和方向两个方面对动作中的时间信息进行建模,解决了ST-GCN 中孤立时间信息的缺点。Zhang 等[10]用端到端语义引导神经网络用于基于骨骼的姿态评估,显式地引入了高级语义,将卷积神经网络与图卷积神经网络结合,在模型规模和识别精度上达到了平衡。黄瀚[11]提取图像中的多层时空语义特征,使用三胞胎注意力机制,提高复杂动作关键信息的提取能力和判断准确性。Sun等[12]建立两个独立的跨多分辨率视觉表示子网络,反复融合由高分辨率到低分辨率子网络生成的表示,从而生成可靠的高分辨率表示。
然而,在由低分辨率至高分辨率的特征提取过程中,尽管在高分辨率网络的不同分支间添加了丰富的信息交互单元,但是作为各自分支上的主流信息并没有经过由高到低的信息聚合过程。本实验设计了基于沙漏注意力高分辨率网络的人体姿态评估方法,对高分辨率特征补充由高到低的特征聚合过程。然后设计了特征回传模块,将任务层输出的热力图重新映射到和该阶段输出相同尺寸的特征图,上阶段网络所学习到的骨架点相互关系回传至下阶段网络进行相互监督学习。最后设计了多阶段监督算法,用融合中继监督和自蒸馏的方式实现高分辨率网络的监督训练。与经典方法在标准数据集上完成人体姿态评估对比实验,并在硬件设备上进行了真实场景现场实验。
1 人体姿态评估实验
1.1 整体设计框架
本实验设计算法框架如图1 所示,首先,图像输入STEM模块将尺寸转换为能够输入主网络的特征图尺寸,然后经过4 层批量归一化(Batch Normalization,BN)层对图像进行归一化处理,以将网络输出控制在一定范围,避免在学习过程中梯度过小或权值更新值太大,防止梯度消失和梯度爆炸问题,最后通过基于沙漏特征提取的骨干网络、特征回传模块以及多阶段监督算法三部分模块,完成人体姿态评估算法的实验过程。
1.2 沙漏注意力特征提取
在姿态评估网络框架中,由低分辨率至高分辨率是常用的特征提取手段。在高分辨率网络之前,人们往往将全部特征都进行先下采样后上采样的过程。在高分辨率网络中,尽管在不同分支间添加了丰富的信息交互单元,但是作为各自分支上的主流信息并没有经过由高到低的信息聚合过程。因此,本文设计了沙漏注意力特征提取算法对高分辨率特征补充由高到低的特征聚合过程。由图1 可见,每一个小阶段包含4个基本特征提取单元模块(Basicblock,BB),其中本设计所提的沙漏注意力特征模块(Attention Hourglass Module,AHM)连接在4 个BB 模块的中间,在不同尺寸的分支上分别使用不同规格的沙漏模块,即最高层分支使用的沙漏模块对特征图尺寸的下降倍数最多,每一个分支的沙漏都会将特征图尺寸下降至第4 个分支的尺寸然后再进行恢复。
本设计所提的沙漏注意力特征模块是在沙漏特征提取模型[13]的基础上针对1/4、1/8、1/16 三个分辨率分支设计的3 种沙漏模块,可以分别对分辨率进行8倍、4 倍、2 倍的压缩过程,使得各分辨率所有特征均完全经历上下采样过程。3 种沙漏模块的具体参数如表1 所示。沙漏特征提取模型[13]包含降维、下采样、上采样、归一化四部分构成,如图2 所示。在下采样部分,使用步长为2 的3 ×3 卷积同时减少特征维度与特征图尺寸;在上采样部分,使用反卷积增大特征图尺寸,但是继续缩减特征维度。此外,在上下采样相同尺寸特征图之间添加了跳跃连接进行空间特征补充。最终,在沙漏末端使用1 ×1 卷积将特征维度降至1,采用sigmoid 激活函数将特征图转化成注意力掩码。此时如果将注意力掩码加权至输入特征图,则类似全局注意力机制,同时,特征维度与特征尺寸的下降也必将带来信息的大量损失。为了缓解这种状况,对加权方式进行了放缩操作,输入定义为fin,输出fout表示为
表1 沙漏模块参数
图2 沙漏特征提取模块
式中:μ表示放缩比例;h(·)表示沙漏特征提取模块;θ表示网络可学习参数。
1.3 自蒸馏特征回传
在多阶段人体姿态评估网络中,每个阶段经任务层输出的热力图在经过监督后会重新映射到和该阶段输出相同尺寸的特征图,两者逐元素相加后作为下阶段输入。于是,上阶段网络所学习到的骨架点相互关系被下阶段网络利用。基于上述操作,本实验设计了监督后的特征回传模块(Feature Back Module,FBM)如图3 所示。
图3 监督后的特征回传模块
则第i+1 个模块的输入
1.4 多阶段监督算法
高分辨率网络根据网络分支数量的不同定义网络所处的阶段。假如此时网络处于3 分支深度,则认为网络处于stage3。本实验将并行分支和信息融合单元合称为一个模块,则4 个阶段分别包含1,1,4,3 个模块,以stagei_j表示第i个stage的第j个模块。尽管高分辨率网络使用端到端训练达到了不错的效果,但是在如此深的网络中,难免存在梯度下降的问题。此外,面对噪声数据,传统的监督方式不仅抗噪能力弱,网络收敛效果也差强人意。因此本实验设计了多阶段监督(Multi-stage Supervision,MSS)算法,用融合中继监督和自蒸馏的方式实现高分辨率网络的监督训练。中继监督损失和自蒸馏损失都采用均方损失函数计算为
式中:K表示第k类骨架点;S表示监督标签;P表示推理结果。
本实验所提多阶段监督算法框架如图4 所示,将stage4_1 和stage4_2 两个模块的输出特征通过相同的任务层输出骨架点热力图,与训练数据的真实标签计算损失,中间输出和网络末端stage4_3 模块的输出使用相同的真实热力图GT作为监督。红线表示中继监督;绿线表示自蒸馏监督。定义stage4 的3 个阶段的预测热力图P=(P1,P2,P3),训练数据的真实热力图定义为G,则此时中继监督的损失
图4 多阶段监督算法框架
自蒸馏是知识蒸馏的一种特殊方式,将浅层网络定义为学生网络,整体网络定义为教师网络,学生网络将接受教师网络的软标签监督。本实验将stage4_1 和stage4_2 定义为学生网络1 和2,整体网络定义为教师网络。则此时自蒸馏损失
真实标签作为网络的学习目标,具有无可替代的作用;而软标签作为额外的监督信号,可以为学生模型输出提供真实标签所不包含的负样本信息。为平衡两种损失,本实验采用参数α使网络能够更好地利用这两种监督信号,网络总体损失Ltotal为
2 实验结果与分析
2.1 数据集与实验指标
本实验选择在MPII数据集进行验证。MPII数据集由Max Planck 发布于2014 年,所有数据均截取自YouTube。其中,训练集包含14 679 张图片,验证集包含2 729 张图片,测试集包含6 619 张图片,数据对每个人体实例标注了16 个骨架点信息。
MPII 数据集使用关键点正确概率(Percentage of Correct Keypoints,PCK)指标计算正确估计出的骨架点比例,其中第i类骨架点被正确估计的比例为
所有骨架点的平均正确估计比例为
式中:i表示第i类骨架点;p表示第p个人体实例;dpi表示第p个人体实例的第i类骨架点预测坐标与真实坐标的欧氏距离;表示第p个人体实例的尺度因子。式中Tk表示一个归一化参考阈值,在MPII 中通常使用头部长度作为PCK 计算的阈值,PCK@0.5 即表示当阈值为0.5 时,即阈值为头部长度的一半时,计算PCK所得到的值。
2.2 主流算法对比实验与评估
为验证算法整体性能,在MPII数据集上与经典主流算法进行了对比。标准数据集对比实验在Linux 环境的服务器上进行,操作系统选择Ubuntu18.04,CPU环境为Intel(R)Xeon(R)Silver 4210R CPU,训练时使用4 张显存为11GB 的Geforce 2080Ti 显卡。使用的程序语言为Python,深度框架为Pytorch。
对比实验结果如表2 所示,表中本章算法在测试中使用不同的模型类型,在网络训练中包含Best model(模型寻优的最佳结果)和Final model(训练所有批次后得到的模型)。与其他主流网络对比实验可以看出,本实验所设计算法在各骨架点定位精度上,均较之前方法有所提升,表现出了更好的检测能力。通过不同算法、算法不同方式的对比结果,培养学生对实验结果的评估和分析能力。
2.3 现场硬件实验
本实验所设计网络在英伟达嵌入式人工智能边缘计算开发板Jetson TX2(见图5)上进行了现场硬件实验,实验数据由实验室室内和走廊楼梯口真实监控摄像头拍摄得到。现场实验结果如图6 所示,根据本实验所设计方法进行关键点检测,检测结果对照人体姿态标准进行评估,得到姿态评估结果。本次现场实验对走(walk)、坐(sit)、摔倒(fall down)3 个动作进行识别和评估,姿态评估识别精度高达88%。当摔倒动作评估分数大于0.7 时(最高为1)进行报警,实现为行人危险动作的评估、报警功能。
图5 现场硬件实验设置
图6 现场硬件姿态评估实验结果示例
3 结 语
本设计将教师科研成果转化为学生综合研究型现场硬件实验,设计基于沙漏注意力高分辨率网络的人体姿态评估方法,实现校园、矿井等场景下的行人姿态评估和危险行为报警。本实验设计首先在深度高分辨率表示学习的基础上构建沙漏注意力特征提取模块,对高分辨率特征补充由高到低的特征聚合过程,然后设计了特征回传模块,将任务层输出的热力图重新映射到和该阶段输出相同尺寸的特征图,上阶段网络所学习到的骨架点相互关系回传至下阶段网络进行相互监督学习,最后设计了多阶段监督算法,用融合中继监督和自蒸馏的方式实现高分辨率网络的监督训练。与标准数据集和现场硬件设备上都实现了较好的人体姿态评估效果。将本研究引入现场硬件教学实验更能促进研究型实验教学与理论教学的结合,在加强学生理解理论知识的同时,提高其独立思考能力和科研创新意识。