脑肿瘤MRI数据集下载全攻略:从BRATS申请到预处理训练
2026/9/8 14:16:24 网站建设 项目流程

简介:面向医学影像AI与深度学习研究者,这份资源提供脑部MR图像及配套标注,覆盖脑肿瘤分类与分割两类常见任务。分类部分将肿瘤划分为神经胶质瘤、脑膜瘤、垂体瘤和无肿瘤四个类别,并做好训练/测试文件夹拆分;分割部分则区分有无肿瘤,且在标签文件夹中给出肿瘤坐标,方便进行像素级定位实验。整个资源包共2000个文件,以1849张JPG图像为主,辅以150个TXT标签文件和1个YAML配置文件,压缩包总大小约92MB。已有523人学习下载,说明其在相关研究中具有一定参考价值。读者拿到后可直接用于模型预训练、RSNA竞赛备赛或课题验证,既可利用TXT标注快速构造分类/分割数据集,也可借助YAML配置迅速搭建训练流程,省去繁重的数据清洗与格式转换环节。

1. 项目概述与核心需求拆解

1.1 为什么要单独写一篇“数据集下载”的博文

先说一下我写这篇文章的初衷。脑肿瘤MRI数据集是医学影像深度学习里最常用到的数据之一,几乎每个做医学图像分割、分类或者生存分析的新手,第一步都需要把它搞到手。但问题是,这类数据和常规的CIFAR-10、ImageNet不一样,它散落在各个研究机构、比赛平台和个人主页上,有的需要填申请表,有的要等邮件审批,有的下载到一半断掉还得重来,整个过程踩坑率极高。

我最早做脑肿瘤分割的时候,光是搞定BRATS数据集就折腾了两天,中间还因为申请信息填得不对被拒了一次,后来才摸清楚规律。所以我这篇内容的核心目的,就是把“脑肿瘤MRI数据集下载”这件事从头到尾说透:去哪里找,怎么选,怎么下,下载完怎么整理成能直接喂给模型的样子。

1.2 这些数据集到底解决什么问题

脑肿瘤MRI数据集在计算机视觉和医学影像分析领域,主要服务于三个方向:一是脑肿瘤区域的自动分割,也就是把MRI图像里的肿瘤、水肿、坏死区域逐像素标出来,最经典的任务就是BRATS挑战赛做的那个事情;二是肿瘤良恶性分类,判断一个病灶是低级胶质瘤还是高级胶质瘤;三是更复杂一点的生存期预测或者基因表达预测,属于多模态学习的范畴。

这三个方向的入门门槛差别挺大。做分类相对简单,有个几百例数据就能跑通流程;做分割就需要像素级的标注,数据量要求更大,标注质量直接影响模型上限。所以你在选数据集的时候,先要明确自己的任务形态,然后再去匹配数据源,别看到“脑肿瘤MRI”就盲目下载,下载完才发现没有标注,或者模态对不上,那就很尴尬了。

另外还需要注意,不同数据集的成像协议差异很大,有的只有T1加权像,有的包含T1ce、T2、FLAIR四种模态。如果你做的是多模态融合,就必须确保数据源提供了完整的模态组合,这一步选错了,后面整个pipeline都要推倒重来。

2. 主流脑肿瘤MRI数据集选型与对比

2.1 数据集之间的核心差异在哪里

脑肿瘤MRI数据集不像自然图像数据集那样“一个包全搞定”,它更像是一个个独立的子集,每个子集背后对应着不同的医院、不同的扫描仪、不同的标注标准。这种差异直接决定了你训练出来的模型能不能泛化到真实临床场景,所以选型阶段值得花点时间认真比对。

先说最经典的BRATS系列。BRATS(Brain Tumor Segmentation)是国际医学影像计算会议MICCAI旗下的挑战赛,从2012年开始每年举办,对应的训练集和验证集每年都开放下载。它的特点是模态完整、标注精细:每例数据都包含T1、T1ce、T2、FLAIR四个序列的MRI成像,分割标签区分了坏死、水肿、增强肿瘤等子结构。如果你做的是肿瘤分割,BRATS几乎是绕不开的第一选择。

然后是FIGSHARE网站上那个非常流行的“脑肿瘤MRI数据集”,很多人叫它“Figshare Brain Tumor Dataset”。这个数据集包含了大约3000多张T1加权增强图像,配上三种类型的标签(脑膜瘤、胶质瘤、垂体瘤),格式是常见的二维图像,不需要处理NIfTI文件,非常适合做分类任务的练手项目。很多初学者会用它来跑VGG、ResNet之类的模型,效果很好,而且下载不需要任何申请流程,点进去就能拿。

第三个值得关注的是TCGA-GBM和TCGA-LGG,这两个来自美国癌症基因组图谱计划。它们的特点是不仅有MRI影像,还附带了基因表达、病理切片、临床数据等多组学信息。如果你做的是跨模态研究、生存分析这类课题,TCGA系列能提供大量额外的维度,这是BRATS和FIGSHARE数据集不太具备的。

2.2 选择数据集的几个判断标准

我把选数据集的经验总结成一张对比表,方便你对照着自己的需求来找:

数据集名称任务类型模态/格式样本量下载难度适合场景
BRATS 2021分割4模态NIfTI+像素级标注1251例训练需要注册申请分割模型训练、多模态融合、挑战赛复现
Figshare脑肿瘤MRI分类二维T1ce图像3064张直接下载三分类入门、迁移学习、图像分类教学
TCGA-GBM/LGG多模态MRI+DICOM+组学数据上千例需申请数据库访问权限生存分析、基因-影像关联研究
IXI数据集健康脑区分析T1/T2/PD等约600例登记后下载正常脑结构分析、无监督预训练

判断标准上,我一般优先看三件事:第一,标注颗粒度和质量,BRATS对肿瘤子区域做了精细划分,而Figshare数据集只有粗粒度的三类标签;第二,数据规模是否匹配你的模型复杂度,用ResNet50做分类,3000多张图勉强够用,但如果要用Transformer这类大模型,就得上BRATS或者做大量的数据增强;第三,获取门槛能不能接受,有些数据集需要签数据使用协议、等审批,要是你赶时间,就先从开放获取的图集开始。

我的建议是:新手入门先下载Figshare那个,快速跑通分类流程;正式做分割或者做论文级别的实验,再申请BRATS,它提供的多模态数据、官方验证集以及评价指标脚本,能帮你省掉很多自己搭评估流程的时间。

3. 下载实操:从零开始拿到数据

3.1 BRATS数据集的申请与下载流程

BRATS的下载不是一个“点一下按钮就行”的过程,它需要走官网注册、申请表填写、邮件审批、专属链接下载这几个环节。我第一次申请的时候就栽在了第二个环节上,所以这里把每一步都拆开说清楚。

第一步,打开BRATS官方挑战赛页面。这几年BRATS的赛事和数据集托管在各个不同的平台,比如有的年份用的是SBIC、有的年份用的是Synapse、有的年份通过挑战赛官网直接跳转。以Synapse为例,你需要注册一个账号,注册过程填写邮箱、机构、研究方向等信息。这里建议使用学校或研究机构的邮箱,普通个人邮箱也能过,但审批速度可能稍慢。

第二步,填写数据使用申请表。Synapse上找到BRATS对应的数据集页面,点进去会看到“请求访问”之类的按钮,点击后会弹出一个表格,一般会让你填写研究用途、所属机构、预计使用期限等信息。我的经验是“研究用途”这一栏一定要写得详细具体,不要只写一个“deep learning”,最好比如“用于多模态MRI脑肿瘤分割算法的研究,计划使用U-Net架构进行训练与验证”。内容越具体,审批通过的概率和速度都会提高。

第三步,等待邮件通知。审批周期通常在几小时到几天不等,遇到周末可能会更久。每次调查都会收到一封邮件,点邮件里的链接,重新登录Synapse,就可以看到下载权限已经开通了。需要提醒的是,BRATS数据集的下载链接往往有有效期,有效期过了需要重新申请,所以下载前先把磁盘空间安排好。

第四步,下载与校验。BRATS数据集的打包文件通常以压缩包形式提供,大小在几十GB到上百GB不等,建议使用支持断点续传的下载工具,否则网络一波动就得从头再来。下载完成后,检查一下压缩包大小是否与官方标注一致,并做一次MD5校验,防止传输过程中出现文件损坏。

3.2 Figshare数据集的快速获取方式

如果你想先体验一下脑肿瘤MRI数据,不想被申请流程卡住,那么Figshare上的数据集是首选。具体步骤非常简单:打开Figshare网站上对应的“Brain Tumor Dataset”页面,找到Download按钮,就能直接获取一个ZIP压缩包,里面包含图像和对应的CSV标签文件。

这个数据集还有一个很大的优势,就是不需要处理医学影像专用格式。文件里大多是常见的PNG或JPEG图像,直接用OpenCV或者PIL就能读取,这对习惯自然图像处理流程的开发者来说非常友好。我经常用它来写教学案例,也因为省去了DICOM和NIfTI的解析步骤,代码量能少很多。

不过要注意,Figshare数据集的模态相对单一,只有T1加权增强图像,没有FLAIR、T2等其他序列。你要是做多模态模型,就不要抱期望了;但做单模态分类、对比学习或者预训练特征提取,它的使用价值还是相当高的。

3.3 TCGA等多模态数据的获取途径

TCGA的数据获取相对复杂一点,因为它涉及基因数据和影像数据的双重权限管理。影像数据要通过癌症影像档案(The Cancer Imaging Archive,简称TCIA)来获取,而基因和临床数据通过GDC数据门户获取。这两个平台都需要先注册账号,然后单独提交访问申请。

TCIA上可以下载到TCGA-GBM和TCGA-LGG的MRI原始数据,格式通常是DICOM,可选下载的范围很细,你可以根据患者ID、模态、身体部位进行筛选。我曾经只筛选了几十例胶质母细胞瘤的T1加权图像,下载量就控制在合理范围内,大大缩短了传输时间。

GDC那边则需要申请dbGaP权限,这个过程更严肃,通常需要上传研究方案、机构证明等文件,审批周期以周计。如果你只是做影像分析,其实用TCIA的影像数据就够了,基因数据那部分可以等真正需要时再申请。

4. 数据整理与预处理:把原始数据变成可训练的数据集

4.1 理解NIfTI与DICOM两种格式差异

拿到BRATS数据之后,你会发现它和自然图像完全不一样。BRATS用的是NIfTI格式,单一个文件就保存了整个三维脑部体数据,需要用专门的库才能读取,比如Python里的nibabel或者SimpleITK。相比之下,Figshare数据集用常规的二维图像格式,读起来无比顺畅。

NIfTI格式的理解并不难,你可以把它想象成一个三维矩阵,每个体素对应一个数值,表示该位置的MRI信号强度。对于BRATS的多模态数据,四个模态是四个独立的NIfTI文件,分别对应T1、T1ce、T2、FLAIR序列,每个文件的维度是相同的,都是同一个大脑的四次不同成像方式。

DICOM则是一个更复杂的医学影像标准,单个检查就会产生几十上百个文件,每个文件不仅包含图像数据,还包含患者信息、扫描参数、层厚位置等元数据。TCGA下载下来的数据大多是DICOM格式,需要先用dcm2niix这类工具把它转换成NIfTI,才能跟其他数据集统一处理流程。

4.2 预处理的基本步骤与操作细节

预处理是医学影像深度学习里最琐碎但也最关键的环节。我自己常用的处理流程可以拆成四步,每一步都有对应的工具和需要注意的细节。

第一步,将DICOM转换为NIfTI。用dcm2niix工具,一条命令就能完成批量转换。命令大致是dcm2niix -o output_folder input_folder,转换时它会自动识别序列信息,并在文件名里保留序列类型标识。检查输出文件时,重点看文件名是否区分了T1、T2、FLAIR等序列,对应的数值是否处于合理的医学影像灰度范围内。

第二步,对NIfTI文件进行重采样与配准。不同患者的扫描矩阵大小可能不一样,有的是240x240x155,有的是256x256x192,如果直接丢进模型,batch拼不起来。常规做法是把所有数据重采样到统一的分辨率,比如1mm x 1mm x 1mm的体素间距,再使用线性插值对齐到同一个标准空间。这一步可以用SimpleITK实现,核心操作就是定义好新的间距和输出尺寸,然后调用Resample函数。

第三步,数值归一化和数据增强。MRI图像的信号强度没有统一的物理单位,不同扫描仪甚至同一台扫描仪不同批次的数据,灰度分布都可能不同。因此要做Z-score归一化,把每个模态的数据减去均值除以标准差,让分布稳定在0附近、标准差为1。数据增强方面,常用的是随机裁剪、翻转、旋转、弹性形变等;医学图像里还有一种比较常用的做法是随机强度偏移和加噪声,因为能提升模型的鲁棒性。

第四步,数据划分与存储格式确定。我习惯按照训练集、验证集、测试集的比例7:2:1来划分,同时确保三个集合之间没有来自同一个患者的数据,以避免数据泄漏。存储格式上,如果用PyTorch,建议把预处理后的数据包成HDF5或NPZ文件,读取速度会比直接读NIfTI快不少;如果用深度学习框架自带的数据集类,也可以直接保留文件目录,配合Dataset类动态读取,像MedicalSeg这类开源项目就是这样组织的。

4.3 无标注数据的处理思路

有些场景下,你拿到的数据没有标注,这时候就需要用一些替代方案来“曲线救国”。一种常见做法是用已有标注的数据集做预训练,再把模型迁移到无标注数据上微调;另一种是借助公开的预训练模型做伪标注,也就是用模型预测的结果作为标签,再人工校准一部分,形成半监督学习的循环。

我实际测试下来,用BRATS训练好的分割模型,去预测Figshare数据集的肿瘤区域,预测结果的Dice系数在0.6到0.8之间波动,这取决于肿瘤类型和位置。这个水平虽然不能直接作为最终标注,但用来做预筛选、异常检测或者辅助临床标注,效率会提升不少。如果你是在做科研探索,这个思路值得尝试。

5. 训练实战与避坑指南

5.1 从零搭建一个脑肿瘤分割训练管线

我以BRATS数据集的子区域分割为例,演示一下完整的训练管线搭建过程。这里用PyTorch和nnU-Net来做说明,nnU-Net是当前医学分割领域表现最好的框架之一,它自动处理了数据预处理、网络架构和训练策略的很多细节,相当于帮你做了大量的默认设置。

nnU-Net的安装和配置很简单,核心命令是:

pip install nnunetv2 nnUNetv2_plan_and_preprocess -d DATASET_ID -pl 3d_fullres

先要把数据集整理成nnU-Net规定的目录结构:imagesTr存放训练图像,labelsTr存放标签,dataset.json记录模态数量和类别信息。图像和标签都建议是NIfTI格式,而且每个患者的四模态文件要合并成一个多通道NIfTI文件。整理完成后,运行预处理命令,nnU-Net会自动进行归一化、裁剪、重采样,并生成后处理所需的统计信息。

接着运行训练命令:

nnUNetv2_train DATASET_ID 3d_fullres 0

这里的参数分别对应数据集编号、配置名称和GPU序号。训练过程中可以随时用TensorBoard监控损失和Dice指标的变化。我一般会训练到验证集Dice不再明显提升为止,或者直接跑满默认的1000个epoch,然后选取验证集表现最好的模型进行推理。

完整训练一轮BRATS分割模型,在单张24GB显存的显卡上大约需要耗时24到48小时,具体取决于显存容量和网络复杂度。如果你只有一张8GB显存的卡,建议直接使用2d配置或降低batch size,不要强行用3d_fullres,否则大概率会爆显存。

5.2 训练时最常见的四个坑

第一个坑是显存优化没做好。3D医学图像非常吃显存,BRATS原始数据经过裁剪后通常还有128x128x128的大小,直接用U-Net训练很容易让8GB显存直接崩溃。解决办法有三个:降低batch size、使用混合精度训练、或者用patch-based训练,也就是每次只输入一小块局部区域。其中patch-based是nnU-Net默认采用的方式,你用别的框架时也要优先考虑这个策略。

第二个坑是类别不平衡。脑肿瘤数据集里,背景区域占的比例超过98%,肿瘤区域可能只有1%到2%,如果直接用交叉熵损失,模型会倾向于把所有像素都预测为背景。解决办法是使用组合损失,比如Dice Loss加上小权重的交叉熵,或者直接用Tversky Loss这类专门处理不平衡问题的损失函数。我在实际实验中用Dice Loss配合Focal Loss,在BRATS验证集上能把整个肿瘤的分割Dice从0.72拉到0.85。

第三个坑是数据泄漏。很多新手在使用患者数据时会不小心把同一个患者的多个切片同时分进训练集和测试集,导致测试结果虚高,实际部署时性能急剧下降。解决方法是按患者ID来划分数据、保证患者独立性,而不是按切片来划分。

第四个坑是评估指标选择错误。脑肿瘤分割的常用指标是Dice相似系数和Hausdorff距离,而不是自然图像领域常用的IoU或者像素精度。Hausdorff距离对边界形状的要求很高,很多模型Dice值很高,但Hausdorff距离很差,说明边界预测还不够精细。如果你要写论文,这两个指标都要报告,别漏掉其中一个。

5.3 分类任务的快速实践路径

分割之外,脑肿瘤MRI数据集另一个常见用途是分类,比如区分脑膜瘤、胶质瘤、垂体瘤三种类型。这个任务使用Figshare数据集就足够了,配合ResNet、EfficientNet这些预训练模型,很快就能达到不错的效果。

我在实验中使用了不少于100行代码去构造一个基础的PyTorch训练脚本,核心步骤包括:加载图片和标签、做数据增强、替换分类头为三输出、用ImageNet预训练权重初始化网络、训练20个epoch。在我的显卡上,大约半小时左右就能把验证集准确率做到90%以上。

这里有个小技巧:因为医学图像是灰度图,直接使用在RGB彩色图像上预训练的模型并不完全适配,一个有效做法是将单通道图像复制成三通道,或者使用转换函数将灰度图映射为伪彩色图。复制的做法虽然朴素,但实测效果很好,还能利用ImageNet预训练带来的特征表达能力。另一个技巧是在全连接层之前加一个全局平均池化层,这样可以增强模型对不同输入尺寸的适应能力。

6. 常见问题快速排查与经验补充

6.1 下载与数据使用中的典型问题

问题现象可能原因解决方案
官网注册后无法登录使用了校园邮箱但未完成邮箱验证检查收件箱和垃圾箱,点击激活链接
下载速度极慢服务器在国外,网络链路长使用支持断点续传的工具,错峰下载
申请访问权限被拒研究用途填写不明确重新提交申请,用途写具体,说明任务和数据规模
压缩包解压报错下载不完整或出现截断重新下载并校验文件哈希与网站标注是否一致
NIfTI数据只有三维数组看不懂对医学影像格式不熟悉用ITK-SNAP打开文件,可视化后再处理

6.2 数据标注的校验技巧

拿到BRATS数据集的标签后,我建议先做一次批量校验,确认标签值和真实病理结构对应无误。可以用ITK-SNAP对任意几个病例做三维可视化,依次查看四个模态和对应的标签,重点观察肿瘤区域在不同模态下的亮度变化和边界形状。很多刚入门的朋友会忽略这一步,直接开始训练,最后模型训练出来发现标签和图像错位,浪费大量时间。

另一种校验方法是统计标签类别的体素数占比。BRATS的标签里通常包含背景、坏死、水肿、增强肿瘤等类别,如果你发现某个类别的体素数占比异常,可能是转换过程中出了问题,也有可能是该例患者确实缺少某种结构。这种统计不能完全替代目视检查,但能快速帮你筛选出可疑样本。

6.3 后续扩展的思路与个人体会

脑肿瘤MRI数据集的价值并不局限在下载和训练这一个环节。你可以尝试用它来做跨数据集的泛化测试,比如在BRATS上训练模型,然后在其他公开数据集上评测,看看模型在新医院、新型号扫描仪上的表现如何,这是医学影像论文里很有说服力的一类实验。你也可以结合迁移学习、注意力机制、模式掩码等技巧来提升模型的细节表现。

我个人在实际操作中体会最深的一点是:数据质量和数据整理花费的时间,往往会超过模型训练本身。第一次接触医学影像时,我被NIfTI、DICOM、体素间距这些概念来回折磨,但熬过这一关之后,后面的事情就顺多了。最后再分享一个小建议:尽量不要一开始就追求弄齐所有数据集,先选定一个小任务,把一个数据集从下载到训练完整跑通,再回来扩展数据源,这样进步最快。

本文还有配套的精品资源,点击获取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询