关键点检测(二)

一、安装MMPose

1、用MIM安装MMCV 

pip install -U openmim
mim install mmengine
mim install "mmcv>=2.0.1"
mim install "mmdet>=3.1.0"

2、 安装其它工具包

pip install opencv-python pillow matplotlib seaborn tqdm pycocotools -i https://pypi.tuna.tsinghua.edu.cn/simple

3、下载 MMPose

git clone https://github.com/open-mmlab/mmpose.git -b tutorial2023

 (官方的版本会实时更新,这里是一位大佬申请的版本固定的版本,使用官方版本应该也可以)

4、进入MMPose目录

cd *****

5、安装 MMPose

pip install -r requirements.txt
pip install -v -e .
# "-v" 表示输出更多安装相关的信息
# "-e" 表示以可编辑形式安装,这样可以在不重新安装的情况下,让本地修改直接生效

6、安装验证

1、下载配置文件和模型权重文件

mim download mmpose --config td-hm_hrnet-w48_8xb32-210e_coco-256x192  --dest .

 下载过程往往需要几秒或更多的时间,这取决于您的网络环境。完成之后,您会在当前目录下找到这两个文件:td-hm_hrnet-w48_8xb32-210e_coco-256x192.py 和 hrnet_w48_coco_256x192-b9e0b3ab_20200708.pth, 分别是配置文件和对应的模型权重文件。

2、验证推理示例

python demo/image_demo.py  tests/data/coco/000000000785.jpg  td-hm_hrnet-w48_8xb32-210e_coco-256x192.py  hrnet_w48_coco_256x192-b9e0b3ab_20200708.pth  --out-file vis_results.jpg  --draw-heatmap

 3、可视化结果

7、下载预训练模型权重文件和视频素材

新建一个Python File文件,复制下面内容:(创建文件夹)

import os

# 创建 checkpoint 文件夹,用于存放预训练模型权重文件
os.mkdir('checkpoint')

# 创建 outputs 文件夹,用于存放预测结果
os.mkdir('outputs')

# 创建 data 文件夹,用于存放图片和视频素材
os.mkdir('data')

os.mkdir('data/test')

素材地址:(分别下载放到data文件夹中)

# 多人图片
https://zihao-openmmlab.obs.cn-east-3.myhuaweicloud.com/20220610-mmpose/images/multi-person.jpeg 

# 单人视频-唱跳篮球 
https://zihao-openmmlab.obs.myhuaweicloud.com/20220610-mmpose/videos/cxk.mp4 

# 妈妈和女儿跳舞,经微信压缩
https://zihao-openmmlab.obs.myhuaweicloud.com/20220610-mmpose/videos/mother_wx.mp4 

# 两个女生跳舞视频
https://zihao-openmmlab.obs.cn-east-3.myhuaweicloud.com/20220610-mmpose/videos/two-girls.mp4 

8、检查安装成功

新建一个Python File文件,复制下面内容:

# 检查 Pytorch
import torch, torchvision
print('Pytorch 版本', torch.__version__)
print('CUDA 是否可用',torch.cuda.is_available())

# 检查 mmcv
import mmcv
from mmcv.ops import get_compiling_cuda_version, get_compiler_version
print('MMCV版本', mmcv.__version__)
print('CUDA版本', get_compiling_cuda_version())
print('编译器版本', get_compiler_version())

# 检查 mmpose
import mmpose
print('mmpose版本', mmpose.__version__)

二、安装MMDetection

1、用MIM安装MMCV

pip install -U openmim
mim install mmcv-full
mim install mmengine
mim install 'mmcv==2.0.0rc3'
mim install "mmdet>=3.0.0rc6"

2、安装其它工具包

pip install opencv-python pillow matplotlib seaborn tqdm pycocotools -i https://pypi.tuna.tsinghua.edu.cn/simple

3、下载 MMDetection

git clone https://github.com/open-mmlab/mmdetection.git -b 3.x

 (官方的版本会实时更新,这里是一位大佬申请的版本固定的版本,使用官方版本应该也可以)

4、进入MMPose目录

cd *****

5、安装 MMDetection

pip install -v -e .
# "-v" 指详细说明,或更多的输出
# "-e" 表示在可编辑模式下安装项目,因此对代码所做的任何本地修改都会生效,从而无需重新安装。

6、验证安装

1、下载配置文件和模型权重文件

mim download mmdet --config rtmdet_tiny_8xb32-300e_coco --dest .

2、推理验证

python demo/image_demo.py demo/demo.jpg rtmdet_tiny_8xb32-300e_coco.py --weights rtmdet_tiny_8xb32-300e_coco_20220902_112414-78e30dcc.pth --device cpu

 你会在当前文件夹中的 outputs/vis 文件夹中看到一个新的图像 demo.jpg,图像中包含有网络预测的检测框。

7、下载预训练模型权重文件和视频素材

新建一个Python File文件,复制下面内容:(新建文件夹)(素材在mmpose里,复制过来)

import os

# 创建 checkpoint 文件夹,用于存放预训练模型权重文件
os.mkdir('checkpoint')

# 创建 outputs 文件夹,用于存放预测结果
os.mkdir('outputs')

# 创建 data 文件夹,用于存放图片和视频素材
os.mkdir('data')

os.mkdir('data/test')

8、检查安装成功

# 检查 Pytorch
import torch, torchvision
print('Pytorch 版本', torch.__version__)
print('CUDA 是否可用',torch.cuda.is_available())

# 检查 mmcv
import mmcv
from mmcv.ops import get_compiling_cuda_version, get_compiler_version
print('MMCV版本', mmcv.__version__)
print('CUDA版本', get_compiling_cuda_version())
print('编译器版本', get_compiler_version())

# 检查 mmpose
import mmdet
print('mmdetection版本', mmdet.__version__)

三、MMPose预训练模型预测

1、进入 mmpose 主目录

2、预测单张图像

(1)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  --device 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

(2)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  --device 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

 3、预测视频:直接将--input换成视频路径即可

四、关键点检测数据集

1、标定数据集

pip install labelme

2、使用labelme标注图片,图片和数据集分别存放与不同的文件夹中

——文件夹名字

    ---images

    ---labelme_jsons

3、由于需要对数据集进行格式转换(转换成coco格式)

使用地址(同济自豪师兄),需要使用jupyter使用

4、【B】划分训练集和测试集:

(1)In【2】:里面的路径换成图片和标注所在的路径(文件夹的名字即可)

(2)中间删除的步骤全部跳过

(3)运行划分训练集和测试集

(4)继续向下运行

5、【D】Labelme转COCO-批量:

(1)导入工具包(运行即可)

(2)运行指定数据集信息

① In【2】中的地址路径修改(文件夹的名字即可)

② In【3】中 'supercategory' 换成标注时框的名字、'id' 换成框的个数、'name' 也换成标注时框的名字、'keypoints' 换成标注时点的名称、'skeleton' 可以进行修改,可以规定哪两个关键点之间可以进行连线。

③ 运行下一步———函数-处理单个labelme标注json文件

④ 运行下一步———函数-转换当前目录下所有labelme格式的json文件

⑤ 继续向下运行

        .................................

⑥ 最终在最初文件夹下会出现两个文件

train_coco.json
val_coco.json

五、目标检测下载config配置文件

1、选择RTMDet模型

https://github.com/open-mmlab/mmdetection/tree/3.x/configs/rtmdet

 2、下载config配置文件至data目录

https://zihao-openmmlab.obs.myhuaweicloud.com/20220610-mmpose/triangle_dataset/rtmdet_tiny_triangle.py

  在里面包括:RTMDet-tiny  RTMDet-s  RTMDet-m  RTMDet-l。

3、要在mmposemmdetection两个目录都运行一遍

六、目标检测-训练

1、进入mmdetection主目录

2、目标检测算法:RTMDet

  在命令行中运行

python tools/train.py data/rtmdet_tiny_triangle.py

  在work_dirs目录下,查看训练日志和训练得到的模型权重文件

3、测试集上评估模型精度

python tools/test.py data/rtmdet_tiny_triangle.py  work_dirs/rtmdet_tiny_triangle/epoch_200.pth

七、目标检测-模型权重文件精简转换

1、进入mmdetection主目录

2、模型轻量化转换

# RTMDet-tiny
python tools/model_converters/publish_model.py  work_dirs/rtmdet_tiny_triangle/epoch_200.pth  checkpoint/rtmdet_tiny_triangle_epoch_200_202305120847.pth

  模型权重文件保存在checkpoint目录

八、目标检测-预测

1、进入mmdetection主目录

2、目标检测预测-单张图像

# RTMDet
python demo/image_demo.py  data/test_triangle/triangle_3.jpg  data/rtmdet_tiny_triangle.py  --weights checkpoint/rtmdet_tiny_triangle_epoch_200_202305120847-3cd02a8f.pth  --out-dir outputs/E2_rtmdet  --device cuda:0  --pred-score-thr 0.3

3、目标检测预测-视频

# RTMDet
python demo/video_demo.py  data/test_triangle/triangle_9.mp4  data/rtmdet_tiny_triangle.py  data/rtmdet_tiny_triangle.py  --device cuda:0  --score-thr 0.6  --out outputs/E2_out_video_rtmdet.mp4

4、目标检测预测-摄像头实时画面

九、关键点检测-下载config配置文件

1、进入 mmpose 主目录

2、下载config配置文件至data目录

https://zihao-openmmlab.obs.cn-east-3.myhuaweicloud.com/20220610-mmpose/triangle_dataset/rtmpose-s-triangle.py

  里面选择:RTMPose-S、 RTMPose-M、 RTMPose-L、 RTMPose-X(不用的注释掉)

十、关键点检测-训练RTMPose

1、进入 mmpose 主目录

2、训练(建议在命令行中运行)

python tools/train.py data/rtmpose-s-triangle.py

3、测试集上评估模型精度

python tools/test.py data/rtmpose-s-triangle.py  work_dirs/rtmpose-s-triangle/epoch_300.pth

十一、关键点检测-模型权重文件精简转换

1、进入 mmpose 主目录

2、模型精简转换

python tools/misc/publish_model.py  work_dirs/rtmpose-s-triangle/epoch_300.pth  checkpoint/rtmpose-s-triangle-300.pth

十二、关键点检测预测-命令行

1、进入 mmpose 主目录

2、单张图像-关键点检测预测

# RTMDet --> RTMPose
python demo/topdown_demo_with_mmdet.py  data/rtmdet_tiny_triangle.py  checkpoint/rtmdet_tiny_triangle_epoch_200_202305120847-3cd02a8f.pth  data/rtmpose-s-triangle.py  checkpoint/rtmpose-s-triangle-300-32642023_20230524.pth  --input data/test_triangle/triangle_4.jpg  --output-root outputs/G2_RTMDet-RTMPose  --device cuda:0 --bbox-thr 0.5   --kpt-thr 0.5  --nms-thr 0.3  --radius 36  --thickness 30   --draw-bbox  --draw-heatma  --show-kpt-idx

3、视频-关键点检测预测

# RTMDet --> RTMPose
python demo/topdown_demo_with_mmdet.py  data/rtmdet_tiny_triangle.py  checkpoint/rtmdet_tiny_triangle_epoch_200_202305120847-3cd02a8f.pth  data/rtmpose-s-triangle.py  checkpoint/rtmpose-s-triangle-300-32642023_20230524.pth  --input data/test_triangle/triangle_9.mp4  --output-root outputs/G2_Video  --device cuda:0  --bbox-thr 0.5  --kpt-thr 0.5  --nms-thr 0.3  --radius 16  --thickness 10  --draw-bbox  --draw-heatmap  --show-kpt-id

4、摄像头实时画面-关键点检测预测

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
PyTorch关键点检测是使用PyTorch框架进行关键点检测任务的一种方法。在关键点检测任务中,我们的目标是识别和定位图像中的特定关键点,例如人脸的眼睛、鼻子、嘴巴等部位。关键点检测在计算机视觉领域有广泛的应用,例如人脸识别、姿态估计等。 使用PyTorch进行关键点检测的过程通常包括以下几个步骤: 1. 数据准备:收集和标注包含关键点的图像数据集。关键点可以是一些特定位置的像素坐标,这些坐标对应于图像中的感兴趣部位。 2. 模型设计:使用PyTorch构建一个适用于关键点检测的深度学习模型。可以使用卷积神经网络(CNN)或其他适用的模型结构,以提取图像中的特征并预测关键点的位置。 3. 模型训练:使用标注好的数据集对模型进行训练。在训练过程中,通过最小化预测关键点和实际关键点之间的差异,来优化模型的参数。 4. 模型评估:使用评估指标(如均方误差或平均准确率)来评估模型的性能。可以使用预定义的系数数组(kpt_oks_sigmas)来评估预测关键点与真实关键点的匹配程度。 5. 模型应用:使用训练好的模型对新的图像进行关键点检测。可以使用预测结果来提取有关关键点的信息,如位置、姿态等。 需要注意的是,以上步骤是一个基本的框架,具体的实现方法会因任务需求、数据集特点和模型选择而有所不同。可以参考引用中的链接,了解更详细的关键点检测模型训练方法。 提供了关于关键点检测数据集中关键点可见性的信息。 是一篇关于使用PyTorch训练自定义关键点检测模型的中文博客。 是一个使用Python脚本进行图像关键点检测的示例。 提供了关于使用pycocotools评估预测关键点与真实关键点匹配程度的说明。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

宸静

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

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

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

打赏作者

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

抵扣说明:

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

余额充值