【OpenMMLab AI训练营第二期】Class3: RTMPose

上手OpenMMLab——从0开始使用RTMPose关键点检测(足够本科课设的工作量) 数据集:Labelme标注数据集、整理标注格式至MS COCO目标检测:分别训练和目标检测模型、训练日志可视化、测试集评估、对图像、摄像头画面预测关键点检测:训练RTMPose-S关键点检测模型、训练日志可视化、测试集上评估、分别对“图像、视频、摄像头画面”预测模型终端部署:转ONNX格式,终端推理视频教程合集:https://space.bilibili.com/1900783/channel/collectiondetail? 阅读详情

在这里插入图片描述

概述

结合MMDetection、MMPose、MMDeploy等算法库来实现三角板关键点检测。
其中采用了两阶段来结合两个不同任务来共同完成三角板关键点检测。
首先使用目标检测,分别训练Faster RCNN和RTMDet-Tiny对图像、视频进行检测。然后使用RTMPose-s来进行关键点检测。最后可以通过将模型转为ONNX格式来部署模型到终端上进行推理。

安装

安装MMCV

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

安装MMPose

git clone https://github.com/open-mmlab/mmpose.git -b tutorial2023
cd MMPose
mim install -e .

然后在MMPose目录下分别创建四个文件夹:checkpoint 用于存放预训练权重模型、outputs 用于存放预测的结果、data 用于存放训练数据、data/test 用于存放测试数据

安装MMDeteciton

git clone https://github.com/open-mmlab/mmdetection.git
cd mmdetection
pip install mmdetection -v -e .

同样建立四个子文件夹

三角板目标检测

分别采用Faster RCNN和RTMDet

下载并解压数据集

下载数据集

wget https://zihao-download.obs.cn-east-3.myhuaweicloud.com/yolov8/datasets/Traingle_215_Dataset/Triangle_215_Keypoint_coco.zip
unzip data/Traingle_215_Keypoint_coco.zip -d data >> /dev//null

下载测试数据

wget https://zihao-download.obs.myhuaweicloud.com/20220610-mmpose/triangle_datasets/test_img/triangle_1.jpg -P data/test
wget https://zihao-download.obs.myhuaweicloud.com/20220610-mmpose/triangle_datasets/test_img/triangle_2.jpg -P data/test
wget https://zihao-download.obs.myhuaweicloud.com/20220610-mmpose/triangle_datasets/test_img/triangle_3.jpg -P data/test
wget https://zihao-download.obs.myhuaweicloud.com/20220610-mmpose/triangle_datasets/test_img/triangle_4.jpg -P data/test
 
wget https://zihao-download.obs.myhuaweicloud.com/20220610-mmpose/triangle_datasets/videos/triangle_6.mp4 -P data/test
wget https://zihao-download.obs.myhuaweicloud.com/20220610-mmpose/triangle_datasets/videos/triangle_7.mp4 -P data/test
wget https://zihao-download.obs.myhuaweicloud.com/20220610-mmpose/triangle_datasets/videos/triangle_9.mp4 -P data/test

下载config

Faster RCNN

wget https://zihao-download.obs.myhuaweicloud.com/20220610-mmpose/triangle_datasets/faster_r_cnn_triangle.py -P data

RTMDet-Tiny

wget https://zihao-download.obs.myhuaweicloud.com/20220610-mmpose/triangle_datasets/rtmdet_tiny_triangle.py -P data

训练

cd MMPose
python tools/train.py data/faster_r_cnn_triangle.py #faster rcnn
python tools/train.py data/rtmdet_tiny_triangle.py #rtmdet-tiny

模型轻量化转换

因为保存的模型中有很多训练时的参数,在推理中是不需要的,所以可以删去。

python tools/model_converters/publish_model.py \
            work_dirs/faster_r_cnn_triangle/epoch_50.pth \
            checkpoint/faster_r_cnn_triangle_epoch_50_202305120846.pth

预测

python tools/model_converters/publish_model.py \
            work_dirs/faster_r_cnn_triangle/epoch_50.pth \
            checkpoint/faster_r_cnn_triangle_epoch_50_202305120846.pth

结果类似如下:
在这里插入图片描述

RTMPose关键点检测

训练和推理过程如上面章节

RTMPose 阅读详情

相关推荐

RK3588开发板实战:从零部署rtmpose人体姿态模型的完整流程(含onnx转换避坑指南)

本文详细介绍了在RK3588开发板上从零部署RTMPose人体姿态模型的完整流程,包括环境准备、ONNX转换避坑指南、RKNN模型转换及性能优化。特别针对RK3588硬件特性,提供了量化策略选择、内存分配和多线程推理等实用技巧,帮助开发者高效实现人体姿态估计模型的嵌入式部署。

seed的博客 246

我的开源项目 - 使用OnnxRuntime在CPU端部署RTMPose玩转实时2D姿态估计

好了,在本小节中会详细介绍如何使用OnnxRuntime在CPU端进行RTMDetnano+RTMPose模型的部署,在本教程中会实现基于RTMDetnano+RTMPose的一个Top-Down的2D姿态估计示例,由RTMDetnano检测人,然后根据检测框裁剪相应的图片区域喂给RTMPose进行姿态估计,进行了一个简单的跳帧检测的实时2D姿态估计的C++类,好了,就让我们愉快的开始吧。RTMPose的亮点主打的就是工业级别的推理速度和精度,这在他的论文摘要也是着重突出,可以仔细看他的论文摘要,

HW140701的博客 4158

RK3588部署rtmpose模型

摘要: 本文详细介绍了在RK3588开发板上部署RTMPose模型的全流程。首先在Ubuntu环境中搭建MMCV框架,通过MMPose工具将PTH模型转换为ONNX格式。随后使用RKNN-Toolkit2将ONNX模型转换为RKNN格式,并完成开发板部署。关键步骤包括模型转换(PTH→ONNX→RKNN)、环境配置和推理验证,最终实现人体姿态估计功能。整个过程涉及MMPose、RKNN-Toolkit等工具链的使用,为边缘计算场景下的实时姿态分析提供了可行方案。

qq_44224801的博客 1219

RTMpose人体关键点数据标注-训练流程

RTMpose人体关键点数据标注-训练流程

x18774007530的博客 1993

【MMDeploy&MMPose】手把手教你在Windows上使用MMDeploy1.x进行ONNX和TensorRT的部署(Python篇)

MMDeploy 提供了一系列工具,帮助我们更轻松的将 OpenMMLab 下的算法部署到各种设备与平台上。MMDeploy 定义的模型部署流程,这里直接使用了官方文档的内容,如下图所示: 模型转换的主要功能是把输入的模型格式,转换为目标设备的推理引擎所要求的模型格式。目前,MMDeploy 可以把 PyTorch 模型转换为 ONNX、TorchScript 等和设备无关的 IR 模型。也可以将 ONNX 模型转换为推理后端模型。两者相结合,可实现端到端的模型转换,也就是从训练端到生产端的一键式部署。也称

qq_21532607的博客 4853

新版mmpose训练新版RTMDet/Pose及自定义数据集制作

【代码】新版mmpose训练新版RTMDet/Pose及自定义数据集制作。

认真努力,做一只会飞的毛毛虫。 1766

从零开始的目标检测和关键点检测(三):训练一个Glue的RTMPose模型

从零开始的目标检测和关键点检测(三):训练一个Glue的RTMPose模型

HHzdh的博客 1771

RTMPOSE S EAR 自训练 300 epoch

RTMPOSE S EAR 自训练 300 epoch

rtmpose

【代码】rtmpose。

qq_61376511的博客 369

使用C++部署RTMPose的onnx模型或者tensorrt模型源码+使用说明.zip

RTMPose-Deploy是一个不使用mmdeploy进行RTMPose本地化部署C++示例。 目前我们在Windows系统上使用OnnxRuntime CPU SDK对RTMDetnano和RTMPose进行了本地化部署,并且构建了一个简单的跳帧检测的RTMPoseTrack类用于在CPU上实时的进行二维姿态估计。 后续会考虑添加在Windows系统上使用C++ TensorRT SDK对RTMDetnano和RTMPose进行部署。

算法部署-使用TensorRT部署RTMPose人体姿态估计算法-优质算法部署项目实战.zip

算法部署_使用TensorRT部署RTMPose人体姿态估计算法_优质算法部署项目实战

MMDeploy实战:把RTMPose模型部署到树莓派的全流程记录(含ONNX转换踩坑记录)

本文详细记录了将OpenMMLab的RTMPose关键点检测模型部署到树莓派的全过程。内容涵盖使用MMDeploy工具链进行ONNX模型转换、优化与量化,以及在树莓派上搭建推理环境、性能调优和问题排查的实战经验,为边缘设备部署轻量化AI模型提供了完整参考。

961

Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程

本人有Unity基础,刚学UE几天,把这一套处理流程记录一下备用。

qq_42915442的博客 9815

RTMpose 部署笔记

RTMpose 部署笔记

jacke121的专栏 561

Robot Arm 机械臂源码解析

由于我们用的是步进电机,运动的时候是一步一步的,并不是平滑的,这里假设在一个平面上面,一个x步进电机,一个y步进电机。那么放大它们所走的轨迹就会是阶梯状的。而它们也只能沿着网格运动。相当于有了一个最小的分辨率,这个分辨率就是一步。如下图所示,如果x,y电机同时走就能走出45度的斜线。在三维空间里面运动也是如此,你应该可以想象的出来;首先,是updateActualPosition,用来时时更新此时的差补位置,得到的是一个路径与时间t的函数(其中路径的范围为0,1,时间范围为0,dist/v)...

爱吃炸鸡的小猪's blog 1万+

【Oracle】Oracle rman工具使用(真的细)

Oracle RMAN(Recovery Manager)是Oracle数据库备份和恢复的官方工具,它提供的备份和恢复功能非常强大和可靠。RMAN可以备份整个数据库或特定表空间、数据文件、控制文件和归档日志,同时还可以进行增量备份和增量恢复。RMAN还提供了诸如备份验证、备份优化、备份复制、备份集管理、恢复操作、自动备份、自动恢复等高级功能。它使用的备份和恢复格式是Oracle通用的备份集(Backup Set),这使得备份和恢复非常灵活和高效。

tttzzzqqq2018的博客 8502

从零开始的目标检测和关键点检测(二):训练一个Glue的RTMDet模型

从零开始的目标检测和关键点检测(二):训练一个Glue的RTMDet模型

HHzdh的博客 1597

【考研高数-高等数学-基础】第一章 函数、极限、连续

第一章 函数、极限、连续 第二章 导数与微分 第三章 微分中值定理及导数应用 第四章 不定积分 第五章 定积分与反常积分 第六章 定积分的应用 第七章 微分方程 第八章 多元函数微分学 第九章 二重积分 第十章 无穷级数 第十一章 向量代数与空间解析几何及多元微分学在几何上的应用 第十二章 多元积分学及其应用 难题: 极限的递推 微分中值定理的证明题 定积分的不等式和等式的证明 重积分的不等式和等式的证明 线面积分的不等式和等...

刘鑫磊 2034

7款姿态估计模型横评:从YOLO到RTMPose,选型不再纠结

7 点精度梯队(AP 由高到低) pie title COCO-17 精度梯队(AP) "RTMPose-M (74.9)" : 74.9 "RTMO-M (72.6)" : 72.6 "yolo11s-pose (58.9)" : 58.9 "yolo26n-pose (57.2)" : 57.2 "RTMO-S (67.7)" : 67.7 "YOLO11n (50.0)" : 50.0 5.2 推理速度梯队(T4 TensorRT) barChart title 推理延迟对比(ms/图) x-axis

tigerhhzz的博客 1万+

YOLOv11 改进 - 特征融合 | 替换 C3k2 涨点:GELAN 融合 CSP+ELAN 提精度

本文介绍了可编程梯度信息(PGI)和广义高效层聚合网络(GELAN)与 YOLOv11 的结合,以解决深度网络数据传输时的信息丢失问题。PGI 能为目标任务提供完整输入信息,计算目标函数以更新网络权重。GELAN 作为轻量级网络架构,由 SPPELAN、ELAN1、RepNCSPELAN4 等模块组成。我们将 GELAN 代码集成进 YOLOv11, 实验脚本显示,结合 GELAN 的 YOLOv11 在 MS COCO 数据集目标检测任务中或有良好表现。

魔改工程师的博客 1242

Python APP反爬实战:Frida+Charles抓包,破解签名校验

Charles抓包定位参数 → jadx-gui反编译找函数 → Frida Hook拿密钥/规则 → Python还原签名算法;Frida的核心价值:Hook住APP的加密函数,拿到“输入(密钥/参数)+输出(签名)”,无需懂复杂的逆向底层;严格对齐APP的参数排序、拼接规则、加密算法,差一点都会验证失败。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1535

RTMPose:重新定义多人姿态估计的“实时”标准!

传统的高精度方法如HRNet、ViTPose虽然准确,但耗时大、难以部署。实时多人姿态估计一直是计算机视觉领域的“性能炼金术”:要在精度、速度、部署成本之间找到最优解,并不容易。RTMPose-S 代表了当前姿态估计模型的“部署最优解”:既兼顾精度,又对设备要求极低,非常适合工业、移动端、嵌入式设备等应用。传统姿态估计一般使用热图(heatmap)回归来预测关键点位置,这种方式虽然直观,但在推理时计算量大、部署困难。而 RTMPose 从底层架构到输出方式都进行了重构与优化,真正做到了“为落地而生”:。

Coovally_AI的博客 1358

Spark Catalog详解

旁边的实习生说:我想要用spark代码中对hive库中的内部表和外部表进行删除(包括数据),咋感觉网上搜了一圈都找不到解决方案啊,spark这么鸡肋吗?我:你应该静下心来好好把spark基础知识进行全面学习。实习生:难道spark有这功能,而我没有学习过?咋弄啊?我:学习一下Spark Catalog。实习生:啥是Catalog啊?Spark Catalog是Spark SQL中的一个元数据管理组件,它提供了一个集中化的存储和查询表、视图和函数的位置。

SunnyRivers 1814
上一篇: 【OpenMMLab AI训练营第二期】Class2: MMPose
下一篇: 【OpenMMLab AI训练营第二期】Class4: MMPreTrain
lostcorner
博客等级 码龄9年 9粉丝 31原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值