MMpose(v1.2.0)中用MMyolo(v0.6.0)进行自顶向下的人体姿态估计,萌新初尝试

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


提示:以下是本篇文章正文内容,下面案例可供参考

尝试一下用mmyolo在最新的1.2.0版本的mmpose中进行自顶向下的估计。

一、在MMpose中下载MMyolo

mim install “mmyolo”

二、下载权重及模型,以YOLOv5s为例

在这里插入图片描述
放到MMpose任意位置当中

在这里插入图片描述
放入到MMpose中的demo当中

在这里插入图片描述

三、在MMyolo中下载default_runtime和det_p5_tta

在这里插入图片描述

放入到MMpose config/_base_当中,把MMyolo下载到的default_runtime改一下名称(我这里改为default_runtime2)

在这里插入图片描述

四、修改模型的路径

回到刚刚下载的yolov5模型

在这里插入图片描述
在yolov5_s-v61_syncbn_fast_8xb16-300e_coco.py文件当中修改_base_路径

_base_ = '你自己的路径/demo/mmyolo/yolov5_s-v61_syncbn_8xb16-300e_coco.py'

在yolov5_s-v61_syncbn_8xb16-300e_coco.py文件当中修改_base_路径

_base_ = ['你自己的路径/configs/_base_/default_runtime2.py',
          '你自己的路径/configs/_base_/det_p5_tta.py']

五、在topdown_demo_with_mmdet.py中运行

首先引入

from mmengine.registry import init_default_scope

在process_one_image中加入代码

def process_one_image(args,
                      img,
                      detector,
                      pose_estimator,
                      visualizer=None,
                      show_interval=0):
    """Visualize predicted keypoints (and heatmaps) of one image."""

    # predict bbox
    
    init_default_scope(detector.cfg.get('default_scope', 'mmyolo'))  # 新加的
    
    det_result = inference_detector(detector, img)
    pred_instance = det_result.pred_instances.cpu().numpy()
    bboxes = np.concatenate(
        (pred_instance.bboxes, pred_instance.scores[:, None]), axis=1)
    bboxes = bboxes[np.logical_and(pred_instance.labels == args.det_cat_id,
                                   pred_instance.scores > args.bbox_thr)]
    bboxes = bboxes[nms(bboxes, args.nms_thr), :4]

    # predict keypoints
    pose_results = inference_topdown(pose_estimator, img, bboxes)
    data_samples = merge_data_samples(pose_results)

    # show the results
    if isinstance(img, str):
        img = mmcv.imread(img, channel_order='rgb')
    elif isinstance(img, np.ndarray):
        img = mmcv.bgr2rgb(img)

    if visualizer is not None:
        visualizer.add_datasample(
            'result',
            img,
            data_sample=data_samples,
            draw_gt=False,
            draw_heatmap=args.draw_heatmap,
            draw_bbox=args.draw_bbox,
            show_kpt_idx=args.show_kpt_idx,
            skeleton_style=args.skeleton_style,
            show=args.show,
            wait_time=show_interval,
            kpt_thr=args.kpt_thr)

    # if there is no instance detected, return None
    return data_samples.get('pred_instances', None)

这样就可以用YOLOv5模型做自顶向下的人姿态估计了

六、效果

在这里插入图片描述
上图是用FaterRCNN得到的检测框,下图使用YOLOv5得到的检测框
在这里插入图片描述

  • 12
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要训练自己的数据集,你可以参考mmpose的技术文档和教程。首先,你需要根据自己的数据集形式改进数据预处理。你可以仿照coco数据集的类来写一个自定义数据类,这样可以更好地适应你的数据集。 第一步是数据预处理,你可以根据自己的数据集形式进行改进。在mmpose中,数据集被随机按8:1:1的比例分为训练集、验证集和测试集。如果你已经将数据集自行分好类,那么只需要根据自己的具体情况进行修改即可。 第二步是训练,mmpose通常使用类似coco数据集的json文件格式来读取数据和标注。但是当我们使用labelme去标注自己的训练集时,只能获取每张图片的标注json文件。在这种情况下,你需要了解coco的关键点json文件格式,并学会如何获取自己训练集的json文件。 总之,要训练自己的数据集,你需要根据mmpose的技术文档和教程,进行数据预处理和训练过程。确保你按照自己的数据集形式改进代码,并了解如何获取并使用自己训练集的json文件。通过这些步骤,你可以训练出适合自己数据集的mmpose模型。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [mmpose训练自己数据集](https://blog.csdn.net/sarrr/article/details/124252437)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [mmpose关键点(二):构建自己的训练集](https://blog.csdn.net/litt1e/article/details/126420465)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值