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

简介: 本文介绍了使用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

相关文章
|
机器学习/深度学习 计算机视觉
Mobile-Unet网络综述
Mobile-Unet网络综述
3300 0
Mobile-Unet网络综述
|
4月前
|
机器学习/深度学习 canal 人工智能
31类常见牙科结构与病变目标检测数据集(25000+张图片已标注)| YOLO训练数据集 AI视觉检测
本数据集含25000+张高质量牙科影像,覆盖龋齿、种植体、根尖病变、正畸托槽等31类结构与病变,采用YOLO标准标注格式,支持train/val/test划分,适用于YOLO、Faster R-CNN等模型训练,助力牙科AI诊断、教学与算法研发。
|
编译器
overleaf 参考文献引用,创建引用目录.bib文件,在文档中引用参考文献,生成参考文献列表
overleaf 参考文献引用,创建引用目录.bib文件,在文档中引用参考文献,生成参考文献列表
12421 0
|
6月前
|
传感器 人工智能 边缘计算
无人机行人精准检测数据集(7000张图片已划分、已标注)|AI训练适用于目标检测任务
本数据集包含6990张无人机航拍图像,已标注并划分训练集与验证集,聚焦单一类别“person”,适用于YOLO系列模型,助力公共安全、城市治理等场景下的行人精准检测与实时监控。
|
10月前
|
机器学习/深度学习 人工智能 数据可视化
白血病细胞检测系统(YOLOv8+PyQt5)源码分享
本项目基于 YOLOv8 搭建了一个白血病细胞识别系统,并通过 PyQt5 图形界面 实现了可视化操作,涵盖了从 模型训练、推理检测到界面化应用 的完整流程。与传统的人工观察相比,该系统能够显著提升细胞识别的 效率与准确性,并为科研人员和医学教学提供了便捷工具。
|
10月前
|
机器学习/深度学习 传感器 编解码
DINOv3上手指南:改变视觉模型使用方式,一个模型搞定分割、检测、深度估计
DINOv3是Meta推出的自监督视觉模型,支持冻结主干、仅训练轻量任务头即可在分割、深度估计等任务上达到SOTA,极大降低训练成本。其密集特征质量优异,适用于遥感、工业检测等多领域,真正实现“一个模型走天下”。
6140 2
DINOv3上手指南:改变视觉模型使用方式,一个模型搞定分割、检测、深度估计
|
机器学习/深度学习 自然语言处理 PyTorch
深入剖析Transformer架构中的多头注意力机制
多头注意力机制(Multi-Head Attention)是Transformer模型中的核心组件,通过并行运行多个独立的注意力机制,捕捉输入序列中不同子空间的语义关联。每个“头”独立处理Query、Key和Value矩阵,经过缩放点积注意力运算后,所有头的输出被拼接并通过线性层融合,最终生成更全面的表示。多头注意力不仅增强了模型对复杂依赖关系的理解,还在自然语言处理任务如机器翻译和阅读理解中表现出色。通过多头自注意力机制,模型在同一序列内部进行多角度的注意力计算,进一步提升了表达能力和泛化性能。
11222 48
|
计算机视觉
【YOLOv10训练教程】如何使用YOLOv10训练自己的数据集并且推理使用
【YOLOv10训练教程】如何使用YOLOv10训练自己的数据集并且推理使用
|
算法 计算机视觉
【YOLOv8训练结果评估】YOLOv8如何使用训练好的模型对验证集进行评估及评估参数详解
【YOLOv8训练结果评估】YOLOv8如何使用训练好的模型对验证集进行评估及评估参数详解
|
机器学习/深度学习 算法 数据挖掘
【机器学习】小波变换在特征提取中的实践与应用
【机器学习】小波变换在特征提取中的实践与应用
2187 0