从零开始的目标检测和关键点检测(三):训练一个Glue的RTMPose模型
从零开始的目标检测和关键点检测(三):训练一个Glue的RTMPose模型
- 一、重写config文件
- 二、开始训练
- 三、ncnn部署
从零开始的目标检测和关键点检测(一):用labelme标注数据集
从零开始的目标检测和关键点检测(二):训练一个Glue的RTMDet模型
一、重写config文件
1、数据集类型即coco格式的数据集,在dataset_info声明classes、keypoint_info(关键点)、skeleton_info(骨架信息)。
dataset_type = 'CocoDataset'
data_mode = 'topdown'
data_root = 'E:\\pythonproject\\mmdetection\\data\\glue_134_Keypoint\\'# glue关键点检测数据集-元数据
dataset_info = {'dataset_name':'glue_134_Keypoint','classes':'glue','keypoint_info':{0:{'name':'head','id':0,'color':[255,0,0],'type': '','swap': ''},1:{'name':'tail','id':1,'color':[0,255,0],'type': '','swap': ''},},'skeleton_info': {0: {'link':('head','tail'),'id': 0,'color': [100,150,200]},}
}
2、训练参数
# 训练超参数
max_epochs = 200 # 训练 epoch 总数
val_interval = 10 # 每隔多少个 epoch 保存一次权重文件
train_cfg = {'max_epochs': max_epochs, 'val_interval': val_interval}
train_batch_size = 32
val_batch_size = 8
stage2_num_epochs = 20
base_lr = 4e-3
randomness = dict(seed=21)# 优化器
optim_wrapper = dict(type='OptimWrapper',optimizer=dict(type='AdamW', lr=base_lr, weight_decay=0.05),paramwise_cfg=dict(norm_decay_mult=0, bias_decay_mult=0, bypass_duplicate=True))# 学习率
param_scheduler = [dict(type='LinearLR', start_factor=1.0e-5, by_epoch=False, begin=0, end=20),dict(# use cosine lr from 210 to 420 epochtype='CosineAnnealingLR',eta_min=base_lr * 0.05,begin=max_epochs // 2,end=max_epochs,T_max=max_epochs // 2,by_epoch=True,convert_to_iter_based=True),
]# automatically scaling LR based on the actual training batch size
auto_scale_lr = dict(base_batch_size=1024)
3、模型定义、数据预处理、数据加载
详细见源码。
二、开始训练
1、开始训练
python tools/train.py data/glue_134_Keypoint/rtmpose-t-glue.py
2、训练结果
07/27 14:34:07 - mmengine - INFO - Epoch(val) [200][6/6] \
coco/AP: 0.851412 coco/AP .5: 1.000000 coco/AP .75: 1.000000 coco/AP (M): -1.000000 \
coco/AP (L): 0.857120 coco/AR: 0.892683 coco/AR .5: 1.000000 coco/AR .75: 1.000000 \
coco/AR (M): -1.000000 coco/AR (L): 0.892683 \
PCK: 1.000000 AUC: 0.789634 NME: 0.013435 data_time: 0.044700 time: 0.070389
测试一下训练结果
topdown测试 RTMDet + RTMPose
python demo/topdown_demo_with_mmdet.py \E:\\pythonproject\\mmdetection\\data\\glue_134_Keypoint\\rtmdet_tiny_glue.py \E:\\pythonproject\\mmdetection\\work_dirs\\rtmdet_tiny_glue\\best_coco_bbox_mAP_epoch_180.pth \data/glue_134_Keypoint/rtmpose-t-glue.py \work_dirs/rtmpose-t-glue/best_PCK_epoch_90.pth \--input data/glue_134_Keypoint/test_image/img.png \--output-root data/glue_134_Keypoint/test_image/result/ \--device cpu \--bbox-thr 0.5 \--kpt-thr 0.5 \--nms-thr 0.3 \--radius 5 \--thickness 5 \--draw-bbox \--draw-heatmap \--show-kpt-idx
Pose测试 RTMPose
,即手动把glue截出来再丢到网络里
python demo/image_demo.py data/glue_134_Keypoint/test_image/img_2.png \data/glue_134_Keypoint/rtmpose-t-glue.py \work_dirs/rtmpose-t-glue/best_PCK_epoch_90.pth \--out-file data/glue_134_Keypoint/test_image/result_2.png \--draw-heatmap
3、训练过程可视化
训练集损失函数
训练集准确率
测试集评估指标
测试集评估指标
三、ncnn部署
在线模型转换:Deploee
上传文件完成在线转换
相关文章:

从零开始的目标检测和关键点检测(三):训练一个Glue的RTMPose模型
从零开始的目标检测和关键点检测(三):训练一个Glue的RTMPose模型 一、重写config文件二、开始训练三、ncnn部署 从零开始的目标检测和关键点检测(一):用labelme标注数据集 从零开始的目标检测和关键点检测…...

Qt6 中弹出消息框,一段时间后自动退出
以下代码功能,弹出模态消息框,然后,等待 3 秒,消息框自动退出 QMessageBox msgbox;msgbox.setText("sleep 3s");QTimer::singleShot(3000, &msgbox, &QMessageBox::close);msgbox.exec();...

elementUI树节点全选,反选,半选状态
// <template>部分 <div class"check-block"><el-divider></el-divider><el-checkbox :indeterminate"indeterminate" v-model"checkAll" change"handleCheckAllChange">全选</el-checkbox><e…...

Kafka、RabbitMQ、RocketMQ中间件的对比
消息中间件现在有不少,网上很多文章都对其做过对比,在这我对其做进一步总结与整理。 RocketMQ 淘宝内部的交易系统使用了淘宝自主研发的Notify消息中间件,使用Mysql作为消息存储媒介,可完全水平扩容,为了进一步降低成…...

Mac 创建并使用 .zshrc 文件
1,打开终端输入指令 touch .zshrc 2,你可能希望将 .bash_profile 文件中的内容复制到 .zshrc 文件中,那建议复制过来。 3,使用 .zshrc 文件 执行以下指令: source .zshrc 注:以后希望使用 .bash_prof…...

Unity3D移动开发如何依据性能选择Shader
前言 在Unity3D移动开发中,选择合适的Shader是非常重要的,它直接影响到游戏的性能和画面效果。本文将介绍如何依据性能选择Shader,并给出相应的技术详解以及代码实现。 对惹,这里有一个游戏开发交流小组,希望大家可以…...

基于stm32F4的智能宠物喂食器的设计:LVGL界面、定时喂食喂水通风
宠物喂食器 一、功能设计二、元器件选型三、UI设计四、原理图设计五、源代码设计六、成品展示 实物链接:https://m.tb.cn/h.5iCUX6H?tkPL65WXCEipQ CZ3457 一、功能设计 1、设计一个触摸屏作为人机交互 2、通过触摸屏设置时间定时喂食喂水通风 3、获取当前水槽的…...

jumpserver堡垒机docker方式安装部署
1、环境要求 请先自行创建 数据库 和 Redis, 版本要求参考上面环境要求说明 mysql>5.7 redis >5.0 2、创建数据库 mysql: create database jumpserver default charset utf8; GRANT ALL PRIVILEGES ON jumpserver.* TO jumpserver% IDENTIFIED BY nu4x599…...

在基于亚马逊云科技的湖仓一体架构上构建数据血缘的探索和实践
背景介绍 随着大数据技术的进步,企业和组织越来越依赖数据驱动的决策。数据的质量、来源及其流动性因此显得非常关键。数据血缘分析为我们提供了一种追踪数据从起点到终点的方法,有助于理解数据如何被转换和消费,同时对数据治理和合规性起到关…...

VScode clangd 插件浏览 linux 源码
文章目录 VScode clangd 插件浏览 linux 源码clangd 安装与配置VScode 插件安装clangd 安装方法一方法二 clangd 配置 cmake 生成bear 生成 compile_commands.json触发 clangd linux 内核脚本生成 compile_commands.json 文件三种方式对比 VScode clangd 插件浏览 linux 源码 …...

GZ035 5G组网与运维赛题第8套
2023年全国职业院校技能大赛 GZ035 5G组网与运维赛项(高职组) 赛题第8套 一、竞赛须知 1.竞赛内容分布 竞赛模块1--5G公共网络规划部署与开通(35分) 子任务1:5G公共网络部署与调试(15分) 子…...

《golang设计模式》第三部分·行为型模式-02-命令模式(Command)
文章目录 1. 概述1.1 角色1.2 类图 2. 代码示例2.1 设计2.2 代码2.3 类图 1. 概述 命令模式(Command)将类的业务行为以对象的方式封装,以便实现行为的参数化、撤销或重做等需求。 非命令模式的困惑: 类的行为在运行时是以实例方法…...

【linux进程控制(一)】进程终止--如何干掉一个进程?
💓博主CSDN主页:杭电码农-NEO💓 ⏩专栏分类:Linux从入门到精通⏪ 🚚代码仓库:NEO的学习日记🚚 🌹关注我🫵带你学更多操作系统知识 🔝🔝 进程终止 1. 前言2. 文章整体…...

言情小说怎么推广?如何推广网络小说?
网络小说是一种文学形式,它的受众群体相当广泛,其实也面临着很强的竞争,因此,网络推广是小说宣传的一项重要工作,这里小马识途营销顾问就分享一下小说推广的渠道和方法。 1、软文推广 在推广小说的过程中,…...

TensorFlow 的应用场景有哪些
TensorFlow是一个开源的人工智能框架,由Google公司开发。它是一个强大的工具,可以用于数值计算、机器学习和深度学习等领域,具有灵活性、可扩展性、可移植性等特点。 TensorFlow的基本概念包括: Tensor:Tensor是Tens…...

JAVA提取嵌套夹带文件之Apache Tika
目录结构 前言tika简介Tika支持的文件格式MAVEN依赖JAVA程序JAVA测试程序测试文件测试结果部分文件提取失败参考连接 前言 Apache Tika提取文件整理如下,如有特定的文件需要提取可以先参照【部分文件提取失败】章节对照,以免浪费您的宝贵时间,…...

SSL数字证书服务
SSL/TLS 证书允许Web浏览器使用安全套接字层/传输层安全 (SSL/TLS) 协议识别并建立与网站的加密网络连接。 SSL数字证书主要功能 SSL证书在浏览器或用户计算机与服务器或网站之间建立加密连接。这种连接可以保护传输中的敏感数据免遭非授权方的拦截,从而使在线交易…...

浅谈安科瑞直流电表在荷兰光伏充电桩系统中的应用
摘要:本文介绍了安科瑞直流电表在荷兰光伏充电桩系统中的应用。主要用于充电桩的电流电压电能的计量。 Abstract: This article introduces the application of Acrel DC meters in PV charging pile system in Netherlands.The device is measuring current,volt…...

淘宝详情API接口怎么实现大数据分析和商品价格监控
一、引言 随着互联网的快速发展,大数据分析和价格监控成为了电商行业的关键环节。淘宝作为中国最大的电商平台之一,其详情API接口提供了丰富的商品信息,为大数据分析和价格监控提供了便利。本文将探讨如何使用淘宝详情API接口实现大数据分析…...

智能政务,办事更轻松!拓世法宝AI智慧政务数字人一体机,重新定义你的政务办理体验!
在构建现代化的政务服务体系中,高效、便捷是最重要的衡量标准。随着信息化技术的发展,很多政务服务已经实现了重要的线上办理,减轻了公民和企业的办事负担,同时也提升了政府部门的服务效率。可是,一些场景下的办事流程…...

WebBits库如何使用
WebBits 是一个用于构建 Web 应用程序的 Python 库。以下是使用 WebBits 库的一般步骤: 安装 WebBits:在终端或命令提示符中运行以下命令来安装 WebBits 库: pip install webbits 导入 WebBits 库:在 Python 脚本中导入 WebBits…...

通过netstat命令查看Linux的端口占用
一、netstat 完整写作network statistics,简写为netstat ,常用的几个参数为l、n、t、u、p。 -l : 仅展示监听状态下的程序(state 为LISTEN)。 -n :会使用ip端口的方式,来进行地址的描述。不使用-n就会变成服务器的名称…...

不用动脑小白也能制作出精美的电子杂志
随着互联网技术的发展和微信的普及程度,电子杂志制作已经受到越来越多人的关注,毕竟电子杂志的阅读便利性是纸质杂志无法比拟的。那如何制作一本精美的电子杂志呢? 这其实很easy,可以使用在线电子杂志制作平台FLBOOK ,…...

【计算系统】5分钟了解超算,高性能计算,并行计算,分布式计算,网格计算,集群计算以及云计算的区别
5分钟了解超算,高性能计算,并行计算,分布式计算,网格计算,集群计算以及云计算的区别 1. 超算2. 高性能计算3. 并行计算4. 分布式计算5. 网格计算6. 集群计算7. 云计算小结相关资料 1. 超算 超级计算机(Sup…...

6大场景,玩转ChatGPT!
文章目录 一、故事叙述提问举例 二、产品描述提问举例 三、报告撰写提问举例 四、邮件和信件撰写提问举例 五、新间稿和公告撰写提问举例 六、学术论文和专业文章撰写提问举例 本文是在GPT3.5版本下演示的 我们知道AI技术不仅能够自动生成文章和内容,还可以根据我们…...

工业废水再利用在哪些地方
工业废水再利用主要应用于以下几个方面: 工业生产:回收废水中含有的各种有价值的资源,如水、盐、油、悬浮物等,用于生产过程。预处理和深度处理:为满足工业生产过程对水质的要求,对废水进行预处理和深度处…...

Spring Cloud的ElasticSearch的进阶学习
目录 数据聚合 Bucket示例 Metric示例 RestAPI实现聚合 自动补全 使用拼音分词 自定义分词器 实现自动补全 RestAPI实现自动补全功能 数据同步 同步调用 异步通知 监听binlog 数据聚合 聚合可以实现对文档数据的统计、分析、运算。聚合常见的有三类: …...

WordPress恢复时候遇到的几个问题
1,一键安装 LAMP 最好是选择 CentOS 这种成熟的系统,最开始用 Alibaba Linux 报了好几个错,懒得折腾,最后重置镜像了。 https://lnmp.org/ wget https://soft.lnmp.com/lnmp/lnmp2.0.tar.gz -O lnmp2.0.tar.gz && tar z…...

设备码解释
一、名词解释 Device ID:设备ID。 IMEI:(International Mobile Equipment Identity)国际移动设备标识的缩写。是由15位数字组成的“电子串号”,它与每台手机一一对应,每个IMEI在世界上都是唯一的。 MEID…...

基于Docker-consul容器服务更新与发现
目录 一、什么是服务注册与发现: 二、Docker-consul介绍: 三、consul的关键特性: 四、consul部署: 1.部署规划: 2.consul服务器部署: 2.1 建立consul服务: 启动consul后默认会监听5个端口&a…...