news 2026/6/12 14:35:07

深度学习目标检测中利用脑肿瘤目标检测数据集训练识别3类’glioma_tumor’, ‘meningioma_tumor’,‘pituitary_tumor’2908张图像txt格式的脑肿瘤数据集

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
深度学习目标检测中利用脑肿瘤目标检测数据集训练识别3类’glioma_tumor’, ‘meningioma_tumor’,‘pituitary_tumor’2908张图像txt格式的脑肿瘤数据集

深度学习目标检测中利用脑肿瘤目标检测数据集训练识别3类’glioma_tumor’, ‘meningioma_tumor’,'pituitary_tumor’2908张图像txt格式的脑肿瘤数据集

该数据集已经包括3个类别

分别是:‘glioma_tumor’, ‘meningioma_tumor’,‘pituitary_tumor’
总计图片2908张图像,分辨率是513x513像素

数据集是txt格式
数据集已划分为训练集/验证集/测试集
相关YOLOv5/YOLOv6/YOLOv7/YOLOv8/YOLOv9/YOLOv10模型可直接使用

Yolov8n结果可达map50是0.854,P是0.623,R是0.817

好的,我们将使用YOLOv8来训练脑肿瘤目标检测数据集。以下是详细的步骤:

  1. 环境准备

    • 安装必要的库。
    • 下载并组织数据集。
  2. 数据预处理

    • 确认数据集的划分和标签格式。
    • 格式化标签文件以便于YOLOv8使用(如果需要)。
  3. 模型定义与训练

    • 使用YOLOv8进行目标检测。
  4. 评估与可视化

    • 评估模型性能。
    • 可视化结果。

环境准备

首先,我们需要安装必要的库。您可以使用以下命令来设置环境:

pipinstallultralytics

数据预处理

假设您的数据集已经下载并存储在datasets/brain_tumors目录中,其中包含imageslabels子目录。labels子目录中的每个.txt文件对应一个图像文件,格式为YOLOv5/YOLOv8所需的格式。

以下是确认数据集有效性和检查标签格式的脚本check_dataset.py:

[<title="Check Dataset Script for Brain Tumor Detection">]importosfrompathlibimportPath# Define pathsbase_path=Path('datasets/brain_tumors')train_images_dir=base_path/'train/images'train_labels_dir=base_path/'train/labels'val_images_dir=base_path/'val/images'val_labels_dir=base_path/'val/labels'test_images_dir=base_path/'test/images'test_labels_dir=base_path/'test/labels'# Function to check if label files exist for all imagesdefcheck_labels_exist(images_dir,labels_dir):missing_labels=[]forimg_fileinimages_dir.glob('*.jpg'):# Adjust extension if necessarylabel_file=labels_dir/(img_file.stem+'.txt')ifnotlabel_file.exists():missing_labels.append(img_file.name)returnmissing_labels# Check train setmissing_train_labels=check_labels_exist(train_images_dir,train_labels_dir)ifmissing_train_labels:print(f"Missing train labels:{missing_train_labels}")else:print("All train labels are present.")# Check val setmissing_val_labels=check_labels_exist(val_images_dir,val_labels_dir)ifmissing_val_labels:print(f"Missing val labels:{missing_val_labels}")else:print("All val labels are present.")# Check test setmissing_test_labels=check_labels_exist(test_images_dir,test_labels_dir)ifmissing_test_labels:print(f"Missing test labels:{missing_test_labels}")else:print("All test labels are present.")

创建YAML配置文件

确保您有一个正确的YAML配置文件brain_tumors.yaml来描述数据集。以下是示例配置文件:

[<title="YOLOv8 Configuration File for Brain Tumor Detection">]train:../datasets/brain_tumors/train/imagesval:../datasets/brain_tumors/val/imagesnc:3names:['glioma_tumor','meningioma_tumor','pituitary_tumor']

将上述内容保存为datasets/brain_tumors/brain_tumors.yaml

模型定义与训练

我们将使用YOLOv8进行目标检测。以下是训练脚本train_detection.py:

[<title="Training Script for Brain Tumor Detection using YOLOv8">]fromultralyticsimportYOLO# Load a modelmodel=YOLO('yolov8n.pt')# load a pretrained model (recommended for training)# Train the modelresults=model.train(data='../datasets/brain_tumors/brain_tumors.yaml',epochs=50,imgsz=513,batch=16,project='../runs/train',name='brain_tumor_detection')# Evaluate the modelmetrics=model.val()results=model.export(format='onnx')# export the trained model to ONNX format

评估与可视化

使用YOLOv8自带的评估脚本来评估目标检测模型。

[<title="Evaluation Script for Brain Tumor Detection using YOLOv8">]fromultralyticsimportYOLO# Load the best modelbest_model=YOLO('../runs/train/brain_tumor_detection/weights/best.pt')# Evaluate the model on the validation datasetmetrics=best_model.val(data='../datasets/brain_tumors/brain_tumors.yaml',conf=0.5,iou=0.45)print(metrics)

用户界面

我们将使用 PyQt5 创建一个简单的 GUI 来加载和运行模型进行实时预测。以下是用户界面脚本ui.py:

[<title="PyQt5 Main Window for Brain Tumor Detection">]importsysimportcv2importnumpyasnpfromPyQt5.QtWidgetsimportQApplication,QMainWindow,QLabel,QPushButton,QVBoxLayout,QWidget,QFileDialogfromPyQt5.QtGuiimportQImage,QPixmapfromPyQt5.QtCoreimportQt,QTimerfromultralyticsimportYOLO# Load modeldetection_model=YOLO('../runs/train/brain_tumor_detection/weights/best.pt')classMainWindow(QMainWindow):def__init__(self):super().__init__()self.setWindowTitle("脑肿瘤检测系统")self.setGeometry(100,100,800,600)self.initUI()definitUI(self):self.central_widget=QWidget()self.setCentralWidget(self.central_widget)self.layout=QVBoxLayout()self.image_label=QLabel(self)self.image_label.setAlignment(Qt.AlignCenter)self.layout.addWidget(self.image_label)self.load_image_button=QPushButton("加载图像",self)self.load_image_button.clicked.connect(self.load_image)self.layout.addWidget(self.load_image_button)self.start_prediction_button=QPushButton("开始预测",self)self.start_prediction_button.clicked.connect(self.start_prediction)self.layout.addWidget(self.start_prediction_button)self.stop_prediction_button=QPushButton("停止预测",self)self.stop_prediction_button.clicked.connect(self.stop_prediction)self.layout.addWidget(self.stop_prediction_button)self.central_widget.setLayout(self.layout)self.image_path=Noneself.timer=QTimer()self.timer.timeout.connect(self.update_frame)defload_image(self):options=QFileDialog.Options()file_name,_=QFileDialog.getOpenFileName(self,"选择图像文件","","Images (*.png *.jpg *.jpeg);;All Files (*)",options=options)iffile_name:self.image_path=file_name self.display_image(file_name)defdisplay_image(self,path):pixmap=QPixmap(path)scaled_pixmap=pixmap.scaled(self.image_label.width(),self.image_label.height(),Qt.KeepAspectRatio)self.image_label.setPixmap(scaled_pixmap)defstart_prediction(self):ifself.image_pathisnotNoneandnotself.timer.isActive():self.timer.start(30)# Update frame every 30 msdefstop_prediction(self):ifself.timer.isActive():self.timer.stop()self.image_label.clear()defupdate_frame(self):original_image=cv2.imread(self.image_path)image_rgb=cv2.cvtColor(original_image,cv2.COLOR_BGR2RGB)# Detectionresults=detection_model.predict(image_rgb,size=513,conf=0.5,iou=0.45)[0]forboxinresults.boxes.cpu().numpy():r=box.xyxy[0].astype(int)cls=int(box.cls[0])conf=box.conf[0]# Map class ID to nameclass_names=['胶质瘤','脑膜瘤','垂体瘤']class_name=class_names[cls]# Draw bounding boxcv2.rectangle(image_rgb,(r[0],r[1]),(r[2],r[3]),(0,255,0),2)# Put textfont=cv2.FONT_HERSHEY_SIMPLEX cv2.putText(image_rgb,f'{class_name}({conf:.2f})',(r[0],r[1]-10),font,0.9,(0,255,0),2)h,w,ch=image_rgb.shape bytes_per_line=ch*w qt_image=QImage(image_rgb.data,w,h,bytes_per_line,QImage.Format_RGB888)pixmap=QPixmap.fromImage(qt_image)scaled_pixmap=pixmap.scaled(self.image_label.width(),self.image_label.height(),Qt.KeepAspectRatio)self.image_label.setPixmap(scaled_pixmap)if__name__=="__main__":app=QApplication(sys.argv)window=MainWindow()window.show()sys.exit(app.exec_())

请确保将路径替换为您实际的路径。

使用说明

  1. 配置路径

    • 确保datasets/brain_tumors目录结构正确,并且包含trainvaltest子目录。
    • 确保runs/train/brain_tumor_detection/weights/best.pt是训练好的 YOLOv8 模型权重路径。
  2. 运行脚本

    • 在终端中运行check_dataset.py脚本来检查数据集的有效性。
    • 在终端中运行train_detection.py脚本来训练目标检测模型。
    • 在终端中运行evaluate_detection.py来评估目标检测模型性能。
    • 在终端中运行ui.py来启动 GUI 应用程序。
  3. 注意事项

    • 确保所有必要的工具箱已安装,特别是ultralyticsPyQt5
    • 根据需要调整参数,如epochsbatch_size

示例

假设您的数据文件夹结构如下:

datasets/ └── brain_tumors/ ├── train/ │ ├── images/ │ └── labels/ ├── val/ │ ├── images/ │ └── labels/ └── test/ ├── images/ └── labels/

并且每个数据集中包含相应的图像和标签文件。运行ui.py后,您可以点击按钮来加载图像并进行脑肿瘤检测。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/12 14:27:02

告别模糊画面:用Waifu2x-Extension-GUI实现图片视频智能高清化

告别模糊画面&#xff1a;用Waifu2x-Extension-GUI实现图片视频智能高清化 【免费下载链接】Waifu2x-Extension-GUI Video, Image and GIF upscale/enlarge(Super-Resolution) and Video frame interpolation. Achieved with Waifu2x, Real-ESRGAN, Real-CUGAN, RTX Video Supe…

作者头像 李华
网站建设 2026/6/12 14:25:53

5分钟快速上手:Unity游戏汉化神器XUnity.AutoTranslator终极指南

5分钟快速上手&#xff1a;Unity游戏汉化神器XUnity.AutoTranslator终极指南 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 还在为外语游戏的复杂剧情和界面而烦恼吗&#xff1f;语言障碍是否让你错失了…

作者头像 李华
网站建设 2026/6/12 14:24:51

wflow工作流设计器:企业流程自动化的终极解决方案

wflow工作流设计器&#xff1a;企业流程自动化的终极解决方案 【免费下载链接】wflow workflow 工作流设计器&#xff0c;企业OA流程设计。表单流程设计界面操作超级简单&#xff01;&#xff01;普通用户也能分分钟上手&#xff0c;不需要专业知识。本设计器支持可视化拖拽表单…

作者头像 李华
网站建设 2026/6/12 14:24:50

从 Copilot 到 Agent——我的开发工作流正在被颠覆

AI 编程助手的发展速度&#xff0c;比大多数开发者预想得更快。 两年前&#xff0c;我们还在讨论 GitHub Copilot 是否会取代部分重复编码工作&#xff1b; 一年前&#xff0c;我们开始习惯让 AI 帮忙写函数、补全代码和生成单元测试&#xff1b; 而今天&#xff0c;一个新的时…

作者头像 李华
网站建设 2026/6/12 14:20:58

2026电商流量转化导师客观测评榜单|全域流量选型干货指南

一、测评引言&#xff1a;行业现状与测评说明 1.1 行业公开数据与发展趋势 依据艾瑞咨询《2026中国电商全域流量经营白皮书》公开数据&#xff1a;2025年国内电商全域付费流量单UV成本同比上涨22.7%&#xff0c;天猫、抖音、小红书、谷歌FB全渠道流量红利消退&#xff0c;81.…

作者头像 李华