Deep High-Resolution Representation Learning for Human Pose Estimation论文阅读翻译 - 2019CVPR
目录:
论文下载地址:点击此链接跳转.
这是博主自己在github整理的目标检测方向论文的合集,应该算比较全,目前2020ECCV持续更新中,即将更新:2020IJCAI合集,欢迎下载…
一、Abstract
本文主要针对的人体姿态估计问题,想要去学习一个可靠的高分辨率表示。大多数现有方法是从由高分辨率到低分辨率的网络产生的低分辨率表示中恢复高分辨率表示。而作者提出的HRNet能在整个过程中保持高分辨率表示。
作者以高分辨率子网作为第一阶段,逐步增加高分辨率到低分辨率的子网,构建更多的stage,并将多分辨率子网并行连接。还进行了多次的多尺度融合,使得每一个高分辨率到低分辨率的表示不断地接收来自其他并行表示的信息,从而得到丰富的高分辨率表示。这样预测的关键点热图可能更精确,在空间上的定位也更精确。通过实验也证明了HRNet的有效性。
二、Introduction
2D人体姿态估计一直是计算机视觉中一个基本又具有挑战性的问题。其目的是去定位人体关键点(如肘部、腕部等)。其可以应用于人的动作识别,人机交互,动画等。本文研究的重点是单人姿态估计,这是其他的一些相关问题如多人姿态估计,视频姿态估计与跟踪的基础。
最近CNN已在各个方向取得了最先进的性能。大多数现有的方法都是将图片输入网络进行处理,网络通常由一系列由高分辨率到低分辨率的子网组成,然后去提高分辨率。例如沙漏网络是通过对称的由低到高的过程来恢复高分辨率。SimpleBaseline则是采用了几个转置卷积层来生成高分辨率表示。此外,空洞卷积也被用于放大高分辨率到低分辨率网络的后期的一些层(如VGGNet或ResNet)。
作者提出了一种新的结构,即高分辨率网络(HRNet),它能够在整个过程中保持高分辨率的表示。作者以高分辨率子网作为第一阶段,逐步增加高分辨率到低分辨率的子网,形成更多的阶段,并将多分辨率子网作并行连接。在整个过程中,作者通过并行的多分辨率子网络不断交换信息,进行了多次的多尺度融合,然后在网络输出的高分辨率表示上估计关键点。得到的网络如下图所示:
HRNet相比当前广泛使用的人体姿态估计网络有以下优点:(1)HRNet是并行连接由高分辨率到低分辨率的子网,而不是像大多数现有方法那样串连。因此HRNet能够保持高分辨率,而不是通过由低到高的过程再去恢复分辨率。这样预测的热图在空间上可能更加精确。(2)现有的大多数的融合机制都是将低层和高层表示进行聚合。作者则是使用相同深度和相似层级的低分辨率表示来进行重复的多尺度融合以提高高分辨率表示。
四种有代表性的姿态估计网络:
作者提出的HRNet并行地连接高分辨率到低分辨率的子网,在整个过程中保持高分辨率的表示以便进行空间精确的热图估计。它通过反复融合由高到低的子网产生的表示来得到可靠的高分辨率表示。这不同于大多数现有的工作,后者需要有一个单独的从低到高的向上采样过程,并将低层和高层表示聚合起来。HRNet不使用中间热图监督,在关键点检测精度、计算复杂度和参数效率方面具有优越性。
三、Approach
人体姿态估计,又称关键点检测,目的是从大小为W×H×3的输入图像I中检测K个关键点或部件的位置,SOTA方法会将这个问题转换为估计K个大小为W’*H’的热图,每个热图推断第k个关键点的位置置信度。
作者遵循广泛适用的pipline来使用卷积网络预测人体关键点,这是先由两个步长卷积组成的stem降低分辨率,主体输出的特征图与其输入具有相同的分辨率,一个回归器用来估计用于关键点位置选择的热图及转换为完整的分辨率。
3.1 Sequential multi-resolution subnetworks.
现有的一些姿态估计网络是通过串联高分辨率到低分辨率的子网来建立的,每个子网组成一个阶段,由一系列卷积组成,并在相邻子网间有一个下采样层将分辨率减半。以Nsr记为在第s个阶段的子网,r为分辨率指标(分辨率为1/2r-1),第S阶段的高分辨率到低分辨率网络可以表示为:
3.2 Parallel multi-resolution subnetworks.
作者以高分辨率子网作为第一阶段,逐步增加高分辨率到低分辨率的子网,形成新的阶段,并将多分辨率子网做并行连接。这样后一阶段并行子网的分辨率会由前一阶段的分辨率和一个更低的分辨率组成:
3.3 Repeated multi-scale fusion.
作者在并行子网中引入交换单元,每个子网重复接收来自其他并行子网的信息。下图是一个例子,展示了信息交换的方案。
作者把第三阶段分成几个交换块,每个块由3个并行卷积单元和一个跨并行单元的交换单元组成。Cbsr表示某阶段第b块的第r个分辨率的卷积单元,εbs是对应的交换单元。
上图有说明交换单元,并给出了公式。为了便于讨论去掉了下标s和上标b。输入是s个特征图(X1, X2,…,Xs)。输出是s个对应的特征图(Y1, Y2,…,Ys),其分辨率和宽度与输入特征图相同。每个输出都是输入特征图的聚合:
跨阶段的交换单元会有一个额外的输出特征图:
a(Xi, k)是指将Xi由上采样或下采样使分辨率由i变为k。2倍下采样是用一个步长为2的3×3卷积,4倍下采样是用两个连续的步长为2的3×3卷积。上采样采用最近邻采样法,再接一个1*1卷积用来调整通道数量。如果i=k,则是直接传递。
3.4 Heatmap estimation.
作者是从最后一个交换单元输出的高分辨率表示中回归热图。loss为均方误差损失,用于比较预测的热图和groundtruth的热图。GT热图是通过采用以每个关键点的GT位置为中心,标准差为1个像素的2D高斯分布产生的。
3.5 Network instantiation.
作者实例化了关键点热图估计网络,遵循ResNet的设计规则,将深度分配到每个阶段,并将通道数量分配到每个分辨率。HRNet包含了有四个并行子网的四个阶段,其分辨率逐步降低至一半,相应的宽度(通道数)增加到两倍。第一阶段有4个残差单元,每个残差单元与ResNet-50相同,都是由一个宽度为64的bottleneck构成,然后进行一次33卷积,将特征图的宽度减小到C。第二,第三,第四阶段分别包括1, 4, 3个交换块。一个交换块包含4个残差单元,每个残差单元在每个分辨率上都包含两个33卷积和一个跨分辨率的交换单元。综上,共有8个交换单位,即进行了8次多尺度融合。
实验部分就跳过啦,不是我的方向,只是想看看这个网络大体结构,大家见谅,自己读读吧…
四、个人总结
HRNet总的来说还是可以作为一个不错的backbone来使用,这种不同分辨率之间的密集信息交互感觉有点Densenet的那种味道,当然肯定还是很不一样的。不过看图没看代码的话最终好像只有一个输出,不大合理,如果像FPN那样有多个输出我觉得应该会比较合适一些。