LIDC-IDRI肺结节数据集分割策略

本文涉及的产品
RDS DuckDB + QuickBI 企业套餐,8核32GB + QuickBI 专业版
简介: 本文介绍了使用LIDC-IDRI开源数据集进行肺癌检测项目的完整流程,包括数据预处理、训练分割模型和分类模型三个主要步骤。首先,下载包含患者DICOM文件的数据集;其次,克隆预处理代码并配置Pylidc库以生成肺部遮罩图像;最后,通过脚本准备数据集并创建元数据文件。文章还提供了相关GitHub资源链接,帮助读者更好地理解和实现项目。

整个过程分为3个步骤:数据预处理,训练分割模型,训练分类模型。

1.下载数据

我们将使用LIDC-IDRI开源数据集,其中包含每个患者的DICOM文件。 首先,访问网站,然后单击搜索按钮。

我们只需要CT图像进行训练。 整个数据包含1010位患者,这将占用125 GB的内存。 因此,如果这对于您的设备来说太重了,只需选择您可以负担的患者数量并下载即可。

2.克隆预处理代码

转到我的Github并将存储库克隆到您正在处理的目录中。 将LIDC-IDRI数据集保存在克隆存储库中的文件夹“ LIDC-IDRI”下

git clone https://github.com/jaeho3690/LIDC-IDRI-Preprocessing.git

3.设置Pylidc配置

Pylidc是用于轻松查询LIDC-IDRI数据库的库。 该库将帮助您为肺结节制作遮罩图像。 在网站上 ,您会找到有关安装的说明。 确保遵循这些说明,因为整个代码都取决于它。

4.脚本说明

  1. config_file_create.py

该python脚本创建一个配置文件'lung.conf',其中包含有关目录设置和Pylidc库的某些超参数设置的信息。 配置文件用于管理运行代码所需的所有冗长目录和其他设置。 制作单独的配置文件有助于轻松调试和有效更改设置。

您可以按原样使用给定的设置,但是可以根据需要进行更改。 对于Pylidc的超参数设置,您可以在文档中获取更多信息。

python config_file_create.py

2. prepare_dataset.py

运行此python脚本将首先从DICOM数据集中分割肺区域,并保存分割的肺图像及其对应的蒙版图像。 现在,当我刚开始这个项目时,我对肺区域的分割和肺结节的分割感到困惑。 像单词所说的那样,对肺区域进行分割仅保留了DICOM数据中的肺区域。 这样做是为了减少模型的搜索区域。 您可以为此使用特定的细分模型,但是简单的K-Means聚类和形态运算就足够了( utils.py 包含所需的算法)。 分割肺结节是从肺部影像中发现预期的肺癌。 您将需要训练诸如U-Net之类的细分模型(我将在第2部分中对此进行介绍,但是您可以在我的Github中找到该存储库。我仍然需要一些时间进行编辑,但是在我的计算机上可以正常使用)。 确保您将两者区分开!

分割肺区域后,每个肺图像及其对应的遮罩文件均保存为.npy格式。 “ .npy”格式是一种numpy数据类型,通常用于保存矩阵或N维数组。 LIDC-IDRI数据集中的某些患者的结核或非结核非常小。 因此,它们不包含遮罩。 我认为这些数据是“干净的”数据集(请问是否有正式术语),并将在分类阶段用于验证目的。 这些Clean数据集的随机切片将保存在Clean文件夹下。

该脚本不仅保存图像文件,而且还创建一个meta.csv文件,其中包含有关每个结节的信息。 它告诉我们切片编号,结节编号,结节的恶性程度以及图像和蒙版的目录。

python prepare_dataset.py

3. notebook/make_label.ipynb

Jupyter脚本编辑从prepare_dataset.py创建的meta.csv文件。 它创建了注释和区分每个结节所需的额外标签。 另外,我在这里进行训练/验证/测试拆分。 如果像大多数其他机器学习项目一样在模型训练过程中完成拆分,则相邻的结节切片很可能会包含在所有训练/验证/测试集中。 我认为这是一种“作弊”,因为相邻图像彼此非常相似。 因此,分割应在结节或患者方面进行。 我们稍后会在模型训练中使用此CSV文件。

A glimpse of the meta.csv and clean_meta.csv 概览meta.csv和clean_meta.csv

结论 (Conclusion)

总的来说,我已经解释了开始您的第一个肺癌检测项目所需的大多数事情。 我计划在存储库中添加一些代码后,稍后再编写细分和分类教程。 希望本文对您有所帮助。 谢谢

Github: https://github.com/jaeho3690/LIDC-IDRI-Preprocessing

GitHub: https : //github.com/jaeho3690/LIDC-IDRI-Preprocessing

相关文章
|
机器学习/深度学习 编解码 计算机视觉
Transformer又一城 | Swin-Unet:首个纯Transformer的医学图像分割模型解读
Transformer又一城 | Swin-Unet:首个纯Transformer的医学图像分割模型解读
2744 0
|
机器学习/深度学习 编解码 人工智能
人脸表情[七种表情]数据集(15500张图片已划分、已标注)|适用于YOLO系列深度学习分类检测任务【数据集分享】
本数据集包含15,500张已划分、已标注的人脸表情图像,覆盖惊讶、恐惧、厌恶、高兴、悲伤、愤怒和中性七类表情,适用于YOLO系列等深度学习模型的分类与检测任务。数据集结构清晰,分为训练集与测试集,支持多种标注格式转换,适用于人机交互、心理健康、驾驶监测等多个领域。
|
7月前
|
机器学习/深度学习 传感器 编解码
DINOv3上手指南:改变视觉模型使用方式,一个模型搞定分割、检测、深度估计
DINOv3是Meta推出的自监督视觉模型,支持冻结主干、仅训练轻量任务头即可在分割、深度估计等任务上达到SOTA,极大降低训练成本。其密集特征质量优异,适用于遥感、工业检测等多领域,真正实现“一个模型走天下”。
5268 2
DINOv3上手指南:改变视觉模型使用方式,一个模型搞定分割、检测、深度估计
|
11月前
|
传感器 自然语言处理 前端开发
体验通义灵码 2.5 版编程智能体
在当今快速发展的技术环境中,软件开发正经历着前所未有的变革。传统的编程方式往往需要开发者具备深厚的技术背景和丰富的实践经验,但随着人工智能技术的进步,这种局面正在被打破。通义灵码 2.5 版作为阿里云推出的一款先进的编程智能体,凭借其强大的自主决策、环境感知和工具使用能力,为开发者提供了一种全新的编程体验,使得从零开始构建应用程序变得更加简单高效。
|
机器学习/深度学习 数据可视化 算法
YOLOv11改进目录一览 | 涉及卷积层、轻量化、注意力、损失函数、Backbone、SPPF、Neck、检测头等全方位改进
YOLOv11改进目录一览 | 涉及卷积层、轻量化、注意力、损失函数、Backbone、SPPF、Neck、检测头等全方位改进
2363 7
YOLOv11改进目录一览 | 涉及卷积层、轻量化、注意力、损失函数、Backbone、SPPF、Neck、检测头等全方位改进
|
人工智能 自然语言处理 人机交互
CosyVoice 2.0:阿里开源升级版语音生成大模型,支持多语言和跨语言语音合成,提升发音和音色等的准确性
CosyVoice 2.0 是阿里巴巴通义实验室推出的语音生成大模型升级版,通过有限标量量化技术和块感知因果流匹配模型,显著提升了发音准确性、音色一致性和音质,支持多语言和流式推理,适合实时语音合成场景。
9420 22
CosyVoice 2.0:阿里开源升级版语音生成大模型,支持多语言和跨语言语音合成,提升发音和音色等的准确性
|
机器学习/深度学习 自然语言处理 大数据
【Transformer系列(2)】注意力机制、自注意力机制、多头注意力机制、通道注意力机制、空间注意力机制超详细讲解
【Transformer系列(2)】注意力机制、自注意力机制、多头注意力机制、通道注意力机制、空间注意力机制超详细讲解
8334 2
【Transformer系列(2)】注意力机制、自注意力机制、多头注意力机制、通道注意力机制、空间注意力机制超详细讲解
|
机器学习/深度学习 数据可视化 PyTorch
深度学习之如何使用Grad-CAM绘制自己的特征提取图-(Pytorch代码,详细注释)神经网络可视化-绘制自己的热力图
深度学习之如何使用Grad-CAM绘制自己的特征提取图-(Pytorch代码,详细注释)神经网络可视化-绘制自己的热力图
深度学习之如何使用Grad-CAM绘制自己的特征提取图-(Pytorch代码,详细注释)神经网络可视化-绘制自己的热力图
|
机器学习/深度学习 算法 数据挖掘
CVPR2024 医学图像相关论文
CVPR2024医学图像相关论文汇总,涵盖图像重建、超分、配准、分割、生成、分类、联邦学习、预训练模型、视觉-语言模型及计算病理等多个领域。包括多项创新技术,如QN-Mixer、PrPSeg、MAPSeg等,涉及多个开源项目和代码。持续更新中,欢迎关注。原始GIT地址:https://github.com/MedAIerHHL/CVPR-MIA
2014 0
|
机器学习/深度学习 人工智能 文字识别
ultralytics YOLO11 全新发布!(原理介绍+代码详见+结构框图)
本文详细介绍YOLO11,包括其全新特性、代码实现及结构框图,并提供如何使用NEU-DET数据集进行训练的指南。YOLO11在前代基础上引入了新功能和改进,如C3k2、C2PSA模块和更轻量级的分类检测头,显著提升了模型的性能和灵活性。文中还对比了YOLO11与YOLOv8的区别,并展示了训练过程和结果的可视化
24783 0