精华内容
下载资源
问答
  • MMPose

    2021-05-26 14:51:26
    MMPose1. 简介1.1 功能列表 1. 简介 MMPose代码 MMPose文档 1.1 功能列表

    1. 简介

    1.1 主要功能

    • 支持各种主流的人体姿态估计(2D多人姿态估计、2D Hand姿态估计、133个KeyPoints的人体姿态估计、3D人体网格恢复)
    • 更高的效率的准确率:实现多个先进的深度学习模型、包括top-down和bottom-up方法
    • 与流行的codebase相比,有更快的训练速度和更高的准确率
    • 支持多种数据集:COCO, AIC, MPII, MPII-TRB, OCHuman等
    • 精心的设计,测试和文档

    1.2 基本概念

    • 人体姿态估计的任务包括:关键点定位和分类 (keypoint localization and classfication)
    • 空间信息(Spatial information):有利于定位任务
    • 语义信息(Semantic information):有利于分类任务

    1.2.1 支持的骨干网络(用于特征提取)

    • AlexNet (NeurIPS’2012)
    • VGG (ICLR’2015)
    • HRNet (CVPR’2019)
    • ResNet (CVPR’2016)
    • ResNetV1D (CVPR’2019)
    • ResNeSt (ArXiv’2020)
    • ResNext (CVPR’2017)
    • SCNet (CVPR’2020)
    • SEResNet (CVPR’2018)
    • ShufflenetV1 (CVPR’2018)
    • ShufflenetV2 (ECCV’2018)
    • MobilenetV2 (CVPR’2018)

    1.2.2 支持的人体姿态估计方法

    • DeepPose (CVPR’2014)
    • Wingloss (CVPR’2018)
    • CPM (CVPR’2016)
    • Hourglass (ECCV’2016)
    • SimpleBaseline (ECCV’2018) (Top-Down)
    • HRNet (CVPR’2019) (Top-Down)
    • HRNetv2 (TPAMI’2019)
    • SCNet (CVPR’2020)
    • Associative Embedding (NeurIPS’2017)
    • HigherHRNet (CVPR’2020) ( Bottom-Up )
    • DarkPose (CVPR’2020):(AP:0.789 Coco Keypoint 排名第三 2021.5)
    • UDP (CVPR’2020) : (Unbiased Data Processing 无偏数据处理:AP:0.808 Coco Keypoint 排名第一 2021.5)
    • MSPN (ArXiv’2019)
    • RSN (Residual Steps Network: CCV’2020)
    • HMR (CVPR’2018)
    • Simple 3D Baseline (ICCV’2017)
    • InterNet (ECCV’2020)

    1.2.3 支持的数据集

    • COCO (ECCV’2014)
    • COCO-WholeBody (ECCV’2020)
    • MPII (CVPR’2014)
    • MPII-TRB (ICCV’2019)
    • AI Challenger (ArXiv’2017)
    • OCHuman (CVPR’2019)
    • CrowdPose (CVPR’2019)
    • PoseTrack18 (CVPR’2018)
    • MHP (ACM MM’2018)
    • sub-JHMDB (ICCV’2013)
    • Human3.6M (TPAMI’2014)
    • 300W (IMAVIS’2016)
    • WFLW (CVPR’2018)
    • AFLW (ICCVW’2011)
    • COFW (ICCV’2013)
    • OneHand10K (TCSVT’2019)
    • FreiHand (ICCV’2019)
    • RHD (ICCV’2017)
    • CMU Panoptic HandDB (CVPR’2017)
    • InterHand2.6M (ECCV’2020)
    • DeepFashion (CVPR’2016)
    • Animal-Pose (ICCV’2019)
    • Horse-10 (WACV’2021)
    • MacaquePose (bioRxiv’2020)
    • Vinegar Fly (Nature Methods’2019)
    • Desert Locust (Elife’2019)
    • Grévy’s Zebra (Elife’2019)
    • ATRW (ACM MM’2020)

    2. UDP (Unbiased Data Processing-2021)

    • IPS: Image Per Second

    • PPS: Person Per Second

    • 影响Human Pose Estimation精度的主要原因:

      • 图像预处理(如:cropping, resizing, rotating and flipping)之后的图像未与原图对齐,在进行坐标系变换时以pixel为单位,从而带来了偏差
      • 有缺陷的关键点格式变换(即编码和解码)方法将导致额外的精度下降
    • 解决方案:

      • 无偏坐标系变换
      • 无偏关键点格式变换
    • 主要贡献:

      • 对于bottom-up方案:UDP同时提高了准确度且减少了运行时间
    • 核心思想

      • 它是一个与模型无关的方法和出色的解决方案,UDP成功地突破了人体姿势估计问题的性能边界,如下图
        在这里插入图片描述

    2.1 研究方法

    • Bottom-up方法
      • 首先检测所有人的关节(这些关节不属于任何人),然后将这些关节组装成人的实例
    • Top-down方法
      • 通过两个处理阶段来获取多人的位姿估计
      • 第一步:通过人的检测器(如:Faster R-CNN)获得人的Bounding Boxes
      • 第二步:在第一步获得的boxes中预测关节(keypoints)
    • 坐标系变换(Coordinate system transformation)
      • 指路在进行某些操作(例如裁剪,调整大小,旋转和翻转)时,在不同坐标系之间数据变换(即关键点坐标和图像矩阵)
    • 关键点格式变换 (Keypoint format transformation)
      • 关键点格式转换(即编码和解码)通常表示关节坐标和热图之间的转换,这种转换已被广泛使用
      • 在训练过程中:将带标注的关节坐标编码为具有高斯分布的热图
      • 在测试过程中:将网络预测的热图解码为关节坐标

    2.2 Unbiased Coordinate System Transformation

    • 前提:数据被定义在连续的空间
    • 基本操作:裁剪,调整大小,旋转和翻转
    • 坐标系:
      • 源图像坐标系
      • 网络输入坐标系
      • 网络输出坐标系

    2.2.1 连续空间中数据的统一定义

    • 人体姿态估计中的主要数据:
      • 图像矩阵:离散格式
      • 目标关节坐标:连续空间
    • 图像平面表示 (上标p表示以像素为单位,无上标表示以单位长度为单位)
      w=wp1h=hp1 w = w^p - 1 \\ h = h^p - 1
      在这里插入图片描述

    2.2.2 坐标系变换的概念

    • 变换公式
      kd=Ts>dks k_d = T_{s -> d}k_s
      在这里插入图片描述

    2.2.3 基本操作的坐标系变换

    • 基本操作
      • 裁剪(cropping)
        在这里插入图片描述

      • 调整大小(resizing)
        在这里插入图片描述

      • 旋转(rotating)
        在这里插入图片描述

      • 翻转 (flipping)
        在这里插入图片描述

    2.2.4 通用坐标系变换

    • 在人体姿态估计中,裁剪和缩放是必须的,翻转和旋转是可选的
    • 网络学习的目标:
      • 从图像矩阵IiI_i到Keypoint位置kik_i的映射
      • 变换矩阵Ti>oT_{i->o}
        在这里插入图片描述
        在这里插入图片描述
        在这里插入图片描述

    2.3 Unbiased Keypoint Format Transformation

    • 由于关键点(keypoint)坐标不是卷积网络研究的最佳格式,直观上更合适的热图(heatmap)格式被提出并很快被证明是有效的
    • 关键点格式变换:指关键点坐标与热图之间的转换
      • 编码(encoding):从坐标格式变换为热图格式
      • 解码(decoding):从热图格式变换为坐标格式
        H=Encoding(k)k=Docoding(H) H = Encoding(k) \\ k = Docoding(H)
    • 无偏keypoint格式变换的目标:避免在编码和解码变换过程中的精度损失,即满足如下公式
      k=Decoding(Encoding(k)) k = Decoding(Encoding(k))

    2.4 代码实现

    • 开源
    • 代码基于MMPose实现
    • 基于以下两个模型实现:
      • HRNet
      • RSN

    3. RSN(Residual Steps Network:2020)

    • 开源
    • 论文:Learning Delicate Local Representations for Multi-Person Pose Estimation
    • 目标:研究特征融合(Feature Fusion)和注意力机制(Attention Mechanism)
    • 特点:
      • 对于特征整合,当前主流方法采用层间特征融合 (inter-level feature fusion)
      • 本方法采用层内特征融合(intra-level feature fusion)
        在这里插入图片描述

    3.1 网络结构

    在这里插入图片描述

    3.2 感受域 (Receptive Field)

    • RSN比其它网络(如:ResNet, Res2Net和OSNet)具有更大的感受域
    • 更广泛的接受域有助于学习更多判别语义表示,这有利于关键点分类
    • 在 RSB 内部,RSN在具有小间隙感受域的特征之间建立了密集的连接, 深度连接的架构有助于学习精细的局部表示,这对于精确的人体姿势估计至关重要

    3.3 姿态优化机(Pose Refi ne Machine)

    • 对于RSN的输出,层内和层间聚合后的特征混合在一起,包含低级精确空间信息和高级判别语义信息
    • 空间信息有利于关键点定位
    • 语义信息有利于关键点分类
      在这里插入图片描述

    4. HRNet (2019)

    • 开源
    • 论文:Deep High-Resolution Representation Learning for Human Pose Estimation
    • 创新点
      • 大多数现有方法是从低分辨率表示恢复高分辨率表示,此低分辨率是由high-to-low分辨率网络产生的
      • 本文在整个处理过程中维持高分辨率表示
    展开全文
  • mmpose

    2020-12-01 09:27:52
    https://mmpose.readthedocs.io/en/latest/demo.html` 要进行全身关键点推断, python demo/top_down_img_demo_with_mmdet.py \ demo/mmdetection_cfg/faster_rcnn_r50_fpn_1x_coco.py \ ...

    https://mmpose.readthedocs.io/en/latest/demo.html`
    要进行全身关键点推断,

    python demo/top_down_img_demo_with_mmdet.py \
        demo/mmdetection_cfg/faster_rcnn_r50_fpn_1x_coco.py \
        http://download.openmmlab.com/mmdetection/v2.0/faster_rcnn/faster_rcnn_r50_fpn_1x_coco/faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth \
        configs/top_down/hrnet/coco/hrnet_w48_coco_256x192.py \
        https://download.openmmlab.com/mmpose/top_down/hrnet/hrnet_w48_coco_256x192-b9e0b3ab_20200708.pth \
        --img-root tests/data/coco/ \
        --img middle_1056.jpg \
        --out-img-root vis_results
    

    还需要安装mmcv-full,mmdet (mmdetection)
    https://github.com/open-mmlab/mmcv#install-with-pip
    mmcv:
    ->
    pip install mmcv
    pip install mmcv-full

    https://github.com/open-mmlab/mmdetection
    ->

    > https://github.com/open-mmlab/mmdetection/blob/master/docs/get_started.md

    3.预训练模型test
    https://mmpose.readthedocs.io/en/latest/top_down_models.html

    展开全文
  • Introduction English | 简体中文 ...MMPose is an open-source toolbox for pose estimation based on PyTorch. It is a part of the OpenMMLab project. The master branch works with PyTorch 1.3+. ...
  • 使用mmpose

    2021-05-26 13:26:53
    最近使用mmpose遇到一些问题,具体参考如下: https://blog.csdn.net/weixin_43013761/article/details/108147457 https://zhuanlan.zhihu.com/p/341737204 做了很好的一些基础解释,mmpose项目本身有详细指导使用...

    最近使用mmpose遇到一些问题,具体参考如下:
    https://blog.csdn.net/weixin_43013761/article/details/108147457
    https://zhuanlan.zhihu.com/p/341737204
    做了很好的一些基础解释,mmpose项目本身有详细指导使用手册。

    展开全文
  • mmpose教程

    千次阅读 2020-10-29 16:36:07
    mmpose是商汤开源的基于pytorch的姿态估计库,当前0.7分支需pytorch1.3及以上,0.6需pytorch1.0及以上. 主要特性包括: 支持多种不同的任务,支持研究领域宽广的主流人体姿态相关的分析任务,包括2D多人姿态估计、...

    mmpose是商汤开源的基于pytorch的姿态估计库,当前0.7分支需pytorch1.3及以上,0.6需pytorch1.0及以上.

     

    主要特性包括:

    1. 支持多种不同的任务,支持研究领域宽广的主流人体姿态相关的分析任务,包括2D多人姿态估计、2D手势姿态估计、133点全身姿态估计、3D网格恢复等
    2. 高效和高精度,实现了多种基于深度学习的自顶向下和自底向上的方法,取得了比诸如HRNet等其他代码库更快的速度和更高的精度,参见benchmark.md
    3. 支持多种数据集,支持COCO、AIC, MPII, MPII-TRB, OCHuman等,参见data_preparation.md
    4. 精心设计、测试和文档齐全,我们把mmpose分解成不同的模块以便组合不同的模块构建定制化的姿态估计方案,我们提供了详细的文档和API参考,以及单元测试

    Model Zoo 代码库

    支持如下骨干网络

    支持如下方法:

    支持下面这些数据集

    模型和结果可以在每个方法的配置文件找到,总结参见 model zoo,我们将会持续跟踪社区进展和支持更多的框架.

    评估

    下表展示了标准COCO数据集上速度和精度

    Model    Input size    MMPose (s/iter)    HRNet (s/iter)    MMPose (mAP)    HRNet (mAP)
    resnet_50    256x192    0.28    0.64    0.718    0.704
    resnet_50    384x288    0.81    1.24    0.731    0.722
    resnet_101    256x192    0.36    0.84    0.726    0.714
    resnet_101    384x288    0.79    1.53    0.748    0.736
    resnet_152    256x192    0.49    1.00    0.735    0.720
    resnet_152    384x288    0.96    1.65    0.750    0.743
    hrnet_w32    256x192    0.54    1.31    0.746    0.744
    hrnet_w32    384x288    0.76    2.00    0.760    0.758
    hrnet_w48    256x192    0.66    1.55    0.756    0.751
    hrnet_w48    384x288    1.23    2.20    0.767    0.763
    更多的结果参见 benchmark.md

    安装

    参见install.md

    环境要求: Linux, python 3.6+, pytorch 1.3+, cuda 9.2+, gcc 5+, mmcv最新版,numpy, cv2,json_traicks, xtcocotools

    pip3 install -r requirements.txt
    python3 setup.py develop

    数据准备

    参见data_preparation.md,推荐把数据集软链接到$MMPOSE/data,如果你的文件结构与下面不同,可能需要调制整配置文件里相应的路径.

    COCO

    COCO download下载数据,2017 Train/Val部分, HRNet-Human-Pose-Estimation里提供了COCO数据集上行人检测的结果来复现我们的多人姿态估计结果,可以从OneDrive下载,确保文件结构如下所示:

    mmpose
    ├── mmpose
    ├── docs
    ├── tests
    ├── tools
    ├── configs
    `── data
        │── coco
            │-- annotations
            │   │-- person_keypoints_train2017.json
            │   |-- person_keypoints_val2017.json
            |-- person_detection_results
            |   |-- COCO_val2017_detections_AP_H_56_person.json
            │-- train2017
            │   │-- 000000000009.jpg
            │   │-- 000000000025.jpg
            │   │-- 000000000030.jpg
            │   │-- ...
            `-- val2017
                │-- 000000000139.jpg
                │-- 000000000285.jpg
                │-- 000000000632.jpg
                │-- ...
    

    COCO-WholeBody

    数据和上面COCO一样,标注从Train / Validation下载,依赖pip3 install xtcocotools

    mmpose
    ├── mmpose
    ├── docs
    ├── tests
    ├── tools
    ├── configs
    `── data
        │── coco
            │-- annotations
            │   │-- coco_wholebody_train_v1.0.json
            │   |-- coco_wholebody_val_v1.0.json
            |-- person_detection_results
            |   |-- COCO_val2017_detections_AP_H_56_person.json
            │-- train2017
            │   │-- 000000000009.jpg
            │   │-- 000000000025.jpg
            │   │-- 000000000030.jpg
            │   │-- ...
            `-- val2017
                │-- 000000000139.jpg
                │-- 000000000285.jpg
                │-- 000000000632.jpg
                │-- ...
    

    MPII

    MPII Human Pose Dataset下载数据,我们把原始的标注转换成了COCO格式,可以从mpii_annotations下载,确保结构如下所示:

    mmpose
    ├── mmpose
    ├── docs
    ├── tests
    ├── tools
    ├── configs
    `── data
        │── mpii
            |── annotations
            |   |── mpii_gt_val.mat
            |   |── mpii_test.json
            |   |── mpii_train.json
            |   |── mpii_trainval.json
            |   `── mpii_val.json
            `── images
                |── 000001163.jpg
                |── 000003072.jpg
    

    在训练和推理阶段,预测结果默认会保存为.mat格式,我们提供了一个工具来把它转换为可读的json格式

    python tools/mat2json ${PRED_MAT_FILE} ${GT_JSON_FILE} ${OUTPUT_PRED_JSON_FILE}

    例如:

    python tools/mat2json work_dirs/res50_mpii_256x256/pred.mat data/mpii/annotations/mpii_val.json pred.json

    AIC

    AI Challenger 2017下载,标注从aic_annotations下载,确保结构如下所示

    mmpose
    ├── mmpose
    ├── docs
    ├── tests
    ├── tools
    ├── configs
    `── data
        │── aic
            │-- annotations
            │   │-- aic_train.json
            │   |-- aic_val.json
            │-- ai_challenger_keypoint_train_20170902
            │   │-- keypoint_train_images_20170902
            │   │   │-- 0000252aea98840a550dac9a78c476ecb9f47ffa.jpg
            │   │   │-- 000050f770985ac9653198495ef9b5c82435d49c.jpg
            │   │   │-- ...
            `-- ai_challenger_keypoint_validation_20170911
                │-- keypoint_validation_images_20170911
                    │-- 0002605c53fb92109a3f2de4fc3ce06425c3b61f.jpg
                    │-- 0003b55a2c991223e6d8b4b820045bd49507bf6d.jpg
                    │-- ...

    FreiHAND Dataset

    FreiHand Dataset下载,由于原始数据集不提供训练集、测试集切分,我们随机的分成8:1:1,可以从freihand_annotations下载标注

    mmpose
    ├── mmpose
    ├── docs
    ├── tests
    ├── tools
    ├── configs
    `── data
        │── onehand10k
            |── annotations
            |   |── freihand_train.json
            |   |── freihand_val.json
            |   |── freihand_test.json
            `── training
                |── rgb
                |   |── 00000000.jpg
                |   |── 00000001.jpg
                |    ...
                |── mask
                    |── 00000000.jpg
                    |── 00000001.jpg

    快速开始

    model zoo下载预训练模型,放到models文件夹下

    mmpose
    `-- models
        `-- pytorch
             `-- imagenet
                |-- hrnet_w32-36af842e.pth
                |-- hrnet_w48-8ef0771d.pth
                |-- resnet50-19c8e357.pth
                |-- resnet101-5d3b4d8f.pth
                |-- resnet152-b121ed2d.pth

    使用预训练模型推理

    我们提供了一些测试脚本来评估预训练模型在COCO数据集上的性能,并且提供了一些高级API以遍迁移到其他的项目中去

    在数据集上测试

    •  single GPU
    •  single node multiple GPUs
    •  multiple node

    你可以使用如下的命令来测试一个数据集

    # single-gpu testing
    python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [--out ${RESULT_FILE}] [--eval ${EVAL_METRIC}] \
        [--proc_per_gpu ${NUM_PROC_PER_GPU}] [--gpu_collect] [--tmpdir ${TMPDIR}] [--average_clips ${AVG_TYPE}] \
        [--launcher ${JOB_LAUNCHER}] [--local_rank ${LOCAL_RANK}]
    
    python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} ${GPU_NUM} [--out ${RESULT_FILE}] [--eval ${EVAL_METRIC}] \
        [--proc_per_gpu ${NUM_PROC_PER_GPU}] [--gpu_collect] [--tmpdir ${TMPDIR}] [--average_clips ${AVG_TYPE}] \
        [--launcher ${JOB_LAUNCHER}] [--local_rank ${LOCAL_RANK}]

    假设你已经下载了训好的模型,并且放在了checkpoints文件夹下

    1.测试ResNet50在COCO数据集上的mAP

    ./tools/dist_test.sh configs/top_down/resnet/coco/res50_coco_256x192.py \
        checkpoints/SOME_CHECKPOINT.pth 1 \
        --eval mAP

    2.使用8块GPU测试

    ./tools/dist_test.sh configs/top_down/resnet/coco/res50_coco_256x192.py \
        checkpoints/SOME_CHECKPOINT.pth 8 \
        --eval mAP

    3.使用slurm分布式加速测试

    ./tools/slurm_test.sh slurm_partition test_job \
        configs/top_down/resnet/coco/res50_coco_256x192.py \
        checkpoints/SOME_CHECKPOINT.pth \
        --eval mAP

    自顶向下图片demo

    使用手工标注的框作为输入

    python demo/top_down_img_demo.py \
        ${MMPOSE_CONFIG_FILE} ${MMPOSE_CHECKPOINT_FILE} \
        --img-root ${IMG_ROOT} --json-file ${JSON_FILE} \
        --out-img-root ${OUTPUT_DIR} \
        [--show --device ${GPU_ID}] \
        [--kpt-thr ${KPT_SCORE_THR}]

    例如:

    python demo/top_down_img_demo.py \
        configs/top_down/hrnet/coco/hrnet_w48_coco_256x192.py \
        hrnet_w48_coco_256x192/epoch_210.pth \
        --img-root tests/data/coco/ --json-file tests/data/coco/test_coco.json \
        --out-img-root vis_results

    使用mmdet检测结果作为输入,我们提供了mmdet检测人的代码

    python demo/top_down_img_demo_with_mmdet.py \
        ${MMDET_CONFIG_FILE} ${MMDET_CHECKPOINT_FILE} \
        ${MMPOSE_CONFIG_FILE} ${MMPOSE_CHECKPOINT_FILE} \
        --img-root ${IMG_ROOT} --img ${IMG_FILE} \
        --out-img-root ${OUTPUT_DIR} \
        [--show --device ${GPU_ID}] \
        [--bbox-thr ${BBOX_SCORE_THR} --kpt-thr ${KPT_SCORE_THR}]

    例如:

    python demo/top_down_img_demo_with_mmdet.py mmdetection/configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py \
        mmdetection/checkpoints/faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth \
        configs/top_down/hrnet/coco/hrnet_w48_coco_256x192.py \
        hrnet_w48_coco_256x192-b9e0b3ab_20200708.pth \
        --img-root tests/data/coco/ \
        --img 000000196141.jpg \
        --out-img-root vis_results

    训练模型

    使用MMDistributedDataParallel和MMDataParallel实现了分布式和单机训练

    所有的输出都放在work_dir里,这可以在配置文件中指定

    默认每个epoch之后都会做一次评估,你可以在配置文件中改变这个行为evaluation = dict(interval=5)  # This evaluate the model per 5 epoch.

    根据线性缩放准则,你需要根据使用的GPU数量和batch大小调整学习率, lr=0.01 for 4 GPUs * 2 video/gpu and lr=0.08 for 16 GPUs * 4 video/gpu.

    • 单GPU训练: python tools/train.py ${CONFIG_FILE} [optional arguments]
    • 多GPU训练: ./tools/dist_train.sh ${CONFIG_FILE} ${GPU_NUM} [optional arguments]
    • 多机训练: ./tools/slurm_train.sh ${PARTITION} ${JOB_NAME} ${CONFIG_FILE} ${WORK_DIR}

    单台机器起多个任务:

    CUDA_VISIBLE_DEVICES=0,1,2,3 PORT=29500 ./tools/dist_train.sh ${CONFIG_FILE} 4
    CUDA_VISIBLE_DEVICES=4,5,6,7 PORT=29501 ./tools/dist_train.sh ${CONFIG_FILE} 4

    如果使用slurm提交任务,需要修改配置文件使用不同的端口

    config1.py: dist_params = dict(backend='nccl', port=29500)

    config2.py: dist_params = dict(backend='nccl', port=29501)

    评估:使用python tools/benchmark_inference.py ${MMPOSE_CONFIG_FILE}可以得到不包括IO和预处理的只有网络前传的速度

    教程参见: finetune modeladd new datasetadd new modules.

    训练数据可视化是调试网络非常重要的一部分,可惜其没有给出代码实现,这里给出

    import argparse
    import os
    import mmcv
    import torch
    import torchvision
    import numpy as np
    import cv2
    import math
    from mmpose.datasets import build_dataloader, build_dataset
    from tqdm import tqdm
    
    def parse_args():
        parser = argparse.ArgumentParser(description='mmpose test model')
        parser.add_argument('config', help='test config file path')
        args = parser.parse_args()
        return args
    
    def main():
        args = parse_args()
        cfg = mmcv.Config.fromfile(args.config)
        dataset = build_dataset(cfg.data.train)
        data_loader = build_dataloader(
            dataset,samples_per_gpu=64,
            workers_per_gpu=0,
            dist=False,shuffle=False)
        # mean = np.array(cfg.train_pipeline[5]['mean'])
        # std = np.array(cfg.train_pipeline[5]['std'])
        nrow = 8
        padding = 2
        for i, data_batch in enumerate(tqdm(data_loader)):
            batch_image = data_batch["img"].data
            metas = data_batch["img_metas"].data[0]
            file_name = "work_dirs/gt/"+str(i)+".jpg"
            grid = torchvision.utils.make_grid(batch_image, nrow, padding, True)
            ndarr = grid.mul(255).clamp(0, 255).byte().permute(1, 2, 0).cpu().numpy()
            ndarr = ndarr.copy()
            nmaps = batch_image.size(0)
            xmaps = min(nrow, nmaps)
            ymaps = int(math.ceil(float(nmaps) / xmaps))
            height = int(batch_image.size(2) + padding)
            width = int(batch_image.size(3) + padding)
            k = 0
            for y in range(ymaps):
                for x in range(xmaps):
                    if k >= nmaps:
                        break
                    joints = metas[k]["joints_3d"]
                    joints_vis = metas[k]['joints_3d_visible']
                    for joint, joint_vis in zip(joints, joints_vis):
                        joint[0] = x * width + padding + joint[0]
                        joint[1] = y * height + padding + joint[1]
                        if joint_vis[0]:
                            cv2.circle(ndarr, (int(joint[0]), int(joint[1])), 2, [255, 0, 0], 2)
                    k = k + 1
            cv2.imwrite(file_name, ndarr)
            
    if __name__=="__main__":
        main()

    展开全文
  • mmpose-master.tar.xz

    2021-06-04 15:57:39
    mmpose-master.tar.xz
  • 文章目录mmpose PyTorch模型转TensorRT1. github开源代码2. PyTorch模型转ONNX模型3. ONNX模型转TensorRT模型3.1 概述3.2 编译3.3 运行4. 推理结果 mmpose PyTorch模型转TensorRT 1. github开源代码 yolov5 TensorRT...
  • MMPose 是一个基于 PyTorch 的姿势估计的开源工具箱 简介 MMPose 是一个基于 PyTorch 的姿态估计开源工具箱。 它是 OpenMMLab 项目的一部分。 master 分支与 PyTorch 1.3+ 一起使用。 Benchmark 和 Model Zoo ...
  • MMPose是一个基于PyTorch的开源姿势估计工具箱。它是的一部分。 master分支可与PyTorch 1.3+一起使用。 COCO 17点姿势估计 133点全身姿势估计() 主要特点 支持多种任务 我们支持当前研究领域中广泛的主流人体...
  • 使用mmpose中的工具转onnx 使用工具转pth模型到onnx模型:python tools/pytorch2onnx.py configs/top_down/hrnet/coco/hrnet_w48_coco_256x192.py checkpoints/hrnet_w48_coco_256x192-b9e0b3ab_20200708.pth --...
  • 以下链接是个人关于 mmpose(Associative embedding动作识别) 所有见解,如有错误欢迎大家指出,我会第一时间纠正。有兴趣的朋友可以加微信:a944284742相互讨论技术。若是帮助到了你什么,一定要记得点赞!因为这是...
  • 记录配置mmpose出现的cuda报错 在Ubuntu环境下配置mmpose,按照mmpose工程下的install.md文件配置,创建虚拟环境, 1、conda create -n open-mmlab python=3.7 -y conda activate open-mmlab 2、安装pytorch1.5,...
  • 接下来,我会为大家无死角的解析mmpose(Associative embedding-人体姿态估算),之前的文章,如下(以下是我工作的所有项目,每一个项目都是,我都做了百分百的详细解读,随着项目增多,为了方便不臃肿,所以给出以下...
  • 以下链接是个人关于 mmpose(Associative embedding动作识别) 所有见解,如有错误欢迎大家指出,我会第一时间纠正。有兴趣的朋友可以加微信:a944284742相互讨论技术。若是帮助到了你什么,一定要记得点赞!因为这是...
  • mmpose安装

    2021-04-23 20:01:14
    mmpose需要下载github上的项目安装 转载,这位兄弟写的好 https://blog.csdn.net/Patricia_daye/article/details/111353980?spm=1001.2014.3001.5501
  • 颜色分类leetcode 姿势 使用毫米波雷达进行人体姿态估计的开源工具箱 PI: 项目成员:& 组织:亚利桑那大学 电子邮箱:{caos, sengupta, fengjin}@email.arizona.edu 动机 虽然基于视觉的传感器提供了场景的高分辨率...
  • 以下链接是个人关于 mmpose(Associative embedding动作识别) 所有见解,如有错误欢迎大家指出,我会第一时间纠正。有兴趣的朋友可以加微信:a944284742相互讨论技术。若是帮助到了你什么,一定要记得点赞!因为这是...
  • 以下链接是个人关于 mmpose(Associative embedding动作识别) 所有见解,如有错误欢迎大家指出,我会第一时间纠正。有兴趣的朋友可以加微信:a944284742相互讨论技术。若是帮助到了你什么,一定要记得点赞!因为这是...
  • 我是事先在 win 上下载,然后 Xftp 到服务器,之后解压缩到指定文件夹, unzip train2014.zip -d /home/yiming/mmpose/data/coco unzip train2017.zip -d /home/yiming/mmpose/data/coco unzip val2014.zip -d /...
  • Linux (ubuntu 16.04 LTS) 4 NVIDIA GeForce RTX 1080Ti miniconda cocoapi Xshell,Xftp Ⅰ安装 前情提要 安装环境 conda 环境 mmcv 支持 cuda 10.1和 pytorch mmpose 安装 前情提要 open-mmlab mmpose 先来看看 ...
  • 3 训练模型 mmpose 有 distributed training 和 non-distributed training,分别对应 MMDistributedDataParallel 和 MMDataParallel 。 所有输出(log 和 checkpoints)都会保存在工作文件夹;具体来说是 work_dir ...

空空如也

空空如也

1 2 3 4 5 ... 9
收藏数 170
精华内容 68
关键字:

MMPose