基于重参数化网络和共享卷积的轻量化YOLOV8n-Pose人体姿态估计算法
作者: 刘磊 胡永祥
摘要:针对实时人体姿态估计模型计算复杂度大、效率低的问题,文章以YOLOv8n-Pose模型为基准,提出了一种结合重参数化网络和共享卷积的轻量化人体姿态估计算法。首先,引入MLCA注意力机制,改进C2f模块中的Bottleneck结构,提升骨干网络对人体关键点的特征提取能力。其次,将原有的PANet特征融合网络替换为重参数化网络RepGFPN,实现更高效的多尺度特征融合。最后,设计了一种共享卷积的轻量化检测头,降低模型参数量,减少计算开销。在COCO数据集上的实验结果表明,改进后的模型计算复杂度(GFLOPS) 降低了10%,mAP@50精度提升了2.8%,模型参数量减少了20%。这些改进为人体姿态估计任务的轻量化和高效部署提供了新思路。
关键词:人体姿态估计;轻量化;YOLOv8n-Pose;重参数化网络RepGFPN;共享卷积
中图分类号:TP183 文献标识码:A
文章编号:1009-3044(2025)02-0019-04 开放科学(资源服务) 标识码(OSID) :
0 引言
人体姿态估计是计算机视觉中的重要任务,广泛应用于行为分析、人机交互、智能监控和虚拟现实等领域。
近年来,基于卷积神经网络(CNN) 的姿态估计方法逐渐成为主流,主要分为基于热图的方法和回归的方法。基于热图的方法虽然精度较高,但计算量大,难以在资源有限的设备上实现实时应用。基于回归的方法直接从图像中预测人体关键点的坐标,具有速度快、计算量小的优势,但在复杂场景下(如多人或遮挡情况下) ,定位精度较低。Toshev等[1]提出了一种以AlexNet为骨干的级联深度神经网络DeepPose,将姿态估计建模为基于深度神经网络的关键点回归问题。Chen等[2]提出了级联金字塔网络(CPN) ,通过Global⁃Net和RefineNet双阶段结构有效解决多人姿态估计中的遮挡和不可见关键点问题,并在COCO数据集上实现了显著性能提升。在此基础上,Li等[3]提出了多阶段姿态网络(MSPN) ,改进了CPN的关键点回归方式。MSPN采用多阶段回归策略,逐步细化关键点预测,逐渐减少误差;通过不同大小的高斯卷积核生成标签,靠近输入端的卷积核较大,确保初步定位,卷积核随阶段减小,以提升定位精度,实现多阶段细化和模型稳定性,适用于多种复杂场景的姿态估计。
利用Transformers的特征提取能力,Mao等[4]提出的Poseur预测精度较高,能够有效捕捉全局依赖性,克服了传统方法中的量化误差问题,但学习复杂度较高,泛化能力欠佳,且在跨域数据上表现不足,训练和推理成本较高。Sun等[5]提出的密集关键点回归框架(DEKR) ,通过逐像素空间变换器和自适应卷积激活关键点区域,以精确回归关键点位置。该方法采用多分支结构,使每个分支专注于单个关键点回归,从而提升空间精度。
随着YOLOv8-Pose[6]系列模型的出现,实时姿态估计取得了显著进展。然而,在处理遮挡、复杂姿态和多人体场景时,YOLOv8-Pose在关键点定位上仍存在局限,特别是对被遮挡关键点的检测不够准确。为解决上述问题,本文以YOLOv8n-Pose模型为基准,提出了一种结合重参数化网络和共享卷积的轻量化人体姿态估计算法。主要贡献如下:
1) 引入MLCA 注意力机制,改进C2f 模块中的Bottleneck结构,提升模型对关键点特征的提取能力。
2) 用RepGFPN替代原有的PANet特征融合网络,实现更高效的多尺度特征融合。
3) 设计了共享卷积的轻量化检测头Pose_LSCD,降低模型参数量和计算复杂度。
1 相关原理
YOLOv8-Pose是一种结合目标检测和关键点检测的实时人体姿态估计模型。该模型基于YOLO系列目标检测架构,通过在检测框的基础上预测人体的关键点位置,实现多人姿态估计。整体结构包括骨干网络(Backbone) 、特征融合网络(Neck) 和检测头(Head) 。输入图像经过骨干网络提取多尺度特征图,随后在特征融合网络中进行特征融合,最后通过检测头完成目标分类、定位和关键点预测。
2 方法
2.1 C2f_MLCA 模块
基于回归的模型在复杂场景下的关键点定位精度较低,尤其在面对遮挡情况时,难以准确提取被遮挡的关键点。这是因为骨干网络提取的有效关键点特征不足,影响了整体姿态的准确识别。
如图1(a) 、(b)所示,为提升模型对人体关键点的特征提取能力,本文引入MLCA[7]注意力机制,改进C2f模块中的Bottleneck结构。MLCA通过融合局部和全局特征,增强了模型对重要空间特征的表达能力,提高了被遮挡关键点的识别准确性。
如图1(c)所示,MLCA模块包含局部和全局两个分支。局部分支通过局部平均池化(LAP) 捕获细节特征权重,全局分支通过全局平均池化(GAP) 提取整体特征权重。两者经过一维卷积和展平处理后,融合生成混合局部通道注意力权重,增强了模型的特征表达能力。具体而言,局部分支通过局部平均池化捕捉细节特征权重,全局分支通过全局平均池化提取整体特征权重。两个分支的输出经过Reshape层展平,并通过一维卷积层进一步提取特征权重。随后,局部特征权重与反池化后的全局特征权重经过像素级相加,生成融合了局部和全局信息的注意力权重。最终,通过反池化操作获得与输入特征图通道数相等的混合局部通道注意力权重。
通过引入MLCA注意力机制,模型在局部和全局空间上增强了对遮挡人体关键点的特征表达能力,并提高了随机分布人体关键点的定位精度。
2.2 RepGFPN 特征融合网络
传统PANet的特征融合采用自上而下和自下而上结合的方式,其中自下而上的路径增强主要关注低层特征的信息传播,这种机制可以增强位置精确的低层特征,但由于高层语义特征在回传时没有得到充分关注,导致在融合过程中高层语义信息被弱化。
为增强模型在不同尺度下的特征融合效果,本文引入了RepGFPN[8]网络,替代了YOLOV8n-pose原有的PANet部分。RepGFPN是一种高效的特征融合网络,改进自传统FPN,重点在于提升模型效率的同时保持精度。通过引入重复分支和高效计算模块,Rep⁃GFPN增强了特征融合能力,同时降低了计算负担。它通过跨层特征融合,显著提升了模型在不同尺度下的关键特征检测能力,更好地捕捉细节和全局信息的相互关系,并减少了特征图的计算开销。
如图2所示,RepGFPN网络通过其高效特征融合设计,实现了更为有效的多尺度特征整合。整体上,多个特征层通过拼接进入RepGFPN的融合模块进行迭代处理。其次,在融合模块(FusionBlock) 内部利用双分支卷积网络对特征进行提取和融合,有效结合了图像的高层和低层语义信息。在模型训练过程中,RepConv模块采用双路卷积,而在推理时仅使用一路卷积,进一步提升了推理效率。
2.3 Pose_LSCD 轻量化检测头
YOLOv8-Pose在检测头中使用了多个卷积层来提取特征和回归关键点位置,同时每个分类和目标回归分支都有独立的卷积操作。这种设计虽然能够提升检测精度,但显著增加了检测头的参数量。
本研究设计了一种用于人体姿态检测的轻量化检测头Pose_LSCD。该检测头通过卷积共享结构的设计来减少模型参数量。在采用共享卷积结构时,由于标准卷积模块中的批量归一化(BN) 依赖于当前批次的均值和方差,导致小批次的统计量不够稳定,容易受到噪声的影响,因此引入分组归一化(GN) [9]对卷积模块进行改进,从而提升目标检测的定位和分类效果。
如图3所示,本研究设计的共享卷积模块作用于特征输入的分类和检测分支,以实现轻量化检测头的参数优化效果。整体上,来自融合网络的每个特征首先经过一个1×1的卷积模块(ConvGN) ,然后分别进入姿态估计(Pose) 的分支网络,并依次进入共享卷积模块,实现共享权重的结构。在Pose分支中,每个特征依次经过一个1×1和3×3的卷积,最后通过一个通道数等于关键点数量的卷积,得到人体姿态估计的关键点检测坐标。在共享卷积模块中,输入特征会经过两个3×3的共享卷积,分为两路分别预测类别和检测目标位置。数学表达式如下:
yi = concat(share(xi ),POSEi (xi )) (1)
Y = [ y1 ,y1 ,...,yn ] (2)
其中,share 函数表示每个输入的共享模块,而POSE函数表示对每个输入都有其对应的人体姿态检测输出。最终,来自融合网络的每个特征都只经过同一个share模块,随后将得到的特征张量进行拼接,并自适应调整网络参数。
3 实验结果与分析
3.1 实验数据与环境
实验采用COCO2017人体关键点数据集,包含标注了17个关键点的图像数据,覆盖多人、遮挡、动作多样等复杂场景。训练集包含56 599张图片,验证集包含5 000张图片。
实验硬件环境包括NVIDIA RTX 4090 GPU(24GB 显存) 、Intel Core i9-12900K处理器和32GB内存,利用GPU的并行计算加速模型训练与推理。软件环境为Ubuntu 20.04操作系统,Python 3.8用于算法实现,深度学习框架为PyTorch 1.8,CUDA版本为11.2以支持GPU计算。
实验设置的参数为:初始学习率(learning rate) 为0.01,批处理大小(batch size) 为16,迭代轮数(epochs) 为300,输入图像分辨率为640×640,以确保不同模型之间具有可比性。
3.2 评价指标
对于COCO2017 数据集,本文采用OKS(ObjectKeypoint Similarity,关节点相似度) 作为模型性能评价的度量方法。计算公式为:
如公式(3) 所示,i 表示关键点的类型,di表示检测出的关键点与其真实标签之间的欧氏距离,s 表示目标的尺度,vi为真实关键点的可见性标志,δ 函数确保只有被标注的关键点才会纳入计算,ki是控制衰减的每个关键点的常数。
如公式(4) 和(5) 所示,P和R分别表示精确度(Pre⁃cision) 与召回率(Recall) 。其中,TP为正样本中预测为真的数量,FP为负样本中预测为真的数量,FN为负样本中预测为假的数量。
如公式(6) 所示,本研究采用mAP(mean AveragePrecision) 作为评估模型在不同阈值下的平均精度的指标,用于整体性能评估。mAP@50表示OKS阈值为0.5时的平均精度,mAP@50-95为OKS阈值从0.5到0.95的平均精度,其中,M是目标的总数量。
3.3 测试与分析
为了全面评估模型的轻量化和检测性能,本文使用了参数量(Params) 、GFLOPS(每秒十亿次浮点数运算) 以及平均精度(mAP@50、mAP@50-95) 进行分析。参数量用于衡量模型的轻量化程度,较少的参数量表示模型更加精简,适合在资源有限的设备上运行。GFLOPS是评估模型计算复杂度的重要标准,表示模型每秒执行的浮点运算次数。
3.3.1 消融实验
为探讨本文提出的不同模块对模型性能的影响,笔者进行了详细的消融实验,逐步修改模型中的各个模块,评估其对模型在mAP@50、mAP@50-95、GFLOPS以及模型参数量方面的贡献。
如表1 所示,引入C2f_MLCA 模块后,参数量从3.3M增加至3.6M,GFLOPS增加了0.5,模型的mAP@50提升了1.9%,证明了MLCA注意力机制在关键点特征增强方面的有效性。进一步引入RepGFPN 后,mAP@50再次提升,同时GFLOPS有所降低,实验证明RepGFPN在提升模型精度的同时优化了计算效率。此外,加入设计的Pose_LSCD 检测头后,参数量从4.4M降至2.7M,同时保持了检测精度。