论文地址
摘要: 本文提出了一个有效应用于人体姿态估计的轻量级高分辨率网络:Lite-HRNet。我们首先简单地将ShuffleNet中高效的 shuffle block 应用于HRNet,相比流行的轻量级网络(如MobileNet、ShuffleNet和小型HRNet)能产生更好的性能。
shuffle blocks 中大量使用的 pointwise(1×1)卷积是计算瓶颈。我们引入了一个轻量级单元: conditional channel weighting 条件通道加权,来代替 pointwise(1×1)卷积。channel weighting 的复杂度与 channel 数成线性关系,低于 pointwise 卷积的二次时间复杂度。LiteHRNet 从所有 channel 和 HRNet 并行分支中的多分辨率中学习权重。LiteHRNet 使用权重作为桥梁,在 channel 和分辨率之间交换信息,替补 pointwise(1×1)卷积所起的作用。Lite-HRNet在人体姿态估计上的性能优于流行的轻量级网络。此外,Lite-HRNet 可以以同样轻量级的方式轻松应用于语义分割任务。
人体姿势估计需要高分辨率表示才能实现高性能。基于对模型效率日益增长的需求,本文研究了在计算资源有限的情况下开发高效的高分辨率模型问题。
现存的高效网络主要从两个角度进行设计:
我们首先通过简单地结合 ShuffleNet 中的 shuffle block 和 HRNet 中的高分辨率设计模式来研究一个简单的轻量级网络—— naive Lite-HRNet。在位置敏感问题中,例如语义分割、人体姿势估计和目标检测,HRNet在大型模型中表现出更强的能力。高分辨率是否有助于小型模型目前尚不明确。 我们的实验表明,shuffle block 和 HRNet 直接组合的性能优于 ShuffleNet、MobileNet 和 Small HRNet。
为了进一步实现更高的效率,我们引入了一个有效的单元—— 条件通道加权单元 conditional channel weighting,通过执行跨 channel 的信息交换来取代 shuffle block 中高代价的 pointwise(1×1)卷积。通道加权方案非常有效:其复杂度与通道数成线性关系,低于逐点卷积的二次时间复杂度。例如,使用 64×64×40 和 32×32×80 的多分辨率 features,条件通道加权单元可以降低 shuffle block 80%的计算复杂度。
与常规卷积核中作为模型参数进行学习的权重不同,该方案的权重以 input maps 为条件,并通过一个轻量级单元跨通道计算。因此,该方案的权重包含所有通道 maps 中的信息,并充当通道权重交换信息的桥梁。此外,我们还根据HRNet的并行多分辨率通道 maps 计算权重,从而使权重包含更丰富的信息并得到增强,我们称其为Lite-HRNet。
实验结果表明 Lite-HRNet 性能优于naive Lite-HRNet。我们认为,优势在于在条件通道加权方案中,计算复杂度的降低比信息交换的损失更为显著。
我们的主要贡献包括:
分类中有效的模块 Efficient blocks for classification: 可分离卷积和 group 卷积在轻量级网络中越来越流行,如 MobileNet、IGCV3 和 ShuffleNet。Exception 和 MobileNetV1 将一个正常卷积分解为 depthwise 卷积和 pointwise 卷积。MobileNetV2 和 IGCV3 进一步结合了关于 low-rank kernels 的线性 bottleneck。MixNet 将混合 kernels 应用于 depthwise 卷积。EfficientHRNet 将 mobile convolutions 引入HigherHRNet。
group 卷积和 depthwise卷积阻断了通道间的信息交互,pointwise 卷积用于解决此问题,但其代价非常高。 为了降低复杂性,使用带有 channel shuffling 或 interleaving 的 grouping 1×1 convolutions 来保持通道间的信息交换。我们提出的解决方案是一种轻量级的方式,它跨通道执行信息交换,以取代高代价的 1×1 卷积。
调解空间信息损失 Mediating spatial information loss:计算复杂度与空间分辨率呈正相关。通过调解空间信息丢失来降低空间分辨率是提高效率的另一种方法。 Encoder-decoder 体系结构用于恢复空间分辨率,如 ENet 和 SegNet。ICNet 对不同分辨率的输入应用不同的计算,以降低整体复杂性。BiSeNet 利用轻量级子网络解耦细节信息和全局上下文信息。我们的解决方案遵循 HRNet 中的高分辨率模式,在整个过程中保持高分辨率表示。
卷积权重生成和混合 Convolutional weight generation and mixing: Dynamic filter networks 根据输入动态生成卷积滤波器。Meta-Network 采用元学习器生成权重来学习交叉任务知识。CondINS 和 SOLOV2 将这种设计应用于实例分割任务,为每个实例生成掩码子网络的参数。CondConv 和 Dynamic Convolution 学习一系列权重,以混合每个样本的相应卷积核,从而增加模型容量。
注意机制可视为一种条件权重生成。 SENet 使用全局信息学习权重,以激发或抑制 channel maps。GENet 通过收集局部信息来利用上下文依赖性扩展SENet。CBAM 利用通道和空间注意力来细化特征。
在某种意义上,条件通道加权方案可看作是一种条件 channel-wise 1×1convolution。 除了计算代价低以外,我们还开发了一个额外的效果,并使用条件权重作为跨通道交换信息的桥梁。
条件架构 Conditional architecture: 与普通网络不同,条件结构可以实现动态 width、depth 或 kernel。SkipNet 使用一个 gated network 跳过一些卷积块,选择性地降低复杂性。Spatial Transform Networks 根据输入学习扭曲特征图。可变形卷积学习每个空间位置条件下卷积核的偏移量。
Shuffle blocks. ShuffleNet V2 中的 shuffle block 首先将通道分成两个分区。一个分区经过一个(1×1卷积、3×3 depthwise 卷积和1×1卷积)序列,其输出与另一个分区连接。最后,串接的通道被 shuffled,如图1(a)所示。
图1.Building block.(a) The shuffle block.
HRNet. HRNet 从一个高分辨率卷积 stem 作为 first stage 开始,逐步添加一个高到低分辨率的 stream 作为新的 stage。多分辨率流是并行连接的。主体main body 由一系列 stage 组成。在每个stage,跨分辨率的信息都会反复交换。我们遵循 Small HRNet 的设计,使用更少的层和更小的宽度来形成我们的网络。Small HRNet 的 stem 由两个 stride=2 的 3×3 卷积组成。主体中的每个 stage 包含一系列残差块和一个多分辨率融合。图2显示了Small HRNet 的结构。
图2. Small HRNet架构图。它由一个高分辨率的 stem 作为 first stage,逐渐增加高分辨率到低分辨率的 stream作为主体。主体有一系列 stage,每个 stage 包含平行的多分辨率 stream和重复的多分辨率融合。
Simple combination. 将 shuffle block 替换 Small HRNet 主干中的第二个3×3卷积,并替换所有残差块(由两个3×3卷积形成)。多分辨率融合中的一般卷积被可分离卷积所取代,从而形成一个 naive Lite-HRNet。
1×1convolution is costly. 1×1卷积在每个位置执行矩阵向量乘法:
其中 X X X和 Y Y Y是输入和输出 map, W W W是1×1卷积kernel。因为shuffle操作和depthwise卷积不做跨通道的信息交换,所以1×1卷积在跨通道交换信息方面起关键作用。
C个通道的1×1卷积具有二次时间复杂度 ( Θ ( C 2 ) ) (Θ(C^2)) (Θ(C2)),3×3 depthwise 卷积具有线性时间复杂度 ( Θ ( 9 C ) 3 ) (Θ(9C)^3) (Θ(9C)3)。在 shuffle block 中,两个1×1卷积的复杂度远高于深度卷积: Θ ( 2 C 2 ) > Θ ( 9 C ) Θ(2C^2)>Θ(9C) Θ(2C2)>Θ(9C),通常情况下 C > 5 C>5 C>5。表2表示了1×1卷积和depthwise卷积之间的复杂性的比较。
条件通道加权 Conditional channel weighting. 使用元素加权操作来代替 naive Lite-HRNet 中的1×1卷积,naive Lite-HRNet 在第 s stage 有 s 个分支。第 s 解析率分支的元素加权操作写为:
其中 Ws 是一个 size 为 W s × H s × C s W_s×H_s×C_s Ws×Hs×Cs的 3-d 张量的权重图, ⊙ \odot ⊙指按元素相乘。
复杂度与通道数 Θ ( C ) Θ(C) Θ(C) 成线性关系,远低于 shuffle block 中的 1×1卷积。
我们通过使用单分辨率的通道和所有分辨率的通道来计算权重,如图1(b)所示,并表明权重在通道和分辨率之间起着交换信息的作用。
图1.Building block.(b) conditional channel weighting block. 虚线代表其他分辨率的表示以及分配给其他分辨率的权重。 H H H = cross-resolution weighting function. F F F=spatial weighting function.
Cross-resolution weight computation. 考虑第 s stage,有 s 个平行的分辨率,以及 s 个权重图 W 1 , W 2 , . . . W s W_1, W_2, ...W_s W1,W2,...Ws,每个权重图都对应于相应的分辨率。使用一个轻量级函数 H s ( ⋅ ) H_s(·) Hs(⋅) 计算所有通道在不同分辨率下的权重图:
其中 { X 1 , . . . , X s } \{X_1, ... ,X_s\} {X1,...,Xs} 是 s 个分辨率的输入特征图。 X 1 X_1 X1对应于最高分辨率, X s X_s Xs 对应于第 s 高的分辨率。
通过以下步骤实现轻量级函数 H s ( ⋅ ) H_s(·) Hs(⋅):在 { X 1 , . . . , X s − 1 } \{X_1, ... ,X_{s-1}\} {X1,...,Xs−1} 上执行自适应平均池化 (adaptive average pooling :AAP), X 1 ′ = A A P ( X 1 ) , X 2 ′ = A A P ( X 2 ) , . . . , X s − 1 ′ = A A P ( X s − 1 ) X'_1 = AAP(X_1), X'_2 = AAP(X_2),. . .,X'_{s-1} = AAP(X_{s-1}) X1′=AAP(X1),X2′=AAP(X2),...,Xs−1′=AAP(Xs−1),AAP 将任何输入大小合并为给定的输出大小 W s × H s W_s×H_s Ws×Hs 。然后将 { X 1 ′ , . . . , X s − 1 ′ } \{X'_1, ... ,X'_{s-1}\} {X1′,...,Xs−1′} 和 X s X_s Xs 进行 catenate,之后经过 “1×1卷积、ReLU、1×1卷积和 sigmoid” 一序列操作,生成由 s 个分区 W 1 ′ , W 2 ′ , . . . W s − 1 ′ W'_1, W'_2,...W'_{s-1} W1′,W2′,...Ws−1′(每种分辨率对应一种)组成的权重图:
这里,每个分辨率在每个位置的权重取决于平均池化多分辨率通道图中相同位置的通道特征。这就是为什么我们称该方案为 cross-resolution 权重计算。 这 s−1 个权重图: W 1 ′ , W 2 ′ , . . . W s − 1 ′ W'_1, W'_2,...W'_{s-1} W1′,W2′,...Ws−1′,被上采样到相应的分辨率,输出 W 1 , W 2 , . . . W s − 1 W_1, W_2, ... W_{s−1} W1,W2,...Ws−1,用于后续的元素通道加权。
权重图是进行跨通道和跨分辨率信息交换的桥梁。 位置 i i i 的权重向量 w s i w_{si} wsi 的每个元素(来自权重图 W s W_s Ws)从同一池化区域的所有 s 个分辨率的所有输入通道中接收信息,这很容易通过等式4进行验证。通过这样一个权重向量,该位置的每个输出通道,
在所有分辨率下,从同一位置的所有输入通道接收信息。换言之,通道加权方案在信息交换方面起到了 1×1 卷积的作用。
另一方面,函数 H s ( ⋅ ) H_s(·) Hs(⋅) 用于小分辨率,因此计算复杂度很低。如表2所示,整个单元的复杂度远低于1×1卷积。
空间权重计算 Spatial weight computation. 对于每个分辨率,我们还计算与空间位置一致的空间权重:所有位置的权重向量 w s i w_{si} wsi 都是相同的。权重取决于单分辨率中输入通道的所有像素:
F s ( ⋅ ) F_s(·) Fs(⋅) 的实现是: X s X_s Xs →GAP→FC→ReLU→FC→sigmoid→ w s w_s ws. 全局平均池(GAP)用于从所有位置收集空间信息。通过使用空间权重对通道进行加权 y s i = w s ⊙ x s i y_{si}=w_s\odot x_{si} ysi=ws⊙xsi 输出通道中的每个元素都从所有输入通道的所有位置接收贡献。我们在 表2 中比较了 1×1卷积和条件通道加权单元之间的复杂度。
实例化 Instantiation. Lite-HRNet 由高分辨率 stem 和主体 main body 组成,以保持高分辨率表示。作为第一阶段的 stem有一个stride=2 的 3×3卷积和一个 shuffle block。主体部分有一系列模块化的模块,每个模块包括两个条件通道加权块和一个多分辨率融合。每个分辨率分支的通道尺寸分别为C、2C、4C和8C。表1描述了详细结构。
表1. Lite HRNet的结构。stem包含一个stride=2 的 3×3 卷积和一个shuffle block。主体有三个阶段,每个阶段都有一系列模块,每个模块由两个条件通道加权块 ccw block 和一个融合块 fusion block 组成。Lite-HRNet-N 中的 N 表示层的数量。resolution branch 指示此阶段包含相应分辨率的特征流。ccw = conditional channel weight.
Connection. 条件通道加权方案与条件卷积 、动态滤波器和 squeeze-excite-network 的原理相同:通过子网络学习卷积核或混合权值,以提高模型容量。我们的方法利用了一种额外的效果,并使用从所有通道学习的权重作为桥梁,在通道和分辨率之间交换信息。它可以代替轻量级网络中高代价的1×1卷积。此外,我们还引入了多分辨率信息来促进权重学习。
在两个人体姿势估计数据集 COCO 和 MPII 上进行评估。遵循 sota 的 top-down 框架,估计 K 幅关键点位置的热图。在COCO数据集进行了消融实验,并在两个数据集上与其他方法进行对比。
表3. COCO val set上的比较。pretrain=在 ImageNet 上预训练backbone. #Params 和 FLOPs 是为姿态估计网络计算的,不包括用于人体检测和关键点分组的参数和计算量。
图3. COCO姿势估计的定性结果示例:包含视点变化、遮挡和多人。
图4. COCO val set 和 MPII val set 的复杂性和准确性比较。 (a) 输入大小为256×192 在 COCO Val 上的比较。(b) 输入大小为256×256 在 MPII Val 上的比较。MBV2= MobileNet V2. SFV2= ShuffleNet V2. SHR= Small HRNet-W16. (W)LH= (Wider Naive) Lite-HRNet.
表4. 在 COCO test-dev set比较。 #Params和FLOPs 是为姿态估计网络计算的,不包括用于人体检测和关键点分组的参数和计算量。
表5. 在 MPII val set上的比较。输入大小为256×256计算 FLOPs。
表6. 条件通道加权消融实验。 COCO val set 和 MPII val set上条件通道加权 vs 1×1卷积消融实验。COCO的输入大小为256×192,MPII的输入大小为256×256。Wider NLite-NRNet = wider naive Lite-HRNet.
表7. 消融实验关于空间和多分辨率权重。 在COCO val set 和MPII val set上进行实验。COCO的输入大小为256×192,MPII的输入大小为256×256。CCW=conditional channel weight computation, Wider NLite-NRNet = wider naive Lite-HRNet。
表8. Segmentation results on Cityscapes. P=在ImageNet上预训练backbone。∗表示根据原论文估算的复杂性。