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

摘要


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

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

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

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

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

引言

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

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

项目最终完成展示图

3c6928657d024f248b83170227154db0.png

安装MMPose

安装虚拟环境

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

conda create --name mymm python=3.7

208f20805b9f479a9ce7b0bed182076c.png5c3953a083964943b50d37c5303a8d66.png

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

conda activate mymm


Windows环境执行命令:

activate mymm

e6d3c45e2de84a7ebe7c8f16451e891d.png

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

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

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

76892977a04f44d4b87cbd029a942aa3.png

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

76b6bad67069459c8d23dbf27e113d00.png

执行命令:

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__)

最终结果如下图所示:2714e3758e8b4d04abeaa08b51a1a313.png一切OK!!!

本期项目最终展示图:

 fef7f0ad614b44839b4cd51f56fcf92e.pngb982c18876b149a3ae86ff4c512d28b2.png

结论

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

下一期传送门:

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

### 创建基于 PyQt5 的 YOLOv8 图形用户界面 #### 1. 环境准备 为了搭建一个功能齐全的 YOLOv8 图形用户界面 (GUI),首先需要安装必要的库和工具。确保 Python 已经安装完毕,接着通过 pip 安装所需的依赖项。 ```bash pip install pyqt5 opencv-python yolov8 ultralytics ``` 这些包分别用于 GUI 开发、图像处理以及加载预训练好的 YOLOv8 模型[^3]。 #### 2. 初始化主窗口类 定义应用程序的主要入口点——`MainWindow` 类继承自 `QMainWindow` 或者更简单的 `QWidget`。此部分负责设置整体布局结构并初始化各个组件。 ```python from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel, QPushButton, QVBoxLayout, QWidget import sys class MainWindow(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle("YOLOv8 Object Detection with PyQt5") # 设置窗口标题 layout = QVBoxLayout() # 垂直排列控件 label = QLabel('Welcome to the YOLOv8 Detector!') # 添加欢迎文字标签 button_start_detection = QPushButton('Start Detection') # 启动检测按钮 widget = QWidget() widget.setLayout(layout) self.setCentralWidget(widget) layout.addWidget(label) layout.addWidget(button_start_detection) if __name__ == '__main__': app = QApplication(sys.argv) window = MainWindow() window.show() sys.exit(app.exec_()) ``` 这段代码实现了基本的应用程序框架,其中包含了启动对象识别过程的功能按钮。 #### 3. 实现视频流读取与显示 为了让用户可以上传图片或开启摄像头进行实时监测,在界面上增加相应的选项卡或者菜单条目来触发不同的输入方式。这里展示了一个简单的方法来获取来自默认摄像设备的画面帧,并将其呈现在 GUI 上: ```python import cv2 from PyQt5.QtGui import QImage, QPixmap def update_frame(self): ret, frame = cap.read() # 获取一帧画面 if not ret: return False rgb_image = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB) # 转换颜色空间以便于 Qt 显示 h, w, ch = rgb_image.shape bytes_per_line = ch * w convert_to_Qt_format = QImage(rgb_image.data, w, h, bytes_per_line, QImage.Format_RGB888) p = convert_to_Qt_format.scaled(640, 480, aspectRatioMode=True) self.image_label.setPixmap(QPixmap.fromImage(p)) # 更新到指定位置上的 QLabel 中 ``` 上述函数会周期性调用来刷新视图中的内容。 #### 4. 集成 YOLOv8 推理引擎 最后一步就是把实际的目标检测逻辑嵌入进来。当点击 "Start Detection" 按钮时,应该执行如下操作:捕获当前屏幕截图作为输入;利用已加载的 YOLOv8 进行预测分析;将标注后的结果重新渲染回 UI 组件内供查看。 ```python from ultralytics.yolo.engine.model import YOLO as yolo_model model_path = 'path/to/yolov8.pt' # 替换成自己的权重文件路径 detector = yolo_model(model_path) def perform_object_detection(image): results = detector.predict(source=image, conf=0.7)[0].plot() # 执行推理并绘制边界框 return results ``` 以上片段展示了如何使用 Ultralytics 提供的 API 来完成物体分类任务,并返回带有标记的信息给前端呈现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值