本文主要讲述了HRnet在图像分割,人脸检测和目标检测人物的应用。其中HRnetv2用于图像分割和人脸检测;HRnetv2p用于目标检测。
论文:High-Resolution Representations for Labeling Pixels and Regions
高分辨率表示学习在许多视觉问题中起着至关重要的作用,如姿态估计和语义分割。高分辨率网络(high-resolution network, HRNet)[91]是近年来发展起来的一种用于人体姿态估计的网络,它通过将高分辨率卷积与低分辨率卷积并行连接来保持高分辨率的表示,并通过在并行卷积之间反复融合来产生高分辨率的表示。
在本文中,我们通过引入一种简单而有效的修改方法,对高分辨率表示进行了进一步的研究,并将其应用于广泛的视觉任务中。我们通过聚合所有并行卷积的(上采样)表示来增强高分辨率表示,而不是像[91]中那样只聚合高分辨率卷积的表示。这种简单的修改导致了更强的表示,并有更好的结果证明。我们在Cityscapes、LIP、PASCAL Context的语义分割,以及AFLW、COFW、300W、WFLW上的人脸检测方面显示了最优结果。此外,我们从高分辨率的表示中构建了一个多层次的表示,并将其应用到更快的R-CNN对象检测框架和扩展框架中。与现有的单模型网络相比,该方法在COCO目标检测方面取得了较好的效果。
在许多视觉任务中,深度学习的表征被证明是强大的,并取得了最先进的结果。主要有两种表现形式:(1)低分辨率表示主要用于图像分类;(2)高分辨率表示对于其他视觉问题如语义分割、目标检测、人体姿态估计等都是必不可少的。
目前有两种主要的方法来获取高分辨率表示:
从网络(例如,ResNet)输出的低分辨率表示恢复高分辨率表示,或从可选的中间中等分辨率表示中恢复高分辨率表示,如Hourglass,SegNet,DeconvNet,U-Net,encoder- decoder等。其实就是从down-sampling后获取的feature map中再upsample来获得高分辨表示。
通过高分辨率卷积保持高分辨率表示,并通过并行低分辨率卷积加强表示。
此外,空洞卷积(dilated convolution)也被用于替代分类网络中步长和相关的常规卷积来计算中等分辨率表示。
作者沿着保持高分辨率表示的研究路线,进一步研究高分辨率网络(HRNet)。HRNet通过并行连接高分辨率和低分辨率卷积,并在并行卷积上反复进行多尺度融合,从而保持高分辨率的表示。由此产生的高分辨率表示不仅强大,而且在空间上精确。
作者对原始HRNet进行了简单的修改,这种修改只增加了较小的开销,但具有更强的高分辨率表示,得到的网络被命名为HRNetV2。
实验表明,HRNetV2在语义分割方面取得了最先进的结果;在人脸识别任务上取得了最好的结果;此外,我们从高分辨率的表示构造了一个多层次的表示,并将其应用于Faster R-CNN对象检测框架及其扩展框架,Mask R-CNN and Cascade R-CNN。结果表明,我们的方法获得了很好的检测性能,特别是对小物体的显着改进。通过单尺度的训练和测试,该方法比现有的单模型方法获得了更好的COCO目标检测结果。
高分辨率网络为了方便起见,我们将其命名为HRNetV1,该网络通过并行连接高分辨率到低分辨率卷积来保持高分辨率表示,其中并行卷积之间存在重复的多尺度融合。该架构如图1所示。一共有四个阶段,第二,第三和第四阶段是通过重复模块化的多分辨率块形成的。
多分辨率块由多分辨率群卷积(group convolution)和多分辨率卷积组成。 多分辨率群卷积(图2a)是群组卷积的简单扩展,其将输入通道划分为若干个通道子集,并分别在不同空间分辨率上对每个子集执行常规卷积。多分辨卷积(图2b)类似于常规卷积一样以全连接的方式将不同分支连接起来(图2c)。 常规卷积可以分为多个小卷积,输入通道分为几个子集,输出通道也分为几个子集。 输入和输出子集以完全连接的方式连接,每个连接都是常规卷积, 输出通道的每个子集是输入通道的每个子集上的卷积输出的总和。但多分辨卷积和常规卷积的全连接方式有两点不同:
在原始的HRNetV1网络中,只取了一个高分辨特征表示作为输出,如图3(a) 所示,这意味着只有高分辨卷积的特征被保留了下来。因此,作者探索了将其他几个低分辨卷积也作为特征表示输出。这样做的好处是将多分辨卷积都应用起来了,而且只增加了很少的参数和计算开销。
作者通过双线性差值将分辨率较低的层上采样至高分辨,并将所有处理后的特征concat连接起来得到HRNetV2,如图3(b)所示。为了应用于目标检测任务,我们使用平均池化对concat后的特征高分辨率表示下采样到多个级别来构造多级表示还对concat后的特征表示做了后续处理得到了HRNetV2p,如图3©所示。
我们使用类似于HRNetV1的方式实例化网络。网络结构:该网络先从两个stride=2的3x3卷积将输入图像分辨率降采样至1/4。stage 1有4个residual单元,每个单元由width为64的bottleneck和紧随其后的一个3x3卷积将feature map的width减少为C,这里的width其实就是通道数。第1阶段包含4个残差单元,每个单元由一个宽度为64的瓶颈组成,然后进行一个3×3的卷积,将feature map的宽度减小到c。第2、3、4阶段分别包含1、4、3个多分辨率块。四种分辨率卷积的宽度(通道数)分别为C、2C、4C、8C。多分辨率群卷积中的每个分支包含4个残差单位,每个单位包含2个3×3的卷积。
在实际应用中,对语义分割和面部特征检测任务,作者采用如图 3(b)所示的结构,通过使用1x1卷积来融合四个不同分辨率的feature map,从而产生具有15C通道数的特征表示。将每个位置的混合表示传递给具有softmax/MSE损失的线性分类器/回归器,以预测分割maps/面部特征heatmaps。对于语义分割,通过用于训练和测试的双线性上采样,将分割图上采样(4倍)到输入大小。对目标检测任务,作者采用如图3(c所示的结构,该结构与FPN类似,在组成特征金字塔前,通过1x1卷积将高分辨特征的通道数减少为256。更多细节可以参见https://github.com/HRNet
作者在Cityscapes、LIP、PASCAL Context数据集上分别验证了HRnetv2的性能。
下面列举出HRnetv2在Cityscapes数据集上的表现结果。
训练方式:通过随机裁剪(从1024×2048到512×1024)、在[0.5,2]的范围内随机缩放和随机水平翻转来增强数据。 使用SGD作为优化器,初始学习率为0.01,动量为0.9,权重衰减为0.0005。 所有模型均经过120K次迭代训练,batch size的大小为12。
验证集结果:
测试集结果:
作者将HRNetV2p分别应用到Faster R-CNN和Mask R-CNN框架中,并用COCO数据集来进行验证。
训练方式:所有face都根据中心位置由提供的框进行裁剪,并调整为256×256。我们将数据增加±30度面内旋转,0.75-1.25缩放和随机翻转。 基础学习率为0.0001,在迭代至第30和第50次时下降到0.00001和0.000001。 模型在训练了60个epochs,batch size为16。
训练方式:所有face都根据中心位置由提供的框进行裁剪,并调整为256×256。我们将数据增加±30度面内旋转,0.75-1.25缩放和随机翻转。 基础学习率为0.0001,在迭代至第30和第50次时下降到0.00001和0.000001。 模型在训练了60个epochs,batch size为16。
实验结果:
网络结构:首先,将四个分辨率特征图送入瓶颈,并且输出通道分别从C,2C,4C和8C增加到128,256,512和1024。 然后,我们通过输出256个通道的2跨3×3卷积对高分辨率表示进行下采样,并将其添加到第二高分辨率的表示中。 此过程重复两次,以在小分辨率上获得1024个特征通道。 最后,我们通过1×1卷积将1024个通道转换为2048个通道,然后进行全局平均池操作。 输出2048维表示被馈送到分类器中。
训练方式:
首先采用与Resnet相同的数据增强方案来训练图像,epoches为100个时期,batch size为256.初始学习率设置为0.1,并且在30 60 90轮次时分别减少10倍。优化算法使用SGD,权重衰减率为0.0001,Nesterov动量为0.9。 采用标准的单一裁剪测试,每张图像裁剪为224×224像素。
如图4(a)和(b)中给出的分割和目标检测结果表明HRNetV2明显优于HRNetV1,除了对Cityscapes分割的大模型情况下增益较小。作者还测试了一个变体(由HRNetV1h表示),它是通过附加1x1卷积来增加输出高分辨率表示的维度而构建的。图4(a)和4(b)中的结果表明,该变体实现了对HRNetV1的稍许改进,这意味着聚合HRNetV2中低分辨率并行卷积的表示对于提高网络能力至关重要。
在本文中,我们通过引入一个简单的修改,对高分辨率表示网络在广泛的视觉应用领域进行了实证研究。实验结果表明,改进后的网络在语义分割,人脸特征检测和目标检测等方面都具有较强的高分辨率表示和多级表示能力。