论文阅读|Lite Pose

Lite Pose: Efficient Architecture Design for 2D Human Pose Estimation

目录

Abstract

Introduction

Related Work

2D Human Pose Estimation

Model Acceleration

Neural Architecture Search

Rethinking the Efficient Design Space

3.1. Scale-Aware Multi-branch Architectures

Scale-Awareness

Mechanism

3.2. Redundancy in High-Resolution Branches

Gradual Shrinking

3.3. Fusion Deconv Head: Remove the Redundancy

3.4. Mobile Backbone with Large Kernel Convs

3.5. Single Branch, High Efficiency

Neural Architecture Search

Optimization Goal

One-shot Supernet Training

Search & Fine-tune

Experiments

Ablation Experiments

Large Kernels

Fusion Deconv Head

Neural Architecture Search

Main Results

Results on CrowdPose

Results on Microsoft COCO

Conclusion

Limitations and Future Work

Abstract

姿势估计在以人为中心的视觉应用中起着至关重要的作用。然而,由于计算成本高(每帧超过 150 个 GMAC),很难在资源受限的边缘设备上部署最先进的基于 HRNet 的姿态估计模型。在本文中,我们研究了用于边缘实时多人姿态估计的有效架构设计。我们通过逐渐缩小的实验揭示了 HRNet 的高分辨率分支对于低计算区域的模型是多余的,删除它们可以提高效率和性能。受这一发现的启发,我们设计了 LitePose,一种用于姿态估计的高效单分支架构,并引入了两种简单的方法来增强 LitePose 的容量,包括fusion deconv head和large kernel conv。在移动平台上,与之前最先进的高效姿态估计模型相比,LitePose 在不牺牲性能的情况下将延迟降低了高达 5.0 倍,推动了边缘实时多人姿态估计的前沿。

Introduction

人体姿势估计的目的是从图像中预测每个人的关键点位置。对于许多需要理解人类行为的视觉应用来说,这是一项关键技术。典型的人体姿态估计模型可以分为自上而下和自下而上两种模式。自上而下的范例首先通过一个额外的人检测器检测人,然后对每个检测到的人执行单人姿势估计。相比之下,自下而上的范式首先预测没有身份的关键点,然后将它们分组为人。由于自底向上范式不涉及额外的人检测器,并且不需要对图像中的每个人重复运行姿势估计模型,因此更适合边缘上的实时多人姿势估计

然而,现有的自底向上姿态估计模型[OpenPose、HigherHRNet、DeeperCut、PifPaf、Hourglass...]主要集中在计算量较大的区域。例如,HigherHRNet在超过150GMAC的CrowdPose数据集[26]上实现了最佳性能,这对于边缘设备来说是令人望而却步的。在保持良好性能的同时设计具有低计算成本的模型非常重要。

在本文中,我们研究了自下而上人体姿态估计的有效架构设计。 先前在高计算区域的研究表明,保持高分辨率表示对于实现自下而上姿态估计的良好性能起着关键作用。 然而,目前尚不清楚这是否仍然适用于低计算区域的模型。 为了回答这个问题,我们通过逐渐缩小的方式在代表性的多分支架构 HigherHRNet 和单分支架构之间搭建了一座“桥梁”(图 2)。

我们惊奇地发现,随着我们缩小低计算区域中模型的高分辨率分支的深度,性能会提高(图 3)。 受这一发现的启发,我们设计了一个单分支架构 LitePose,用于高效的自下而上姿态估计。 在 LitePose 中,我们使用修改后的 MobileNetV2 [43] 主干,具有两个重要改进来有效处理单分支设计中的尺度变化问题:fusion deconv head 和 large kernel conv。

Fusion Deconv Head消除了高分辨率分支中的冗余细化,因此允许以单分支方式进行规模感知的多分辨率融合(图6)。同时,与图像分类不同的是,我们发现large kernel convs在自下而上的姿势估计方面提供了更显著的改进(图7)。最后,我们应用神经结构搜索(NAS)来优化模型的结构并选择合适的输入分辨率。

在CrowdPose[26]和Coco[28]上的大量实验证明了LitePose的有效性。在CrowdPose[26]上,LitePose在更好的性能上实现了2.8倍的MAC减少和高达5.0倍的延迟减少。在CoCo[28]上,LitePose在提供更好性能的同时,与EfficientHRNet[36]相比,延迟减少了2.9倍。

Contributions

  • 我们设计了渐进式收缩实验,表明高分辨率分支对于低计算量区域的模型是冗余的
  • 我们提出了LitePose,一种高效的自下而上的姿态估计体系结构。我们还介绍了两种增强LitePose性能的技术,包括fusion deconv head和large kernel convs
  • 在两个基准数据集 Microsoft COCO 和 CrowdPose 上的广泛实验证明了我们方法的有效性:与最先进的基于 HRNet 的模型相比,LitePose 实现了高达 2.8 倍的 MAC 减少和高达 5.0 倍的延迟减少。

Related Work

2D Human Pose Estimation

2D 人体姿态估计旨在定位人体解剖学关键点(例如肘部、手腕)或部位。主要有两种框架:自上而下的框架和自下而上的框架。自上而下的方法 [7, 10, 15, 23, 38, 44, 47, 51] 通过首先检测图像中的每个人来执行单人姿势估计。相反,自下而上的方法 [5, 8, 11, 21, 22, 24, 37, 38, 40, 41] 直接以端到端的方式预测每个人的关键点。典型的自下而上方法包括两个步骤:预测关键点热图,然后将检测到的关键点分组为人。在这些方法中,基于 HRNet 的多分支架构 [8, 11] 提供了最先进的结果。他们设计了一个多分支架构以允许多分辨率融合,这已被证明在解决自下而上姿态估计的尺度变化问题方面是有效的。然而,所有这些方法的计算量都太大(大多数 >150GMAC),无法部署在边缘设备上。在这项工作中,我们专注于自下而上的效率框架。遵循最先进的基于 HRNet 的方法 [8],我们使用关联嵌入(Associate embedding)进行分组。

Model Acceleration

除了直接设计高效模型 [20, 34, 35, 43, 50, 55],模型加速的另一种方法是压缩现有的大型模型。一些方法旨在修剪连接和卷积过滤器内部的冗余[13、14、18、27、32、48]。同时,其他一些方法专注于量化网络[9,25,46,57]。此外,还提出了几种 AutoML 方法来自动化模型压缩和加速[17、33、46、52]。最近,Yu 设计了 ​​LiteHRNet [53] 用于自上而下的姿态估计,而我们专注于自下而上的范式。 Neff 提出了 EfficientHRNet [36] 用于高效的自下而上的姿态估计。他们将 EfficientNet [45] 中的复合缩放思想应用于 HigherHRNet [8] 并实现了 1.5 倍的 MAC 减少。然而,当计算约束变得更严格时,他们的方法仍然面临着性能的急剧下降。在这项工作中,与 EfficientHRNet 相比,我们将 MAC 减少率提高到 5.1 倍,并在移动平台上实现了高达 5.0 倍的延迟减少。

Neural Architecture Search

神经架构搜索(NAS)在大规模图像分类任务上取得了巨大成功。 自动设计的模型明显优于手工制作的模型。 为了使搜索过程更高效,研究人员提出了一次性once-shot NAS 方法 [1, 3, 4, 12, 19, 31, 49],其中不同的子网络共享相同的权重集。 为了进一步探索我们提出的架构的潜力,我们应用一次性once-for-all [3] 方法来自动修剪通道内的冗余并选择适当的输入大小。 与从头开始训练的手动设计模型相比,我们搜索的模型实现了高达+3.6AP的显着提升。

Rethinking the Efficient Design Space

多分支网络在自下而上的姿态估计任务上取得了巨大的成功。 他们的代表,HigherHRNet [8],使用多分支架构来帮助融合多分辨率特征,这显着缓解了尺度变化问题。受益于此,多分支架构优于单分支架构并获得最先进的结果。 但是在这些方法中的大多数 [8, 11, 38, 40] 中仍然存在一个问题,即它们在超过 150GMAC 时达到了最佳性能。 方法之间的比较也大多是在如此高的计算量下进行的。 对于现实世界的边缘应用,以较低计算量进行有效人体姿态估计的研究具有高度优先性。 在本节中,我们首先介绍基于 HRNet 的多分支架构以及它们如何应对规模变化问题。 然后我们通过在计算有限的情况下逐渐缩小来指出高分辨率分支中的冗余。

基于这一观察,我们提出了fusion deconv head,它消除了高分辨率分支中的冗余细化,从而以有效的方式处理尺度变化问题。 另一方面,我们凭经验发现,与图像分类任务相比,large kernel convs在姿态估计任务上提供了更显着的改进。 广泛的实验和消融研究表明了我们方法的有效性,并揭示了一个事实,即正确设计的单分支架构可以实现更好的性能和更低的延迟。

3.1. Scale-Aware Multi-branch Architectures

Scale-Awareness

多分支设计旨在缓解自下而上姿态估计中的尺度变化问题。 由于我们需要预测图像中所有人的关节坐标,因此单分支架构通常很难识别小人物并将紧密的关节从最终的低分辨率特征区分开来,如图 5(b) 所示。 然而,多分支架构引入的高分辨率特征可以保留更详细的信息,因此有助于神经网络更好地捕捉小人物并区分近距离关节。

论文阅读|Lite Pose_第1张图片

Mechanism

如图 2 所示,基于 HRNet 的多分支架构 [8, 11] 的主要部分由 4 个阶段组成。 在第 n 阶段(我们这里将 stem 视为第 1 阶段),有 n 个分支分别处理具有不同分辨率的 n 个不同的输入特征图。 在处理输入特征时,每个分支首先分别细化自己的输入特征,然后在分支之间交换信息以获得多尺度信息。

论文阅读|Lite Pose_第2张图片

3.2. Redundancy in High-Resolution Branches

然而,当关注计算量较低的性能时,我们发现多分支架构可能不是最有效的选择。 在本节中,我们提出了一种称为逐渐收缩的方法来揭示多分支架构的高分辨率分支中的冗余。 如图 2 和图 3 所示,通过逐渐缩小高分辨率分支的深度,多分支网络的行为越来越像单分支网络。 但是,性能并没有降低甚至会提高。

论文阅读|Lite Pose_第3张图片

论文阅读|Lite Pose_第4张图片

Gradual Shrinking

为了揭示基于HRNet的多分支体系结构[8,11]内部的冗余性,我们在每个阶段的分支上设计了逐步收缩实验。

A_{n}=[a_{1},...,a_{n}]代表在第n阶段融合前用来提炼每个分支特征的block的数量(ai代表分支i当中block的数量)。在这里分支i比分支i+1处理更高分辨率的特征图,然后我们可以定义整个多分支体系的配置为A={A_{1},A_{2},A_{3},A_{4}},,对于\forall j\in \left \{ 1,2,...j \right \},a_{j}^{'}\leqslant a_{j},定义A_{i}^{'}=[a_{1}^{'},...,a_{i}^{'}]是由A_{i}=[a_{1},...,a_{i}]收缩得到。为了方便起见,将其表示为A_{i}^{'}\leqslant A_{i}。如果\forall i\in \left \{ 1,2,3,4\right \},A_{i}^{'}\leqslant A_{i},则称A^{'}是由A收缩而来,A^{'}\leqslant A。使用上述符号,逐步缩小意味着我们构建了一系列的配置[C_{1},...,C_{m}],对于\forall i\in \left \{ 1,...,m-1 \right \},C_{i+1}\leqslant C_{i}

如图 2 和图 3 所示,我们逐渐缩小高分辨率分支的深度,并惊奇地发现这种缩小操作甚至有助于提高性能。 同时,逐渐缩小的过程使整个网络越来越类似于单分支网络,这有力地证明了单分支架构更适合自底向上姿态估计任务上的高效架构设计。 为了让逐渐收缩的过程更加清晰,我们在下面列出了我们详细使用的四种配置:

论文阅读|Lite Pose_第5张图片

3.3. Fusion Deconv Head: Remove the Redundancy

尽管我们在上面展示了多分支架构的冗余,但其处理规模变化问题的强大能力仍然令人瞩目。 我们能否将这个特性结合到我们的设计中,同时保持单分支架构的优点(例如,高效率)? 为了实现这一目标,我们提出融合反卷积层作为我们的最终预测头。 具体来说,如图 4 和 6(b) 所示,我们直接(即没有任何细化)利用前一阶段生成的低级高分辨率特征用于反卷积和最终预测层。 一方面,我们的 LitePose 使用单分支架构作为我们的主干,这得益于低延迟的特性。另一方面,直接使用低级高分辨率特征避免了多分支 HR 融合模块中的冗余细化。 因此,LitePose 有效地继承了单分支设计和多分支设计的优点。 在图 6(a) 和图 5 中,我们展示了我们的融合反卷积头的强度。 通过微不足道的计算成本增加,我们获得了显着的性能提升(+7.6AP)。

论文阅读|Lite Pose_第6张图片

论文阅读|Lite Pose_第7张图片

*图6:与传统的单分支解卷积头(从黑块到红块)不同,我们的融合解卷积头利用了HR融合模块的优势,去掉了高分辨率的冗余求精块。在计算量略有增加的情况下,与普通解卷头相比有很大的改善(+7.6AP) 

3.4. Mobile Backbone with Large Kernel Convs

几篇论文 [20, 35, 43, 55] 研究了在图像分类任务的严格计算约束下的高效架构。 如图 4 所示,我们使用修改后的 MobileNetV2架构作为 LitePose 的主干。 根据EfficientPose,我们通过删除最终的下采样阶段对原始 MobileNetV2主干进行了小的修改。 过多的下采样层会导致必要的信息丢失,这对姿态估计任务的高分辨率输出是有害的。

为了进一步缓解规模变化问题,我们将大内核引入到我们的高效架构设计中。 与传统的图像分类任务不同,这种修改在我们提出的基于 MobileNetV2 的 [43] 主干中扮演着更重要的角色。 在图 7 中,我们展示了内核大小为 3、5、7(和 9 仅用于姿态估计)的模型在图像分类和姿态估计任务上的性能比较在类似的计算成本增加(约+25%)的情况下,姿势估计任务(+13.0AP)的性能增益比图像分类任务(+1.5% Acc)要显着得多

图 5 中的可视化结果也验证了我们的说法。 然而,规则并不是“越大越好”。 过大的内核会引入许多无用的参数和不可忽略的噪声,这会使训练更加困难并导致性能下降,如图 7 中 k = 9 的情况所示。 由于我们进一步发现将内核大小纳入搜索空间会严重降低第 4 节中提到的 NAS 的性能,这可能是由于内核大小变化的巨大影响造成的,因此我们在架构中将内核大小固定为 7 × 7。

论文阅读|Lite Pose_第8张图片

论文阅读|Lite Pose_第9张图片

 *图7:K表示核大小。增加核的大小对图像分类的性能有一定的改善,但对姿态估计有很大的影响。具体地说,将内核大小从3增加到7会在CrowdPose上提供13%的MAP改进。

3.5. Single Branch, High Efficiency

除了性能之外,我们的单分支 LitePose 的另一个重要优势是其对硬件友好的特性。 正如 ShuffleNetV2 [35] 中提到的,多分支设计等网络碎片降低了某些硬件上的并行度。 因此,对于实际应用,单分支架构是更好的选择。 综上所述,我们在图 3 中展示了 HigherHRNet-W16 [8] 和 LitePose-L 之间的定量比较结果。与 HigherHRNet-W16 [8] 相比,LitePose-L 不仅实现了更好的性能(+11.6AP),而且在高通骁龙 855 上甚至在更大的 MAC 上也获得了相似的延迟。 所有这些结果都证明了我们的单分支 LitePose 的高效率。

Neural Architecture Search

自下而上姿态估计任务的现有工作 [5, 8, 11, 24, 38-40] 通常在模型中的所有层上使用手工制作的(并且大部分是统一的)通道宽度和固定的大分辨率(例如 , 512 × 512)。 为了进一步探索我们模型的潜在紧凑性,在本节中,我们应用once-for-all [3] 来自动修剪通道中的冗余并选择最佳输入分辨率。 优化目标和搜索过程如下所述。 通过 NAS,我们得到了四种 LitePose 模型(XS、S、M 和 L),用于不同的计算预算。 在第 5.3 节中,我们详细展示了 NAS 的有效性。

Optimization Goal

假设原始 LitePose 架构每层包含\left \{ C_{k} \right \}_{k=1}^{K}个通道,其中 K 表示网络的层数。 我们的优化目标是找到一个输入分辨率为r′\left \{ C_{k}^{'} \right \}_{k=1}^{K}(其中C_{k}^{'}\leqslant C_{k})的子网络,这样它就可以满足我们的效率约束,同时达到最佳精度(AP)。

One-shot Supernet Training

我们首先通过 [Once-For-All, Once-Shot] 之后的权重共享来训练一个支持不同通道数配置的 LitePose 超网络。 对于每次训练迭代,我们统一采样一个通道配置并用它训练超网。 通过这种方式,每个配置都经过同样的训练并且可以独立运行。 为了帮助超网更好地学习关联嵌入[37]进行分组,我们使用预训练的权重初始化超网。 有关超网训练和预训练的更多详细信息,请参见第 5.2 节。

Search & Fine-tune

由于超网络通过权重共享进行了彻底的训练,我们可以直接提取某个子网络的权重并评估子网络,而无需进一步微调。 这近似于子网络的最终性能。 我们使用进化算法 [42] 来找到给定特定效率约束(例如 MAC)的最佳配置。 在找到最佳配置后,我们对相应的子网络进行了几个 epoch 的微调并报告最终性能。 有关微调的更多详细信息,请参见第 5 节。

Experiments

数据集:Microsoft COCO和CrowdPose

Ablation Experiments

Large Kernels

如表 3 和图 7 所示,7 × 7 内核只增加了很小的计算量,增强了应对尺度变化问题的能力,因此提供了最佳性能。

Fusion Deconv Head

处理尺度变化问题的另一种方法是多分辨率融合,因为引入大分辨率特征可以帮助更好地捕捉小人物。我们在表3和图6中定量地显示了性能提升:我们的高效融合解卷积头在CrowdPose[26]数据集上将性能提高了+7.6AP,而计算量只有很小的增加。

Neural Architecture Search

神经架构搜索(NAS)从两个方面使我们的方法受益:一次性超网训练和微调架构搜索。 如表 3 所示,超网训练在 0.5 LitePose 和 LitePose-XS 上分别提供 +1.4AP 和 +2.7AP。 架构搜索还在 0.5 LitePose 上提供 +2.2AP。 此外,对于 LitePose-XS,我们使用 LitePose-S 作为它的老师,在微调中进行热图损失,并获得 +1.1AP。

论文阅读|Lite Pose_第10张图片

Main Results

Results on CrowdPose

论文阅读|Lite Pose_第11张图片

论文阅读|Lite Pose_第12张图片

Results on Microsoft COCO

论文阅读|Lite Pose_第13张图片

论文阅读|Lite Pose_第14张图片

Conclusion

在本文中,我们研究了用于边缘多人姿态估计的高效架构设计。 我们设计了一个逐渐缩小的实验来桥接多分支和单分支架构。 我们的研究表明,高分辨率分支对于低计算区域的模型是多余的。 受此启发,我们提出了 LitePose,一种用于姿态估计的高效架构,它继承了单分支和多分支架构的优点。 大量实验证明了 LitePose 的有效性和鲁棒性,为边缘应用的实时人体姿态估计铺平了道路。

Limitations and Future Work

尽管我们朝着实时人体姿态估计迈出了一大步,但对于资源极其有限的边缘设备(例如微控制器)来说,计算成本(1 GMAC)仍然太大。 此外,现有框架(例如,PyTorch、TensorFlow)并不能很好地支持深度卷积。 此外,如果没有特定推理后端(例如 TVM AutoScheduler [6, 56])的帮助,我们的 LitePose 无法实现其最佳性能。

你可能感兴趣的:(人体姿态估计,人工智能,计算机视觉,深度学习)