本篇文章首发于微信公众号:人工智能与图像处理
此文较长!此文较长!此文较长!
一,总结
High-Resoultion Net(HRNet)由微软亚洲研究院和中科大提出,发表在CVPR2019。文章全称:Deep High-Resolution Representation Learning for Human Pose Estimation。
HRNet属于--2D姿态估计-->单人检测-->基于热力图 类型的关键点检测。
模型的主要特点是在整个过程中特征图(Feature Map)始终保持高分辨率,这与之前主流方法思路上有很大的不同。在HRNet之前,2D人体姿态估计算法是采用(Hourglass/CPN/Simple Baseline/MSPN等)将高分辨率特征图下采样至低分辨率,再从低分辨率特征图恢复至高分辨率的思路(单次或重复多次),以此过程实现了多尺度特征提取的一个过程。
HRNet在整个过程中保持特征图的高分辨率,但多尺度特征提取是姿态估计模型一定要实现的过程,那么HRNet是如何实现多尺度特征提取的呢?模型是通过在高分辨率特征图主网络逐渐并行加入低分辨率特征图子网络,不同网络实现多尺度融合与特征提取实现的。
上图为模型结构,横向表示模型深度变化,纵向表示特征图尺度变化。第一行为主干网络(特征图为高分辨率),作为第一阶段,并逐渐并行加入分辨率子网络建立更多的阶段(如上图第二行,第三行所示),各并行网络之间相互交换信息,实现多尺度融合与特征提取。最终所估计的关键点是在高分辨率主干网络输出。
特点与优势:
-
1)作者提出的方法是并行连接高分辨率与低分辨率网络,而不是像之前方法那样串行连接。因此,其方法能够保持高分辨率,而不是通过一个低到高的过程恢复分辨率,因此预测的heatmap可能在空间上更精确。
-
2)本文提出的模型融合相同深度和相似级别的低分辨率特征图来提高高分辨率的特征图的表示效果,并进行重复的多尺度融合。
HRNet网络结构图
HRNet是针对人体关键点检测提出的网络,一次只能检测一个个体,如果想要检测出单张图像里面的多个物体,需要先经过一个专门检测人的目标检测网络,将图中每个人的位置找出来,然后再将每个人所对应的区域通过HRNet进行预测,然后再将所得到的关键点预测对应到原图中才可以得到一张图中有多个目标的情况。
二,论文解析
0,摘要
摘要-高分辨率表示对于位置敏感的视觉问题至关重要,如人体姿态估计、语义分割和目标检测。现有的最先进的框架首先通过将高到低分辨率卷积串联(例如,ResNet, VGGNet)形成的子网将输入图像编码为低分辨率表示,然后从编码的低分辨率表示中恢复高分辨率表示。相反,我们提出的网络,命名为高分辨率网络(HRNet),在整个过程中保持高分辨率表示。有两个关键特征:
-
(i)将高分辨率到低分辨率的卷积流并行连接;
-
(ii)跨分辨率反复交换信息。这样做的好处是,得到的表示在语义上更丰富,空间上更精确。
我们展示了所提出的HRNet在广泛应用中的优越性,包括人体姿态估计,语义分割和目标检测,这表明HRNet是计算机视觉问题的更强大的支柱。所有的代码都可以在https://github.com/HRNet上找到。
索引术语- hrnet,高分辨率表示,低分辨率表示,人体姿态估计,语义分割,目标检测。
1,介绍
深度卷积神经网络(Deep Convolutional Neural Networks,DCNNs)在许多计算机视觉任务中取得了SOTA结果,如图像分类、目标检测、语义分割、人体姿态估计等。相比传统人工设计的representation,DCNNs的优势在于可以学到更丰富的representation。最近开发的大多数分类网络,包括AlexNet、VGGNet、GoogleNet、ResNet等,都遵循LeNet-5的设计规则。
该规则如下图1 (a)所示:逐渐减小特征图的空间大小,将从高分辨率到低分辨率的卷积串联起来,得到一个低分辨率的表示,再对其进行进一步处理进行分类。
对于位置敏感的任务,例如语义分割、人体姿态估计和目标检测,都需要高分辨率表示。以前最先进的方法采用高分辨率恢复过程,从图1 (b)所示网络输出的低分辨率表示中提高表示的分辨率,例如:Hourglass、SegNet、DeconvNet、U-Net、SimpleBaseline、以及编码器-解码器。此外,扩展卷积被用来去除一些下采样层,从而产生中等分辨率的表示。
我们提出了一种新颖的架构,即High-Resolution Net(HRNet),它能够在整个过程中保持高分辨率的表示。我们从一个高分辨率的卷积流开始,逐渐地逐个添加从高到低分辨率的卷积流,并将并行的多分辨率流。得到的网络由图2所示的几个(本文中为4个)阶段组成,第n个阶段包含n个对应于n个分辨率的流。我们通过一遍又一遍地交换平行流上的信息来进行重复的多分辨率融合。
从HR-Net学习到的高分辨率表示不仅语义强,而且空间精确。这来自两个方面。
-
(i)我们的方法将高到低分辨率的卷积流并联而不是串联起来。因此,我们的方法能够保持高分辨率,而不是从低分辨率恢复高分辨率,因此学习到的表示在空间上可能更精确。
-
(ii)大多数现有的融合方案聚合了通过上采样低分辨率表示获得的高分辨率低级别和高级别表示。相反,我们重复多分辨率融合,在低分辨率表示的帮助下增强高分辨率表示,反之亦然。因此,所有的高到低分辨率表示都是语义强的。
我们提出两个版本的HRNet。第一个版本名为HRNetV1,只输出从高分辨率卷积流中计算出来的高分辨率表示。我们通过遵循热图估计框架将其应用于人体姿势估计。我们在COCO关键点检测数据集上实证证明了优越的姿态估计性能。
另一个称为HRNetV2,它结合了来自所有高到低分辨率并行流的表示。我们通过估计来自组合的高分辨率表示的分割映射,将其应用于语义分割。所提出的方法在PASCAL-Context, cityscape和具有相似模型大小和较低计算复杂度的LIP。我们观察到HRNetV1和HRNetV2在COCO姿态估计上的性能相似,并且HRNetV2在语义分割方面优于HRNet1。
此外,我们从HRNetV2的高分辨率表示输出构建了一个名为HRNetV2p的多级表示,并将其应用于最先进的检测框架,包括Faster R-CNN、Cascade R-CNN、FCOS和CenterNet,以及最先进的联合检测和实例分割框架。包括掩模R-CNN、级联掩模R-CNN和混合任务级联。结果表明,我们的方法检测性能得到了提高,特别是对小物体的检测有显著改善。
2,相关工作
我们从低分辨率表征学习、高分辨率表征恢复和高分辨率表征维持三个方面,回顾了主要针对人体姿态估计、语义分割和目标检测而开发的密切相关的表征学习技术。此外,我们还提到了一些与多尺度融合相关的工作。
-
学习低分辨率表示。全卷积网络方法FCN和OverFeat,都是通过移除分类网络中的全连接层来获得低分辨率的representation,然后评估其coarse segmentation maps。对segmentation maps的提升主要通过两种方式:1)组合从网络中间部分得到的low-level的中等分辨率的representation(比如FCN);2)迭代处理。类似的技术也被应用于边缘检测。通过将原有的部分卷积替换为dilated convolutions从而使得全卷积神经网络可以得到中等分辨率的representation。对于不同大小的分割目标,可以通过特征金字塔来将得到的representation扩展为多尺度的representation。
-
恢复高分辨率表示。可以通过上采样将低分辨率的representation逐步恢复成高分辨率的representation。上采样子网络可以是下采样部分的对称版本。U-Net的扩展版本:full-resolution residual network,引入了一个额外的全分辨率流,该流携带着完整图像分辨率的信息,并且上采样和下采样子网络中的每个unit都和该流有信息上的交互(接收和发送)。同样也有很多研究聚焦于和下采样不对称的上采样过程。比如RefineNet等。
-
保持高分辨率表示。我们的工作与一些也可以生成高分辨率表示的工作密切相关,例如,卷积神经结构,互联cnn, GridNet和多尺度DenseNet。卷积神经结构和互联cnn这两项早期工作在何时启动低分辨率并行流以及如何在并行流之间交换信息以及在何处交换信息方面缺乏仔细的设计,并且没有使用批处理归一化和剩余连接,因此表现不佳。GridNet[42]类似于多个u - net的组合,包含两个对称的信息交换阶段:第一阶段仅从高分辨率向低分辨率传递信息,第二阶段仅从低分辨率向高分辨率传递信息。这就限制了它的分割质量。由于没有从低分辨率表示中接收到信息,因此多尺度DenseNet无法学习强分辨率表示。
-
多尺度融合。多尺度融合1被广泛研究。直接的方法是将多分辨率图像单独馈送到多个网络中,然后将其输出聚合。Hourglass、U-Net和SegNet通过跳跃式连接,将高到低下采样过程中的低级特征逐步组合成低到高上采样过程中相同分辨率的高级特征。PSPNet和DeepLabV2/3融合了金字塔池化模块和空间金字塔池化得到的金字塔特征。我们的多尺度(分辨率)融合模块类似于这两个池化模块。不同之处在于:(1)我们的融合输出四个分辨率的表示,而不是只有一个。(2)我们的融合模块重复了几次,这是受到深度融合的启发。我们的方法。我们的网络将高到低的卷积流并行连接起来。它在整个过程中保持高分辨率表示,并通过反复融合来自多分辨率流的表示,生成具有强位置灵敏度的可靠高分辨率表示。
-
Our approach.我们的网络并行连接high-to-low的卷积流。整个过程中都保持高分辨率representation,并通过反复融合来自多分辨率流的representation来生成具有强位置敏感性的可靠高分辨率representation。本文对我们之前的会议论文(”K. Sun, B. Xiao, D. Liu, and J. Wang. Deep high-resolution representation learning for human pose estimation. In CVPR, 2019.”)进行了实质性的扩展,添加了更多的额外材料,以及和最近新的SOTA的目标检测和实例分割框架相比,展示了更多的目标检测结果。和之前的会议论文相比,本文主要的技术创新有三个方面。(1)我们将会议论文中提出的HRNetV1扩展到了两个版本:HRNetV2和HRNetV2p,这两个版本探索了所有的4种分辨率representation。(2)我们建立了多分辨率融合和regular convolution之间的联系,这为探索HRNetV2和HRNetV2p中所有四种分辨率representation的必要性提供了证据。(3)我们展示了HRNetV2和HRNetV2p相对于HRNetV1的优势,并介绍了HRNetV2和HRNetV2p在广泛的视觉问题中的应用,包括语义分割和目标检测。
3,HRNet
首先我们将图像输入到一个stem,其包含两个步长为2的3×33×3卷积,因此经过stem后分辨率降为原来的1414,随后进入main body并得到同样分辨率的输出(即也是原始图像的1414)。main body可见图2,其包含以下几部分:并行的多分辨率卷积,重复的多分辨率融合,以及representation head(见图4)。
3.1.并行多分辨率卷积
我们用高分辨率流作为第一阶段的开始,然后一个接一个的添加high-to-low分辨率流以组成新的阶段,并行的多分辨率流之间还会有连接。因此,后一阶段的并行流的分辨率由前一阶段的分辨率和更低的分辨率组成。
网络结构的示例见Fig2,包含4个并行流,逻辑见下:
3.2.重复多分辨率融合
融合模块的目标是在多分辨representation之间交换信息。融合重复了多次(例如,每4个residual unit就融合一次)。
图3展示了一个融合3种分辨率representation的例子。其可以很容易的扩展到融合2种representation和融合4种representation。在图3中,输入包括3种representation:
,r是分辨率索引,其对应的输出representation为
。每个输出representation都是三个输入representation经过处理后的总和:
。跨阶段(从阶段3到阶段4)的融合还有一个额外的输出:
。
的形式取决于输入分辨率索引x和输出分辨率索引r,如果x=r,则有
。如果x<r,则
对输入representation R 进行(r-x)次步长为2的3x3卷积可以实现4倍下采样。如果x>r,则
通过双线性差值进行上才艺,并使用1x1卷积对齐channel的数量。见图3.
3.3.表示头
如上图4,我们有3种representation head(接在图2的输出之后),我们将其分别称为HRNetV1,HRNetV2和HRNetV2p。
-
HRNetV1.
输出representation只来自于高分辨率流。另外3种representation会被忽略。见图4(a)。
-
HRNetV2.
我们将3种低分辨率的representation通过双线性插值上采样至高分辨率,但不改变其channel数量,最后把4种representation concat在一起,然后再接一个1x1卷积以混合这4种representation。见图4(b)。
-
HRNetV2p.
对HRNetV2得到的输出(称为feature pyramid)进行下采样。见图(c)。
在本文中,我们将展示HRNetV1用于人体姿态估计的结果,HRNetV2用于语义分割的结果,HRNetV2p用于目标检测的结果。
3.4.实例
main body包含4个阶段以及4个并行卷积流。4个流的分辨率分别为原始图像的1/4,1/8,1/16,1/32。阶段1包括4个residual unit,每个unit都是一个bottleneck的结构。阶段2、阶段3、阶段4分别包括1、4、3个modularized block。每个modularized block都包括4个residual unit。每个unit包括两个3x3卷积,每个卷积后都接一个BatchNorm和ReLU。
3.5.分析
我们将modularized block分为两个部分:多分辨率并行卷积(图5(a))和多分辨率融合(图5(b))。多分辨率并行卷积类似于group convolution(分组卷积)。但在group convolution中分辨率都是一样的。多分辨率并行卷积会享有group convolution的一些好处。
多分辨率融合单元类似于常规卷积的多分支全连接形式,见图5(c)。常规的卷积可以被拆分为多个小的卷积。输入channel被划分为几个子集,输出channel也被划分为几个子集。输入和输出的子集以全连接的方式连接,每个连接都是一个常规卷积。输出channel的每个子集都是输入channel每个子集经过卷积后的总和。不同之处在于我们的多分辨率融合需要处理分辨率的变化。
4,人体姿态估计
人体姿态估计,也叫关键点检测,目的是为了从图像II(大小为W*H*3)中检测出K个关键点(比如手肘,手腕等)。我们遵循SOTA的框架,将问题转化为评估K个w/4*h/4的heatmap,
,
heatmap 是第k个关键点的位置概率。
在该类任务上,HRNetV1和HRNetV2的性能几乎相同,因此我们选择计算复杂度更低的HRNetV1。损失函数被定义为预测的heatmap和GT heatmap之间的均方误差。通过标准差为2的2D高斯核来生成GT heatmap。一些例子的结果见图6。
图6为模型在COCO数据集上的结果,例子包含不同大小的人体、不同姿势以及不同的背景。
4.1 数据集.
COCO数据集包含超过200,000张图片,250,000个人物实例,每个人标注有17个关键点。我们在COCO train2017上训练我们的模型,该数据集包含57K张图片和150K个人物实例。我们分别在val2017(包含5000张图片)和test-dev2017(包含20K张图片)上评估我们的模型。
4.2 评价指标.
标准的评价指标为目标关键点相似性(Object Keypoint Similarity,OKS):
其中,
所有关键点都完美预测会有OKS=1,所有预测关键点都偏离真实值会有OKS=0。OKS类似于IoU,给定OKS,我们可以计算AP(average precision)和AR(average recall)。
每个真实值(17个关键点)都会和所有的预测值进行匹配(限制在同一幅图像中),配对的指标就是OKS,取OKS最大且OKS大于一定阈值(通常为0.5)的预测值和其真实值进行配对(所以存在一些真实值没有对应的预测值)。此时再设置另外一个阈值(通常在0.5~0.95之间),OKS大于该阈值的为TP,小于该阈值的为FP,而没有对应预测值的真实值算入FN,有了TP、FP和FN,便可以计算这幅图像的precision和recall了。所有图像precision和recall的均值便是AP和AR。通过对上述提到的第二个阈值进行修改以及可以分开评估不同大小的object,COCO数据集提供了以下几种评价指标:
4.3 训练.
4.4 测试.
采用自上而下的两阶段形式:先使用person detector检测人物实例再检测关键点。
对于val和test-dev数据集,我们采用和SimpleBaseline一样的person detector。对于原始图像和其对应的翻转图像,我们会计算heatmap的平均。将heatmap中从最高响应值到第二高响应值的四分之一处作为预测关键点的位置。
4.5 在验证集上的结果.
我们将我们方法和其他SOTA方法的结果放在了表1中。HRNetV1-W32是从零开始训练的,输入大小为256×192,AP达到了73.4,超过了相同输入大小的其他方法。
(i)相比Hourglass,我们方法的AP高了6.5,但GFLOP低了一倍多,我们模型的参数数量稍多一些。
(ii)和CPN(使用或不使用OHKM)相比,我们模型的大小和计算复杂度更高,但是比CPN的AP高了4.8,比CPN+OHKM的AP高了4.0。
(iii)相比之前表现最好的方法SimpleBaseline,对于backbone为ResNet-50的SimpleBaseline,HRNetV1-W32的AP高出3.0,并且二者的模型大小和GFLOPs是相似的。对于backbone为ResNet-152的SimpleBaseline,HRNetV1-W32的AP仍然高出1.4,并且SimpleBaseline(backbone为ResNet-152)的模型大小(即#Params)和GFLOPs是HRNetV1-W32的两倍。
我们对模型进行了进一步的提升:(i)在ImageNet上进行预训练之后,AP获得了1.0的提升;(ii)HRNetV1-W32中的W指的是width,即channel数量,即APPENDIX A表14中的C。如果我们将C从32增加至48,即得到模型HRNetV1-W48,在输入大小分别为256*192和384*228时,HRNetV1-W48比HRNetV1-W32的AP分别高出0.7和0.5。
当输入大小从256*192增加到384*228时,HRNetV1-W32和HRNetV1-W48的AP分别提升了1.4和1.2,达到了75.8和76.3。当输入大小为384*228时,相比backbone为ResNet-152的SimpleBaseline,HRNetV1-W32和HRNetV1-W48的AP分别高出1.5和2.0,但是其计算成本只有SimpleBaseline的45%和92.4%。
4.6 在test-dev集上的结果.
表2是我们的方法和现有SOTA方法在姿态估计任务上的表现。我们的方法明显优于自下而上的方法。HRNetV1-W32达到了74.9的AP。其明显优于其他所有自上而下的方法,并且在模型大小(#Params)和计算复杂度(GFLOPs)方面更有优势。我们的大模型HRNetV1-W48达到了最高的AP:75.5。和SimpleBaseline相比,HRNetV1-W32和HRNetV1-W48的AP分别高出1.2和1.8。如果使用来自AI Challenger的额外数据,我们的单个大模型可以达到77.0的AP。
5,语义分割
语义分割其实就是为每个像素分配一个类别标签。我们方法的一些结果见图7。我们将输入图像喂给HRNetV2(见图4(b)),得到channel数量为15C(1+2+4+8=15)的representation,然后每个像素位置上的15C都通过一个线性分类器(使用softamx loss)得到segmentation map。将segmentation map通过双线性上采样(需4倍上采样)至原始分辨率,在训练和测试阶段都需要这样做。我们在两个场景的数据集上汇报了结果,PASCAL-Context和Cityscapes,以及一个人体解析数据集LIP。使用mean IoU(即mIoU)作为评价指标。
5.1 Cityscapes(城市景观).
Cityscapes数据集包含5000张像素级别的高质量标注的场景图像。其中训练集2975张图像,验证集500张图像,测试集1525张图像。一共包含30个类别,其中19个类别被用于评估。除了使用mIoU,在测试集中,我们还汇报了另外三个指标的结果:IoU category(cat.)、iIoU class(cla.)以及iIoU category(cat.)。
数据扩展有随机裁剪(从1024*2048到512*1024),随机缩放([0.5,2][0.5,2])以及随机水平翻转。我们使用SGD优化器,基础学习率为0.01,momentum=0.9,weight decay=0.0005。使用0.9次方用于学习率衰减。所有模型都训练了120K次迭代,batch size为12,使用了4块GPU以及syncBN。
syncBN(Synchronized Batch Normalization)是一种批量归一化(Batch Normalization,BN)的变种,用于并行训练深度神经网络时加速训练过程和提高模型的性能。
在传统的批量归一化中,每个GPU都会在其本地的mini-batch上计算每个通道的均值和方差,并使用这些值来标准化该mini-batch的数据。然而,在多GPU环境下,这种方式可能会导致不同的GPU上的数据在进行归一化时具有不同的统计特征,这会降低模型的性能。
syncBN通过跨多个GPU的所有数据计算每个通道的均值和方差,并将这些值用于所有GPU上的mini-batch数据的标准化。这样可以保证在所有GPU上对数据进行归一化时具有相同的统计特征,从而提高模型的性能和训练速度。
值得注意的是,syncBN的计算成本比传统的批量归一化更高,因为需要进行跨多个GPU的通信和计算。因此,在计算资源有限的情况下,使用syncBN可能会增加训练时间。
表3提供了在Cityscapes val数据集上几种代表性方法的结果。
-
(i)HRNetV2-W40和DeepLabv3+的模型大小相近,但是计算复杂度更低,效果更好。相比UNet++、DeepLabv3和PSPNet/DeepLabv3+,HRNetV2-W40的mIoU分别高出4.7、1.7以及0.5左右。
-
(ii)HRNetV2-W48的模型大小和PSPNet相近,但是计算复杂度低了很多,且性能方面有很大的提升。相比UNet++,mIoU提升了5.6个点;相比DeepLabv3,提升了2.6个点;相比PSPNet和DeepLabv3+,提升了大约1.4个点。接下来,我们将HRNetV2-W48在ImageNet上进行了预训练,其模型大小和基于Dilated-ResNet-101的多数模型大小相近。
表4提供了我们的方法和其他SOTA方法在Cityscapes test数据集上的比较结果。所有的结果都使用了6种尺度以及翻转。训练分为两种情况,一种情况是在train数据集上进行训练,另一种情况是在train+val数据集上进行训练。不管哪种情况,HRNetV2-W48都取得了最好的结果。
5.2 PASCAL-Context.
PASCAL-Context训练集包括4998张场景图像,测试集包括5105张图像,一共有59个语义标签和一个背景标签。
数据扩展和学习率策略同Cityscapes。遵循广泛使用的训练策略,我们将图像resize到480*480,初始学习率设为0.004,weight decay=0.0001。batch size=16,迭代次数为60K。
我们遵循标准的测试流程。将图像resize到480*480,然后喂入我们的网络。最后得到的结果需要resize回原始分辨率。我们使用6个尺度+翻转来评估我们的方法和其他方法。
表5提供了我们方法和其他SOTA方法的比较结果。有两种评估策略:在59个类别上的mIoU和在60个类别(59个类别+背景)上的mIoU。在所有测试的方法中,HRNetV2-W48达到了最好的结果,只有APCN的性能比不使用OCR的HRNetV2-W48要好一点点。
5.3 LIP.
LIP数据集包含50,462张精心标注的人物图像,其中30,462张用于训练,10,000张用于验证。在20个类别(19个人物部位标签+1个背景标签)上进行评估。遵循标准的训练和测试设置,将图像resize到473*473,用原始图像和翻转图像结果的平均进行性能评估。
数据扩展和学习率策略同Cityscapes。我们设初始学习率为0.007,momentum=0.9,weight decay=0.0005。batch size=40,迭代次数为110K。
表6提供了我们方法和其他SOTA方法的比较结果。HRNetV2-W48的整体性能是最好的,并且参数量更少,计算成本更低。此外我们的模型没有使用额外的信息,比如pose或edge。
6,COCO对象检测
我们在MS COCO 2017检测数据集上进行评估,其包括118K张图像用于训练,5K张用于验证(val),约20K张用于测试(test-dev,但是不提供标注)。使用标准的COCO风格的评估指标。我们的一些结果见图8。
我们使用HRNetV2p(见Fig4(c))进行目标检测。数据扩展使用了标准的水平翻转。将输入图像resize到短边为800像素。inference在单尺度图像上进行。
我们将HRNet和ResNet、ResNeXt进行了比较。我们将其作为backbone,在两个anchor-based的框架(Faster R-CNN和Cascade R-CNN)上以及两个anchor-free的框架(FCOS和CenterNet)上都基于COCO val数据集进行了性能评估。我们在公共的MMDetection platform上训练了基于HRNetV2p和基于ResNet的Faster R-CNN和Cascade R-CNN,使用MMDetection默认的训练设置,唯一修改的地方是采用了论文“K. He, R. B. Girshick, and P. Dolla ́r. Rethinking imagenet pre- training. CoRR, abs/1811.08883, 2018.”建议的2倍的学习率策略。FCOS和CenterNet的实现由原作者提供。表7总结了参数量和GFLOPs。表8和表9汇报了检测结果。
同时,我们也使用了另外三个框架(Mask R-CNN,Cascade Mask R-CNN和Hybrid Task Cascade)来评估关节点检测和实例分割。同样是使用公共的MMDetection platform,详见表10。
如表8和表9所示,总的来说,对于有着相近模型大小以及计算复杂度的HRNetV2和ResNet来说,HRNetV2在目标检测任务上的表现优于ResNet。对于一些case,比如1×1×,HRNetV2p-W18的表现差于ResNet-50-FPN,这可能是因为优化迭代次数不足。如表10所示,HRNet在目标检测和实例分割方面优于ResNet和ResNeXt。对于个别情况,比如Hybrid Task Cascade框架下,HRNet的表现略差于ResNeXt-101-64x4d-FPN(LS=20e),但是优于LS=28e时的ResNeXt-101-64x4d-FPN。这也说明HRNet能从更长时间的训练中获取更大的收益。
表11是我们的模型和其他SOTA模型(单个模型,不使用多尺度训练和多尺度预测)在COCO test-dev上的比较。对于Faster R-CNN框架,我们的网络比ResNets更好,并且参数量和计算复杂度是相似的:HRNetV2p-W32 vs. ResNet-101-FPN,HRNetV2p-W40 vs. ResNet-152-FPN,HRNetV2p-W48 vs. X-101-64x4d-FPN。对于Cascade R-CNN框架和CenterNet框架,HRNetV2的表现仍然是更好的那个。对于Cascade Mask R-CNN和Hybrid Task Cascade框架,HRNet的总体性能也是更好的。
7,消融研究
我们在两项任务上进行了HRNet的消融实验:一个是COCO验证集上的人体姿态估计任务,另一个是Cityscapes验证集上的语义分割任务。我们使用HRNetV1-W32进行人体姿态估计,使用HRNetV2-W48进行语义分割。人体姿态估计任务的输入大小统一为256*192。此外,我们还比较了HRNetV1和HRNetV2的结果。
7.1 Representations of different resolutions.
我们通过检查从高到低每种分辨率的heatmap的质量来研究representation分辨率对人体姿态估计性能的影响。
我们训练了两个经过ImageNet预训练过的HRNetV1。我们的网络会输出从高到低四种分辨率的response map。如果使用最低分辨率的输出map,AP值低于10。AP值在另外三个分辨率上的表现见Fig9。比较结果说明分辨率确实会影响关键点预测质量。
7.2 Repeated multi-resolution fusion.
我们还分析了多次重复多分辨率融合的效果。我们研究了网络的三种变体。
-
(a)无中间融合单元(即1次融合):多分辨率流之间没有融合,只有最后才会有一个最终的融合单元。
-
(b)只有跨阶段时有融合单元(即3次融合),每个阶段内的并行流之间没有融合。
-
(c)跨阶段和阶段内都有融合单元(一共8次融合):这是我们最终提出的方法。所有的网络都是从零开始训练。COCO人体姿态估计和Cityscapes语义分割的结果见表12,结果表明多分辨率融合是有用的,且越多的融合导致了更好的性能。
我们还探索了其他融合方式:
-
(i)使用双线性下采样代替strided convolutions;
-
(ii)使用乘法运算代替加法运算。在第一种情况下,COCO姿态估计任务的AP和Cityscapes分割任务的mIoU分数分别下降至72.6和74.2。原因在于下采样降低了representation map的volume size(width××height××#channels),而strided convolutions在volume size方面就做的很好。第二种情况的结果更差,分数分别降至54.7和66.0。可能的原因是乘法增加了训练难度。
7.3 Resolution maintenance.
我们研究了HRNet某一变体的性能,这一变体和当前模型的不同之处在于其一开始就是4个分辨率流,并且这4个流的深度都一样,融合机制和当前模型是一样的。我们将这一变体和当前模型(二者有着相近的参数量和GFLOPs)都从头开始训练。
对于人体姿态估计任务,在COCO val数据集上,该变体的AP为72.5,低于HRNetV1-W32的73.4。对于分割任务,在Cityscapes val数据集上,该变体的mIoU为75.7,低于HRNetV2-W48的76.4。我们认为原因是在早期阶段,从低分辨率流中提取到的low-level的特征帮助不大。此外,我们还测试了另一种变体,即只有高分辨率流,没有并行的低分辨率流,其也和当前模型有着相近的参数量和GFLOPs,但其在COCO和Cityscapes上的表现远差于当前模型。
7.4 V1 vs. V2
我们在姿态估计、语义分割和COCO目标检测任务上,比较了HRNetV1和HRNetV2以及HRNetV2p。对于人体姿态估计任务,这几个模型性能相近。比如,HRNetV2-W32(不使用ImageNet预训练)达到了73.6的AP,稍高于HRNetV1-W32的73.4。
语义分割任务和目标检测任务的比较结果见Fig10(a)和Fig10(b),可以看到HRNetV2的性能明显优于HRNetV1,只是在Cityscapes的分割任务中,HRNetV2的大模型相较于小模型没有HRNetV1的收益高而已。我们还测试了另外一种变体,即HRNetV1h,其通过添加1×11×1卷积使得HRNetV1输出的高分辨率representation维度可以和HRNetV2的维度保持一致。Fig10(a)和Fig10(b)都显示HRNetV1h的性能略好于HRNetV1,这也表明我们在HRNetV2中聚合多个并行分辨率流的representation对性能的提升至关重要。
8,结论
在本文中,我们提出一种高分辨率网络框架用于计算机视觉领域。其与现有的低分辨率分类网络和高分辨率representation学习网络有三个根本区别:
-
(i)并行高分辨率和低分辨率,而不是串行;
-
(ii)在整个过程中保持高分辨率,而不是从低分辨率中恢复高分辨率;
-
(iii)重复融合多种分辨率的representation,得到具有强大位置敏感性的高分辨率representation。
在大量视觉识别任务上的优越结果表明,HRNet是CV领域内一个强大的backbone。
8.1 讨论
这里可能会有一种误解:分辨率越高,HRNet的内存成本也越大。但事实上,除了在目标检测任务的训练阶段,HRNet的内存成本稍大之外,其在人体姿态估计、语义分割和目标检测任务中的内存成本和现有SOTA技术相当。
此外,我们还在PyTorch 1.0上比较了runtime成本。HRNet的训练和推理时间成本和现有SOTA技术相当,除了(1)用于分割的HRNet的推理时间会更短;(2)用于姿态估计的HRNet训练时间会稍长,但在支持静态图推理的MXNet 1.5.1平台上,其与SimpleBaseline时间成本相近。我们想强调的一点是,对于语义分割任务,HRNet的推理成本明显小于PSPNet和DeepLabv3。表13总结了内存和时间成本的比较结果。
表13是基于PyTorch 1.0,在姿态估计、语义分割、目标检测(基于Faster R-CNN框架)等三个任务上的训练/推理的内存以及时间成本比较。我们还报告了基于MXNet 1.5.1,在姿态估计任务上的推理时间成本(见表13中括号内的数值),HRNet可以从MXNet支持的静态图推理中受益。训练使用了4块V100 GPU。对于训练阶段,姿态估计任务的输入大小为256*192,batch size=128;分割任务的输入大小为512*1024batch size=8;目标检测任务的输入大小为800*1333,batch size=8。推理阶段只使用了一块V100 GPU。对于推理阶段,姿态估计任务的输入大小为256*192;分割任务的输入大小为1024*2048目标检测任务的输入大小为800*1333。至于表13最后一行的score,对于姿态估计任务,其是基于COCO val数据集得到的AP值(见表1);对于目标检测任务,其是基于COCO val数据集得到的AP值(见表8);对于分割任务,其是基于cityscapes数据集得到的mIoU值(见表3)。这里重点介绍几个观察结果。和其他方法相比,无论是训练还是推理,HRNet的内存成本与之相当,甚至在姿态估计任务上,HRNet的训练内存成本更低。和其他方法相比,无论是训练还是推理,HRNet的时间成本也与之相当,甚至在分割任务上,HRNet的推理时间成本更低。SB-ResNet-152指的是backbone为ResNet-152的SimpleBaseline。PSPNet和DeepLabV3则使用ResNet-101作为backbone。
8.2 未来和后续工作
我们将继续研究HRNet和其他语义分割、实例分割技术的结合。在表3、表4、表5、表6中,我们列出了HRNet和OCR技术相结合的结果。我们也会研究进一步提高分辨率,例如提高到原始分辨率的1212或直接使用原始分辨率。
我们也尝试了将HRNet和ASPP或PPM相结合,但其并没有在Cityscape上有性能提升,但是在PASCAL-Context和LIP上有轻微的性能提升。
HRNet的应用并不局限于我们已经列出的,HRNet也适用于其他位置敏感型的视觉应用,比如面部特征点检测、超分辨率、光流估计、深度估计等等。目前已经有了一些后续的工作,比如图像风格化、图像修复、图像增强、图像去雾、时间姿态估计和无人机目标检测等。
在单一模型下,稍微修改的HRNet搭配ASPP在Mapillary上实现了最佳的全景分割性能。在ICCV 2019的COCO + Mapillary Joint Recognition Challenge Workshop上、COCO DensePose challenge的获胜者以及几乎所有COCO关键点检测挑战的参与者都采用了HRNet。OpenImage实例分割挑战的获胜者(ICCV 2019)同样也采用了HRNet。