十分钟快速上手MMpose-实现全身关键点识别

这是我自己做项目的时候用到一些积累经验

参考官方文档

20 分钟上手 MMPose — MMPose 1.3.1 文档
使用现有模型进行推理 — MMPose 1.3.1 文档

基于现有模型进行推理

随着很多模型都配置了预训练模型、简单部署等优化,其实没必要去学习很深的项目结构,只要能用就满足大部分人的要求了。

推理器

mmpose内置了一个API叫做推理器 MMPoseInferencer,这个可以快速的调用想使用的模型,用户可以使用所有的MMpose支持的模型来进行图像、视频进行模型推理,并且实现推理结果的自动化,并方便用户保存预测结果

姿态估计任务

from mmpose.apis import MMPoseInferencer  # 导入推理器

img_path = 'tests/data/coco/000000000785.jpg'   # 将img_path替换给你自己的路径

# 使用模型别名创建推理器 模型别名是预制好的模型名称 
inferencer = MMPoseInferencer('human')

# MMPoseInferencer采用了惰性推断方法,在给定输入时创建一个预测生成器
result_generator = inferencer(img_path, show=True)
result = next(result_generator)

result 变量 是一个包含两个键值 visualizationpredictions 的字典
visualization 键对应的是列表

  • 包含可视化结果,例如输入图像、估计姿态的标记,以及可选的预测热图。
  • 如果没有指定 return_vis 参数,该列表将保持为空

'predictions' 键对应的值是:

  • 一个包含每个检测实例的预估关键点的列表。

以上是什么意思呢?以下逐行解释:

初始化

inferencer = MMPoseInferencer('human')

创建了一个MMPoseInferencer对象,该对象接受一个字符串做为输入这个字符串代表一个预设好的模型。

模型由两部分组成,第一部分是配置文件,一般是.py文件,其中按照mmlab的规则,对模型的训练过程、数据集标注、一些针对数据集的处理流水线等参数。
第二部分是权重文件,.pth文件,就是代表预训练模型的w值,通过该模型可以实现当前训练的效果。

human就是一个预设好的模型名称,代表了一个配置文件和一个权重文件,此时创建了一个对人体关键点进行识别的推理器。

推理

result_generator = inferencer(img_path, show=True)

这句代表的意思是,通过创建的推理器,进行推理,img_path就是源图片的位置,show==true代表会弹出可视化窗口。如下图所示。一个手部识别的示例

result

result 指的是执行的结果,根据mmlab的惯例应该是一个字典文件。

defaultdict(<class 'list'>, {'visualization': [], 'predictions': [[{'keypoints': [[573.6409301757812, 81.25, -168.97557067871094], [472.22808837890625, 25.0, -238.6968994140625], [579.979248046875, 0.0, -181.6521759033203], [605.3324584960938, 25.0, -187.990478515625], [465.8897705078125, -18.75, -207.00538635253906], [415.183349609375, -18.75, -251.37350463867188], [415.183349609375, -31.25, -238.6968994140625], [573.6409301757812, 12.5, -162.63726806640625], [421.5216369628906, 18.75, -308.4182434082031], [421.5216369628906, -25.0, -264.05010986328125], [415.183349609375, -56.25, -232.3585968017578], [567.3026123046875, 6.25, -162.63726806640625], [421.5216369628906, 12.5, -302.0799255371094], [598.994140625, 12.5, -207.00538635253906], [592.6558227539062, 25.0, -187.990478515625], [579.979248046875, 12.5, -194.3287811279297], [427.8599548339844, 6.25, -308.4182434082031], [598.994140625, -6.25, -200.66708374023438], [592.6558227539062, 43.75, -207.00538635253906], [592.6558227539062, -31.25, -194.3287811279297], [586.3175048828125, 0.0, -232.3585968017578], [332.785400390625, -53.00190353393555, -149.96066284179688], [415.183349609375, -59.25190353393555, -143.6223602294922], [472.22808837890625, -59.25190353393555, -137.2840576171875], [522.9345092773438, -53.00190353393555, -175.31387329101562], [345.4620056152344, -40.50190353393555, -149.96066284179688], [345.4620056152344, -59.25190353393555, -156.29896545410156], [345.4620056152344, -84.25190734863281, -162.63726806640625], [427.8599548339844, -90.50190734863281, -175.31387329101562], [389.83013916015625, -46.75190353393555, -181.6521759033203], [358.13861083984375, -59.25190353393555, -187.990478515625], [332.785400390625, -78.00190734863281, -200.66708374023438], [415.183349609375, -90.50190734863281, -213.34368896484375], [402.5067443847656, -46.75190353393555, -207.00538635253906], [364.4769287109375, -53.00190353393555, -219.68199157714844], [345.4620056152344, -78.00190734863281, -238.6968994140625], [427.8599548339844, -84.25190734863281, -245.0352020263672], [396.1684265136719, -46.75190353393555, -232.3585968017578], [370.8152160644531, -59.25190353393555, -245.0352020263672], [370.8152160644531, -65.50190734863281, -264.05010986328125], [434.1982421875, -71.75190734863281, -270.388427734375], [554.6260375976562, -46.75190353393555, -232.3585968017578]], 'keypoint_scores': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.49745672941207886, 0.3957699239253998, 0.4706900119781494, 0.5557132363319397, 0.39454182982444763, 0.4823494851589203, 0.5479313135147095, 0.7285355925559998, 0.42127925157546997, 0.5051830410957336, 0.7590689659118652, 0.8057553768157959, 0.4927248954772949, 0.6098707914352417, 0.7550918459892273, 0.684838593006134, 0.5013595223426819, 0.7095600366592407, 0.8371286392211914, 0.6427437663078308, 0.7080170512199402], 'bbox': ([303.62921142578125, 88.0114517211914, 628.1503295898438, 325.99932861328125],), 'bbox_score': 0.99953127, 'rel_root_depth': -46.75190353393555, 'hand_type': [0, 1]}]]})

想要什么数据从其中获取就可以了。

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Stealmoon_9

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值