【Yolov8】实战三:手把手教你使用YOLOv8以及pyqt搭建中医耳穴辅助诊断项目原理及模型部署

news2024/11/15 4:49:07

摘要


今天,学习RTMPose关键点检测实战。教大家如何安装安装MMDetection和MMPose。
实战项目以三角板关键点检测场景为例,结合OpenMMLab开源目标检测算法库MMDetection、开源关键点检测算法库MMPose、开源模型部署算法库MMDeploy,全面讲解项目全流程:

数据集:Labelme标注数据集、整理标注格式至MS COCO

目标检测:分别训练Faster R CNN和RTMDet-Tiny目标检测模型、训练日志可视化、测试集评估、对图像、摄像头画面预测

关键点检测:训练RTMPose-S关键点检测模型、训练日志可视化、测试集上评估、分别对“图像、视频、摄像头画面”预测

模型终端部署:转ONNX格式,终端推理

引言

耳朵穴位是中医针灸的重要组成部分,准确定位耳朵穴位对于针灸治疗和健康监测具有重要意义。传统的耳朵穴位检测方法依赖于人工标记,效率低下且容易受到人为因素的影响。随着深度学习和计算机视觉技术的发展,基于图像的自动化穴位检测方法逐渐成为研究热点。

RTMPose是一种基于深度学习的姿态估计模型,具有较高的精度和鲁棒性。本文提出了一种结合RTMPose和检测技术的耳朵穴位关键点检测方法,通过引入先进的图像处理算法,实现对耳朵穴位的自动化检测和定位。

项目最终完成展示图

安装MMPose

安装虚拟环境

教程没有新建虚拟环境,我建议大家安装的时候,新建虚拟环境,执行命令:

conda create --name mymm python=3.7

然后,会安装一些必要的安装包。等待安装完成即可。
安装完成后,激活虚拟环境,执行命令:
ubuntu执行命令:

conda activate mymm


Windows环境执行命令:

activate mymm

如果是Windows环境,无法激活虚拟环境参考:

https://blog.csdn.net/hhhhhhhhhhwwwwwwwwww/article/details/120514255

安装pytorch
安装pytorch,要结合自己的硬件和Cuda版本。比如我的CUDA版本是11.7的,需要寻找支持11.7版本的pytorch。

打开网站:https://pytorch.org/,选择历史版本,根据自己的型号选择相应的下载即可。

执行命令:

pip3 install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu118


安装MMCV
使用openmim安装mmengine、mmcv和mmdet,执行命令:

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


安装其他的安装包

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


下载 MMPose
使用git下载MMPose代码,Windows需要单独安装git命令,链接:https://git-scm.com/download/win。

安装完成后执行Git命令:

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


检查环境是否配置成功
然后使用Pycharm打开。

安装必要的包,执行命令:

mim install -e .


检查环境配置,首先检查pytorch,执行代码:

# 检查 Pytorch

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

检查mmcv:

# 检查 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:

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

最终结果如下图所示:一切OK!!!

本期项目最终展示图:

 

结论

        本文提出了一种基于RTMPose和检测技术的耳朵穴位关键点检测方法,具有较高的精度和鲁棒性。实验结果验证了方法的有效性和实用价值。未来研究可以进一步优化模型结构,提高检测速度和精度,并应用于实际的中医针灸和健康监测中。(本期博客详细介绍了基于RTMPose和MMDetection的耳朵穴位关键点检测项目的环境配置步骤,下一期将继续讲解项目的具体运行过程,敬请期待,我正在加紧编写中)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1966444.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring源码解析(26)之AOP的核心对象创建过程

一、前言 在上一节中我们介绍了在Spring 解析xml配置文件的时候,给我们往容器中生成了很多BeanDefinition,其中最重要的是advice对象,而advice对象最外层是用一个advisor对象包裹起来,而我们的advice对象的创建需要三个参数&#…

|迁移学习| 迁移学习详解及基于pytorch的相关代码实现

🐑 |迁移学习| 迁移学习详解及基于pytorch的相关代码实现 🐑 文章目录 🐑 |迁移学习| 迁移学习详解及基于pytorch的相关代码实现 🐑🐑 前言🐑🐑 迁移学习详解🐑🐑 迁移学…

第34篇 子程序FINDSUM求和<一>

Q:如何设计汇编语言程序求数组[1:n]的和? A:基本原理:可编写一段实现子程序FINDSUM,子程序中使用一个loop来实现数组的求和运算。子程序FINDSUM的参数N存储在内存中,主程序从该内存中将其读取到一个寄存器…

MES系统如何实现生产任务的自动或辅助调度

MES系统(Manufacturing Execution System,制造执行系统)通过一系列集成化的功能模块和智能算法,实现生产任务的自动或辅助调度。以下是MES系统实现生产任务自动或辅助调度的具体方式: 1. 生产计划与排程 计划制定&am…

【C++从小白到大牛】类和对象

目录 一、面向过程和面向对象初步认识 二、类的引入 三、类的定义 类的成员函数两种定义方式: 1. 声明和定义全部放在类体中 2. 类声明放在.h文件中,成员函数定义放在.cpp文件中 成员变量命名规则的建议: 四、类的访问限定符 【访问限…

4.2.2、存储管理-段式存储和段页式存储

段式存储 段式存储是指将进程空间分为一个个段,每段也有段号和段内地址,与页式存储不同的是,每段物理大小不同,分段是根据逻辑整体分段的. 地址表示:(段号,段内偏移):其中段内偏移不能超过该段号对应的段长,否则越界错误,而此地址对应的真正内存地址应该是:段号对应的基地址段…

lambdafunctionbind

lambda匿名函数 定义: 捕捉:传值/传引用/mutable 混合捕捉,=表全普通捕捉 即使全部捕捉, 编译器实现时也不一定全部传入, 编译器只会传入要用到的变量 lambda内可使用的变量的范围 lambda内只能用捕捉对…

Linux gcc day 9

cpu是一个只可以执行指令,不是cpu要打印而是我们要打印,然后编译成指令再给cpu,再通过操作系统进行操手 进程状态: 为什么会有这些状态? 进程的多状态,本质都是为了满足未来不同的运行场景 有那些状态&am…

linux系统的检测脚本,用于检查linux的网络配置,包括网络接口状态、IP地址、子网掩码、默认网关、DNS服务器、连通性测试等等

目录 一、要求 二、脚本介绍 1、脚本内容 2、脚本解释 (1) 检查是否以 root 用户身份运行 (2)显示脚本标题 (3)打印主机名 (4)获取网络接口信息 (5&#xff09…

React学习之props(父传子,子传父),Context组件之间的传参。

目录 前言 一、什么时候需要使用props? 二、使用 1.父传子 2.子传父 二、什么时候需要使用Context? 第一步: 第二步使用: 第一种: 第二种: 演示: 总结 前言 React学习笔记记录,pr…

python | TypeError: list indices must be integers or slices, not tuple

python | TypeError: list indices must be integers or slices, not tuple 在Python编程中,TypeError: list indices must be integers or slices, not tuple 是一个常见的错误。此错误通常发生在尝试使用非整数(如元组)作为列表索引时。本…

WSL和Windows建立TCP通信协议

1.windows配置 首先是windows端,启动TCP服务端,用来监听指定的端口号,其中IP地址可以设置为任意,否则服务器可能无法正常打开。 addrSer.sin_addr.S_un.S_addr INADDR_ANY; recv函数用来接收客户端传输的数据,其中…

游戏加速器哪个好用

对于游戏加速器,确实有很多不同的选择,每个加速器都有其独特的特点和优势。不过,我可以给你推荐一个最新上线的较受欢迎且评价较高的游戏加速器,供你参考: 深度加速器: 广泛支持:支持国内外众多…

RocketMQ批量消息

RocketMQ消息发送基本示例(推送消费者)-CSDN博客 RocketMQ消费者主动拉取消息示例-CSDN博客 RocketMQ顺序消息-CSDN博客 RocketMQ广播消息-CSDN博客 RocketMQ延时消息-CSDN博客 批量消息 批量消息是指将多条消息合并成一个批量消息,一次发送出去,原先的都是一次发一条.批量…

springboot四川旅游攻略分享互动平台-计算机毕业设计源码70222

摘 要 本研究基于Spring Boot框架开发了一款高效、可靠的四川旅游攻略分享互动平台。该系统主要面向管理员、普通用户和商家用户,涵盖了多个功能模块,包括旅游景点、旅游攻略、景点订单、酒店订单、酒店信息等。通过对系统需求的分析和设计,…

从数据规划到产品运营,拆解数据资产产品化的6大路径

数据资源入表对于企业数据资产的估值影响并不大,要想提升数据资产的整体价值,将数据资产进行产品化是更有效的途径之一。 那么,数据资产产品化的具体路径是怎样的? 在由WakeData惟客数据联合星光数智推出的直播栏目《星光对话》…

打破自闭症束缚:儿童康复案例揭秘

在自闭症的阴霾下,孩子们仿佛被困在一个无形的牢笼中,与外界的世界隔绝。然而,通过不懈的努力和科学的康复方法,许多孩子正在逐渐打破这一束缚,走向充满希望的未来。让我们一同走进几个令人鼓舞的儿童康复案例&#xf…

如何通过阿里云服务器部署hexo博客(超详细)

👏大家好!我是和风coding,希望我的文章能给你带来帮助! 🔥如果感觉博主的文章还不错的话,请👍三连支持👍一下博主哦 📝点击 我的主页 还可以看到和风的其他内容噢&#x…

零基础入门转录组数据分析——机器学习算法之boruta(筛选特征基因)

零基础入门转录组数据分析——机器学习算法之boruta(筛选特征基因) 目录 零基础入门转录组数据分析——机器学习算法之boruta(筛选特征基因)1. boruta基础知识2. boruta(Rstudio)——代码实操2. 1 数据处理…

[Docker][Docker Volume]详细讲解

目录 1.什么是存储卷?2.为什么需要存储卷?1.数据丢失问题2.性能问题3.宿主机和容器互访不方便4.容器和容器共享不方便 3.存储卷分类1.volume docker 管理卷2.bind mount 绑定数据卷3.tmpfs mount 临时数据卷 5.管理卷 Volume1.创建卷1.-v 参数2.--mount …