姿态估计——Deep High-Resolution Representation Learning for Human Pose Estimation阅读记录
论文地址:https://arxiv.org/pdf/1902.09212.pdf
github:https://github.com/leoxiaobin/deep-high-resolution-net.pytorch
Abstract
在本文中,我们对人体姿态估计问题感兴趣,重点是学习可靠的高分辨率表征。现有的大多数方法都是从高分辨率到低分辨率网络产生的低分辨率表示中恢复高分辨率表示。 相反,我们提出的网络在整个过程保持高分辨率表示。
我们从一个高分辨率的子网络作为第一阶段开始, 逐步增加高分辨率到低分辨率的子网,形成更多的阶段,并将多分辨率子网并行连接。 我们进行了多次多尺度融合(multi-scale),使得每个高分辨率到低分辨率的表示都接收来自其他并行表示的信息,从而获得丰富的高分辨率表示。 因此,预测的关键点热图可能更准确,在空间上更精确。通过 COCO keypoint detection 数据集和 MPII Human Pose 数据集这两个基准数据集的pose estimation results,我们证明了网络的有效性。 此外,我们还展示了我们的网络在姿态跟踪(PoseTrack)数据集上的优越性。代码和模型:https://github.com/leoxiaobin/deep-high-resolution-net.pytorch
1.Introduction
2D人体姿态估计一直是计算机视觉中一个基本而具有挑战性的问题。目标是定位人体的解剖关键点(如肘部、腕部等)或部位。 它有许多应用,包括人体动作识别、人机交互、动画等。 本文主要研究单人姿态估计, 这是其他相关问题的基础(例如多人姿态估计, 视频姿态估计和跟踪)。
最近的发展表明,深卷积神经网络已经达到了最先进的性能。 大多数现有的方法通过网络传递输入,通常由高到低分辨率的子网组成,这些子网是串联的,然后提高分辨率。 例如,沙漏结构通过对称的低到高过程恢复高分辨率。 SimpleBaseLine采用少量的转置卷积(反卷积)层来生成高分辨率表示。此外,空洞卷积还被用于放大高分辨率到低分辨率网络的后几层(如VGGNet或ResNet)。
我们提出了一种新颖的结构,叫高分辨率网络(HRNet),它能够在整个过程中保持高分辨率的表示. 我们从一个.高分辨率子网开始作为第一个阶段,逐步添加高到低分辨率子网,形成更多的阶段。 并并行连接多分辨率子网。 在整个过程中,我们通过在并行的多分辨率子网络上进行反复交换信息来进行多尺度的融合。我们通过网络输出的高分辨率表示来估计关键点。 结果网络如图1所示:
与现有的广泛用于姿态估计的网络相比,我们的网络有两个好处。
- 我们的方法将高分辨率到低分辨率的子网络并行连接起来,而不是像大多数现有解决方案那样串联起来。 因此,我们的方法能够保持高分辨率,而不是通过低到高的过程恢复分辨率,因此,预测的热图在空间上可能更精确。
- 大多数现有的融合方案都将低层和高层的表示集合起来。 相反,我们执行重复的多尺度融合,利用相同深度和相似级别的低分辨率表示来提高高分辨率表示,反之亦然。 因此,高分辨率表示对于姿态估计也是充分的。因此,我们预测的热图可能更准确。
我们通过实验证明了在两个基准数据集(Benchmark): COCO关键点检测数据集(keypoint detection)和MPII人体姿态数据集上优越的关键点检测性能。此外,我们还展示了我们的网络在PoseTrack数据集上视频姿态跟踪的优势。
2.Related Work
传统的单人姿态估计方法大多采用概率图形模型或图形结构模型,近年来通过深度学习对一元能量和对态能量进行更好的建模或模仿迭代推理过程,对该模型进行了改进。目前,深度卷积神经网络提供了主流的解决方案。主流方法有两种: 回归关键点的位置,估计关键点热图然后选择具有最高热值的位置作为关键点。
大多数卷积神经网络估计对于关键点的热图是由一个stem子网网络类似于分类网络, 这降低了分辨率,把相同的分辨率作为输入的一个主要原因,后跟一个回归量估算的热图关键点位置估计,然后转变为完整的分辨率。 主体主要采用高到低分辨率,低到高分辨率的框架,可能会增加多尺度融合和(深)监督。
High-to-low and low-to-high
hight-to-low 的目标是生成低分辨和高分辨率的表示,low -to- high 的目标是生成高分辨率表示。 这两个过程都可能重复几次,以提高性能。
具有代表性的网络设计模式包括:
- Symmetric high-to-low and low-to-high processes。Hourglass及其后续论文将low-to-high proces设计为high-to-low process的镜子。
- Heavy high-to-low and light low-to-high。high-to-low process是基于ImageNet分类网络,如ResNet,low-to-high process是简单的几个双线性上采样或转置卷积层。
- Combination with dilated convolutions。在[27,51,35]中,ResNet或VGGNet在最后两个阶段都采用了扩张性卷积来消除空间分辨率的损失,然后采用由light lowto-high process来进一步提高分辨率,避免了仅使用dilated convolutions的昂贵的计算成本。图2描述了四种具有代表性的姿态估计网络。
Multi-scale fusion
直接的方法是将多分辨率图像分别馈送到多个网络中,并聚合输出响应图。Hourglass及其扩展通过跳过连接,将high-to-low process中的低级别特征逐步组合为low-to-high process中的相同分辨率的高级别特性。 在级联金字塔网络中,globalnet将high-to-low process中的低到高级别特征low-to-high level feature逐步组合到low-to-high process中,refinenet将通过卷积处理的低到高特征进行组合。我们的方法重复多尺度融合,部分灵感来自深度融合及其扩展。
Intermediate supervision
图像分类早期开发的中间监督或深度监督, 也用于帮助深度网络训练和提高热图估计质量。沙漏方法卷积姿态方法处理中间热图作为剩余子网的输入或输入的一部分进行处理。
Our approach
我们的网络并行连接高到低的子网。 通过整个过程用于空间精确的热图估计来保持高分辨率表示。 它通过反复融合由高到低子网络产生的表示来生成可靠的高分辨率表示。 我们的方法与大多数现有的工作不同,它们需要一个单独的低到高的上采样过程,并聚合低级和高级表示。 在不使用中间热图监督的情况下,我们的方法在关键点检测精度和计算复杂度和参数效率上都是优越的。
有相关的多尺度网络进行分类和分割。 我们的工作部分受到其中一些因素的启发。 有明显的差异,使它们不适用于我们的问题。Convolutional neural fabrics[56]和interlinked CNN[83]由于缺乏对每个子网络(depth, batch)的合理设计和多尺度融合,分割结果的质量不高。grid network[18]是多个权重共享U-Nets组合,由两个多分辨率表示的独立融合过程组成:
- 在第一阶段,信息只从高分辨率发送到低分辨率;
- 在第二阶段,信息只从低分辨率发送到高分辨率,因此竞争力较低。
Multi-scale densenets没有目标,无法生成可靠的高分辨率表示。
3.Approach
人体姿态估计,a.k.a。 关键点检测,旨在检测K个关键点或部分关键点的位置(例如,手肘、手腕等)从一个图像的大小WxHx3。最先进的方法将这个问题转化为估计尺寸为W' x H'的K热图,其中每个热图Hk表示第k个关键点的位置置信度。
我们遵循广泛适用的pipeline,使用卷积网络预测人体关键点。这是由stem组成的两个步长卷积网络降低分辨率,主体输出特征图具有相同的分辨率作为它的输入特征图, 和一个回归量估计的热图,其中关键点位置被选择并转换为完整的分辨率。 我们专注于主体的设计,并介绍了我们的高分辨率网络(HRNet),如图1所示。
Sequential multi-resolution subnetworks
现有的姿态估计网络是将高分辨率到低分辨率的子网络串联起来,每个子网络形成一个阶段,由一系列卷积组成,相邻子网络之间存在一个下采样层,将分辨率减半。
Parallel multi-resolution subnetworks
我们从一个高分辨率子网开始作为第一阶段,逐步增加高到低分辨率子网,形成新的阶段,并将多分辨率子网并行连接。 因此,后一阶段并行子网络的分辨率由前一阶段的分辨率和一个额外的较低的分辨率组成。 给出了一个包含4个并行子网络的网络结构示例:
Repeated multi-scale fusion
我们引入跨并行子网络的交换单元,使得每个子网络重复接收来自其他并行子网络的信息。 这里有一个例子显示了交换信息的方案。我们将第三阶段分为若干个(例如,3)交换块, 每个块由3个并行卷积单元组成,在并行单元之间有一个交换单元,如下所示:
我们在图3中说明了交换单元,并在下面给出了公式。 为了方便讨论,我们删除下标s和上标b
输入为s响应映射:。输出为s响应图:
其分辨率和宽度与输入相同。每个输出都是输入映射的集合
各阶段的交换单元有额外的输出图
。
函数从分辨率i到k对
上采样或下采样组成。我们采用步长为3×3的卷积做下采样。例如,向一个步长为3×3卷积做步长为2x2的下采样。两个连续的步长为3×3的卷积使用步长为2的4倍下采样。对于上采样,我们采用最简单的最近邻抽样,从1×1卷积校准通道的数量。如果i = k,则a(.,.)只是一个识别连接:
。
Heatmap estimation
我们将热图从最后一个交换单元输出的高分辨率表示中回归,这样做是有效的。损失函数定义为均方误差,用于比较预测的热图和groundtruth热图。groundtruth heatmpas是采用二维高斯分布,以每个关键点的grouptruth位置为中心,标准差为1像素生成的。
Network instantiation
我们实例化网络进行关键点热图估计,方法是遵循ResNet的设计规则,将深度分配到每个阶段,并将通道数分配到每个分辨率。
我们的HRNet包含四个阶段,主体为四个并行的子网, 其分辨率逐渐降低到一半,相应地,宽度(通道数)增加到双倍。第一阶段包含4个残差单元,每个单元都和ResNet-50一样,是由一个宽度为64的bottleneck组成,紧随其后的是一个3x3卷积特征图的宽度减少到(C)。第二,第三,第四阶段分别包含1、4、3个交换块。其中每个单元在每个分辨率中包含2个3x3的卷积,以及一个分辨率的交换单元。综上所述,共有8个交换单元,即共进行8次多尺度融合。
在我们的实验中,我们研究了一个小网络和一个大网络:HRNet-W32和HRNet-W48,其中32和48分别代表最后三个阶段高分辨率子网的宽度(C)。HRNet-W32其他三个并行子网的宽度为64,128,256,HRNet-W48其他三个并行子网的宽度为:96,192,384。
4.Experiments
4.1 COCO Keypoint Detection
Dataset COCO数据集[36]包含超过20万张图像和25万个带有17个关键点标记的人实例。我们在COCO train2017数据集上训练我们的模型,包括57K图像和150K person实例。我们在COCO train2017数据集上训练我们的模型,包括57K图像和150K person实例。
Evaluation metric
这里di是检测到的关键点与对应的ground truth之间的欧式距离,vi是ground truth 的可见性标志, s 是对象尺度,ki是控制衰减的每个关键点常量。们报告的标准平均精度和召回分数: (AP at OKS = 0.50) AP75, AP (AP得分的平均值在10个位置,OKS = 0.50, 0.55,…,0.90,0.95;中等对象的
,
为大对象,以及当OKS = 0.50, 0.55,…,0.90,0.955时的AR。
Training
我们将human detection box 的高宽比扩展到固定的长宽比,高:宽= 4:3 然后从图像中裁剪出box,调整为固定的大小,256×192或384×288。数据增加包括随机旋转(- 45◦,45◦),随机的规模([0.65, 1.35]),然后翻转。在[68]之后,一半的数据增强。我们使用Adam优化器。学习进度按照设定。基本学习率设置为1e - 3,在第170和200epochs训练,在210个epochs内结束。
Testing
使用person检测器检测person实例,然后预测检测关键点。我们使用SimpleBaseline提供的同一个人检测器用于验证集和测试开发集。根据通常的做法,我们通过对原始图像和翻转图像的头部图进行平均来计算热图。每个关键点的位置是通过调整最高热值的位置,并在从最高响应到第二高响应的方向上偏移四分之一来预测的。
Results on the validation set
我们在表1中报告了我们的方法和其他最先进方法的结果。我们的小型网络HRNet-W32,从零开始训练,输入大小为256X192,获得了73.4分的AP分数,优于其他相同输入大小的方法。
Results on the test-dev set
表2报告了我们的方法的姿态估计性能和现有的最先进的方法。我们的方法明显优于自底向上方法。另一方面,我们的小型网络HRNet-W32的AP达到了74.9。它优于所有其他自顶向下的方法,并且在模型大小(#Params)和计算复杂度(GFLOPs)方面更有效。我们的大模型HRNet-W48获得了最高的75.5 AP,与相同输入大小的SimpleBaseline[72]相比,我们的小网络和大网络分别得到了1.2和1.8的改进。使用来自AI Challenger[70]的训练数据,我们的单一大网络可以获得77.0的AP。
4.2 MPII Human Pose Estimation
Dataset. MPII人体姿态数据集由来自具有全身姿态注释的广泛现实活动的图像组成。大约有25 k图像40 k,哪里有12 k受试者进行测试和剩下的训练集的主题。数据扩充和训练策略是相同的COCO,除了输入大小裁剪256 x 256公平与其他方法进行比较。
Testing. 测试过程与COCO中的测试过程几乎相同,只是我们采用了标准的测试策略,使用提供的人员框而不是检测到的人员框。在[14,77,62]之后,进行了六尺度金字塔测试程序。
Evaluation metric. 使用标准度量,即PCKh(正确关键点的头部归一化概率)得分。联合是正确的如果它属于αl groundtruth位置的像素,其中α是一个常数和l是头的大小对应于真实的对角线长度的60%头边界框。[email protected](α= 0.5)评分。
Results on the test set. 表3和表4显示了[email protected]的结果、模型大小和最常用方法的GFLOPs。我们使用ResNet-152作为输入大小为256x256的主干,重新实现了SimpleBaseline。我们的HRNet-W32实现了92.3 [email protected]的评分,并优于堆叠沙漏方法及其扩展。我们的结果与之前发表在20183年11月16日排行榜上的结果中最好的结果一致[62]。我们想指出的是,该方法[62]是对我们的方法的补充,利用成分模型来学习人体的构型,采用多层次的中间监督,我们的方法也可以从中受益。我们还测试了我们的大网络HRNetW48,得到了相同的结果92.3。原因可能是这个数据集中的性能趋于饱和。
4.3 Application to Pose Tracking
Dataset. PoseTrack是视频中用于人体姿态估计和关节跟踪的大规模基准。该数据集基于流行的MPII人体姿态数据集提供的原始视频,包含550个视频序列和66374帧。视频序列被分成用于训练、验证和测试的视频分别为292,50,208个。训练视频的长度在41——151帧之间,从视频中心到30帧之间都有密集的注释。验证/测试视频的帧数在65——298帧之间。MPII Pose数据集中的关键帧周围的30帧被密集地注释,然后每四帧被注释一次。总的来说,这大约包括23000个带标签的帧和153615个摆姿势的注释。
Evaluation metric. 我们从两方面对结果进行了评估:帧间多姿态估计和多姿态跟踪。姿态估计是通过平均平均精度(mAP)来评估的。多目标跟踪精度(MOTA)是多目标姿态跟踪的评价指标。
Training. 我们在PoseTrack2017训练集上训练HRNet-W48进行单人姿态估计,其中网络由COCO数据集上预训练的模型初始化。我们将person框作为网络的输入从训练帧中的带注释的关键点中提取出来,方法是将所有关键点(对于一个人)的边界框扩展15%。包括数据扩充在内的训练设置与COCO基本相同,只是学习进度不同(现在是微调):学习速度从1e4开始,第10个epoch下降到1e5,第15个epoch下降到1e6;迭代在20个epoch结束。
Testing. 我们来跟踪帧间的姿势。它由三个步骤组成:人体姿态检测与传播、人体姿态估计和姿态关联跨帧。我们使用与SimpleBaseline相同的person box检测器,根据FlowNet 2.0 计算的光流传播预测的关键点,将检测到的box传播到附近的帧中,然后对box去除进行非最大抑制。姿态关联方案是基于一帧内的关键点与根据光流从邻近帧传播的关键点之间的目标关键点相似性。然后利用贪心匹配算法计算关键字之间的对应关系附近的帧。
Results on the PoseTrack2017 test set 表5报告了结果。我们的大网络- HRNet-W48取得了更好的成绩,74.9的mAP评分和57.9的MOTA评分。与第二好的方法SimpleBaseline中以ResNet-152为骨干的FlowTrack相比,我们的方法在mAP和MOTA方面分别获得了0.3和0.1分的增益。相对于FlowTrack的优势与COCO关键点检测和MPII人体姿态估计数据集的优势是一致的。这进一步说明了我们的姿态估计网络的有效性。表6给出的COCO验证集表明,多尺度融合是有益的,融合越多,性能越好。
5.Conclusion and Future works
在这篇论文中, 我们提出了一个用于人体姿态估计的高分辨率网络, 产生准确和空间精确的关键点热图。 成功源于两个方面:(1)全程保持高分辨率,不需要恢复高分辨率;(2)多次融合多分辨率表示,呈现可靠的高分辨率表示。 未来的工作包括应用于其他密集预测任务,如语义分割、图标检测、人脸对齐、图像翻译,以及研究以一种不那么轻量的方式聚合多分辨率表示。
https://jingdongwang2017.github.io/Projects/HRNet/index.html
参考博客:https://blog.csdn.net/weixin_37993251/article/details/88043650