Lite-HRNet 2021.4.13
https://hub.fastgit.org/HRNet/Lite-HRNet
https://arxiv.org/abs/2104.06403
摘要:提出了一种高效的高分辨率人体姿态估计网络LiteHRNet。我们首先简单地将ShuffleNet中的高效shuffle块应用到HRNet(高分辨率网络),从而比流行的轻量级网络(如MobileNet、ShuffleNet和小型HRNet)产生更强的性能。
我们发现shuffle块中大量使用的逐点(1×1)卷积成为计算的瓶颈。我们引入了一个轻量级的单元,条件通道加权,来代替shuffle块中计算成本高的逐点(1×1)卷积。通道加权的复杂度与通道数呈线性关系,低于逐点卷积的二次时间复杂度。我们的解决方案从所有通道以及所有分辨率上学习权重,所有分辨率刚好可从HRNet的并行分支中容易获得。权重是作为通道之间与分辨率之间交换信息的桥梁,补偿了逐点(1×1)卷积所起的作用。Lite-HRNet在人体姿态估计方面优于流行的轻量级网络。此外,Lite-HRNet还可以同样轻量级地应用于语义分割任务。这些代码和模型已经在https://github.com/HRNet/Lite-HRNet
1 引言
人体姿态估计需要高分辨率的表示[3,2,26,41,45]才能获得高性能。基于对模型效率要求的不断提高,本文研究了在计算资源有限的情况下开发高效高分辨率模型的问题。
现有的高效网络[5,6,53]主要从两个角度进行设计。一种是借用分类网络的设计,如MobileNet[17,16]和ShuffleNet[28,57],以减少矩阵向量乘法中的冗余,其中卷积运算占主要成本。另一种是通过各种技巧来调解空间信息丢失,例如编码器-解码器架构[2,26]和多分支架构[53,59]。
我们首先研究一个简单的轻量级网络[41],其是通过简单地结合ShuffleNet中的shuffle块和HRNet中的高分辨率设计模式。HRNet在位置敏感问题(如语义分割、人体姿态估计和目标检测)中表现出更强的能力。目前尚不清楚高分辨率是否有助于小型模型。我们的实验表明,这种简单结合优于ShuffleNet,MobileNet和小HRNet(小HRNet在 https://github.com/HRNet/HRNet-Semantic-Segmentation。它简单地减少了原始HRNet的深度和宽度)。
为了进一步获得更高的效率,我们引入了一个高效的单元,称为条件通道加权,它执行跨通道的信息交换,以取代shuffle块中计算成本高的逐点(1×1)卷积。通道加权方案是非常高效的:其复杂度与通道数呈线性关系,低于逐点卷积的二次时间复杂度。例如,给定多分辨率的特征图64× 64× 40和32× 32× 80,条件通道加权单元可以将shuffle块的整体计算复杂度降低80%。
与作为模型参数学习的常规卷积核权值不同,该方案的权值以输入映射为条件(conditioned on the input maps),通过一个轻量级单元跨通道计算。因此,它们包含了所有通道映射中的信息,并通过通道加权作为交换信息的桥梁。此外,我们还利用HRNet提供的并行多分辨率的通道映射来计算权值,使得权值包含更丰富的信息并得到增强。我们称其为Lite-HRNet。
实验结果表明,Lite-HRNet的性能优于shuffle块和HRNet的简单组合(我们称之为naive Lite-HRNet)。我们认为,这种方法的优越性是因为,在所提出的条件通道加权方案中,计算复杂度的降低比信息交换的损失更为重要。
我们的主要贡献包括:
• 我们只需将shuffle块应用到HRNet中,就可以实现轻量级网络naive Lite HRNet。我们的经验表明优于MobileNet,ShuffleNet和小型HRNet的性能。
• 我们提出了一种改进的高效网络LiteHRNet。关键是我们引入了一个高效的条件通道加权单元来代替shuffle块中计算成本高的逐点(1×1)卷积,并跨通道和分辨率计算权重。
• Lite-HRNet在COCO和MPII人体姿势估计的复杂性和准确性权衡方面是最先进的,很容易推广到语义分割任务。
2. 相关工作
用于分类的高效块。 可分离卷积和分组卷积在轻量级网络中越来越流行,如MobileNet[17,36,16]、IGCV3[37]和ShuffleNet[57,28]。Xception[9]和MobileNetV1[17]将一个正常卷积分解为深度卷积和逐点卷积。MobileNetV2和IGCV3[37]进一步结合了关于低秩内核的线性瓶颈。MixNet[39]将混合核应用于深度卷积。EfficientHRNet[30]将mobile convolutions引入了HigherHRNet[8]。
通道间的信息在分组卷积和深度卷积中被blocked。逐点卷积被大量用于解决这个问题,但在轻量级网络设计中成本非常高。为了降低复杂度,带通道shuffle的分组1×1卷积[57,28]或带通道交织(interleaving)[56, 47, 37]的分组1×1卷积用于保持通道间的信息交换。我们提出的解决方案是一种轻量级的方式,它跨通道执行信息交换,以取代计算成本高的1×1卷积。
减少空间信息丢失。 计算复杂度与空间分辨率呈正相关。降低空间分辨率并减少空间信息丢失是提高效率的另一种方法。编码器架构用于恢复空间分辨率,如ENet[34]和SegNet[2]。ICNet[60]对不同的分辨率输入应用不同的计算,以降低整体复杂度。BiSeNet[53,50]将细节信息和上下文信息与不同的轻量级子网络解耦。我们的解决方案遵循HRNet中的高分辨率模式,在整个过程中保持高分辨率的表示。
卷积权重的生成和混合。 动态滤波器网络[21]根据输入动态生成卷积滤波器。元网络[29]采用元学习器生成权值来学习跨任务知识。CondINS[40]和SOLOV2[43]将这种设计应用到实例分割任务中,为每个实例生成掩码子网的参数。CondConv[48]和Dynamic Convolution[5]学习一系列权值,为每个样本混合相应的卷积核,增加模型容量。
注意力机制[19,18,44,54]可视为一种条件权重生成。SENet[19]使用全局信息来学习权重,以 excite or suppress通道特征图。GENet[18]对此进行了扩展,通过聚合局部信息来利用上下文依赖关系。CBAM[44]利用通道和空间注意力来refine特征。
我们提出的条件通道加权方案在某种意义上可以看作是一种conditional channel-wise 1×1卷积。除了计算量小之外,我们还利用了一个额外的效应,并使用条件权重作为跨通道交换信息的桥梁。
条件架构(conditional architecture)。 与普通网络不同,条件结构可以实现动态宽度、深度或内核。SkipNet[42]使用选通网络跳过一些卷积块,有选择地降低复杂性。Spatial Transform Networks[20]学习根据输入warp特征图。可变形卷积[11,61]学习每个空间位置条件下卷积核的偏移量。
3. 方法
3.1 Native Lite-HRNet
Shuffle块。 ShuffleNet V2[28]中的shuffle块首先按通道分成两个分区。一个分区通过一个1×1卷积、3×3深度卷积、1× 1卷积,输出与另一个分区按通道拼接。拼接后被shuffle,如图1a所示。
HRNet。 HRNet[41]从一个高分辨率的卷积干作为第一级开始,逐渐地一个接一个地添加高到低分辨率的分支作为新的级。多分辨率分支并行连接。主体由一系列阶段组成。在每个阶段中,跨分辨率的信息都是反复交换的。我们遵循小HRNet设计,使用更少的层和更小的宽度来形成我们的网络。小HRNet的柄是两个步幅为2的3×3卷积。主体中的每个阶段包含一个残差块序列和一个多分辨率融合。图2说明了小HRNet的结构。
简单组合。 我们采用shuffle块来代替小HRNet的柄的第2个3×3卷积,并替换所有常规残差块(由2个3×3卷积构成)。多分辨率融合中的常规卷积被可分离卷积所取代[9],从而形成了一个原始的Lite-HRNet。
3.2 Lite HRNet
1×1卷积计算成本高。 1×1卷积在每个位置执行矩阵向量乘法:
其中和是输入和输出映射,是1×1卷积核。由于shuffle运算和深度卷积不涉及通道间的信息交换,因此1×1卷积在通道间信息交换中起着至关重要的作用。
1×1卷积具有二次时间复杂度,其中是通道数。3×3深度卷积具有线性时间复杂度,就时间复杂度而言,常数9应该被忽略。我们保存它是为了方便分析。在shuffle块中,通常情况下通道数都会大于5,两个1×1卷积的复杂度远高于深度卷积:。表2是1×1卷积和深度卷积的复杂度比较的示例。
条件通道加权。 我们提出使用按位加权(element-wise weighting)运算来取代naive Lite HRNet中的1×1卷积,其在第个阶段有个分支。分辨率分支的按位加权写为:
其中是一个权重映射,是一个形状为的三维张量(注意斜体与正体符号含义不同),是按位相乘运算符。
其复杂度相对于通道数是线性的,远低于shuffle块中的1×1卷积。
我们计算单分辨率特征图(channels)的权重和所有分辨率特征图的权重,如图1(b)所示,并表明权重在通道之间和分辨率之间起着交换信息的作用。
跨分辨率的权重计算 考虑到第阶段,有个并行的分辨率,和个权重映射、、,每个都对应相应的分辨率。我们使用一个轻量级函数,计算在不同分辨率下的所有通道的权重映射:
其中是分辨率的输入映射。对应于最高分辨率,对应于第高分辨率。
轻量级函数的实现如下:先对执行自适应池化:,,,其中将任何输入大小池化到给定输出大小。然后将与拼接起来,再接着是1×1卷积、ReLU、1×1卷积、sigmoid,生成包含个分区的权重映射,每一个对应一个分辨率:
这里,每个分辨率的每个位置处的权重取决于来自平均池化过的通道特征图(channel maps)的相同位置处的通道特征(我注:这句子把“通道”二字省略要更容易理解些)。这就是为什么我们称该方案为跨分辨率权重计算。个权重映射,,被上采样到相应的分辨率,输出,用于后续按元素的通道加权。
我们证明了权重映射是跨通道和分辨率进行信息交换的桥梁。位置处的权重向量的每个元素(来自权重映射)从相同池化区域的所有分辨率的所有输入通道接收信息,这很容易通过公式中的操作来验证。通过这样一个权重向量,在这个位置的输出通道每一个
在所有分辨率的同一位置接收来自所有输入通道的信息。换言之,通道加权方案与1×1卷积一样起着同样的交换信息的作用。
另一方面,函数作用于小分辨率,因此计算复杂度很低。表2说明了整个单元的复杂度远低于1×1卷积。
空间权重计算。 对于每个分辨率,我们还计算空间权重,其具有空间位置一致性(homogeneous to spatial positions):所有位置的权重向量都是相同的。权重取决于单个分辨率中输入通道的所有像素:
这里,函数实现为:
全局平均池化的作用是从所有位置收集空间信息。
通过使用空间权重对通道进行加权,输出通道中的每个元素从所有输入通道的所有位置接收信息。我们在表2中比较了1×1卷积和条件通道加权的复杂度。
实例化。 Lite HRNet由一个高分辨率的柄和保持高分辨率表示的主体组成。柄是一个步幅为2的3×3卷积和shuffle块,作为第一阶段。主体有一系列模块化的模块每个模块包括两个条件通道加权块和一个多分辨率融合。每个分辨率分支的通道尺寸分别为C、2C、4C和8C。表1描述了详细结构。
联系。 条件通道加权方案与条件卷积[48]、动态滤波器[21]和squeeze-excite-network[19]具有相同的原理。这些算法根据输入特征通过子网络学习卷积核或混合权值,以提高模型容量。相反,我们的方法利用了一个额外的效果,并使用从所有通道学习的权重作为桥梁,跨通道和分辨率交换信息。它可以取代轻量级网络中计算成本高的1×1卷积。此外,我们还引入多分辨率信息来提升权重学习。
4 实验
我们在两个人体姿态估计数据集COCO[27]和MPII[1]上评估了我们的方法。遵循最先进的自顶向下框架,我们的方法估计K个热图来表示关键点位置的置信度。我们对COCO进行了全面的消融研究,并报告了两组数据与其他方法的比较。
4.1. 设置
数据集。COCO[27]拥有超过20万张图片和25万个人物实例,每个人物实例共17个关键点。我们的模型在train2017数据集(包括57K图像和150K个人实例)上进行了训练,并在val2017(包括5K图像)和test-dev2017(包括20K图像)上进行了验证。
MPII人体姿势数据集[1]包含约25K幅图像,其中包含从现实世界活动中获取的全身姿势注释。有超过4万个人的实例,1.2万个实例用于测试,其他用于训练。
训练。 该网络在8个NVIDIA V100 GPU上进行训练,每个GPU的mini-batch size为32。采用Adam优化算法,初始学习率为2e−3。
对人体检测框进行扩展(expanded),使其具有4:3的固定纵横比,然后从图像中裁剪出检测框。COCO图像大小调整为256×192或384×288,MPII图像调整为256×256。每幅图像都会经历一系列的数据增强操作,两个数据集都会做随机旋转([−30°, 30°]),随机标缩放([0.75,1.25]),随机翻转;COCO另外还做半身数据增强。
测试。 对于COCO,在[46,7,33]之后,我们采用了两阶段自上而下的范例(通过个人检测器检测个人实例并预测关键点)以及SimpleBaseline提供的个人检测器[46]。对于MPII,我们采用标准的测试策略来使用提供的人员框。我们通过后高斯滤波器估计热图,并平均原始图像和翻转图像的预测热图。在从最高响应到第二高响应的方向上应用四分之一偏移以获得每个关键点位置。
评价。 我们在COCO上采用了基于OKS的mAP度量,其中OKS(objectkeypoint Similarity)定义了不同人体姿势之间的相似度。我们报告了标准的平均精确度和召回分数:AP(10个位置的AP分数平均值,OKS=0.50,0.55,0.90、0.95)、AP50(在OKS=0.50时的AP)、AP75、AR和AR50。对于MPII,我们使用标准度量PCKH@0.5(正确关键点的头部归一化概率)来评估性能。
4.2. 结果
COCO验证集。我们的方法和其他最新方法的结果如表3所示。我们的Lite-HRNet30,从零开始训练,256× 192输入大小,达到67.2 AP分数,优于其他轻量级方法。与MobileNetV2相比,Lite-HRNet只需20%的GFLOPs和参数,AP就提高了2.6个点。与ShuffleNetV2相比,我们的Lite-HRNet-18和Lite-HRNet-30分别获得4.9和7.3点的增益。我们网络的复杂度比ShuffleNetV2低很多。与小型HRNet-W16相比,LiteHRNet提高了10多个AP点。与大型网络(如Hourglass和CPN)相比,我们的网络以更低的复杂度获得了可比的AP分数。
输入大小为384× 288,我们的Lite-HRNet-18和Lite-HRNet-30分别达到67.6和70.4 AP。由于高效的条件通道加权,Lite-HRNet在精度和计算复杂度之间实现了更好的平衡,如图4(a)所示。图3显示了Lite-HRNet-30在COCO上的可视化结果。
COCO test-dev。 表4报告了我们的网络和其他最先进方法的比较结果。我们的Lite-HRNet-30获得了69.7的AP分数。它明显优于小型网络,并且在GFLOPs和参数方面更高效。与大型网络相比,我们的Lite-HRNet-30优于Mask-RCNN[14]、G-RMI[33]和Integral Pose Regression[38]。虽然与一些大型网络相比存在性能差距,但我们的网络具有更低的GFLOPs和参数。
MPII验证集。 表5报告了我们的网络和其他轻量级网络的结果。我们的Lite-HRNet18比MobileNetV2、MobileNetV3、ShuffleNetV2、Small hrnetv16具有更低的GFLOPs,实现了更好的精度。随着模型尺寸的增大,如Lite-HRNet-30,改进差距变大。我们的Lite-HRNet-30达到87.0 PCKh@0.5,将MobileNetV2、MobileNetV3、ShuffleNetV2和Small-HRNet-W16分别提高1.6、2.7、4.2和6.8分。图4(b)显示了准确性和复杂性的比较。
4.3 消融研究
我们在COCO和MPII两个数据集上进行消融,并在验证集上报告结果。输入大小为256× 192(COCO),256×256(MPII)。
Naive Lite-HRNet vs. 小HRNet 我们实证研究了混合块技术在HRNet中的应用。图4显示了与小型HRNet-W164的比较。可以看出,Naive Lite-HRNet以较低的计算复杂度获得了较高的AP分数。在COCO-val上,Naive Lite-HRNet比小HRNet-W16提高了7.3个百分点,GFLOPs和参数都不到一半。当参数量增加到两者相当的时候,也就是wider naive Lite-HRNet,改进被扩大到10.5点,如图4(a)所示。在MPII验证集上,Naive Lite-HRNet的性能比小型HRNet-W16好5.1个百分点,wider naive Lite-HRNet则要高出6.6个百分点,如图4(b)所示。
条件通道加权 vs. 1×1卷积。 我们比较了1×1卷积(wider naive Lite-HRNet)和条件通道加权(LiteHRNet)的性能。我们简单地删除shuffle块中一个或两个1×1卷积来做消融研究。
表6显示了COCO val和MPII val集的研究。1×1卷积可以跨通道交换信息,对表征学习非常重要。在COCO val上,wider naive Lite-HRNet丢弃到两个1×1卷积导致4.4 AP点减少,也减少了近40%的FLOPs。
我们的条件通道加权相比丢弃2个1×1卷积是网络,AP提升3.5个点,FLOPs只增加16M。我们的条件通道加权的AP与wider naive Lite-HRNet相当,但FLOPs只有其65%。增加Lite-HRNet的深度会导致1.5AP的改进,FLOPs与wider naive Lite-HRNet相近,参数量略微更多。MPII val的观测结果是一致的(见表6)。AP的改进是因为我们的轻量级加权操作可以通过使用跨分辨率通道加权来挖掘多分辨率信息,如果要与naive有相近的FLOPs话,可以把网络做的更深,以提高容量。
空间和多分辨率权重。 我们实证研究了空间权重和多分辨率权重对性能的影响,如表7所示。
在COCO-val上,空间权值增加1.3ap,多分辨率权值增加1.7个点。这两个运算的FLOPs都是低计算量的。通过空间和跨分辨率加权,我们的网络提高了3.5个点。表7报告了MPII val的一致性改进。这些研究验证了空间和跨分辨率加权的高效和有效性。
通过改变空间加权和跨分辨率加权的排列顺序进行实验,取得了相似的性能。仅使用两个空间权重或两个交叉分辨率权重的实验导致几乎0.3的下降。
4.4. 语义分割的应用
数据集。 Cityscapes[10]包括30个类,其中19个用于语义分割任务。数据集分别包含2975、500和1525个精细注释的图像,用于训练、验证和测试集。在我们的实验中,我们只使用精细标注的图像。
训练。 我们的模型是用SGD算法从零开始训练的[22]。初始速率设置为1e−2采用“poly”学习率策略[52,51],其学习率衰减为每个迭代。总迭代次数为160K,批量大小为16,权重衰减为5e−4 ,随机水平翻转、缩放([0.5,2]),并将输入图像裁剪为固定大小512×1024用于训练。
结果。我们不采用有利于提高性能但耗时的测试技巧,如滑动窗口和多尺度评估。表8显示,Lite-HRNet-18仅以1.95 GFLOPs实现72.8%的mIoU,Lite-HRNet-30以3.02 GFLOPs实现75.3%的mIoU,优于人工设计的方法[34、59、53、23、62、36、41、12]和基于NAS的方法[58、25、16、24],并与计算密集型的SwiftNetRN18[32]相当(104 GFLOPs)。
EfficientHigherHRNet 2020.6
https://arxiv.org/pdf/2007.08090v2.pdf
EfficientHRNet: Efficient Scaling for Lightweight High-Resolution Multi-Person Pose Estimation
许多新兴的智能物联网应用对轻量级多人姿态估计的需求与日俱增。然而,现有的算法往往模型尺寸大,计算量大,不适合在资源受限的硬件上进行实时应用和部署。轻量级和实时的方法是非常罕见的,并且以较低的精确度为代价。在本文中,我们提出了EfficientHRNet,一个轻量级的多人人体姿态估计器家族,能够在资源受限的设备上实时执行。通过将模型缩放方面的最新进展与高分辨率特征表示相结合,EfficientHRNet可以创建高精度的模型,同时减少足够的计算量以实现实时性能。最大的模型能够达到目前最先进水平的4.4%以内的精度,同时拥有1/3的模型尺寸和1/6的计算量,在Nvidia Jetson Xavier上实现了23帧/秒。与顶级实时方法相比,EfficientHRNet将精确度提高了22%,同时以1/3的功率实现了类似的FPS。在每一个层次上,EfficientHRNet都比其他自底向上的二维人体姿态估计方法具有更高的计算效率,同时获得了极具竞争力的精度。
HigherHRNet 2019.8 CVPR2020
https://arxiv.org/abs/1908.10357
HigherHRNet: Scale-Aware Representation Learning for Bottom-Up Human Pose Estimation
自底向上的人体姿态估计方法由于尺度变化的挑战,很难预测小人物的正确姿态。在本文中,我们提出了highernet:一种新的自底向上的人体姿态估计方法,用于学习基于高分辨率特征金字塔的尺度感知表示。该方法具有多分辨率监督训练和多分辨率聚合推理功能,能够较好地解决自底向上多人姿态估计中尺度变化的问题,并能更精确地定位关键点,特别是对小人物。highernet中的特征金字塔由HRNet的特征映射输出和通过转置卷积的上采样高分辨率输出组成。在COCO测试开发中,highernet比以前最好的自底向上方法对中等人的平均有效性提高了2.5%,显示了它在处理量表变化方面的有效性。此外,highernet在COCO-test-dev(70.5%AP)上实现了新的最新结果,不需要使用细化或其他后处理技术,超过了所有现有的自底向上方法。highernet在CrowdPose测试中甚至超过了所有自顶向下的方法(67.6%AP),表明了它在拥挤场景中的鲁棒性。代码和模型在:https://github.com/HRNet/Higher-HRNet-Human-Pose-Estimation