AI实战营第二期——第一次作业:基于RTMPose的耳朵穴位关键点检测

本文主要是介绍AI实战营第二期——第一次作业:基于RTMPose的耳朵穴位关键点检测,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 题目:基于RTMPose的耳朵穴位关键点检测
  • 背景
  • 任务
  • 数据集
  • 训练目标检测器
    • 错误:NameError: name 'unicode' is not defined
  • 评估目标检测器
  • 训练关键点检测器
  • 评估关键点检测器
  • 模型轻量化转换
    • 目标检测器模型
    • 关键点检测器模型

题目:基于RTMPose的耳朵穴位关键点检测

背景

根据中医的“倒置胎儿”学说,耳朵的穴位反映了人体全身脏器的健康,耳穴按摩可以缓解失眠多梦、内分泌失调等疾病。耳朵面积较小,但穴位密集,涉及耳舟、耳轮、三角窝、耳甲艇、对耳轮等三维轮廓,普通人难以精准定位耳朵穴位。

任务

Labelme标注关键点检测数据集(子豪兄已经帮你完成了)
划分训练集和测试集(子豪兄已经帮你完成了)
Labelme标注转MS COCO格式(子豪兄已经帮你完成了)
使用MMDetection算法库,训练RTMDet耳朵目标检测算法,提交测试集评估指标
使用MMPose算法库,训练RTMPose耳朵关键点检测算法,提交测试集评估指标
用自己耳朵的图像预测,将预测结果发到群里
用自己耳朵的视频预测,将预测结果发到群里
需提交的测试集评估指标(不能低于baseline指标的50%)
目标检测Baseline模型(RTMDet-tiny)
RTMDet-tiny
在这里插入图片描述

关键点检测Baseline模型(RTMPose-s)
RTMPose-s
在这里插入图片描述

数据集

耳朵穴位关键点检测数据集,MS COCO格式,划分好了训练集和测试集,并写好了样例config配置文件
链接: https://pan.baidu.com/s/1swTLpArj7XEDXW4d0lo7Mg 提取码: 741p

在这里插入图片描述
将数据集下载完成后,分别放到mmpose和mmdetection的data文件夹下,如图:
在这里插入图片描述

训练目标检测器

修改该数据集的配置:

# 数据集类型及路径
dataset_type = 'CocoDataset'
data_root = 'data/Ear210_Keypoint_Dataset_coco/'
metainfo = {'classes': ('ear',)}
NUM_CLASSES = len(metainfo['classes'])

然后执行命令:

python tools/train.py data/faster_r_cnn_triangle.py

在这里插入图片描述

错误:NameError: name ‘unicode’ is not defined

python2 的unicode 函数在 Python3 中被命名为 str。在 Python3 中使用 ·str 来代替 Python2 中的 unicode.

在这里插入图片描述

如果还有错误,将pycocotools的版本改为2.0.2。
训练完成后
在这里插入图片描述

评估目标检测器

执行命令:

 python tools/test.py data/faster_r_cnn_triangle.py  work_dirs/faster_r_cnn_triangle/best_coco_bbox_mAP_epoch_50.pth

在这里插入图片描述

训练关键点检测器

更改数据集路径和类别

_base_ = ['mmpose::_base_/default_runtime.py']# 数据集类型及路径
dataset_type = 'CocoDataset'
data_mode = 'topdown'
data_root = 'data/Ear210_Keypoint_Dataset_coco/'# 三角板关键点检测数据集-元数据
dataset_info = {'dataset_name':'Ear210_Keypoint_Dataset_coco','classes':'ear','paper_info':{'author':'Tongji Zihao','title':'Triangle Keypoints Detection','container':'OpenMMLab','year':'2023','homepage':'https://space.bilibili.com/1900783'},'keypoint_info':{0:{'name':'肾上腺','id':0,'color':[255,0,0],'type': '','swap': ''},1:{'name':'耳尖','id':1,'color':[0,255,0],'type': '','swap': ''},2:{'name':'胃','id':2,'color':[0,0,255],'type': '','swap': ''},3: {'name': '眼', 'id': 3, 'color': [255, 255, 0], 'type': '', 'swap': ''},4: {'name': '口', 'id': 4, 'color': [0, 255, 255], 'type': '', 'swap': ''},5: {'name': '肝', 'id': 5, 'color': [255, 0, 128], 'type': '', 'swap': ''},6: {'name': '对屏尖', 'id': 6, 'color': [50, 255, 50], 'type': '', 'swap': ''},7: {'name': '心', 'id': 7, 'color': [0, 50, 255], 'type': '', 'swap': ''},8: {'name': '肺', 'id': 8, 'color': [255, 50, 128], 'type': '', 'swap': ''},9: {'name': '肺2', 'id': 9, 'color': [128, 255, 128], 'type': '', 'swap': ''},10: {'name': '膀胱', 'id': 10, 'color': [255, 255, 255], 'type': '', 'swap': ''},11:{'name':'脾','id':11,'color':[255,0,0],'type': '','swap': ''},12:{'name':'角窝中','id':12,'color':[0,255,0],'type': '','swap': ''},13:{'name':'神门','id':13,'color':[0,50,255],'type': '','swap': ''},14: {'name': '肾', 'id': 14, 'color': [255, 255, 0], 'type': '', 'swap': ''},15: {'name': '耳门', 'id': 15, 'color': [0, 255, 255], 'type': '', 'swap': ''},16: {'name': '听宫', 'id': 16, 'color': [0, 128, 255], 'type': '', 'swap': ''},17: {'name': '听会', 'id': 17, 'color': [255, 0, 128], 'type': '', 'swap': ''},18: {'name': '肩', 'id': 18, 'color': [50, 255, 50], 'type': '', 'swap': ''},19: {'name': '扁桃体', 'id': 19, 'color': [0, 50, 255], 'type': '', 'swap': ''},20: {'name': '腰骶椎', 'id': 20, 'color': [255, 50, 128], 'type': '', 'swap': ''},},'skeleton_info': {0: {'link':('肾上腺','肾上腺'),'id': 0,'color': [100,150,200]},1: {'link':('耳尖','耳尖'),'id': 1,'color': [200,100,150]},2: {'link':('胃','胃'),'id': 2,'color': [150,120,100]},3: {'link': ('眼', '眼'), 'id': 3, 'color': [15, 150, 200]},4: {'link': ('口', '口'), 'id': 4, 'color': [150, 100, 150]},5: {'link': ('肝', '肝'), 'id': 5, 'color': [150, 120, 200]},6: {'link': ('对屏尖', '对屏尖'), 'id': 6, 'color': [200, 150, 120]},7: {'link': ('心', '心'), 'id': 7, 'color': [200, 100, 100]},8: {'link': ('肺', '肺'), 'id': 8, 'color': [150, 120, 50]},9: {'link': ('肺2', '肺2'), 'id': 9, 'color': [100, 50, 200]},10: {'link': ('膀胱', '膀胱'), 'id': 10, 'color': [250, 100, 150]},11: {'link': ('脾', '脾'), 'id': 11, 'color': [150, 250, 100]},12: {'link': ('角窝中', '角窝中'), 'id': 12, 'color': [100, 250, 200]},13: {'link': ('神门', '神门'), 'id': 13, 'color': [110, 180, 150]},14: {'link': ('肾', '肾'), 'id': 14, 'color': [150, 50, 50]},15: {'link': ('耳门', '耳门'), 'id': 15, 'color': [100, 250, 255]},16: {'link': ('听宫', '听宫'), 'id': 16, 'color': [200, 200, 150]},17: {'link': ('听会', '听会'), 'id': 17, 'color': [200, 200, 200]},18: {'link': ('肩', '肩'), 'id': 18, 'color': [100, 50, 50]},19: {'link': ('扁桃体', '扁桃体'), 'id': 19, 'color': [30, 100, 250]},20: {'link': ('腰骶椎', '腰骶椎'), 'id': 20, 'color': [125, 250, 100]},}
}

安装必要的库

 pip install pyqtwebengine

开始训练

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

在这里插入图片描述

评估关键点检测器

执行命令:

python tools/test.py data/rtmpose-s-ear.py  work_dirs/rtmpose-s-ear/best_PCK_epoch_220.pth

在这里插入图片描述

模型轻量化转换

目标检测器模型

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

在这里插入图片描述

关键点检测器模型

python tools/model_converters/publish_model.py work_dirs/rtmpose-s-ear/best_PCK_epoch_220.pth checkpoint/best_0606.pth

在这里插入图片描述

这篇关于AI实战营第二期——第一次作业:基于RTMPose的耳朵穴位关键点检测的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/278298

相关文章

Spring AI集成DeepSeek的详细步骤

《SpringAI集成DeepSeek的详细步骤》DeepSeek作为一款卓越的国产AI模型,越来越多的公司考虑在自己的应用中集成,对于Java应用来说,我们可以借助SpringAI集成DeepSe... 目录DeepSeek 介绍Spring AI 是什么?1、环境准备2、构建项目2.1、pom依赖2.2

Python如何实现PDF隐私信息检测

《Python如何实现PDF隐私信息检测》随着越来越多的个人信息以电子形式存储和传输,确保这些信息的安全至关重要,本文将介绍如何使用Python检测PDF文件中的隐私信息,需要的可以参考下... 目录项目背景技术栈代码解析功能说明运行结php果在当今,数据隐私保护变得尤为重要。随着越来越多的个人信息以电子形

使用 sql-research-assistant进行 SQL 数据库研究的实战指南(代码实现演示)

《使用sql-research-assistant进行SQL数据库研究的实战指南(代码实现演示)》本文介绍了sql-research-assistant工具,该工具基于LangChain框架,集... 目录技术背景介绍核心原理解析代码实现演示安装和配置项目集成LangSmith 配置(可选)启动服务应用场景

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

Spring AI Alibaba接入大模型时的依赖问题小结

《SpringAIAlibaba接入大模型时的依赖问题小结》文章介绍了如何在pom.xml文件中配置SpringAIAlibaba依赖,并提供了一个示例pom.xml文件,同时,建议将Maven仓... 目录(一)pom.XML文件:(二)application.yml配置文件(一)pom.xml文件:首

在Java中使用ModelMapper简化Shapefile属性转JavaBean实战过程

《在Java中使用ModelMapper简化Shapefile属性转JavaBean实战过程》本文介绍了在Java中使用ModelMapper库简化Shapefile属性转JavaBean的过程,对比... 目录前言一、原始的处理办法1、使用Set方法来转换2、使用构造方法转换二、基于ModelMapper

Java实战之自助进行多张图片合成拼接

《Java实战之自助进行多张图片合成拼接》在当今数字化时代,图像处理技术在各个领域都发挥着至关重要的作用,本文为大家详细介绍了如何使用Java实现多张图片合成拼接,需要的可以了解下... 目录前言一、图片合成需求描述二、图片合成设计与实现1、编程语言2、基础数据准备3、图片合成流程4、图片合成实现三、总结前

SpringBoot整合DeepSeek实现AI对话功能

《SpringBoot整合DeepSeek实现AI对话功能》本文介绍了如何在SpringBoot项目中整合DeepSeekAPI和本地私有化部署DeepSeekR1模型,通过SpringAI框架简化了... 目录Spring AI版本依赖整合DeepSeek API key整合本地化部署的DeepSeek

nginx-rtmp-module构建流媒体直播服务器实战指南

《nginx-rtmp-module构建流媒体直播服务器实战指南》本文主要介绍了nginx-rtmp-module构建流媒体直播服务器实战指南,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有... 目录1. RTMP协议介绍与应用RTMP协议的原理RTMP协议的应用RTMP与现代流媒体技术的关系2

C语言小项目实战之通讯录功能

《C语言小项目实战之通讯录功能》:本文主要介绍如何设计和实现一个简单的通讯录管理系统,包括联系人信息的存储、增加、删除、查找、修改和排序等功能,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录功能介绍:添加联系人模块显示联系人模块删除联系人模块查找联系人模块修改联系人模块排序联系人模块源代码如下