分享一篇新出的 CVPR 2021 轻量级网络论文 Lite-HRNet: A Lightweight High-Resolution Network ,大名鼎鼎的HRNet的升级版。
HRNet有很强的表示能力,很适用于对位置敏感的应用,比如语义分割、人体姿态估计和目标检测。将ShuffleNet中的Shuffle Block和HRNet简单融合,能够得到轻量化的HRNet,作者将其命名为Naive Lite-HRNet。
Naive Lite-HRNet中存在大量的卷积操作,作者提出名为Lite-HRNet的网络,在Lite-HRNet中使用conditional channel weighting模块替代卷积,以进一步提高网络的计算效率。
ShuffleNetv2中的Shuffle Block结构如下图所示:
上图所示的结构中有2个分支,其中一个分支将输入特征进行卷积、depthwise卷积和卷积,将该分支的输出和输入特征进行concat操作,然后进行shuffle操作,得到最终的输出特征。
Small HRNet的结构如下图所示:
相比于原始的HRNet,Small HRNet减少了网络的深度和宽度。Small HRNet中Stem部分包含2个步长为2的卷积,每个Stage都包含一系列Residual Block和1个多分辨率融合模块。
为了构建计算量更小的Naive Lite-HRNet,作者使用Shuffle Block替换Stem中的第2个卷积和所有的Residual Block,使用separable卷积替换多分辨率融合模块中的传统卷积。
若某个卷积输入和输出feature map的通道数都为,则卷积的时间复杂度为,的depthwise卷积的时间复杂度为。在Shuffle Block中,当时,2个卷积的计算量要多于1个的depthwise卷积,即。
为进一步减少网络计算量,使用Conditional Channel Weighting操作代替Naive Lite-HRNet的Shuffle Block中的卷积,形成新的网络,并将新的网络命名为Lite-HRNet。
对于Lite-HRNet中的第个分支,Conditional Channel Weighting操作可表示为:
上式中的是的矩阵,表示weight map;表示元素乘法操作。Conditional Channel Weighting的时间复杂度为,远低于卷积。
作者提出使用Cross-resolution Weight Computation和Spatial Weight Computation这2种方法计算权重矩阵。使用Conditional Channel Weighting操作替换掉卷积后的Shuffle Block结构如下图所示:
上图中的表示通过Cross-resolution Weight Computation方法计算权重矩阵;表示通过Spatial Weighting Computation方法计算权重矩阵。
下面分别介绍Cross-resolution Weight Computation和Spatial Weighting Computation的实现过程。
在网络的第个Stage中有个分支,每个分支的feature map分辨率不同。共有个weight map分别与这些分支对应,将这个weight map记作。
使用表示个分支的feature map,表示分辨率最高的feature map,表示分辨率最低的feature map,则有:
在上式中,是一个轻量级的函数。
的实现过程为:
将AAP操作得到的和特征进行Concat操作,得到;
对依次进行卷积、ReLU、卷积、sigmoid操作,将输出结果记作,即:
通过上述操作,可以得到个分支的权重矩阵。某个分支中特定位置的权重是由经过AAP操作得到的中同样位置的值决定的,即由多个分辨率的特征得到。
对于第个分支中位置处的特征值,计算公式为:
与所有分支的feature map在位置处对应的特征区域有关,因此包含多种分辨率的特征,通过上式得到的包含多尺度的特征。
需要注意的是,在操作时,先使用AAP操作减小了的分辨率,因此在后面的卷积运算中不会引入很大的计算量。
在Spatial Weight Computation中,权重矩阵的值仅和当前分支的feature map有关,即:
通过Spatial Weight Computation方式计算的权重矩阵,值在所有空域位置处都相等,上式中的实现过程为:
Global Average Pooling(GAP)的作用是聚集所有位置的特征。
得到权重矩阵后,根据下式得到第个分支位置处的输出特征:
根据权重矩阵的计算过程可知,输出特征的每个元素都和该分支所有输入特征有关。
假设网络中的某个Stage包含2个分支,输入特征为和,的尺寸为,的尺寸为。卷积、的Depthwise卷积、不同类型的Conditional Channel Weighting(CCW)操作的计算量如下表所示:
从上表中可以看出,CCW的计算量远小于卷积。从上文中描述的权重矩阵的计算过程可知,CCW也可以完成多个通道的信息融合,因此可以使用CCW代替卷积以减少网络的计算需求。
Lite-HRNet的结构如下图所示:
在stem中,有1个步长为2的卷积和1个Shufflt Block。接下来的3个Stage中,每个Stage均包含2个CCW模块和1个融合模块。上表中“resolution branch”一栏中表示该Stage包含的feature map的分辨率信息。在上表的最后两列中,Lite-HRNet-N中的N表示网络的层数。
在COCO train2017上使用8个NVIDIA V100 GPU训练网络,每个GPU的batch size为32。将人体检测框进行拓展,使得其长宽比为4:3,并将其resize为或者尺寸的图像。在训练时使用了一些数据增强手段,比如random rotation、random scale、random flipping等。
在COCO val2017上验证,在COCO test-dev2017上测试网络性能。在测试时采取了two-stage的方法,即先通过SimpleBaseline中的检测器检测包含人体的目标框,然后预测关键点。在推理时使用了post-gaussian filter、平均原图像和翻转后图像的heat map方法得到最终的heatmap。在COCO test-dev2017上的性能如下表所示:
MPII Human Pose数据集
该数据集包含40K个人体实例,选取12K个实例用于测试,其他实例用于训练。使用8个NVIDIA V100 GPU训练网络,每个GPU的batch size为32。将人体检测框resize为。同样使用了random rotation、random scale、random flipping方法进行数据增强。
在测试时使用了post-gaussian filter、平均原图像和翻转后图像的heat map方法得到最终的heatmap。使用PCKH@0.5作为评价指标,性能如下表所示:
从上述2个实验中可以看出,相比于其他轻量级模型,Lite-HRNet有更小的计算量和更高的性能。
使用Cityscapes数据集,在训练时使用了randomly horizontally flip、scale等数据增强方法,训练时输入图片分辨率为。在测试时没有使用任何额外的技巧,在Cityscapes的验证集和测试集上的性能如下表所示:
上表中的“P”表示backbone是否在ImageNet数据集上进行过预训练。从上表中可以看出,在语义分割应用中,相比于其他方法,Lite-HRNet同样能以更小的计算量得到更高的性能。
仅用于学习交流!
END
联系客服