用 Ultralytics YOLO 训练脑肿瘤检测模型:Brain Tumor 数据集结构与 YOLO26 实战指南
【免费下载链接】ultralyticsUltralytics YOLO26, YOLO11, YOLOv8 — object detection, instance segmentation, semantic segmentation, image classification, pose estimation, object tracking项目地址: https://gitcode.com/GitHub_Trending/ul/ultralytics
本文以 Ultralytics 官方文档中的 Brain Tumor(脑肿瘤)检测数据集为主线,完整覆盖数据集的结构、类别划分、YAML 配置定义,以及使用 YOLO26 完成 100 个 epoch 训练与微调模型推理的 Python / CLI 两种实操方式。结合 brain-tumor.yaml 与框架中数据集加载源码,读者可以掌握医学影像目标检测从配置解析、自动下载数据到训练、验证和推理的完整链路。
一、数据集概述:1,116 张 MRI/CT 医学影像
Ultralytics 的 Brain Tumor 数据集是一个面向医疗影像的目标检测数据集,包含1,116 张医学影像(MRI 磁共振与 CT 扫描),分为两个预定义的子集:
| 子集 | 图像数 | 标注 |
|---|---|---|
| Train(训练集) | 893 | 有 |
| Validation(验证集) | 223 | 有 |
每张图像标注两个类别之一:
negative:无脑肿瘤的图像positive:显示存在脑肿瘤的图像
这种二分类标注方式让检测模型既能定位肿瘤位置,也能标记未出现肿瘤的扫描图像。
该数据集支持的应用场景包括:
- 早期诊断:通过计算机视觉自动定位肿瘤,辅助医生尽早发现病灶;
- 治疗规划:精确定位肿瘤以辅助手术规划;
- 疗效监测:纵向追踪治疗过程中肿瘤变化;
- 医学研究:支撑肿瘤学与神经科学领域的科研分析。
数据集在首次使用data="brain-tumor.yaml"训练时会自动下载(约 4.21 MB),无需任何手动准备。数据集在 LICENSE 声明的 AGPL-3.0 许可下提供。
二、Dataset YAML:数据集配置的完整定义
所有关键配置都定义在 ultralytics/cfg/datasets/brain-tumor.yaml 中,文件内容如下:
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license # Brain-tumor dataset by Ultralytics # Documentation: https://docs.ultralytics.com/datasets/detect/brain-tumor # Example usage: yolo train data=brain-tumor.yaml # parent # ├── ultralytics # └── datasets # └── brain-tumor ← downloads here (4.21 MB) # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..] path: brain-tumor # dataset root dir train: images/train # train images (relative to 'path') 893 images val: images/val # val images (relative to 'path') 223 images # Classes names: 0: negative 1: positive # Download script/URL (optional) download: https://github.com/ultralytics/assets/releases/download/v0.0.0/brain-tumor.zip各配置项含义:
| 配置项 | 取值 | 说明 |
|---|---|---|
path | brain-tumor | 数据集根目录名。相对路径会解析到全局数据集目录(DATASETS_DIR,默认为datasets/下) |
train | images/train | 训练图像目录,相对path,含 893 张图 |
val | images/val | 验证图像目录,相对path,含 223 张图 |
names | 0: negative、1: positive | 类别索引到名称的映射,nc由框架自动推导为 2 |
download | assets 的 zip 地址 | 数据缺失时的自动下载地址 |
框架如何解析这份 YAML
训练入口在 ultralytics/engine/trainer.py 的BaseTrainer.get_dataset()中:当task为detect时,调用check_det_dataset(self.args.data)完成数据集的检查与解析。
check_det_dataset的核心逻辑位于 ultralytics/data/utils.py,对本文档中的 brain-tumor.yaml 而言,关键行为有:
- 裸名称自动补全:传入
data="brain-tumor"时会自动尝试补为brain-tumor.yaml(源码中允许coco8 -> coco8.yaml这类写法); - 字段校验:要求
train与val两个键必须存在,names与nc至少提供其一,并保证两者长度一致——brain-tumor.yaml 只提供names,框架自动设置data["nc"] = len(data["names"])即 2; - 路径解析:若
path是相对路径且本地不存在,会回落到DATASETS_DIR(由SETTINGS["datasets_dir"]决定,见 ultralytics/utils/init.py),并把train/val拼接为绝对路径; - 自动下载:当验证集路径不存在且
download字段以http开头、以.zip结尾时,调用safe_download下载并解压到DATASETS_DIR——这就是文档所说"首次训练自动下载 4.21 MB"的实现来源; - 字体检查:按
names是否为纯 ASCII 选择下载Arial.ttf或Arial.Unicode.ttf,用于后续结果可视化。
因此整个数据集"零手动安装"的体验,本质上是 YAML 的path+download两个字段与上述加载逻辑配合的结果。
三、训练 YOLO26:Python 与 CLI 两种用法
官方文档给出的标准训练配置是:100 个 epoch、图像尺寸 640,使用预训练权重yolo26n.pt启动训练(预训练模型对医学影像这类小数据集尤为重要)。
Python 方式
from ultralytics import YOLO # Load a model model = YOLO("yolo26n.pt") # load a pretrained model (recommended for training) # Train the model results = model.train(data="brain-tumor.yaml", epochs=100, imgsz=640)CLI 方式
# Start training from a pretrained *.pt model yolo detect train data=brain-tumor.yaml model=yolo26n.pt epochs=100 imgsz=640训练参数与默认值
文档示例只显式传入了epochs和imgsz,其余参数来自 ultralytics/cfg/default.yaml 的默认配置,与脑肿瘤训练相关的主要默认值有:
| 参数 | 默认值 | 说明 |
|---|---|---|
epochs | 100 | 训练轮数(本例显式指定 100) |
imgsz | 640 | 训练/验证输入边长(本例显式指定 640) |
batch | 16 | 批大小,也可用 0.0–1.0 的小数触发 AutoBatch 按显存自动选择 |
patience | 100 | 早停耐心值:验证指标连续 N 轮不提升则提前停止 |
close_mosaic | 10 | 最后 10 个 epoch 关闭 mosaic 增强 |
mosaic | 1.0 | mosaic 增强概率 |
完整的可训练参数列表见文档中 Train 参数页 的说明(对应仓库内default.yaml全量注释)。
关于 Mosaic 增强与医学影像
官方文档特别展示了该数据集训练批次的Mosaiced Image示例:Mosaicing 在训练时把多张图像拼合为一张,提高每个 batch 的多样性,使模型对不同尺寸、形状和位置的肿瘤泛化更好。这也是为什么close_mosaic=10这个默认参数值得留意——它在训练末期关闭拼图,让模型在接近真实单图分布的状态下完成收敛,对肿瘤这种边界敏感的目标定位通常有益。
四、微调后模型的推理(Inference)
训练完成后(例如产物best.pt),可以直接加载微调模型对脑肿瘤扫描做推理:
Python 方式
from ultralytics import YOLO # Load a model model = YOLO("path/to/best.pt") # load a brain-tumor fine-tuned model # Inference using the model results = model.predict("https://ultralytics.com/assets/brain-tumor-sample.jpg")CLI 方式
# Start prediction with a finetuned *.pt model yolo detect predict model='path/to/best.pt' imgsz=640 source="https://ultralytics.com/assets/brain-tumor-sample.jpg"推理输入支持本地文件路径、目录或 URL。预测结果results中包含边界框、类别(negative/positive)与置信度,可进一步用于区域统计或后续可视化(model.predict(..., save=True)会保存叠加标注的结果图)。
五、验证与数据集浏览
- 验证:
yolo detect val data=brain-tumor.yaml model=path/to/best.pt可单独在 223 张验证图上评估模型; - 数据集浏览:官方建议在 Ultralytics Platform 上查看该数据集的标注叠加图、类别分布与边界框热力图,再克隆到自己的云环境训练(见 数据集总览 中的 Brain-tumor 条目)。
六、常见问题(FAQ 精编)
Q1:数据集如何划分?1,116 张图像分为 893 张训练集与 223 张验证集,均带标注。该比例划分支持构建稳健的脑肿瘤检测模型。
Q2:如何获取数据集?无需手动下载。首次使用data="brain-tumor.yaml"训练时,框架检测到本地缺失(结合上文check_det_dataset逻辑)后会自动从 Ultralytics 官方 assets 下载约 4.21 MB 的压缩包并解压到全局DATASETS_DIR。
Q3:如何训练?即第三节给出的 Python / CLI 两种方式(100 epochs、imgsz=640),完整参数清单参见 Train 页。
Q4:如何推理?即第四节示例,加载微调后的best.pt对单张 MRI/CT 图或扫描目录做预测。
Q5:在哪里可以找到数据集 YAML?仓库内 ultralytics/cfg/datasets/brain-tumor.yaml,包含path、train、val、names与download全部字段。
七、引用与致谢
数据集以 AGPL-3.0 许可发布(见 LICENSE)。若在研究或开发工作中使用该数据集,请按下式引用:
@dataset{Ultralytics_Brain_Tumor_Dataset_2023, author = {Ultralytics}, title = {Brain Tumor Detection Dataset}, year = {2023}, publisher = {Ultralytics}, url = {https://docs.ultralytics.com/datasets/detect/brain-tumor} }八、小结
Brain Tumor 数据集是 Ultralytics 仓库内一个规模适中、开箱即用的医学影像目标检测基准:二分类(negative/positive)、893/223 训练验证划分、YAML 自描述 + 自动下载,使其成为验证 YOLO 系列模型在医疗场景落地路径的合适起点。按本文配置执行yolo detect train data=brain-tumor.yaml model=yolo26n.pt epochs=100 imgsz=640即可完成完整训练流程;需要进一步调优时,可对照 ultralytics/cfg/default.yaml 中各参数的注释逐项调整,或参考 YOLO26 模型文档 了解可用的模型规模与任务头。
【免费下载链接】ultralyticsUltralytics YOLO26, YOLO11, YOLOv8 — object detection, instance segmentation, semantic segmentation, image classification, pose estimation, object tracking项目地址: https://gitcode.com/GitHub_Trending/ul/ultralytics
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考