MMPose理解

MMPose理解

  • 1. MMPose是什么
  • 2. 编解码器
    • 2.1 编码器
    • 2.2 解码器

1. MMPose是什么

  • MMPose 是一款基于 Pytorch 的姿态估计开源工具箱,是 OpenMMLab 项目的成员之一,包含了丰富的 2D 多人姿态估计、2D 手部姿态估计、2D 人脸关键点检测、133关键点全身人体姿态估计、动物关键点检测、服饰关键点检测等算法以及相关的组件和模块。
  • MMPose 由 8 个主要部分组成,apis、structures、datasets、codecs、models、engine、evaluation 和 visualization。
    • apis 提供用于模型推理的高级 API
    • structures 提供 bbox、keypoint 和 PoseDataSample 等数据结构
    • datasets 支持用于姿态估计的各种数据集
      • transforms 包含各种数据增强变换
    • codecs 提供姿态编解码器:编码器用于将姿态信息(通常为关键点坐标)编码为模型学习目标(如热力图),解码器则用于将模型输出解码为姿态估计结果
    • models 以模块化结构提供了姿态估计模型的各类组件
      • pose_estimators 定义了所有姿态估计模型类
      • data_preprocessors 用于预处理模型的输入数据
      • backbones 包含各种骨干网络
      • necks 包含各种模型颈部组件
      • heads 包含各种模型头部
      • losses 包含各种损失函数
    • engine 包含与姿态估计任务相关的运行时组件
      • hooks 提供运行时的各种钩子
    • evaluation 提供各种评估模型性能的指标
    • visualization 用于可视化关键点骨架和热力图等信息

2. 编解码器

  • 在关键点检测任务中,根据算法的不同,需要利用标注信息,生成不同格式的训练目标,比如归一化的坐标值、一维向量、高斯热图等。同样的,对于模型输出的结果,也需要经过处理转换成标注信息格式。我们一般将标注信息到训练目标的处理过程称为编码,模型输出到标注信息的处理过程称为解码
  • 编码和解码是一对紧密相关的互逆处理过程。在 MMPose 早期版本中,编码和解码过程往往分散在不同模块里,使其不够直观和统一,增加了学习和维护成本。
  • MMPose 1.0 中引入了新模块编解码器(Codec) ,将关键点数据的编码和解码过程进行集成,以增加代码的友好度和复用性。
  • 编解码器在工作流程中所处的位置如下所示:
    MMPose理解_第1张图片
  • 一个编解码器主要包含两个部分:
    • 编码器
    • 解码器

2.1 编码器

  • 编码器主要负责将处于输入图片尺度的坐标值,编码为模型训练所需要的目标格式,主要包括:
    • 归一化的坐标值:用于 Regression-based 方法
    • 一维向量:用于 SimCC-based 方法
    • 高斯热图:用于 Heatmap-based 方法
  • 以 Regression-based 方法的编码器为例:

2.2 解码器

你可能感兴趣的:(Pose,1024程序员节)