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

相关文章
|
机器学习/深度学习 编解码 计算机视觉
Transformer又一城 | Swin-Unet:首个纯Transformer的医学图像分割模型解读
Transformer又一城 | Swin-Unet:首个纯Transformer的医学图像分割模型解读
2525 0
|
Shell Linux Python
基于远程服务器安装配置Anaconda环境及创建python虚拟环境详细方案(一)
基于远程服务器安装配置Anaconda环境及创建python虚拟环境详细方案
7574 0
基于远程服务器安装配置Anaconda环境及创建python虚拟环境详细方案(一)
|
4月前
|
数据采集 索引 Python
Python Slice函数使用教程 - 详解与示例 | Python切片操作指南
Python中的`slice()`函数用于创建切片对象,以便对序列(如列表、字符串、元组)进行高效切片操作。它支持指定起始索引、结束索引和步长,提升代码可读性和灵活性。
|
8月前
|
机器学习/深度学习 编解码 人工智能
计算机视觉五大技术——深度学习在图像处理中的应用
深度学习利用多层神经网络实现人工智能,计算机视觉是其重要应用之一。图像分类通过卷积神经网络(CNN)判断图片类别,如“猫”或“狗”。目标检测不仅识别物体,还确定其位置,R-CNN系列模型逐步优化检测速度与精度。语义分割对图像每个像素分类,FCN开创像素级分类范式,DeepLab等进一步提升细节表现。实例分割结合目标检测与语义分割,Mask R-CNN实现精准实例区分。关键点检测用于人体姿态估计、人脸特征识别等,OpenPose和HRNet等技术推动该领域发展。这些方法在效率与准确性上不断进步,广泛应用于实际场景。
1089 64
计算机视觉五大技术——深度学习在图像处理中的应用
|
7月前
|
传感器 自然语言处理 前端开发
体验通义灵码 2.5 版编程智能体
在当今快速发展的技术环境中,软件开发正经历着前所未有的变革。传统的编程方式往往需要开发者具备深厚的技术背景和丰富的实践经验,但随着人工智能技术的进步,这种局面正在被打破。通义灵码 2.5 版作为阿里云推出的一款先进的编程智能体,凭借其强大的自主决策、环境感知和工具使用能力,为开发者提供了一种全新的编程体验,使得从零开始构建应用程序变得更加简单高效。
|
9月前
|
人工智能 搜索推荐 图形学
ChatAnyone:阿里通义黑科技!实时风格化肖像视频生成框架震撼发布
阿里巴巴通义实验室推出的ChatAnyone框架,通过高效分层运动扩散模型和混合控制融合技术,实现高保真度、自然度的实时肖像视频生成。
354 13
ChatAnyone:阿里通义黑科技!实时风格化肖像视频生成框架震撼发布
|
8月前
|
JSON API 数据处理
掌握 JSON 到表格转换:全面指南
本文探讨了将JSON转换为表格格式(如CSV、Excel)的方法,助力高效数据处理与可视化。内容涵盖Python(Pandas库)、在线工具、Excel/Google Sheets、命令行工具(jq/csvkit)及数据库等多种方式,并分析了转换中的挑战与最佳实践。此外,还介绍了Apipost在API开发测试中的应用,帮助优化数据处理流程,提升开发效率。适合不同技术水平的用户学习参考。
|
机器学习/深度学习 编解码 监控
目标检测实战(六): 使用YOLOv8完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
这篇文章详细介绍了如何使用YOLOv8进行目标检测任务,包括环境搭建、数据准备、模型训练、验证测试以及模型转换等完整流程。
21841 59
目标检测实战(六): 使用YOLOv8完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
|
机器学习/深度学习 人工智能 文字识别
ultralytics YOLO11 全新发布!(原理介绍+代码详见+结构框图)
本文详细介绍YOLO11,包括其全新特性、代码实现及结构框图,并提供如何使用NEU-DET数据集进行训练的指南。YOLO11在前代基础上引入了新功能和改进,如C3k2、C2PSA模块和更轻量级的分类检测头,显著提升了模型的性能和灵活性。文中还对比了YOLO11与YOLOv8的区别,并展示了训练过程和结果的可视化
20366 0