摘要
这篇论文主要研究了2D人体姿态估计的高效架构设计。姿态估计在以人为中心的视觉应用中发挥着关键作用,但由于基于HRNet的先进姿态估计模型计算成本高昂(每帧超过150 GMACs),难以在资源受限的边缘设备上部署。因此,该论文提出了一个核心问题:在轻量模型上,高分辨率+多分支结构是否真正必要。为了解决这一问题,论文作者设计了一个渐进收缩实验,发现高分辨率分支对于低计算区域的模型是多余的。基于这一发现,他们提出了LitePose,这是一种用于自底向上姿态估计的高效架构。LitePose采用了单分支设计,并引入了两种技术来增强其容量,包括fusion deconv head和 large kernel conv。这种设计不仅降低了计算量,而且在实际应用中取得了良好的效果——在移动平台上,与之前的最先进的高效姿势估计模型相比,LitePose将延迟降低了多达5.0倍,而不会牺牲性能,推动了边缘实时多人姿势估计的前沿。
目录
摘要
一、介绍
二、相关工作
三、重新思考设计高效模型
1. Scale-Aware Multi-branch Architectures(尺度感知多分支架构)
(1)尺度感知
(2)原理
2. Redundancy in High-Resolution Branches(高分辨率分支的冗余)
3. Fusion Deconv Head: Remove the Redundancy(冗余消除)
4. Mobile Backbone with Large Kernel Convs
5. Single Branch, High Efficiency(单分支节点,更高的效率)
一、介绍
人体姿势估计旨在从图像中预测每个人的关键点位置。典型的人体姿势估计模型可以分为自顶向下和自底向上。自顶向下范式首先通过额外的人员检测器检测人员,然后对每个检测到的人员执行单人姿势估计。相比之下,自底向上范式首先预测无身份的关键点,然后将它们分组成人员。由于自底向上范式不涉及额外的人员检测器,并且不需要针对图像中的每个人重复运行姿势估计模型,因此它更适合于边缘实时多人姿势估计。
然而,现有的自底向上姿势估计模型主要集中在高计算区域。例如,HigherHRNet在CrowdPose数据集上取得了最佳性能,但其需要超过150GMACs的计算量,不适合于资源受限的边缘设备,设计低计算成本的模型同时保持良好性能至关重要。之前的研究表明,在高计算区域中,保持高分辨率表示对于获得良好的自底向上姿势估计性能至关重要。然而,目前尚不清楚这一结论是否适用于低计算区域的模型。为了回答这个问题,我们通过逐渐缩小高分辨率分支的深度,构建了一个“桥梁”来连接代表性的多分支架构HigherHRNet和单分支架构(见图2)。而后发现对于低计算区域中的模型,随着高分辨率分支深度的缩小,性能会提高(见图3)。受到这一启发,作者设计了一种用于高效自底向上姿势估计的单分支架构LitePose。在LitePose中,我们使用修改后的MobileNetV2[43]骨干网络,并进行了两项重要改进以有效处理单分支设计中的尺度变化问题:fusion deconv head和 large kernel conv。融合反卷积头去除了高分辨率分支中多余的细化操作,因此允许以单分支方式进行尺度感知多分辨率融合。与图像分类不同的是,作者发现large kernel conv在自底向上姿势估计中提供了明显更显著的改进。最后,作者应用神经架构搜索(NAS)来优化模型架构并选择适当的输入分辨率。
经过在 CrowdPose 和 COCO 数据集上的大量实验,LitePose 的有效性得到了充分验证。在CrowdPose 数据集上,LitePose 实现了2.8倍的MACs(乘加操作次数)减少和高达5.0倍的延迟减少,同时性能表现也很好。在COCO数据集上,与 EfficientHRNet 相比,LitePose 实现了2.9倍的延迟减少,并且提供了更好的性能表现。这些结果证明了LitePose在保持高性能的同时,显著降低了计算成本,使其在边缘设备上实现实时多人姿态估计成为可能。
本论文做出的贡献可以总结为以下几点:
1. 本研究通过设计渐进收缩实验,证明了高分辨率分支在低计算区域的模型中的非必要性
2. 本文提出了LitePose,这是一种高效的自下而上姿态估计架构。同时还引入了两种技术来增强LitePose的性能,包括fusion deconv head和 large kernel conv。
3. 在Microsoft COCO[28]和CrowdPose[26]这两个基准数据集上进行了大量实验,证明了该方法的有效性:与最先进的基于HRNet的模型相比,LitePose实现了高达2.8倍的MACs(乘加操作次数)减少,延迟减少高达5.0倍。
二、相关工作
2D Human Pose Estimation
二维人体姿态估计旨在确定人体的关键点和部位,主要有自上而下和自下而上两种框架。虽然基于HRNet的多分支架构在自下而上姿态估计中取得了先进的结果,但由于其计算量大,难以在边缘设备上部署。因此,本工作致力于提高自下而上框架的效率,故遵循最先进的基于HRNet的方法,并借鉴了关联嵌入技术进行关键点分组。
Model Acceleration.(模型加速)
除了直接设计高效的模型外,另一种模型加速的方法是压缩现有的大型模型。一些方法旨在去除连接和卷积滤波器中的冗余,同时,还有一些方法专注于网络的量化。此外,还提出了几种AutoML方法,实现自动化模型压缩和加速过程。最近,Yu等人设计了LiteHRNet用于自上而下姿态估计,而本文则专注于自下而上的范式研究。Neff等人提出了EfficientHRNet用于高效的自下而上姿态估计。他们将EfficientNet中的复合缩放思想应用于HigherHRNet,实现了1.5倍的MACs减少,然而,当严格约束计算时,该方法仍会面临性能急剧下降的问题。而本文将MACs减少率提高到5.1倍,并在移动平台上实现了比EfficientHRNet高达5.0倍的延迟减少。
Neural Architecture Search.(神经网络架构搜索)
NAS在图像分类任务中取得了成功,通过共享权重的一次性NAS方法可以提高搜索效率。后又尝试采用了一次性搜索所有(once-for-all)的方法,自动修剪通道内的冗余并选择适当的输入大小。总之,在本研究中,我们利用NAS方法进一步提升了LitePose的性能,实现了更高的MACs减少率和延迟减少,并显著提升了模型精度(搜索的模型实现了高达+3.6AP的显著改进。)。
三、重新思考设计高效模型
多分支网络在自底向上姿势估计任务中取得了巨大成功。它们的代表作HigherHRNet使用多分支架构来帮助融合多分辨率特征,从而显著缓解了尺度变化问题。由于这一特性,多分支架构优于单分支架构,并取得了最先进的结果。但是,大多数这些方法在高计算量条件下才能达到最佳性能,比如使用超过150GMACs。针对实际的边缘应用,研究低计算量下高效的人体姿势估计方法是非常重要的。在本节中,首先介绍了基于HRNet的多分支架构以及它们如何处理尺度变化问题。然后指出了在计算受限情况下高分辨率分支中的冗余问题,并通过逐步缩小来加以说明。
针对这一现象,首先提出了 fusion deconv head(融合反卷积头),它消除了高分辨率分支中的多余细化操作,从而以高效的方式处理尺度变化问题。另外,与图像分类任务相比,large kernel conv(大卷积核)对姿势估计任务的改进要明显得多。
1. Scale-Aware Multi-branch Architectures(尺度感知多分支架构)
(1)尺度感知
多分支设计旨在缓解自底向上姿势估计中的尺度变化问题。由于我们需要预测图像中所有人的关节坐标,单分支架构通常很难识别小人并区分最终低分辨率特征中的接近关节,如图5(b)所示。然而,多分支架构引入的高分辨率特征可以保留更详细的信息,因此有助于神经网络更好地捕捉小人并区分接近的关节。
(2)原理
如图2所示,基于HRNet的多分支架构主要由4个阶段组成。在第n阶段(这里我们将干扰阶段视为第1阶段),分别处理具有不同分辨率的n个不同输入特征图的n个分支。在处理输入特征时,每个分支首先分别对其自己的输入特征进行细化,然后在分支之间交换信息以获取多尺度信息。
2. Redundancy in High-Resolution Branches(高分辨率分支的冗余)
本节介绍了一种称为逐渐缩小(gradual shrinking)的方法,用于揭示多分支架构中高分辨率分支的冗余性。如图2和图3所示,通过逐渐缩小高分辨率分支的深度,多分支网络的行为越来越类似于单分支网络。然而,性能不会下降,甚至可能会提高。
Gradual Shrinking.
见图2。首先,定义An = [a1, ..., an]来表示在融合前每个分支用于细化特征的块数(ai表示分支i中的块数)。分支i处理的特征图分辨率高于分支i+1。整个多分支架构的配置可以定义为A = {A1, A2, A3, A4}。
如果一个配置A'i = [a'1, ..., a'i]是从另一个配置Ai = [a1, ..., ai]缩小得到的,那么对于所有j ∈ {1, ..., i},都应有a'j ≤ aj。为了方便起见,我们将其表示为A'i ≤ Ai。如果一个配置A'是从A缩小得到的(即A' ≤ A),那么对于所有i ∈ {1, 2, 3, 4},都应有A'i ≤ Ai。逐步缩小意味着构建一个配置序列[C1, ..., Cm],使得对于所有i ∈ {1, ..., m-1都有},Ci+1 ≤ Ci。如图2和图3所示,我们逐渐缩小高分辨率分支的深度,并惊讶地发现这种缩小操作甚至有助于提高性能。
为了使 Gradual Shrinking 的过程更清晰,本文详细列出了我们使用的四种配置:
3. Fusion Deconv Head: Remove the Redundancy(冗余消除)
在上文中已经揭示了多分支架构的冗余性,但是多分支架构在处理尺度变化问题方面的强大能力依然不容忽视。为了实现将这一特性融入设计中,同时保留单分支架构的优点(例如高效率)的目标,作者提出融合反卷积层作为最终的预测层。如图4和图6所示,作者直接(即没有任何细化)利用先前阶段生成的低级高分辨率特征进行反卷积和最终预测层。一方面,LitePose使用单分支架构作为网络模型骨干,从而受益于低延迟特性。另一方面,直接使用低分辨率特征避免多分支HR fusion模块中的冗余细化。因此,LitePose以高效的方式继承了单分支设计和多分支设计的优势。在图6(a)和图5中展示了fusion deconv head的性能——在几乎不增加计算成本的情况下,实现了+7.6AP的性能提升
4. Mobile Backbone with Large Kernel Convs
本文在LitePose中使用经过修改的MobileNetV2作为骨干,并通过移除最后的下采样阶段和引入大卷积核来优化网络结构,以更好地处理姿态估计任务中的尺度变化问题。实验结果表明,适当增大卷积核尺寸可以显著提高姿态估计性能,但并非越大越好,过大的卷积核会导致性能下降。因此,在架构中将卷积核大小固定为7x7。
之前的一些论文已经研究了在图像分类任务的严格计算约束下的高效架构。如图4所示,本文在LitePose中使用了修改后的MobileNetV2架构作为骨干网络。并对原始的MobileNetV2骨干进行了微小修改——去除了最后的下采样阶段(因为过多的下采样层会导致基本信息的丢失,这不利于姿势估计任务的高分辨率输出)。
并且为了进一步缓解尺度变化问题,在架构设计中引入了 large kernels。图7展示了核的大小分别为3、5、7(对于姿势估计任务还有9)的模型在图像分类和姿势估计任务中的性能比较。在计算成本同样增加(约+25%)的情况下,姿势估计任务上的性能提升(+13.0AP)远远显著于图像分类任务上的性能提升(+1.5%的准确率)。图5中的可视化结果也验证了这一说法。然而,过大的核将引入许多无用的参数和不可忽略的噪声,这不利于训练,并导致性能下降,如图7中k = 9的情况所示。此外还发现将核的大小纳入搜索空间会严重降低第4节中提到的NAS的性能,这可能是由于核的大小变化的影响很大,因此本文决定在架构中将核大小固定为7×7。
5. Single Branch, High Efficiency(单分支节点,更高的效率)
LitePose作为单分支架构,不仅展现出卓越的性能提升(+11.6AP),而且在实际应用中具有硬件友好的特性。相比多分支设计,单分支架构能减少网络碎片化,提高硬件并行度。与HigherHRNet-W16[8]相比,LitePose-L不仅取得了更好的性能(+11.6AP),而且在Qualcomm Snapdragon 855硬件上,LitePose-L的延迟与HigherHRNet-W16相近,即使其MACs(乘积累加操作)更多。这些结果充分证明了LitePose的高效性,使其成为实际应用中更好的选择。