公开/公告号CN117636403A
专利类型发明专利
公开/公告日2024-03-01
原文格式PDF
申请/专利权人 江苏源驶科技有限公司;
申请/专利号CN202410108364.5
发明设计人
申请日2024-01-26
分类号G06V40/10;G06N3/096;G06N3/045;G06V10/82;
代理机构南京钟山专利代理有限公司;
代理人张力
地址 210046 江苏省南京市经济技术开发区兴智路6号兴智科技园A栋1601室
入库时间 2024-04-18 20:01:30
技术领域
本发明涉及计算机视觉技术领域,具体涉及一种基于知识蒸馏的人体姿态估计方法及系统。
背景技术
人体姿态估计任务作为计算机视觉领域中的一个基础并且重要的任务,人体姿态估计的应用场景十分丰富,例如人机交互,通过对人体各种不同姿态的识别实现机器进行相应的控制,在如今的电影动画制作工作中,往往会涉及到很多对人体姿态进行采集的任务,传统的方法是在人体各个关键点处放置传感器进行动作采集,而如果采用人体姿态估计方法,这个任务实现起来就会简单很多。在安全监控领域,人体姿态估计也可以发挥很大的作用,不需多余的传感器,就可以检测到一些危险动作。
目前主流的人体姿态估计方法都是通过深度学习来实现的,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.)提出了利用卷积神经网络和图结构模型对人体关键点进行基于热图的回归的方法。人体姿态估计的深度学习方法到目前为止基本延续上述的模式,并对其中各个环节进行不断的优化。
随着模型的精度的提升,姿态估计模型的参数量也在成倍的增加,随之而来的是计算成本的不断提高,这让模型的开发和应用都有更高的硬件要求,为了解决这个问题,对人体姿态估计模型的轻量化任务也就开始兴起。对于轻量级小模型来说,模型的参数量有限,模型的拟合能力相较于大模型有差距,而知识蒸馏是一个十分有效的提升轻量级模型性能的方法。利用大模型更强的拟合能力来辅助小模型学习,让小模型学习较容易拟合的大模型输出,比让其直接拟合真值标签更容易,可以使原本复杂的问题简单化。原始的知识蒸馏方法分为两个步骤,首先,需要训练一个规模较大,且性能较高的模型作为教师模型,接着训练轻量级学生模型,在每一次迭代的过程中,学生模型不仅要和真实标签做损失,还要和教师模型的输出做损失。但是这样的知识蒸馏策略需要两个阶段,流程比较复杂,且增加了训练时对硬件的要求。
发明内容
本发明针对现有技术中的不足,提供一种基于知识蒸馏的人体姿态估计方法及系统,本方法只需一次训练,即可实现教师模型向学生模型之间的知识迁移。同时让学生模型之间也以注意力特征的形式相互监督,让教师和学生模型同步优化,降低算法的开发成本。
为实现上述目的,本发明采用以下技术方案:
一种基于知识蒸馏的人体姿态估计方法,包括:
步骤1、获取包含人体的图片组成数据集,标注图片中人体的关键点;
步骤2、设计多分支知识蒸馏网络作为教师模型,所述多分支知识蒸馏网络包括共享主干和若干网络分支,任意一条网络分支与共享主干组成学生模型;
步骤3、利用数据集训练教师模型;所述训练教师模型包括在学生模型之间注意力迁移的过程、融合各网络分支输出的热图的过程和计算训练教师模型整体损失的过程;
步骤4、从训练好的教师模型中选择学生模型,将待估计的人体图片输入学生模型,输出关键点热图;
步骤5、对关键点热图进行解码,得到估计的人体关键点坐标。
为优化上述技术方案,采取的具体措施还包括:
进一步地,步骤1中,所述标注图片中人体的关键点具体为:
利用标签标注工具对图片进行标签标注,标记出人体的16个关键点,包括右踝关节、右膝关节、右髋关节、左髋关节、左膝关节、左踝关节、骨盆、胸部、上颈部、头顶、右腕关节、右肘关节、右肩关节、左肩关节、左肘关节和左腕关节。
进一步地,步骤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之间的特征提取分支数的对齐。
进一步地,步骤3具体为:
在通道维度上压缩学生模型不同stage输出的注意力特征图,不同stage输出的注意力特征图的分辨率为
,
式中,
根据多分支知识蒸馏网络的网络分支的网络深度,用注意力特征图从更深的网络分支向更浅的网络分支迁移注意力,计算注意力迁移损失:
,
式中,
融合多分支知识蒸馏网络的各网络分支输出的热图,具体过程如下:
首先将各个网络分支的热图
对通道注意力特征
,
其中,
将多尺度注意力特征
,
表示第b个网络分支第k张特征图的第
将多分支知识蒸馏网络的各网络分支输出的热图
,
式中,b为多分支知识蒸馏网络的网络分支的序号;
利用提前准备的人体关键点标签热图
将教师模型输出的特征图
将注意力迁移损失、均方误差损失与KL散度损失加权求和得到训练教师模型整体损失;
在教师模型中反向传播整体损失,调整教师模型和学生模型参数,以提升学生模型的判别能力。
进一步地,所述计算通道注意力特征
通道注意力特征
首先将组合后的特征
式中,
接着全局平均池化输出的中间特征
降低后中间特征在经过BN层和激活函数之后,再经过一个1×1卷积将中间特征的维度恢复为
空间注意力特征
首先用3×3卷积将组合后的特征
进一步地,所述利用提前准备的人体关键点标签热图
利用以下公式计算均方误差损失:
,
式中,
所述将教师模型输出的特征图
,
式中,
所述将注意力迁移损失、均方误差损失与KL散度损失加权求和得到训练教师模型整体损失的公式如下:
,
式中,
进一步地,步骤5具体为:
获取关键点热图中激活值排名前二的两个峰值坐标,然后从最高峰的坐标向次高峰的坐标偏移四分之一作为最终的人体关键点坐标。
本发明还提出一种基于知识蒸馏的人体姿态估计系统,包括:
数据集标注模块,用于获取包含人体的图片组成数据集,标注图片中人体的关键点;
网络构建模块,用于构建多分支知识蒸馏网络作为教师模型,所述多分支知识蒸馏网络包括共享主干和若干网络分支,任意一条网络分支与共享主干组成学生模型;
训练模块,用于利用数据集训练教师模型;所述训练模块包括注意力迁移模块、特征融合模块和损失计算模块;所述注意力迁移模块用于对学生模型的注意力特征图在通道维度上进行压缩,实现不同深度网络的对齐,根据多分支知识蒸馏网络的网络分支的网络深度,用注意力特征图从更深的网络分支向更浅的网络分支迁移注意力,计算注意力迁移损失;所述特征融合模块用于融合各网络分支输出的热图,所述损失计算模块用于计算训练教师模型整体损失;
推理模块,用于从训练好的教师模型中选择学生模型,将待估计的人体图片输入学生模型,输出关键点热图;
解码模块,用于对关键点热图进行解码,得到估计的人体关键点坐标。
本发明的有益效果是:
本发明设计了基于知识蒸馏的人体姿态估计方法及系统。原始的知识蒸馏教师模型和学生模型需要分开训练,训练成本高。本发明的方法中提出的多分支知识蒸馏网络为单阶段知识蒸馏模型,相较于二阶段知识蒸馏算法,此方法只需一次训练,即可实现教师模型向学生模型之间的知识迁移。对于轻量级小模型来说,模型的参数量有限,模型的拟合能力相较于大模型有差距,利用大模型更强的拟合能力来辅助小模型学习,让小模型学习较容易拟合的大模型输出,比让其直接拟合真值标签更容易,可以使原本复杂的问题简单化。教师模型为多分支知识蒸馏网络,学生模型为其中的一个分支,为了融合各分支的输出,提升教师模型的性能,设计了基于多尺度注意力的特征融合模块。本发明认为学习老师的软标签对于学生模型来说是不够的。学生之间的学习也应该考虑在内。此外,知识蒸馏不应该仅使用教师软标签,还应该在学生特征图之间进行知识蒸馏。因此,我们提出了一种新的知识蒸馏方法,即学生模型的特征也以注意力信息的形式相互监督。相较于传统的二阶段知识蒸馏算法,该算法的知识蒸馏效果更好,且因为教师和学生模型同步优化,算法的开发成本显著降低。
注意力监督方式将从教师模型中计算出的注意力特征图图与学生模型中的注意力进行损失计算,从教师模型提取的特征中获得教师模型的注意力关注点,让学生模型的注意力特征来拟合该关注点,从而实现知识的迁移。网络中涉及的注意力机制并不是传统意义上通过编解码器结构生成的注意力特征图,而是直接基于激活值的注意力特征图,有更明确的物理意义,即激活值越大的点是关键点的概率越大,需要模型给予更多的注意力,相对于用两个卷积模块对特征进行编解码来取得注意力特征图,降低了计算压力,让模型的训练更高效。
附图说明
图1为本发明的整体构思示意图,包括训练期间多分支知识蒸馏网络模型结构和推理期间学生模型结构;
图2为推理期间学生模型结构;
图3为不同Stage结构图;
图4为注意力迁移模块;
图5为注意力迁移示意图;
图6为FFM模块结构图;
图7为损失函数示意图。
具体实施方式
现在结合附图对本发明作进一步详细的说明。
在一实施例中,本发明提出一种基于知识蒸馏的人体姿态估计方法,包括以下步骤:
步骤1、获取包含人体的图片组成数据集,标注图片中人体的关键点;
数据集中的图片是从YouTube视频网站上随机抽取的包含人体的图片,图片内容有单人,也有多人,输入图像统一为jpg格式,用数字按照顺序将图片命名,放到图片文件夹中。原始图片由人工利用标签标注工具对数据进行标签标注,标记出人体的16个关键点(0-右踝关节;1-右膝关节;2-右髋关节;3-左髋关节;4-左膝关节;5-左踝关节;6-骨盆;7-胸部;8-上颈部;9-头顶;10-右腕关节;11-右肘关节;12-右肩关节;13-左肩关节;14-左肘关节;15-左腕关节),将标注信息和图片名称等信息写入json文件中,存入标注文件夹。
步骤2、设计多分支知识蒸馏网络作为教师模型,所述多分支知识蒸馏网络包括共享主干和若干网络分支,任意一条网络分支与共享主干组成学生模型。
多分支知识蒸馏网络的结构见图1,上半部分为训练阶段(Train)的多分支知识蒸馏网络(教师模型),下半部分为推理阶段(Inference)从训练好的教师模型中选取的学生模型。
多分支知识蒸馏网络的主要组成组件有Stem层(主干层),Stage2(stage为网络阶段)、Stage3和Stage4。多分支知识蒸馏网络的共享主干包括Stem层、Stage2和Stage3;多分支知识蒸馏网络的网络分支包括头部端、Stage3和Stage4。
其中Stem层是两个Shuffle block(特征混洗模块)的串联,可以将输入图像的特征维度从3×256×256变换到40×64×64。Stage2模块的结构如图3(a)所示,该阶段由两个平行特征提取分支组成,上半部分分支的特征图分辨率为40×64×64,下半部分特征图分辨率为80×32×32。每个特征提取分支有两个Shuffle block特征提取模块串联,每个分支在特征提取过程中始终保持特征的输入输出分辨率不变,后面的各类型Stage有同样的特性。Stage3模块的结构如图3(b)所示,相比较于Stage2多了一个特征图分辨率为160×16×16的特征提取分支,同样的,Stage4相较于Stage3多了一个特征图分辨率为320×8×8的特征提取分支。Stage4模块的结构如图3(c)所示。在每个特征提取分支最后连接一个Litefuse layer(轻量级特征融合层),在不同类型Stage模块之间进行连接时,会用到带有transition模块的Lite fuse layer生成一个更低分辨率的特征图分支,从而实现不同Stage之间的特征分支数的对齐。
图3中,Feature表示特征图,Lite fuse layer表示轻量级特征融合层,Rep convblock表示结构重参数化卷积模块。
步骤3、利用数据集训练教师模型;所述训练教师模型包括在学生模型之间注意力迁移的过程、融合各网络分支输出的热图的过程和计算训练教师模型整体损失的过程;步骤3具体为:
在通道维度上压缩学生模型不同stage输出的注意力特征图,不同stage输出的注意力特征图的分辨率为
,
式中,
根据多分支知识蒸馏网络的网络分支的网络深度,用注意力特征图从更深的网络分支向更浅的网络分支迁移注意力,注意力迁移模块的结构如图4所示。图1中的网络分支branch1、2、3的网络深度依次逐渐变深。
以各分支不同的教师模型为例,如图1所示,用第3个分支中的Stage4的最终输出对第2分支中的Stage4的输出进行注意力迁移,第2分支中的Stage4的最终输出对第1分支中的Stage4的输出进行注意力迁移,还有第3分支Stage3输出对第2分支的Stage3进行注意力迁移。
计算注意力迁移损失:
,
式中,
融合多分支知识蒸馏网络的各网络分支输出的热图,特征融合模块(FFM)的结构如图6所示,图6中,GAP表示全局平均池化,Conv表示卷积模块,R-softmax表示非极大值抑制,特征融合模块的输入为各个分支输出的最终高分辨率热图
首先将各个网络分支的热图
通道注意力的计算压缩了空间的维度,将特征图压缩为一个标量,这种简单的压缩方式可以描述尺度较大的目标,而消除了一些小目标的信号。通道注意力特征
首先将组合后的特征
,
式中,
接着全局平均池化输出的中间特征
降低后中间特征在经过BN层和激活函数之后,再经过一个1×1卷积将中间特征的维度恢复为
为了弥补通道注意力的对空间信息的忽视,在本实施例设计了空间注意力特征计算分支,与通道注意力平行,在单张特征图内计算注意力特征,从而保留更多的大尺度特征信息。
空间注意力特征
首先用3×3卷积将组合后的特征
对通道注意力特征
,
其中,
将多尺度注意力特征
,
表示第b个网络分支第k张特征图的第
将多分支知识蒸馏网络的各网络分支输出的热图
,
式中,b为多分支知识蒸馏网络的网络分支的序号;教师模型输出的特征图
利用提前准备的人体关键点标签热图
利用以下公式计算均方误差损失:
,
式中,
将教师模型输出的特征图
,
式中,
将注意力迁移损失、均方误差损失与KL散度损失加权求和得到训练教师模型整体损失;最终在模型训练期间模型的损失函数示意图如图7所示,计算公式如下:
,
式中,
图7中,MSE Loss表示均方误差损失函数,FFM表示特征融合模块,KL Loss表示KL散度损失函数。
在教师模型中反向传播整体损失,调整教师模型和学生模型参数,以提升学生模型的判别能力。
步骤4、从训练好的教师模型中选择学生模型,将待估计的人体图片输入学生模型,输出关键点热图。
不同的学生模型大小不同,在推理期间如果需要大的精度高的模型,就选较深的学生模型,如需速度快,则选择模型较小的学生模型。
推理期间的学生模型结构如图2,其中的Stage结构见图3。将裁剪出的单人图像调整为256×256分辨率后输入神经网络模型进行计算,得到输出的关键点热图。
步骤5、对关键点热图进行解码,得到估计的人体关键点坐标。具体为:
获取关键点热图中激活值排名前二的两个峰值坐标,然后从最高峰的坐标向次高峰的坐标偏移四分之一作为最终的人体关键点坐标。激活值指关键点热图上面每一个像素位置的数值。
在另一实施例中,本发明提出一种与实施例一的方法相对应的基于知识蒸馏的人体姿态估计系统,包括:
数据集标注模块,用于获取包含人体的图片组成数据集,标注图片中人体的关键点;
网络构建模块,用于构建多分支知识蒸馏网络作为教师模型,所述多分支知识蒸馏网络包括共享主干和若干网络分支,任意一条网络分支与共享主干组成学生模型;
训练模块,用于利用数据集训练教师模型;所述训练模块包括注意力迁移模块、特征融合模块和损失计算模块;所述注意力迁移模块用于对学生模型的注意力特征图在通道维度上进行压缩,实现不同深度网络的对齐,根据多分支知识蒸馏网络的网络分支的网络深度,用注意力特征图从更深的网络分支向更浅的网络分支迁移注意力,计算注意力迁移损失;所述特征融合模块用于融合各网络分支输出的热图,所述损失计算模块用于计算训练教师模型整体损失;
推理模块,用于从训练好的教师模型中选择学生模型,将待估计的人体图片输入学生模型,输出关键点热图;
解码模块,用于对关键点热图进行解码,得到估计的人体关键点坐标。
系统中的各模块及模块的功能的实现方式与实施例一完全一致,故此处不再赘述。
本发明在实施阶段,用了两块英伟达RTX2080Ti显卡作为计算平台,用Pytorch作为深度学习模型的开发框架。
1、数据获取
从MPII数据集的官方网站上获取带有标注的数据集,在本地按照模型代码文件的具体要求进行数据集的配置。
2、模型训练
在训练阶段,将输入的批大小设置为16,优化器选用Adam优化器,初始学习率为0.001,最终的学习率为0.0001,训练的轮次为210轮。
3、模型测试
利用数据集合中划分出的验证集对模型的精度进行测试,测试的方法和训练时的基本相同,就是在模型对图片进行前向推理之后,直接输出结果,而不用再进行反向传播操作。
在国际公开的MPII和COCO数据集上进行实验对比和验证。结果表明,本发明参数量和计算量分别下降了63%和40%。
以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。
机译: 一种从现有基站网络中添加和删除基站的装置以及一种将基站添加到现有基站网络中的方法。
机译: 在无线蜂窝电信网络中,一种方法和设备,用于在无线蜂窝电信网络,一个基站或家庭基站方法中传递使位于家庭基站的小区中的移动终端能够识别家庭基站的序列。能够识别该站的顺序的装置和设备由移动终端确定是否传送,以及这些方法的计算机程序;
机译: 一种保护无线回程,儿童基站,父基站和子和父基站中的方法的方法