MMPose

MMPose

  • 1. 简介
    • 1.1 主要功能
    • 1.2 基本概念
      • 1.2.1 支持的骨干网络(用于特征提取)
      • 1.2.2 支持的人体姿态估计方法
      • 1.2.3 支持的数据集
  • 2. UDP (Unbiased Data Processing-2021)
    • 2.1 研究方法
    • 2.2 Unbiased Coordinate System Transformation
      • 2.2.1 连续空间中数据的统一定义
      • 2.2.2 坐标系变换的概念
      • 2.2.3 基本操作的坐标系变换
      • 2.2.4 通用坐标系变换
    • 2.3 Unbiased Keypoint Format Transformation
    • 2.4 代码实现
  • 3. RSN(Residual Steps Network:2020)
    • 3.1 网络结构
    • 3.2 感受域 (Receptive Field)
    • 3.3 姿态优化机(Pose Refi ne Machine)
  • 4. HRNet (2019)

1. 简介

  • MMPose代码
  • MMPose文档
  • CoCo Keypoint排行榜
  • MMPose:是一个基于PyTorch的开源的姿态估计工具箱
  • 工作环境要求:
    • PyTorch 1.3+

1.1 主要功能

  • 支持各种主流的人体姿态估计(2D多人姿态估计、2D Hand姿态估计、133个KeyPoints的人体姿态估计、3D人体网格恢复)
  • 更高的效率的准确率:实现多个先进的深度学习模型、包括top-down和bottom-up方法
  • 与流行的codebase相比,有更快的训练速度和更高的准确率
  • 支持多种数据集:COCO, AIC, MPII, MPII-TRB, OCHuman等
  • 精心的设计,测试和文档

1.2 基本概念

  • 人体姿态估计的任务包括:关键点定位和分类 (keypoint localization and classfication)
  • 空间信息(Spatial information):有利于定位任务
  • 语义信息(Semantic information):有利于分类任务

1.2.1 支持的骨干网络(用于特征提取)

  • AlexNet (NeurIPS’2012)
  • VGG (ICLR’2015)
  • HRNet (CVPR’2019)
  • ResNet (CVPR’2016)
  • ResNetV1D (CVPR’2019)
  • ResNeSt (ArXiv’2020)
  • ResNext (CVPR’2017)
  • SCNet (CVPR’2020)
  • SEResNet (CVPR’2018)
  • ShufflenetV1 (CVPR’2018)
  • ShufflenetV2 (ECCV’2018)
  • MobilenetV2 (CVPR’2018)

1.2.2 支持的人体姿态估计方法

  • DeepPose (CVPR’2014)
  • Wingloss (CVPR’2018)
  • CPM (CVPR’2016)
  • Hourglass (ECCV’2016)
  • SimpleBaseline (ECCV’2018) (Top-Down)
  • HRNet (CVPR’2019) (Top-Down)
  • HRNetv2 (TPAMI’2019)
  • SCNet (CVPR’2020)
  • Associative Embedding (NeurIPS’2017)
  • HigherHRNet (CVPR’2020) ( Bottom-Up )
  • DarkPose (CVPR’2020):(AP:0.789 Coco Keypoint 排名第三 2021.5)
  • UDP (CVPR’2020) : (Unbiased Data Processing 无偏数据处理:AP:0.808 Coco Keypoint 排名第一 2021.5)
  • MSPN (ArXiv’2019)
  • RSN (Residual Steps Network: CCV’2020)
  • HMR (CVPR’2018)
  • Simple 3D Baseline (ICCV’2017)
  • InterNet (ECCV’2020)

1.2.3 支持的数据集

  • COCO (ECCV’2014)
  • COCO-WholeBody (ECCV’2020)
  • MPII (CVPR’2014)
  • MPII-TRB (ICCV’2019)
  • AI Challenger (ArXiv’2017)
  • OCHuman (CVPR’2019)
  • CrowdPose (CVPR’2019)
  • PoseTrack18 (CVPR’2018)
  • MHP (ACM MM’2018)
  • sub-JHMDB (ICCV’2013)
  • Human3.6M (TPAMI’2014)
  • 300W (IMAVIS’2016)
  • WFLW (CVPR’2018)
  • AFLW (ICCVW’2011)
  • COFW (ICCV’2013)
  • OneHand10K (TCSVT’2019)
  • FreiHand (ICCV’2019)
  • RHD (ICCV’2017)
  • CMU Panoptic HandDB (CVPR’2017)
  • InterHand2.6M (ECCV’2020)
  • DeepFashion (CVPR’2016)
  • Animal-Pose (ICCV’2019)
  • Horse-10 (WACV’2021)
  • MacaquePose (bioRxiv’2020)
  • Vinegar Fly (Nature Methods’2019)
  • Desert Locust (Elife’2019)
  • Grévy’s Zebra (Elife’2019)
  • ATRW (ACM MM’2020)

2. UDP (Unbiased Data Processing-2021)

  • IPS: Image Per Second

  • PPS: Person Per Second

  • 影响Human Pose Estimation精度的主要原因:

    • 图像预处理(如:cropping, resizing, rotating and flipping)之后的图像未与原图对齐,在进行坐标系变换时以pixel为单位,从而带来了偏差
    • 有缺陷的关键点格式变换(即编码和解码)方法将导致额外的精度下降
  • 解决方案:

    • 无偏坐标系变换
    • 无偏关键点格式变换
  • 主要贡献:

    • 对于bottom-up方案:UDP同时提高了准确度且减少了运行时间
  • 核心思想

    • 它是一个与模型无关的方法和出色的解决方案,UDP成功地突破了人体姿势估计问题的性能边界,如下图
      MMPose_第1张图片

2.1 研究方法

  • Bottom-up方法
    • 首先检测所有人的关节(这些关节不属于任何人),然后将这些关节组装成人的实例
  • Top-down方法
    • 通过两个处理阶段来获取多人的位姿估计
    • 第一步:通过人的检测器(如:Faster R-CNN)获得人的Bounding Boxes
    • 第二步:在第一步获得的boxes中预测关节(keypoints)
  • 坐标系变换(Coordinate system transformation)
    • 指路在进行某些操作(例如裁剪,调整大小,旋转和翻转)时,在不同坐标系之间数据变换(即关键点坐标和图像矩阵)
  • 关键点格式变换 (Keypoint format transformation)
    • 关键点格式转换(即编码和解码)通常表示关节坐标和热图之间的转换,这种转换已被广泛使用
    • 在训练过程中:将带标注的关节坐标编码为具有高斯分布的热图
    • 在测试过程中:将网络预测的热图解码为关节坐标

2.2 Unbiased Coordinate System Transformation

  • 前提:数据被定义在连续的空间
  • 基本操作:裁剪,调整大小,旋转和翻转
  • 坐标系:
    • 源图像坐标系
    • 网络输入坐标系
    • 网络输出坐标系

2.2.1 连续空间中数据的统一定义

  • 人体姿态估计中的主要数据:
    • 图像矩阵:离散格式
    • 目标关节坐标:连续空间
  • 图像平面表示 (上标p表示以像素为单位,无上标表示以单位长度为单位)
    w = w p − 1 h = h p − 1 w = w^p - 1 \\ h = h^p - 1 w=wp1h=hp1
    MMPose_第2张图片

2.2.2 坐标系变换的概念

  • 变换公式
    k d = T s − > d k s k_d = T_{s -> d}k_s kd=Ts>dks
    MMPose_第3张图片

2.2.3 基本操作的坐标系变换

  • 基本操作
    • 裁剪(cropping)
      MMPose_第4张图片

    • 调整大小(resizing)
      MMPose_第5张图片

    • 旋转(rotating)
      MMPose_第6张图片

    • 翻转 (flipping)
      MMPose_第7张图片

2.2.4 通用坐标系变换

  • 在人体姿态估计中,裁剪和缩放是必须的,翻转和旋转是可选的
  • 网络学习的目标:
    • 从图像矩阵 I i I_i Ii到Keypoint位置 k i k_i ki的映射
    • 变换矩阵 T i − > o T_{i->o} Ti>o
      MMPose_第8张图片
      MMPose_第9张图片
      MMPose_第10张图片

2.3 Unbiased Keypoint Format Transformation

  • 由于关键点(keypoint)坐标不是卷积网络研究的最佳格式,直观上更合适的热图(heatmap)格式被提出并很快被证明是有效的
  • 关键点格式变换:指关键点坐标与热图之间的转换
    • 编码(encoding):从坐标格式变换为热图格式
    • 解码(decoding):从热图格式变换为坐标格式
      H = E n c o d i n g ( k ) k = D o c o d i n g ( H ) H = Encoding(k) \\ k = Docoding(H) H=Encoding(k)k=Docoding(H)
  • 无偏keypoint格式变换的目标:避免在编码和解码变换过程中的精度损失,即满足如下公式
    k = D e c o d i n g ( E n c o d i n g ( k ) ) k = Decoding(Encoding(k)) k=Decoding(Encoding(k))

2.4 代码实现

  • 开源
  • 代码基于MMPose实现
  • 基于以下两个模型实现:
    • HRNet
    • RSN

3. RSN(Residual Steps Network:2020)

  • 开源
  • 论文:Learning Delicate Local Representations for Multi-Person Pose Estimation
  • 目标:研究特征融合(Feature Fusion)和注意力机制(Attention Mechanism)
  • 特点:
    • 对于特征整合,当前主流方法采用层间特征融合 (inter-level feature fusion)
    • 本方法采用层内特征融合(intra-level feature fusion)
      MMPose_第11张图片

3.1 网络结构

MMPose_第12张图片

3.2 感受域 (Receptive Field)

  • RSN比其它网络(如:ResNet, Res2Net和OSNet)具有更大的感受域
  • 更广泛的接受域有助于学习更多判别语义表示,这有利于关键点分类
  • 在 RSB 内部,RSN在具有小间隙感受域的特征之间建立了密集的连接, 深度连接的架构有助于学习精细的局部表示,这对于精确的人体姿势估计至关重要

3.3 姿态优化机(Pose Refi ne Machine)

  • 对于RSN的输出,层内和层间聚合后的特征混合在一起,包含低级精确空间信息和高级判别语义信息
  • 空间信息有利于关键点定位
  • 语义信息有利于关键点分类
    MMPose_第13张图片

4. HRNet (2019)

  • 开源
  • 论文:Deep High-Resolution Representation Learning for Human Pose Estimation
  • 创新点
    • 大多数现有方法是从低分辨率表示恢复高分辨率表示,此低分辨率是由high-to-low分辨率网络产生的
    • 本文在整个处理过程中维持高分辨率表示

你可能感兴趣的:(Pose,深度学习)