论文下载地址:https://arxiv.org/abs/1902.09212https://arxiv.org/abs/1902.09212
官方源码地址:https://github.com/leoxiaobin/deep-high-resolution-net.pytorchhttps://github.com/leoxiaobin/deep-high-resolution-net.pytorch
在本文中,我们对人体姿态估计问题感兴趣,重点是学习可靠的高分辨率表示。大多数现有方法通过高低分辨率网络生成的低分辨率表示恢复高分辨率表示。相反,我们提出的网络在整个过程中保持高分辨率表示。我们从一个高分辨率子网络作为第一阶段开始,逐渐添加高低分辨率子网络形成更多阶段,并将多分辨率子网络并行连接起来。我们进行重复的多尺度融合,使每个高低分辨率表示重复地从其他并行表示中接收信息,从而得到丰富的高分辨率表示。因此,预测的关键点热图可能更准确且空间上更精确。我们通过两个基准数据集(COCO关键点检测数据集和MPII人体姿态数据集)的优越姿态估计结果以及在PoseTrack数据集上的姿态跟踪中展示了我们网络的优势。代码和模型已经公开在https://github.com/leoxiaobin/deep-high-resolution-net.pytorch。
2D人体姿态估计是计算机视觉中一个基础而具有挑战性的问题。其目标是定位人体解剖关键点(例如肘部、手腕等)或身体部位。它具有许多应用,包括人体动作识别、人机交互、动画等。本文关注单人姿态估计,这是其他相关问题的基础,例如多人姿态估计、视频姿态估计和跟踪等。最近的发展表明,深度卷积神经网络已经达到了最先进的性能。大多数现有方法将输入通过一个网络,通常由高低分辨率子网络串联连接,然后提高分辨率。例如,Hourglass通过对称的低分辨率到高分辨率过程来恢复高分辨率。SimpleBaseline采用了几个转置卷积层来生成高分辨率表示。此外,还使用了扩张卷积来放大高低分辨率网络的后续层(如VGGNet或ResNet)。
图1.展示了提出的HRNet的架构。它由并行的高低分辨率子网络组成,通过多分辨率子网络之间的重复信息交换(多尺度融合)来实现。水平和垂直方向分别对应网络的深度和特征图的尺度。
我们提出了一种新颖的架构,即高分辨率网络(HRNet),能够在整个过程中保持高分辨率表示。我们从一个高分辨率子网络作为第一阶段开始,逐渐添加高低分辨率子网络形成更多阶段,并将多分辨率子网络并行连接起来。我们通过整个过程中多次在并行的多分辨率子网络之间交换信息来进行重复的多尺度融合。我们在网络输出的高分辨率表示上估计关键点。如图1所示,我们的网络相比于现有广泛使用的姿态估计网络(例如Hourglass、SimpleBaseline等)具有两个优点。(i)我们的方法将高低分辨率子网络并行连接,而不是像大多数现有解决方案那样串行连接。因此,我们的方法能够保持高分辨率,而不是通过低分辨率到高分辨率的过程来恢复分辨率,因此预测的热图可能在空间上更精确。(ii)大多数现有的融合方案聚合低级和高级表示。相反,我们通过多次重复的多尺度融合来提升高分辨率表示,利用相同深度和相似级别的低分辨率表示的帮助,反之亦然,从而使高分辨率表示对于姿态估计也更加丰富。因此,我们预测的热图可能更准确。我们通过两个基准数据集(COCO关键点检测数据集和MPII人体姿态数据集)的优越关键点检测性能进行了实证验证。此外,我们还展示了我们网络在PoseTrack数据集上进行视频姿态跟踪的优越性能。
图2.展示了依赖于高低分辨率框架的代表性姿态估计网络。(a)Hourglass [40]。(b)级联金字塔网络 [11]。(c)SimpleBaseline [72]:使用转置卷积进行低到高处理。(d)与扩张卷积相结合 [27]。右下角说明:reg.=常规卷积,dilated =扩张卷积,trans.=转置卷积,strided =步进卷积,concat.=拼接。(a)中,高低分辨率过程对称。(b)、(c)和(d)中,高低分辨率过程中,分类网络(ResNet或VGGNet)的一部分较重,而低到高过程较轻。(a)和(b)中,高低分辨率过程之间的跳过连接(虚线)主要用于融合低级和高级特征。(b)中,右侧的refinenet通过卷积将低级和高级特征结合在一起处理。
大多数传统的单人姿态估计解决方案采用概率图模型或图片结构模型[79,50],最近通过利用深度学习来更好地建模一元和二元能量[9,65,45]或模仿迭代推理过程[13]而得到改进。如今,深度卷积神经网络提供了主流的解决方案[20,35,62,42,43,48,58,16]。有两种主流方法:回归关键点位置[66,7],以及估计关键点热图[13,14,78],然后选择具有最高热值的位置作为关键点。大多数用于关键点热图估计的卷积神经网络包括类似于分类网络的干预子网络,它降低了分辨率,一个主体产生与输入具有相同分辨率的表示,然后是一个回归器,估计关键点热图,其中关键点位置被估计并转换为完整分辨率。主体主要采用高低分辨率框架,可能还会增加多尺度融合和中间(深层)监督。
高到低和低到高。高到低过程旨在生成低分辨率和高级表示,低到高过程旨在生成高分辨率表示[4,11,23,72,40,62]。这两个过程可能会重复多次以提高性能[77,40,14]。代表性的网络设计模式包括:(i)对称的高到低和低到高过程。Hourglass及其后续工作[40,14,77,31]将低到高过程设计为高到低过程的镜像。(ii)重的高到低和轻的低到高。高到低过程基于ImageNet分类网络,例如在[11,72]中采用的ResNet,而低到高过程仅包含少量的双线性上采样[11]或转置卷积[72]层。(iii)与扩张卷积相结合。在[27,51,35]中,扩张卷积被应用于ResNet或VGGNet的最后两个阶段,以消除空间分辨率损失,然后通过轻量级的低到高过程进一步增加分辨率,避免仅使用扩张卷积产生昂贵的计算成本[11,27,51]。图2描述了四个代表性的姿态估计网络。
多尺度融合。直接的方法是将多分辨率图像分别输入多个网络,并聚合输出的响应图[64]。Hourglass和其扩展[77,31]通过跳跃连接逐渐将高到低过程中的低层特征融合到低到高过程中相同分辨率的高层特征中。在级联金字塔网络[11]中,一个全局网络逐渐将高到低过程中的低到高层特征融合到低到高过程中,然后一个细化网络将经过卷积处理的低到高层特征进行融合。我们的方法重复多尺度融合,部分受到深度融合及其扩展[67,73,59,80,82]的启发。中间监督。中间监督或深度监督最早用于图像分类[34,61],也被用于帮助深度网络训练和改善热图估计质量,例如[69,40,64,3,11]。Hourglass方法[40]和卷积姿态机方法[69]将中间热图作为输入或其余子网络的一部分进行处理。我们的方法将高到低子网络并行连接在一起。它通过整个过程保持高分辨率的表示,以实现空间精确的热图估计。通过多次融合高到低子网络产生的表示,它生成可靠的高分辨率表示。我们的方法与大多数现有方法不同,它不需要单独的低到高上采样过程,并且不需要聚合低层和高层表示。我们的方法在关键点检测精度上优于使用中间热图监督的方法,并且在计算复杂度和参数方面更高效。有一些与分类和分割相关的多尺度网络[5,8,74,81,30,76,55,56,24,83,55,52,18]。我们的工作部分受到其中一些方法的启发[56,24,83,55],但也存在明显的差异,使它们不适用于我们的问题。卷积神经织物[56]和互联CNN[83]由于在每个子网络上缺乏适当的设计(深度、批归一化)和多尺度融合而无法产生高质量的分割结果。网格网络[18]是许多权重共享U-Net的组合,它包括两个不同的多分辨率表示之间的融合过程:在第一阶段,信息仅从高分辨率发送到低分辨率;在第二阶段,信息仅从低分辨率发送到高分辨率,因此竞争力较弱。多尺度DenseNet[24]不针对并且无法生成可靠的高分辨率表示。
人体姿势估计,也称为关键点检测,旨在从尺寸为W×H×3的图像I中检测出K个关键点或部位(例如肘部、手腕等)的位置。最先进的方法将这个问题转化为估计尺寸为W0×H0的K个热图,其中每个热图Hk表示第k个关键点的位置置信度。我们遵循广泛采用的流程[40,72,11],使用一个卷积网络来预测人体关键点,该网络由一个由两个步幅卷积组成的干部(stem)组成,降低分辨率,一个输出与其输入特征图分辨率相同的特征图的主体,以及一个回归器,估计关键点位置,并将其转换为完整分辨率。我们关注主体的设计,并介绍了我们的高分辨率网络(HRNet),如图1所示。顺序多分辨率子网络。现有的姿势估计网络是通过将高到低分辨率的子网络连接成串联的方式构建的,其中每个子网络形成一个阶段,由一系列卷积组成,并且在相邻的子网络之间有一个下采样层,将分辨率减半。设Nsr为第s阶段的子网络,r为分辨率索引(其分辨率是第一个子网络分辨率的2r1−1倍)。具有S(例如4)个阶段的高到低网络可以表示为:
并行多分辨率子网络。我们从一个高分辨率的子网络作为第一个阶段开始,逐渐添加高到低分辨率的子网络,形成新的阶段,并将多分辨率子网络并行连接起来。结果是,后一阶段的并行子网络的分辨率包括了前一阶段的分辨率,并且还有一个额外的较低分辨率。下面是一个包含4个并行子网络的示例网络结构:
重复多尺度融合。我们在并行子网络之间引入交换单元,使得每个子网络可以反复接收来自其他并行子网络的信息。以下是一个示例,展示了信息交换的方案。我们将第三阶段划分为几个(例如3个)交换块,每个块由3个并行卷积单元和一个跨并行单元的交换单元组成,具体如下:
其中Cb sr Cb sr表示第sth阶段中第b个块中第r个分辨率的卷积单元,Esb是相应的交换单元。我们在图3中说明了交换单元,并在下面介绍了其表达式。为了方便讨论,我们省略了下标s和上标b。输入是s个响应图:fX1;X2;:::;Xsg。输出也是s个响应图:fY1;Y2;:::;Ysg,其分辨率和宽度与输入相同。每个输出是输入图的聚合,Yk =Ps i=1 a(Xi;k)。跨阶段的交换单元有一个额外的输出图Ys+1:Ys+1 =a(Ys;s +1)。函数a(Xi;k)包括从分辨率i到分辨率k的上采样或下采样。我们采用步幅为3×3的卷积进行下采样。例如,步幅为2的3×3卷积用于2×下采样,步幅为2的连续两个3×3卷积用于4×下采样。对于上采样,我们采用简单的最近邻采样,并在之后进行1×1卷积以对齐通道数。如果i=k,a(·;·)就是一个恒等连接:a(Xi;k)=Xi。热图估计。我们直接从最后一个交换单元输出的高分辨率表示中回归热图,这在经验上效果良好。我们使用均方误差定义的损失函数来比较预测的热图和真实的热图。真实的热图是通过将具有1像素标准差的2D高斯应用于每个关键点的真实位置来生成的。网络实例化。我们按照ResNet的设计规则来实例化关键点热图估计网络,将深度分配给每个阶段,将通道数分配给每个分辨率。主体部分即我们的HRNet包含四个阶段,每个阶段都有四个并行子网络,其分辨率逐渐减半,宽度(通道数)逐渐增加一倍。第一阶段包含4个残差单元,每个单元与ResNet-50相同,由一个宽度为64的瓶颈单元和一个3×3卷积组成,将特征图的宽度减小到C。第2、3、4阶段分别包含1、4、3个交换块。一个交换块包含4个残差单元,每个单元在每个分辨率上都包含两个3×3卷积和一个跨分辨率的交换单元。总之,总共有8个交换单元,即进行了8次多尺度融合。在我们的实验中,我们研究了一个小网络和一个大网络:HRNet-W32和HRNet-W48,其中32和48分别表示最后三个阶段中高分辨率子网络的宽度(C)。其他三个并行子网络的宽度为64、128、256(对于HRNet-W32)和96、192、384(对于HRNet-W48)。
图3.说明了交换单元如何分别从左到右聚合高、中、低分辨率的信息。右侧图例:strided 3×3 = 步幅为3×3的卷积,up samp.1×1 = 在1×1卷积后进行最近邻上采样。
数据集。COCO数据集[36]包含超过200,000张图像和250,000个标有17个关键点的人物实例。我们在COCO train2017数据集上训练我们的模型,其中包括57,000张图像和150,000个人物实例。我们在val2017集和test-dev2017集上评估我们的方法,分别包含5,000张和20,000张图像。 评估指标。标准的评估指标基于对象关键点相似度(OKS):OKS = Pi exp(−d^2_i/2s^2_ki)δ(v_i>0),其中di是检测到的关键点与相应的真实值之间的欧氏距离,vi是真实值的可见性标志,s是对象的尺度,ki是控制衰减的每个关键点的常数。我们报告标准的平均精确度和召回率得分1:AP50(OKS为0.50时的AP),AP75,AP(在10个位置的AP得分的均值,OKS为0.50、0.55、···、0.90、0.95),APM表示中等物体的AP,APL表示大物体的AP,AR表示在OKS为0.50、0.55、···、0.90、0.95时的召回率。 训练。我们将人体检测框的高度或宽度扩展到固定的长宽比:高度:宽度=4:3,然后从图像中裁剪出该框,并将其调整为固定大小的256×192或384×288。数据增强包括随机旋转([-45°,45°]),随机缩放([0.65,1.35])和翻转。根据[68]的方法,还涉及到半身数据增强。我们使用Adam优化器[32],学习率调度遵循设置[72]。基本学习率设置为1e-3,并在第170个和第200个epoch时分别降低为1e-4和1e-5。训练过程在210个epoch内终止。
测试。我们使用类似于[47,11,72]的两阶段自上而下的模式:使用人体检测器检测人体实例,然后预测检测到的关键点。对于验证集和test-dev集,我们使用Simple Baseline2 [72]提供的相同人体检测器。按照常见做法[72,40,11],我们通过对原始图像和翻转图像的头部热图进行平均来计算热图。通过将最高热值位置沿着从最高响应到次高响应的方向调整一个四分之一的偏移量,预测每个关键点的位置。验证集上的结果。我们在表1中报告了我们的方法和其他最先进的方法的结果。我们的小网络-HRNet-W32,使用输入尺寸256×192从头开始训练,获得了73.4的AP得分,优于具有相同输入尺寸的其他方法。(i)与Hourglass [40]相比,我们的小网络将AP提高了6.5个点,而我们的网络的GFLOPs要低得多,不到其一半,而参数的数量相似,我们的略大一些。(ii)与CPN [11] w/o和w/OHKM相比,我们的网络,在略大的模型大小和稍高的复杂性下,分别获得了4.8和4.0个点的增益。(iii)与之前表现最好的SimpleBaseline [72]相比,我们的小网络HRNet-W32取得了显著改进:对于具有相似模型大小和GFLOPs的骨干网络ResNet-50,得分提高了3.0个点,对于骨干网络ResNet-152,模型大小(#Params)和GFLOPs是我们的两倍。
我们的网络可以从以下方面受益:(i)使用在ImageNet分类问题上预训练的模型进行训练:对于HRNet-W32,提升了1.0个点;(ii)通过增加宽度来增加容量:我们的大网络HRNet-W48在输入尺寸为256×192和384×288时分别获得了0.7和0.5个点的改进。考虑到输入尺寸为384×288,我们的HRNet-W32和HRNet-W48在AP方面分别获得了75.8和76.3的得分,相比于输入尺寸为256×192,分别提高了1.4和1.2个点。与以ResNet-152作为骨干网络的SimpleBaseline [72]相比,我们的HRNet-W32和HRNet-W48在计算成本为45%和92.4%的情况下,分别获得了1.5和2.0个点的AP提升。测试集上的结果。表2报告了我们的方法和现有最先进方法的姿势估计性能。我们的方法明显优于自下而上的方法。另一方面,我们的小网络HRNet-W32获得了74.9的AP。它优于所有其他自上而下的方法,并且在模型大小(#Params)和计算复杂度(GFLOPs)方面更高效。我们的大模型HRNet-W48获得了最高的75.5的AP。与具有相同输入尺寸的SimpleBaseline [72]相比,我们的小型和大型网络分别获得了1.2和1.8个点的提升。通过使用AI Challenger [70]的额外数据进行训练,我们的单个大网络可以达到77.0的AP。
表1. COCO验证集比较。Pretrain表示在ImageNet分类任务上预训练骨干网络。OHKM表示在线难样本关键点挖掘[11]。
表2. COCO测试集比较。#Params和FLOPs是针对姿势估计网络计算的,不包括人体检测和关键点分组的参数和计算量。