人体姿态估计_HRNet系列

HRNet系列作者的产出是真的高,一个idea不停修改,接连在顶会上发表文章。所有工作都有开源代码,真好。
ECCV 2018 《Simple Baselines for Human Pose Estimation and Tracking》
CVPR 2019 《Deep High-Resolution Representation Learning for Human Pose Estimation》 新的backbone
CVPR 2020 《HigherHRNet: Scale-Aware Representation Learning for Bottom-Up Human Pose Estimation》
arxiv now 《High-Resolution Representations for Labeling Pixels and Regions》 这篇工作对HRNet的应用领域进行了推广


文章目录

  • SimpleBaseline 2018
  • HRNet 2019
    • 代码分析
  • Higher HRNet 2020

SimpleBaseline 2018

人体姿态估计_HRNet系列_第1张图片
作者从各种复杂的模型设计中,提取了基本框架,即 encoder-decoder模式/沙漏型,进行简化,只用deconvolution进行上采样,就成为了当时的SOTA。


人体姿态估计_HRNet系列_第2张图片


HRNet 2019

HRNet是目前SOTA的backbone,也可拓展到其他高分辨率的任务如语义分割。

常用的encoder-decoder框架,在backbone的连续卷积中特征分辨率逐渐变小,然后通过一系列上采样恢复到原始分辨率。

作者认为这个过程存在着信息损失,因此他设计了一种并行的多分辨率卷积,始终保留着最大分辨率的分支,并通过各分支间不断fusion来起到信息交互的作用。最后只采用最高分辨率的特征图作为输出。

人体姿态估计_HRNet系列_第3张图片
其中fusion部分的处理如下图所示
人体姿态估计_HRNet系列_第4张图片
虽然fusion的次数多,看起来网络很庞大,但这个模型的计算量、参数数量却是轻量级的。

人体姿态估计_HRNet系列_第5张图片

代码分析

主要看了mmpose项目中对HRNet的实现,原作者开源的代码与之基本一致。

人体姿态估计_HRNet系列_第6张图片
上图中BN代表Bottleneck,BB代表BasicBlock。

整体主要可以分为Transition和HR Module两个模块。

  • Transition会多分出一个低分辨率分支。注意此处代码实现和论文中的图不一样,代码中在生成新分支时不会fusion,各分辨率的图由其本身产生,新生成的最低分辨率图由上一分辨率单独形成。
  • HR Module中先进行一系列卷积,再进行fusion。

Higher HRNet 2020

目前top-down算法精度普遍优于bottom-up,两者间存在较大的gap。但bottom-up的速度更快,因此不断有研究试图提高bottom-up方法的精度。

top-down的方法将每个检测框resize到相同大小作为模型输入,而bottom-up只能在原图上同时检测各个不同尺度的人体姿态。因此,bottom-up的方法对目标尺度更加敏感

作者认为特征图的尺度直接影响了检测精度,尤其对于crowded的场景,更大的特征图有利于检测小型人物。因此,作者提出以HRNet为backbone,在其输出特征图上直接做deconvolution,得到一张更高尺度的特征图。
人体姿态估计_HRNet系列_第7张图片

  • 在训练阶段,进行多分辨率的监督。
  • 在测试阶段,将所有尺度的输出特征通过双线性插值上采样到输入图片的大小,再进行平均,得到最终预测的heatmap。

人体姿态估计_HRNet系列_第8张图片

Ablation study表明,更高尺度的特征图捕获了小型人物,低尺度的特征图捕获了大型人物。这证实了该方法是scale-aware的。

人体姿态估计_HRNet系列_第9张图片
超过了其他bottom-up算法,但与top-down还是有较大gap。

你可能感兴趣的:(人体姿态估计,计算机视觉,深度学习,人工智能,机器学习)