AI实战营:MMPose开源算法库

这篇具有很好参考价值的文章主要介绍了AI实战营:MMPose开源算法库。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  • 目录

    RTMPose关键点检测全流程

    MMPose官方可视化工具visualizer

    代码实现:


  • RTMPose关键点检测全流程

    • AI实战营:MMPose开源算法库
  • MMPose预训练模型预测-命令行
    • 预测单张图
      • # HRNet
        python .\demo\topdown_demo_with_mmdet.py .\demo\mmdetection_cfg\faster_rcnn_r50_fpn_coco.py https://download.openmmlab.com/mmdetection/v2.0/faster_rcnn/faster_rcnn_r50_fpn_1x_coco/faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth .\configs\body_2d_keypoint\topdown_heatmap\coco\td-hm_hrnet-w32_8xb64-210e_coco-256x192.py https://download.openmmlab.com/mmpose/top_down/hrnet/hrnet_w32_coco_256x192-c78dce93_20200708.pth --input .\data\test\multi-person.jpeg --output-root .\outputs\B1_HRNet_1 --dev cuda:0 --bbox-thr 0.5 --kpt-thr 0.2 --nms-thr 0.3 --radius 8 --thickness 4 --draw-bbox --draw-heatmap --show-kpt-idx
      • Loads checkpoint by http backend from path: https://download.openmmlab.com/mmdetection/v2.0/faster_rcnn/faster_rcnn_r50_fpn_1x_coco/faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth
        Loads checkpoint by http backend from path: https://download.openmmlab.com/mmpose/top_down/hrnet/hrnet_w32_coco_256x192-c78dce93_20200708.pth
        06/03 20:47:33 - mmengine - WARNING - `Visualizer` backend is not initialized because save_dir is None.  
      • AI实战营:MMPose开源算法库
      • #RTMPose
        python .\demo\topdown_demo_with_mmdet.py .\demo\mmdetection_cfg\faster_rcnn_r50_fpn_coco.py https://download.openmmlab.com/mmdetection/v2.0/faster_rcnn/faster_rcnn_r50_fpn_1x_coco/faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth .\projects\rtmpose\rtmpose\body_2d_keypoint\rtmpose-s_8xb256-420e_coco-256x192.py https://download.openmmlab.com/mmpose/v1/projects/rtmpose/rtmpose-s_simcc-aic-coco_pt-aic-coco_
        420e-256x192-fcb2599b_20230126.pth --input .\data\test\multi-person.jpeg --output-root .\outputs\B1_RTM_1 --d
        evice cuda:0 --bbox-thr 0.5 --kpt-thr 0.5 --nms-thr 0.3 --radius 8 --thickness 4 --draw-bbox --draw-heatmap --show-kpt-idx
        
      • Loads checkpoint by http backend from path: https://download.openmmlab.com/mmdetection/v2.0/faster_rcnn/faster_rcnn_r50_fpn_1x_coco/faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth
        Loads checkpoint by http backend from path: https://download.openmmlab.com/mmpose/v1/projects/rtmpose/rtmpose-s_simcc-aic-coco_pt-aic-coco_420e-256x192-fcb2599b_20230126.pth
        Downloading: "https://download.openmmlab.com/mmpose/v1/projects/rtmpose/rtmpose-s_simcc-aic-coco_pt-aic-coco_420e-256x192-fcb2599b_20230126.pth" to C:\Users\16798/.cache\torch\hub\checkpoints\rtmpose-s_simcc-aic-coco_pt-aic-coco_420e-256x192-fcb2599b_20230126.pth
        100%|██████████████████████████████████████████████████████████████████| 60.8M/60.8M [00:37<00:00, 1.71MB/s]
        06/03 23:04:00 - mmengine - WARNING - `Visualizer` backend is not initialized because save_dir is None.
        d:\workspace\.git\mmpose\mmpose\models\heads\coord_cls_heads\rtmcc_head.py:217: UserWarning: The predicted si
        mcc values are normalized for visualization. This may cause discrepancy between the keypoint scores and the 1D heatmaps.
          warnings.warn('The predicted simcc values are normalized for '
      • AI实战营:MMPose开源算法库
    • 预测视频:直接将--input 换成视频路径即可
      • #HRNet 
        python .\demo\topdown_demo_with_mmdet.py .\demo\mmdetection_cfg\faster_rcnn_r50_fpn_coco.py https://download.openmmlab.com/mmdetection/v2.0/faster_rcnn/faster_rcnn_r50_fpn_1x_coco/faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth .\configs\body_2d_keypoint\topdown_heatmap\coco\td-hm_hrnet-w32_8xb64-210e_coco-256x192.py https://download.openmmlab.com/mmpose/top_down/hrnet/hrnet_w32_coco_256x192-c78dce93_20200708.pth --input .\data\test\mother_wx.mp4 --output-root .\outputs\B1_HRNet_2 --device cuda:0 --bbox-thr 0.5 --kpt-thr 0.2 --nms-thr 0.3 --radius 5 --thickness 2 --draw-bbox --draw-heatmap --show-kpt-idx
        
      • Loads checkpoint by http backend from path: https://download.openmmlab.com/mmdetection/v2.0/faster_rcnn/faster_rcnn_r50_fpn_1x_coco/faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth
        Loads checkpoint by http backend from path: https://download.openmmlab.com/mmpose/top_down/hrnet/hrnet_w32_coco_256x192-c78dce93_20200708.pth
        06/03 23:11:03 - mmengine - WARNING - `Visualizer` backend is not initialized because save_dir is None.
         
      • #TRMPose
        python .\demo\topdown_demo_with_mmdet.py .\demo\mmdetection_cfg\faster_rcnn_r50_fpn_coco.py https://download.openmmlab.com/mmdetection/v2.0/faster_rcnn/faster_rcnn_r50_fpn_1x_coco/faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth projects/rtmpose/rtmpose/body_2d_keypoint/rtmpose-s_8xb256-420e_coco-256x192.py https://download.openmmlab.com/mmpose/v1/projects/rtmpose/rtmpose-s_simcc-aic-coco_pt-aic-coco_420e-256x192-fcb2599b_20230126.pth --input data/test/mother_wx.mp4 --output-root outputs/B1_RTM_2 --device cuda:0 --bbox-thr 0.5 --kpt-thr 0.5 --nms-thr 0.3 --radius 5 --thickness 2 --draw-bbox --draw-heatmap  --show-kpt-idx
        
      • Loads checkpoint by http backend from path: https://download.openmmlab.com/mmdetection/v2.0/faster_rcnn/faster_rcnn_r50_fpn_1x_coco/faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth
        Loads checkpoint by http backend from path: https://download.openmmlab.com/mmpose/v1/projects/rtmpose/rtmpose-s_simcc-aic-coco_pt-aic-coco_420e-256x192-fcb2599b_20230126.pth
        06/03 23:14:39 - mmengine - WARNING - `Visualizer` backend is not initialized because save_dir is None.
        d:\workspace\.git\mmpose\mmpose\models\heads\coord_cls_heads\rtmcc_head.py:217: UserWarning: The predicted si
        mcc values are normalized for visualization. This may cause discrepancy between the keypoint scores and the 1D heatmaps.
          warnings.warn('The predicted simcc values are normalized for '
  • MMPose预测训练模型预测-Python API
    • import cv2
      import numpy as np
      from PIL import Image
      import matplotlib.pyplot as plt
      import torch
      import mmcv
      from mmcv import imread
      import mmengine
      from mmengine.registry import init_default_scope
      from mmpose.apis import inference_topdown
      from mmpose.apis import init_model as init_pose_estimator
      from mmpose.evaluation.functional import nms
      from mmpose.registry import VISUALIZERS
      from mmpose.structures import merge_data_samples
      from mmdet.apis import inference_detector, init_detector
      
      # 设备
      device = torch.device('cuda') if torch.cuda.is_available() else torch.device(
          'cpu')
      print('device:', device)
      # 载入待测图片
      img_path = 'data/test/multi-person.jpeg'
      # 打开图片
      Image.open(img_path)
      # 构建目标检测模型
      # Faster RCNN
      detector = init_detector(
          'demo/mmdetection_cfg/faster_rcnn_r50_fpn_coco.py',
          'https://download.openmmlab.com/mmdetection/v2.0/faster_rcnn/faster_rcnn_r50_fpn_1x_coco/faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth',
          device=device)
      # RTMPose-Tiny
      detector = init_detector(
          'projects/rtmpose/rtmdet/person/rtmdet_m_640-8xb32_coco-person.py',
          'https://download.openmmlab.com/mmpose/v1/projects/rtmpose/rtmdet_m_8xb32-100e_coco-obj365-person-235e8209.pth',
          device=device)
      # 构建人体姿态估计模型
      pose_estimator = init_pose_estimator(
          'configs/body_2d_keypoint/topdown_heatmap/coco/td-hm_hrnet-w32_8xb64-210e_coco-256x192.py',
          'https://download.openmmlab.com/mmpose/top_down/hrnet/hrnet_w32_coco_256x192-c78dce93_20200708.pth',
          device=device,
          cfg_options={'model': {
              'test_cfg': {
                  'output_heatmaps': True
              }
          }})
      # 预测-目标检测
      init_default_scope(detector.cfg.get('default_scope', 'mmdet'))
      #获取目标检测预测结果
      detect_result = inference_detector(detector, img_path)
      detect_result.keys()
      # 预测类别
      print(detect_result.pred_instances.labels)
      # 置信度
      print(detect_result.pred_instances.scores)
      # 框坐标:左上角X坐标、左上角Y坐标、右下角X坐标、右下角Y坐标
      print(detect_result.pred_instances.bboxes)
      # 置信度阈值过滤,获得最终目标检测预测结果
      # 置信度阈值
      CONF_THRES = 0.5
      pred_instance = detect_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 == 0, pred_instance.scores > CONF_THRES)]
      bboxes = bboxes[nms(bboxes, 0.3)][:, :4]
      print(bboxes)
      # 预测-关键点
      # 获取每个 bbox 的关键点预测结果
      pose_results = inference_topdown(pose_estimator, img_path, bboxes)
      print(len(pose_results))
      # 把多个bbox的pose结果打包到一起
      data_samples = merge_data_samples(pose_results)
      print(data_samples.keys())
      # 预测结果-关键点坐标
      print(data_samples.pred_instances.keypoints.shape)
      # 索引为 0 的人,每个关键点的坐标
      print(data_samples.pred_instances.keypoints[0,:,:])
      # 预测结果-关键点热力图
      # 每一类关键点的预测热力图
      print(data_samples.pred_fields.heatmaps.shape)
      idx_point = 13
      heatmap = data_samples.pred_fields.heatmaps[idx_point,:,:]
      print(heatmap.shape)
      # 索引为 idx 的关键点,在全图上的预测热力图
      plt.imshow(heatmap)
      plt.show()

      AI实战营:MMPose开源算法库

    • MMPose官方可视化工具visualizer

      • # 半径
        pose_estimator.cfg.visualizer.radius = 10
        # 线宽
        pose_estimator.cfg.visualizer.line_width = 8
        visualizer = VISUALIZERS.build(pose_estimator.cfg.visualizer)
        # 元数据
        visualizer.set_dataset_meta(pose_estimator.dataset_meta)
        # 可视化
        img = mmcv.imread(img_path)
        img = mmcv.imconvert(img, 'bgr', 'rgb')
        
        img_output = visualizer.add_datasample(
            'result',
            img,
            data_sample=data_samples,
            draw_gt=False,
            draw_heatmap=True,
            draw_bbox=True,
            show_kpt_idx=True,
            show=False,
            wait_time=0,
            out_file='outputs/B2.jpg')
        print(img_output.shape)
        plt.figure(figsize=(10, 10))
        plt.imshow(img_output)
        plt.show()

        AI实战营:MMPose开源算法库文章来源地址https://www.toymoban.com/news/detail-470814.html

  • 多人检测问题
    • AI实战营:MMPose开源算法库
  • 代码实现:

    • GitHub - guwuyue/OpenMMLabCamp: OpenMMLabCamp

到了这里,关于AI实战营:MMPose开源算法库的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MMPose姿态估计+人体关键点识别效果演示

    1.1 背景 首先姿态估计属于计算机视觉领域的一个基础研究方向。MMPose是基于Pytorch的姿态估计开源算法库,功能全,涵盖的算法多。 1.2 姿态估计的任务分类 维度 :预测的是2D还是3D姿态。 输入格式 :图片 or 视频 姿态的表示形式 :关键点 or 形状等 目标类型 :全身 or 人脸

    2024年01月20日
    浏览(45)
  • 从零开始的目标检测和关键点检测(三):训练一个Glue的RTMPose模型

    从零开始的目标检测和关键点检测(一):用labelme标注数据集 从零开始的目标检测和关键点检测(二):训练一个Glue的RTMDet模型 1、数据集类型即coco格式的数据集,在dataset_info声明classes、keypoint_info(关键点)、skeleton_info(骨架信息)。 2、训练参数 3、模型定义、数据预处理、

    2024年02月06日
    浏览(40)
  • mmpose关键点(一):评价指标(PCK,OKS,mAP)

    由于,近期项目需要引入关键点做一些方向逻辑的判断,在此记录一些实验与经典论文方法。首先,我们先了解一下关键点估计的评价指标。 PCK表示关键点正确估计的比例 计算检测的关键点与其对应的groundtruth间的归一化距离小于设定阈值的比例。在MPII 中是以头部长度(he

    2024年02月04日
    浏览(34)
  • 【mmpose】从openmmlab官方文档看mmpose架构设计,模块组成,快速上手实现关键点检测效果(动物,人体,手部等)

    MMPOSE 架构设计 MMPose 1.0 与之前的版本有较大改动,对部分模块进行了重新设计和组织,降低代码冗余度,提升运行效率,降低学习难度。使用 MMPose 1.0 时开发者会关心的内容: 整体代码架构与设计逻辑; 如何用config文件管理模块; 如何使用自定义数据集; 如何添加新的模

    2024年02月08日
    浏览(51)
  • 实时多人关键点检测系统:OpenPose | 开源日报 0907

    Stars: 27.9k License: NOASSERTION OpenPose 是一个开源项目,它是第一个能够在单个图像上联合检测人体、手部、面部和脚步关键点 (总共 135 个关键点) 的实时多人系统。该项目具有以下核心优势: 2D 实时多人关键点检测功能 支持 15,18 或 25 个身体/足迹关键点估计,并包括 6 个足迹

    2024年02月07日
    浏览(39)
  • 人脸与关键点检测:YOLO5Face实战

    Github:https://github.com/deepcam-cn/yolov5-face 导读:居然花了一天时间把该项目复现,主要是折腾在数据集格式上,作者居然在train2yolo中居然把Widerface训练集(12000+张图)重新一张一张保存,不这么还出bug,原因是无法读到数据缓存;在评估阶段,val2yolo也没用上。搬运工,一个字,

    2024年02月06日
    浏览(48)
  • 【一步步开发AI运动小程序】十一、人体关键点跳跃追踪

    随着人工智能技术的不断发展,阿里体育等IT大厂,推出的“乐动力”、“天天跳绳”AI运动APP,让 云上运动会、线上运动会、健身打卡、AI体育指导 等概念空前火热。那么,能否将这些在APP成功应用的场景搬上小程序,分享这些概念的红利呢?本系列文章就带您一步一步从

    2024年02月07日
    浏览(59)
  • pytorch实现AI小设计-1:Resnet50人脸68关键点检测

            本项目是AI入门的应用项目,后续可以补充内容完善作为满足个人需要。通过构建自己的人脸数据集,此项目训练集为4580张图片,测试集为2308张图片,使用resnet50网络进行训练,最后进行效果展示。本项目也提供了量化内容,便于在硬件上部署。         研究A

    2024年01月18日
    浏览(42)
  • MMPose(openmmlab AI实战营二期第一节)

    链接:人体关键点检测与MMPose_哔哩哔哩_bilibili 赶了个进度,实际上没听到,一个方向被浓缩成50分钟是有点难度。后续有需要再回顾吧 人体姿态估计:识别人体关键点坐标。模式识别任务,难点是始终在变化。以关键点连线,2/3D中还原人体姿态。PoseC3D:基于人体姿态识别行

    2024年02月07日
    浏览(37)
  • 【深度学习】YOLOv8训练过程,YOLOv8实战教程,目标检测任务SOTA,关键点回归

    https://github.com/ultralytics/ultralytics 官方教程:https://docs.ultralytics.com/modes/train/ 更建议下载代码后使用 下面指令安装,这样可以更改源码,如果不需要更改源码就直接pip install ultralytics也是可以的。 这样安装后,可以直接修改yolov8源码,并且可以立即生效。此图是命令解释: 安

    2024年02月10日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包