3、本文方法
3.1、SimCC: A lightweight yet strong baseline
1、Preliminary
SimCC将关键点定位表述为分类问题。核心思想是将水平轴和垂直轴划分为等宽编号的bins,并将连续坐标离散化为完整的bins标签。然后训练模型以预测关键点所在的bin。通过使用大量的bin,可以将量化误差降低到亚像素级。
由于这种新颖的公式,SimCC具有非常简单的结构,它使用1×1卷积层将主干提取的特征转换为矢量化关键点表示,并使用2个FC层分别执行分类。
受传统分类任务中的标签平滑的启发,SimCC提出了一种高斯标签平滑策略,该策略将一个热标签替换为以GT为中心的高斯分布软标签,该策略在模型训练中集成了归纳偏差,并带来了显著的性能改进。
作者发现,该技术也与有序回归任务中SORD的想法一致。给定由标签分布定义的类间惩罚距离,软标签自然地封装了关键点位置的秩似然性。
2、Baseline
首先从标准SimCC中删除复杂的上采样层。通过表1可以看到,与SimCC和基于Heatmap的Baseline相比,裁剪后的SimCC的复杂度明显更低,并且仍然具有很好的精度。这表明在定位任务中将全局空间信息编码为一维表示的效率。通过用更紧凑的CSPNext-m取代ResNet-50骨干,进一步缩小了模型尺寸,并获得了一个轻量级但强大的基线,69.7% AP。
3.2、Training Techniques
1、Pre-training
以往的工作表明,使用基于Heatmap的方法对主干进行预训练可以提高模型的精度。骨干预训练采用UDP方法。这将模型从69.7% AP提高到70.3% AP。
2、Optimization Strategy
采用了RTMDet的优化策略。指数移动平均线(EMA)用于缓解过拟合(70.3%至70.4%)。平坦余弦退火策略将预处理精度提高到70.7%。还抑制了标准化层上的权重衰减和偏差。
3、Two-stage training augmentations
遵循RTMDet中的训练策略,使用先强后弱的两阶段增强。首先使用更强的数据扩充来训练180个Epoch,然后使用较弱的策略训练30个Epoch。
- 在强阶段,使用较大的随机缩放范围[0.6,1.4]和较大的随机旋转因子80,并将切割概率设置为1。根据AID,裁剪有助于防止模型在图像纹理方面产生过拟合现象,并促进其学习姿势结构信息。
- 在弱策略阶段,关闭随机移动,使用较小的随机旋转范围,并将切割概率设置为0.5,以允许模型在更接近真实图像分布的域中进行微调。
3.3、Module Design
1、Feature dimension
作者观察到,模型性能随着特征分辨率的提高而提高。因此,使用FC层将1D关键点表示扩展到由超参数控制的所需维度。在这项工作中,使用了256个维度,精度从71.2%AP变为71.4%AP。
2、Self-attention module
为了进一步利用全局和局部空间信息,根据Tokenpose的启发,使用自注意力模块细化关键点表示。采用了Transformer的变体,门控注意单元(GAU),与普通Transformer相比,它具有更快的速度、更低的内存成本和更好的性能。
具体而言,GAU使用门控线性单元(GLU)改进了Transformer层中的前馈网络(FFN),并以优雅的形式整合了注意力机制:
其中是 pairwise乘法(Hadamard乘积),是激活函数。在这项工作中,自注意力如下:
其中s=128,Q和K是简单的线性变换,是ReLU,然后平方。该自注意力模块将模型性能提高了0.5%(71.9%)。
3.4、Micro Design
1、Loss function
将坐标分类视为一个有序回归任务,并遵循SORD中提出的软标签编码:
其中是选择的度量损失函数,它惩罚的真实度量值离秩的距离。在这项工作中,采用非归一化高斯分布作为类间距离度量:
注意,等式3可以被视为计算所有的Softmax。在Softmax操作中为模型输出和软标签添加温度,进一步调整归一化分布形状:
实验结果表明,使用τ可以将其性能从71.9%提高到72.7%。
2、Separate σ
在SimCC中,水平和垂直标签使用相同的σ进行编码。根据经验探索了一个简单的策略来设置单独的σ:
其中,分别为水平方向和垂直方向上的bin号。这一步将准确率从72.7%提高到72.8%。
3、Larger convolution kernel
这里用最后一个卷积层的不同大小的卷积核进行了实验,发现使用更大的卷积核比使用1×1卷积更能提高性能。最后,选择使用7×7卷积层,其AP达到73.3%。
在表2中比较了不同卷积核大小的模型性能。此外,还使用最终模型架构比较了表3中不同温度因素的影响。
4、More epochs and multi-dataset training
增加训练周期会为模型性能带来额外的收益。具体而言,训练270和420个Epoch分别达到73.5%的AP和73.7%的AP。为了进一步挖掘该模型的潜力,将COCO和AI Challenger数据集结合在一起,以均衡的采样率进行预训练和微调,从而丰富了训练数据。性能最终达到75.3%的AP。
3.5、Inference pipeline
除了姿态估计模型之外,作者还进一步优化了整体的自上而下的推理管道,以降低延迟和更好的鲁棒性。
使用BlazePose中的跳帧检测机制,其中每K帧进行人工检测,在间隔帧中,边界框从最后的姿态估计结果生成边界框。此外,为了实现在帧上的平滑预测,在后处理阶段使用了基于OKS的姿态NMS和OneEuro滤波器。
4、实验
4.1、SOTA对比
4.2、速度对比
5、参考
[1].RTMPose: Real-Time Multi-Person Pose Estimation based on MMPose.