MMPOSE

MMPOSE是一个开源的人体姿态估计工具箱,由香港中文大学推出。它是基于PyTorch框架实现的,提供了一系列先进的人体姿态估计算法和模型,包括单人、多人、2D、3D等多种姿态估计任务。

MMPOSE工具箱提供了一个统一的接口,使得用户可以方便地加载模型、输入数据和输出结果。它还提供了丰富的数据增强和模型优化策略,帮助用户提高模型的准确性和鲁棒性。

MMPOSE支持的人体姿态估计算法包括:

  • OpenPose:一种基于卷积神经网络的多人2D姿态估计算法。
  • HRNet:一种高分辨率的2D人体姿态估计算法。
  • SimpleBaseline:一种简单有效的单人2D姿态估计算法。
  • Top-Down:一种基于人体检测的多人2D姿态估计算法。
  • Bottom-Up:一种基于人体关键点的多人2D姿态估计算法。
  • HMR:一种端到端的3D人体姿态估计算法。

除了提供算法和模型外,MMPOSE还提供了一些实用的工具和示例,如可视化工具、数据集加载器和训练脚本,帮助用户更好地理解和使用该工具箱。

总的来说,MMPOSE是一个功能强大、易于使用的人体姿态估计工具箱,适用于各种应用场景,如人机交互、运动分析、人体动作捕捉等。

 
 
 

MMPOSE是一个基于PyTorch实现的目标姿态估计框架,configs文件主要是用于配置训练和测试的参数,包括网络架构、数据集路径、学习率、批量大小等等。下面简单介绍一下MMPOSE的configs文件。

MMPOSE的configs文件通常由两个主要部分组成:default和具体任务的配置。default是基础配置,包含了各种共享的参数,如数据集、模型架构、训练优化器、调试模式等。而任务特定的配置则包含了特定任务的参数,如数据增强方式、训练数据集路径、评估方式等。

以顶部

# fp16 settings fp16 = None optimizer_config = dict(type='adam', lr=0.001) optimizer = dict(type='Adam', lr=0.001, weight_decay=0.0001) lr_config = dict(policy='step', step=[6, 8]) total_epochs = 10 # data settings data_root = 'data/coco/' data = dict( samples_per_gpu=4, workers_per_gpu=4, train=dict( type='TopDownCocoDataset', ann_file=data_root + 'annotations/person_keypoints_train2017.json', img_prefix=data_root + 'train2017/', data_cfg=dict( num_joints=17, heatmap_size=[64, 64], num_output_channels=17, joint_names=[ 'nose', 'left_eye', 'right_eye', 'left_ear', 'right_ear', 'left_shoulder', 'right_shoulder', 'left_elbow', 'right_elbow', 'left_wrist', 'right_wrist', 'left_hip', 'right_hip', 'left_knee', 'right_knee', 'left_ankle', 'right_ankle' ], coco_dir=data_root), pipeline=[ dict(type='LoadImageFromFile'), dict(type='TopDownRandomFlip', flip_prob=0.5), dict( type='TopDownRandomAffine', scale_range=[0.7, 1.3], rot_range=[-40, 40], shear_range=[-40, 40]), dict( type='TopDownGetRandomColor', color_jitter=dict( brightness=0.3, contrast=0.3, saturation=0.3, hue=0.1)), dict( type='TopDownGenerateTarget', sigma=2), dict( type='Collect', keys=['img', 'target', 'target_weight'], meta_keys=[ 'image_file', 'joints_3d', 'joints_3d_visibility', 'center', 'scale', 'rotation', 'flip_pairs', 'flip_index']), dict(type='ToTensor', keys=['img', 'target', 'target_weight']) ]), val=dict( type='TopDownCocoDataset', ann_file=data_root + 'annotations/person_keypoints_val2017.json', img_prefix=data_root + 'val2017/', data_cfg=dict( num_joints=17, heatmap_size=[64, 64], num_output_channels=17, joint_names=[ 'nose', 'left_eye', 'right_eye',
 
 
 
 

"COCO" 指的是 "Common Objects in Context",它是一个用于目标检测、语义分割和实例分割等计算机视觉任务的数据集。在这些任务中,评估模型的性能通常使用 COCO 指标,包括以下指标:

  1. 平均精度(Average Precision,AP):用于衡量模型对每个类别的准确度。对于每个类别,AP 值根据精度和召回率曲线下面积计算得出。
  2. 平均重召回率(Average Recall,AR):用于衡量模型的召回率。与 AP 类似,AR 值根据召回率和每个类别下的 IOU 阈值计算得出。
  3. 中介重召回率(Intermediate Recall,IR):也用于衡量模型的召回率,但与 AR 不同,IR 不需要在所有 IOU 阈值上计算。相反,它仅在几个预定义的 IOU 阈值上计算。
  4. 最大平均精度(Maximum Average Precision,MAP):它是所有类别 AP 值的平均值。对于目标检测任务,通常使用 MAP 作为评估模型性能的主要指标。

这些指标在计算机视觉任务中非常常见,并且在许多竞赛和论文中都被广泛使用。

 

{"mode": "train", "epoch": 300, "iter": 2400, "lr": 1e-05, "memory": 11987, "data_time": 0.00021, "loss_hms": 0.00027, "loss_ofs": 5e-05, "loss": 0.00032, "time": 0.62756}

看起来这是机器学习模型训练过程的日志输出。以下是每个值可能表示的内容:

  • “模式”: “训练” - 指示模型当前处于训练模式。
  • “epoch”:2 - 表示模型已完成 2 个周期的训练。
  • “iter”:2050 - 表示模型在当前纪元内完成了 2050 次迭代(或批次)。
  • “lr”:0.001 - 表示训练期间使用的学习率。
  • “memory”:11987 - 表示训练过程当前正在使用的内存量(以 MB 为单位)。
  • “data_time”:0.00017 - 表示加载当前一批数据所花费的时间(以秒为单位)。
  • “loss_hms”:0.00088 - 指示当前批次的损失函数的“hms”分量的值。
  • “loss_ofs”:0.00027 - 指示当前批次的损失函数的“ofs”分量的值。
  • “损失”:0.00115 - 表示当前批次的总损失(HMS 和 ofs 组件的总和)。
  • “time”:0.62177 - 指示完成当前批处理所需的时间(以秒为单位)。

此日志输出可能是在训练过程中生成的一组较大日志的一部分。此日志中的值可用于在训练期间监视模型的进度,并根据需要对训练过程进行调整。

 

 

{"mode": "val", "epoch": 300, "iter": 8000, "lr": 1e-05, "AP": 0.69708, "AP .5": 0.8727, "AP .75": 0.75401, "AR": 0.77014, "AR .5": 0.93541, "AR .75": 0.82148, "AP(E)": 0.7718, "AP(M)": 0.7073, "AP(H)": 0.6014}

这似乎是在对象检测任务上训练的计算机视觉模型的验证结果。以下是每个指标的含义:

  • mode:这可能是指评估模式,可以是“train”或“val”(“validation”的缩写)。
  • epoch:这是指评估模型的训练周期。
  • iter:这是指模型在评估之前训练的迭代次数。
  • LR:这是指训练期间使用的学习率。
  • AP:这代表“平均精度”,是评估对象检测模型的常用指标。它衡量模型在不同召回级别检测对象的平均准确性。具体来说,AP测量精度-召回率曲线下的面积。
  • AP .5:这是当并集交叉 (IoU) 阈值设置为 0.5 时的平均精度。
  • AP .75:这是 IoU 阈值设置为 0.75 时的平均精度。
  • AR:这代表“平均召回率”,衡量模型在不同精度水平上检测物体的平均精度。具体来说,AR测量召回精度曲线下的面积。
  • AR .5:这是 IoU 阈值设置为 0.5 时的平均召回率。
  • AR .75:这是 IoU 阈值设置为 0.75 时的平均召回率。
  • AP(E):这是“易于”检测的物体的平均精度。
  • AP(M):这是检测难度为“中等”的物体的平均精度。
  • AP(H):这是“难以”检测的对象的平均精度。

总体而言,该验证结果表明该模型在对象检测任务上表现相当好,平均精度为 0.69708,平均召回率为 0.77014。然而,它可能在检测难以检测的物体方面更加困难,如较低的AP(H)分数0.6014所示。

 
 

MMPOSE是一个基于PyTorch和MMDetection的开源框架,用于实现姿态估计任务。该框架支持多种数据集,包括但不限于以下几种:

  1. COCO:COCO数据集是一个广泛使用的目标检测、图像分割和姿态估计数据集,包含超过33万张图像和超过25万个人体姿态标注。

  2. MPII:MPII数据集是一个用于人体姿态估计的数据集,包含超过2万张图像和超过4万个人体姿态标注。

  3. AIC:AIC数据集是一个由中国科学院自动化研究所创建的数据集,包含来自公共场所和体育馆的超过10万张图像和超过22万个人体姿态标注。

  4. PoseTrack:PoseTrack数据集是一个用于多人姿态估计和跟踪的数据集,包含来自视频的超过5,000个姿态序列和超过12万个人体姿态标注。

  5. CrowdPose:CrowdPose数据集是一个专门用于拥挤场景下的多人姿态估计的数据集,包含来自城市街道和体育场馆的超过20万张图像和超过50万个人体姿态标注。

此外,MMPOSE还支持自定义数据集,只需要按照指定的格式准备好数据集,就可以进行模型训练和测试。

 
 

MMPOSE的checkpoints文件夹包含了已经训练好的姿态估计模型权重文件。这些权重文件可以用于进行姿态估计任务的推断或者用作预训练模型进一步训练。

在checkpoints文件夹中,每个子文件夹都对应一个特定的模型结构和训练任务。例如,hrnet文件夹包含了基于HRNet模型的姿态估计模型,topdown_coco文件夹包含了基于自顶向下方法的COCO数据集上的姿态估计模型。

每个子文件夹中通常包含一个README.md文件,用于提供更详细的模型说明和使用方法。另外,每个子文件夹中还包含一个或多个.pth文件,这些文件是已经训练好的模型权重文件,可以直接加载到对应的模型结构中进行推断或者进一步训练。

需要注意的是,由于不同的模型结构和任务有不同的训练数据集和训练策略,因此不能保证不同子文件夹中的模型权重文件是通用的。在使用这些权重文件时,需要确认所使用的模型结构和训练任务与相应的权重文件匹配。

 

MMPOSE支持多种主干网用于姿态估计任务,这些主干网可以分为两类:基于卷积神经网络(CNN)的主干网和基于Transformer的主干网。

基于CNN的主干网包括:

  1. ResNet:ResNet是一个非常流行的CNN架构,它采用了残差块来解决深度神经网络中的梯度消失和爆炸问题。MMPOSE支持ResNet-50和ResNet-101作为主干网。

  2. HRNet:HRNet是一个新型的CNN架构,它采用了高分辨率特征融合的方法来保持高分辨率的特征图,并在多个尺度上进行特征提取。HRNet被证明在姿态估计任务中具有优秀的性能。MMPOSE支持HRNet-W32、HRNet-W48和HRNet-W64作为主干网。

基于Transformer的主干网包括:

  1. DETR:DETR是一种基于Transformer的目标检测模型,它将目标检测问题转化为一个序列到序列的问题,使用Transformer编码器来提取特征。MMPOSE在DETR的基础上实现了Transformer编码器的姿态估计模型。

  2. Swin Transformer:Swin Transformer是一个新型的Transformer架构,它引入了跨阶段的特征金字塔结构和窗口交换机制,可以有效提高特征提取的效率和准确性。MMPOSE支持Swin Transformer作为姿态估计模型的主干网。

需要注意的是,不同的主干网架构有着不同的计算复杂度和性能表现,使用时需要根据具体的应用场景和需求进行选择。

 
 
 
posted @ 2023-03-23 15:31  GQZxn  阅读(569)  评论(0)    收藏  举报