一种基于知识蒸馏的人体姿态估计方法及系统与流程

文档序号:37229701发布日期:2024-03-05 15:38阅读:20来源:国知局
一种基于知识蒸馏的人体姿态估计方法及系统与流程

本发明涉及计算机视觉,具体涉及一种基于知识蒸馏的人体姿态估计方法及系统。


背景技术:

1、人体姿态估计任务作为计算机视觉领域中的一个基础并且重要的任务,人体姿态估计的应用场景十分丰富,例如人机交互,通过对人体各种不同姿态的识别实现机器进行相应的控制,在如今的电影动画制作工作中,往往会涉及到很多对人体姿态进行采集的任务,传统的方法是在人体各个关键点处放置传感器进行动作采集,而如果采用人体姿态估计方法,这个任务实现起来就会简单很多。在安全监控领域,人体姿态估计也可以发挥很大的作用,不需多余的传感器,就可以检测到一些危险动作。

2、目前主流的人体姿态估计方法都是通过深度学习来实现的,2014年,文献1(toshev a, szegedy c. deeppose: human pose estimation via deep neuralnetworks[c]. proceedings of the ieee conference on computer vision andpattern recognition, 2014: 1653-1660.)公开了一种人体姿态估计方法deeppose,这是第一次有人将深度学习方法应用到人体姿态估计任务,其放弃了传统方法使用的手工特征估计,而是利用多阶段的深度卷积网络提取图片中的全局特征,对人体关键点进行直接回归,但由于卷积神经网络不能很好地回归长距离的偏移,导致模型最终回归的是一个粗糙的偏移量,而且模型的泛化能力较差。针对上述问题,文献2(tompson j j, jain a, lecuny, et al. joint training of a convolutional network and a graphical model forhuman pose estimation[j]. advances in neural information processing systems.2014,27:1799-1807.)提出了利用卷积神经网络和图结构模型对人体关键点进行基于热图的回归的方法。人体姿态估计的深度学习方法到目前为止基本延续上述的模式,并对其中各个环节进行不断的优化。

3、随着模型的精度的提升,姿态估计模型的参数量也在成倍的增加,随之而来的是计算成本的不断提高,这让模型的开发和应用都有更高的硬件要求,为了解决这个问题,对人体姿态估计模型的轻量化任务也就开始兴起。对于轻量级小模型来说,模型的参数量有限,模型的拟合能力相较于大模型有差距,而知识蒸馏是一个十分有效的提升轻量级模型性能的方法。利用大模型更强的拟合能力来辅助小模型学习,让小模型学习较容易拟合的大模型输出,比让其直接拟合真值标签更容易,可以使原本复杂的问题简单化。原始的知识蒸馏方法分为两个步骤,首先,需要训练一个规模较大,且性能较高的模型作为教师模型,接着训练轻量级学生模型,在每一次迭代的过程中,学生模型不仅要和真实标签做损失,还要和教师模型的输出做损失。但是这样的知识蒸馏策略需要两个阶段,流程比较复杂,且增加了训练时对硬件的要求。


技术实现思路

1、本发明针对现有技术中的不足,提供一种基于知识蒸馏的人体姿态估计方法及系统,本方法只需一次训练,即可实现教师模型向学生模型之间的知识迁移。同时让学生模型之间也以注意力特征的形式相互监督,让教师和学生模型同步优化,降低算法的开发成本。

2、为实现上述目的,本发明采用以下技术方案:

3、一种基于知识蒸馏的人体姿态估计方法,包括:

4、步骤1、获取包含人体的图片组成数据集,标注图片中人体的关键点;

5、步骤2、设计多分支知识蒸馏网络作为教师模型,所述多分支知识蒸馏网络包括共享主干和若干网络分支,任意一条网络分支与共享主干组成学生模型;

6、步骤3、利用数据集训练教师模型;所述训练教师模型包括在学生模型之间注意力迁移的过程、融合各网络分支输出的热图的过程和计算训练教师模型整体损失的过程;

7、步骤4、从训练好的教师模型中选择学生模型,将待估计的人体图片输入学生模型,输出关键点热图;

8、步骤5、对关键点热图进行解码,得到估计的人体关键点坐标。

9、为优化上述技术方案,采取的具体措施还包括:

10、进一步地,步骤1中,所述标注图片中人体的关键点具体为:

11、利用标签标注工具对图片进行标签标注,标记出人体的16个关键点,包括右踝关节、右膝关节、右髋关节、左髋关节、左膝关节、左踝关节、骨盆、胸部、上颈部、头顶、右腕关节、右肘关节、右肩关节、左肩关节、左肘关节和左腕关节。

12、进一步地,步骤2中,所述多分支知识蒸馏网络的共享主干包括stem层、stage2和stage3;所述stem层由两个shuffle block串联,用于变换输入图像的特征维度;stage2由两个平行特征提取分支组成,上半部分特征提取分支的特征图分辨率为40×64×64,下半部分特征提取分支的特征图分辨率为80×32×32,每个特征提取分支由两个shuffleblock串联,stage3的结构相比较于stage2多了一个特征图分辨率为160×16×16的特征提取分支;所述多分支知识蒸馏网络的网络分支包括头部端、stage3和stage4;stage4相较于stage3多了一个特征图分辨率为320×8×8的特征提取分支;在每个特征提取分支最后连接一个lite fuse layer,用于不同stage之间的特征提取分支数的对齐。

13、进一步地,步骤3具体为:

14、在通道维度上压缩学生模型不同stage输出的注意力特征图,不同stage输出的注意力特征图的分辨率为,表示第 f个stage的通道数,表示第 f个stage输出的注意力特征图的高度,表示第 f个stage输出的注意力特征图的宽度,在通道维度上压缩注意力特征图用公式表示为:

15、,

16、式中,表示第 b个学生模型第 f个stage输出的注意力特征图,为压缩之前的第 b个学生模型第 f个stage输出的注意力特征图中的第 c个通道上注意力特征图中的第行第列的点的值;表示压缩之后的第 b个学生模型第 f个stage输出的注意力特征图中的第行第列的点的值;

17、根据多分支知识蒸馏网络的网络分支的网络深度,用注意力特征图从更深的网络分支向更浅的网络分支迁移注意力,计算注意力迁移损失:

18、,

19、式中,表示注意力迁移损失函数, n为在多分支知识蒸馏网络的网络分支之间进行的注意力迁移的次数,为更深的网络分支的注意力特征图,为更浅的网络分支的注意力特征图,表示l2范数;

20、融合多分支知识蒸馏网络的各网络分支输出的热图,具体过程如下:

21、首先将各个网络分支的热图进行堆叠操作, b为网络分支的序号,得到组合后的特征,表示人体关键点的个数,表示 维的实数域,接下来将组合后的特征分为两个分支分别计算通道注意力特征和空间注意力特征;

22、对通道注意力特征和空间注意力特征广播相加,得到多尺度注意力特征,公式表示如下:

23、,

24、其中,为广播相加;

25、将多尺度注意力特征拆分为三部分特征图,,表示 维的实数域,表示多尺度注意力特征的前三分之一特征图,表示多尺度注意力特征的中间三分之一特征图,表示多尺度注意力特征的后三分之一特征图,将三部分特征图输入到r-softmax中计算多分支知识蒸馏网络的各网络分支输出的热图的权重,计算公式如下:

26、,

27、表示第b个网络分支第k张特征图的第 w行第 h列的像素点的权重,代表特征图上的各像素点索引,,且,表示第i部分第k张特征图的第 w行第 h列的像素点;

28、将多分支知识蒸馏网络的各网络分支输出的热图与多分支知识蒸馏网络的各网络分支输出的热图的权重逐元素相加,得到教师模型输出的特征图,公式如下:

29、,

30、式中,b为多分支知识蒸馏网络的网络分支的序号;

31、利用提前准备的人体关键点标签热图与各个网络分支输出的热图比较,计算得到均方误差损失;

32、将教师模型输出的特征图与各个网络分支输出的热图比较,利用kl散度损失函数计算知识蒸馏损失;

33、将注意力迁移损失、均方误差损失与kl散度损失加权求和得到训练教师模型整体损失;

34、在教师模型中反向传播整体损失,调整教师模型和学生模型参数,以提升学生模型的判别能力。

35、进一步地,所述计算通道注意力特征和空间注意力特征的具体过程为:

36、通道注意力特征的计算流程:

37、首先将组合后的特征进行全局平均池化,计算公式如下:

38、

39、式中,表示全局平均池化输出的中间特征,表示组合后的特征的高,表示组合后的特征的宽,表示组合后的特征的每一个通道上的(h,w)位置索引上的数值;

40、接着全局平均池化输出的中间特征经过一个1×1卷积,以比例对中间特征的维度进行降低,降低后中间特征的维度为,表示人体关键点的个数;

41、降低后中间特征在经过bn层和激活函数之后,再经过一个1×1卷积将中间特征的维度恢复为,再经过一个bn层后,获得组合后的特征的通道注意力特征;

42、空间注意力特征的计算流程:

43、首先用3×3卷积将组合后的特征的维度变换为,为降维比例,在经过bn层和激活函数之后,再经过一个1×1卷积将特征的维度恢复为,再经过一个bn层后,获得空间注意力特征。

44、进一步地,所述利用提前准备的人体关键点标签热图与各个网络分支输出的热图比较,计算得到均方误差损失的具体过程为:

45、利用以下公式计算均方误差损失:

46、,

47、式中,表示均方误差损失函数,表示人体关键点的个数,表示多分支知识蒸馏网络的网络分支总数, l表示人体关键点标签热图和网络分支输出的热图的宽, j表示人体关键点标签热图和网络分支输出的热图的高;表示第 k张人体关键点标签热图第 l行第 j列的点,表示第 b个网络分支输出的第 k张热图的第 l行第 j列的点;

48、所述将教师模型输出的特征图与各个网络分支输出的热图比较,利用kl散度损失函数计算知识蒸馏损失的公式如下:

49、,

50、式中,为kl散度损失函数,用来表征知识蒸馏损失,其中,和分别为教师模型输出的特征图和网络分支输出的热图的宽和高,m=w×h,m表示教师模型输出的特征图的总像素点数,也表示网络分支输出的热图的总像素点数;表示教师模型输出的第 k张特征图的第 m个点的值,表示第 b个网络分支输出的第 k张热图上第 m个点的值;

51、所述将注意力迁移损失、均方误差损失与kl散度损失加权求和得到训练教师模型整体损失的公式如下:

52、,

53、式中, l表示训练教师模型整体损失,表示均方误差损失函数的权重,表示均方误差损失函数,表示kl散度损失函数的权重,为kl散度损失函数,表示注意力迁移损失函数的权重,表示注意力迁移损失函数。

54、进一步地,步骤5具体为:

55、获取关键点热图中激活值排名前二的两个峰值坐标,然后从最高峰的坐标向次高峰的坐标偏移四分之一作为最终的人体关键点坐标。

56、本发明还提出一种基于知识蒸馏的人体姿态估计系统,包括:

57、数据集标注模块,用于获取包含人体的图片组成数据集,标注图片中人体的关键点;

58、网络构建模块,用于构建多分支知识蒸馏网络作为教师模型,所述多分支知识蒸馏网络包括共享主干和若干网络分支,任意一条网络分支与共享主干组成学生模型;

59、训练模块,用于利用数据集训练教师模型;所述训练模块包括注意力迁移模块、特征融合模块和损失计算模块;所述注意力迁移模块用于对学生模型的注意力特征图在通道维度上进行压缩,实现不同深度网络的对齐,根据多分支知识蒸馏网络的网络分支的网络深度,用注意力特征图从更深的网络分支向更浅的网络分支迁移注意力,计算注意力迁移损失;所述特征融合模块用于融合各网络分支输出的热图,所述损失计算模块用于计算训练教师模型整体损失;

60、推理模块,用于从训练好的教师模型中选择学生模型,将待估计的人体图片输入学生模型,输出关键点热图;

61、解码模块,用于对关键点热图进行解码,得到估计的人体关键点坐标。

62、本发明的有益效果是:

63、本发明设计了基于知识蒸馏的人体姿态估计方法及系统。原始的知识蒸馏教师模型和学生模型需要分开训练,训练成本高。本发明的方法中提出的多分支知识蒸馏网络为单阶段知识蒸馏模型,相较于二阶段知识蒸馏算法,此方法只需一次训练,即可实现教师模型向学生模型之间的知识迁移。对于轻量级小模型来说,模型的参数量有限,模型的拟合能力相较于大模型有差距,利用大模型更强的拟合能力来辅助小模型学习,让小模型学习较容易拟合的大模型输出,比让其直接拟合真值标签更容易,可以使原本复杂的问题简单化。教师模型为多分支知识蒸馏网络,学生模型为其中的一个分支,为了融合各分支的输出,提升教师模型的性能,设计了基于多尺度注意力的特征融合模块。本发明认为学习老师的软标签对于学生模型来说是不够的。学生之间的学习也应该考虑在内。此外,知识蒸馏不应该仅使用教师软标签,还应该在学生特征图之间进行知识蒸馏。因此,我们提出了一种新的知识蒸馏方法,即学生模型的特征也以注意力信息的形式相互监督。相较于传统的二阶段知识蒸馏算法,该算法的知识蒸馏效果更好,且因为教师和学生模型同步优化,算法的开发成本显著降低。

64、注意力监督方式将从教师模型中计算出的注意力特征图图与学生模型中的注意力进行损失计算,从教师模型提取的特征中获得教师模型的注意力关注点,让学生模型的注意力特征来拟合该关注点,从而实现知识的迁移。网络中涉及的注意力机制并不是传统意义上通过编解码器结构生成的注意力特征图,而是直接基于激活值的注意力特征图,有更明确的物理意义,即激活值越大的点是关键点的概率越大,需要模型给予更多的注意力,相对于用两个卷积模块对特征进行编解码来取得注意力特征图,降低了计算压力,让模型的训练更高效。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1