Advertisement

x光肺部分割数据集_LIDC-IDRI肺结节Dicom数据集解析与总结

阅读量:

本研究基于LIDC-IDRI数据库进行医学图像分析与诊断标注提取。主要分为以下几方面:1. 数据源 - 数据集由CT、X光片等类型组成。 - 每张图像由4位经验丰富的放射科医师独立标注为>=3mm结节、<3mm结节或>=3mm非结节。 - 采用两阶段标注避免被迫 consensus的前提下提升准确性。 - 数据集包含约1018实例。2. 图像文件格式 - DICOM格式:标准医疗影像格式,记录像素值及元数据。 - HDF5格式:便于存储多对象文件结构,在数据分析中使用。 - 图像尺寸统一为512x512像素(约512KB),支持不同模态如CT、CR等。3. 诊断标注 - 使用XML格式解析注释信息。 - XML文件包含响应头(如版本号)、阅读会话(radiologist annotations)及结节分类信息。 - 标注分为有标记点和无标记区域两类。4. 数据处理与特征分析 - 利用Python脚本对DICOM和HDF5进行解析与预处理。 - CT图像连续性强且三维特性有助于判别;但灰度模糊等问题影响准确性。 - 数据不平衡问题通过旋转有标记图片并减少无标记样本解决。5. 短期总结 - 累积知识储备并将其转化为可分享的内容。 - 在项目中注重问题解决能力的提升与经验积累。

一、数据源

该系统采用了多样化的数据来源作为支撑。

训练数据来源于LIDC-IDRI这一数据库,其中包含了来自CT扫描、X光片等胸部医学图像及其相应的病变诊断标记的数据集。这些医疗影像资料由美国国家癌症研究所(National Cancer Institute)负责收集整理,并旨在探索如何在高风险人群中早期发现癌症

该数据集中,共收录了1018个研究实例。对于每个实例中的图像,都由4位经验丰富的胸部放射科医师进行两阶段的诊断标注。在第一阶段,每位医师分别独立诊断并标注病患位置,其中会标注三中类别:1) >=3mm的结节, 2) <3mm的结节, 3) >=3mm的非结节。在随后的第二阶段中,各位医师都分别独立的复审其他三位医师的标注,并给出自己最终的诊断结果。这样的两阶段标注可以在避免forced consensus的前提下,尽可能完整的标注所有结果。

文件位置: LMU -> lidc-idri nodules的数量 (6月到23日, 2015年).xlsx

存储位置: LIDC-IDRI -> tcia-diagnosis-data-2012-04-20.xls

二、图片文件类型

影像数据的DICOM数据格式

该图像是采用DICOM格式存储的文件,在医疗领域中具有通用性。其中除包含像素信息外,还包含一些附加元数据信息,如图像类型和采集时间等。

一个CT图像包含512 \times 512个像素点,在DICOM文件中每个像素占用两个字节。因此一张图片大约占据约512\text{KB}的空间。每个像素都表示为整数值,并且其专业术语称为Hounsfield单位或CT编号。用于量化描述物质的放射特性(参考维基百科)。以下表格列举了常见物质对应的Hounsfield单位值

基于单一通道的图像进行处理后会生成灰度图像。经过渲染后显示的图像中,较高放射密度的区域显示更为明亮。

该资源不局限于像素图,并包含一些关键Tag(基于DICOM的标准标签集)

可以在LIDC-IDRI网站上直接查找图像数据信息。
为了便于分析这些医学影像数据,在研究中我们主要关注如下的几项DICOM中的TAG字段。
需要注意的是,在实际操作中仅采用上述TAG进行处理,并忽略其他未使用的TAG。

第2章 HDF文件组织形式

在后续的数据处理过程中可能会用到hdf格式的数据。以下将详细介绍hdf文件格式

一种自我描述式的多目标文件格式被命名为HDF。由美国国家超级计算应用中心(NCSA)开发,旨在应对各领域的科学家需求。该格式能够有效支持多种必要条件。该标准旨在:

自述性:针对每个存储在HDF文件中的数据对象,在缺乏任何外部补充信息的情况下,HDF允许程序解析这些存储结构及其相关属性

多种数据类型均可在HDF文件中实现嵌入,并借助其灵活的数据组织方式将符号、数字以及图像等多种类型的数据整合至同一个存储空间中。

灵活性:该系统支持用户将相关联的数据对象整合到一起,并放置在一个层次化的架构内;此外,它能够将科学数据存储在多个独立的HDF文件中

HDF能够轻松容纳未来新增数据模式,并且能够与各种标准格式良好地兼容

不受平台影响的HDF文件格式具有良好的兼容性。通过无需任何转换即可实现不同平台之间的无缝交互。

除了NCSA之外,我认为还有国家卫星气象中心也在使用它。此外,国家卫星气象中心推出了一个中文版的HDF5.0使用指南 - 国家卫星气象中心!

注释:hdf的具体内容将在以下链接中详细阐述。

简要介绍HDF文件的基本构成(HDF4,HDF5)

探索HDF5技术:一种高效灵活的多目标数据存储方案

第三章 由诊断过程产生的标记

诊断标注遵循XML格式进行处理,并已实现现有解析器功能(DeepLearning:medical_image/src/data/annotation.py)

XML文档的头部部分中包含着响应头信息

1.7

1152727

2006-06-05

17:08:37

removed表示一种删除操作已完成的状态

The original design and initial plan have been deleted.

Second unblinded read

取消

取消

1.3.6.1.4.1.14519.5.2.1.6279.6001.340202188094259402036602717327

1.3.6.1.4.1.14519.5.2.1.6279.6001.584233139051825667176600857752

2006-06-05

17:08:37

该资源已完整阅读

Aggregated, ensuring reader anonymity, unblinded response data.

XML文件中的ReadingSession(标注):

3.12

无名 entity

无名 entity

16448

-181.0

1.3.6.1.4.1.14519.5.2.1.6279.6001.156388264492529846911221229696

该平台提供真实信息

61198

16446

-187.0

1.3.6.1.4.1.14519.5.2.1.6279.6001.270634182491671360557327079123

373225

XML file named ReadingSession is annotated with [label].

3.12

anonymous

匿名

12468

-70.0

1.3.6.1.4.1.14519.5.2.1.6279.6001.350028248790971951374528707491

TRUE acknowledged

398252

12453

3

1

6

2

4

1

1

5

1

-250.0

1.3.6.1.4.1.14519.5.2.1.6279.6001.100791367364990316173567441168

该系统运行正常

这个结果非常可靠

该数据具有高度准确性

49316

50315

51314

51313

51312

51311

51310

51309

51308

51307

50306

49305

48306

48307

49308

48309

48310

48311

49312

48313

49314

48315

49316

12461

-253.0

1.3.6.1.4.1.14519.5.2.1.6279.6001.150739457477763063347777523734

布尔值

202398

12471

-199.0

1.3.6.1.4.1.14519.5.2.1.6279.6001.267363953457812811093234965009

372153

四、数据分析与代码实现

本章主要对系统的数据分析流程进行详细阐述,并对其核心模块的实现方式进行深入探讨。

4.1 数据预处理方法

本节重点介绍了数据预处理的具体方法及其适用场景,并对相关的算法进行了详细说明。

4.2 代码执行逻辑分析

本文深入解析了系统运行时的核心代码模块的功能特性,并通过示例展示了其实际应用效果。

nodule_structs.py

基本结构

核心架构的布局

核心架构的布局

NoduleFeatures

This is Node RoI.

Node(所有lesions的base class)

结节分类 -> 普通结节,小结节,非结节

结节分类 -> 普通结节,小结节,非结节

结节分类划分为普通类型的、微小的圆形结构以及异常形态的结构

该资源用于识别和分析正常结节(...),其中每个...代表不同的特征指标。

Small Nodules

The characteristics of nonnodule are typically defined as a collection of morphological and radiological features that collectively indicate the absence or reduced likelihood of nodular pathologies.

肿瘤标记识别

RadAnnotation

结节头

甲状腺结节的前部

Annotation Header

读取XML信息

解析XML数据内容

该系统能够有效读取并解析来自外部的消息流

第2部分为 notes.py 文件

分析XML

本系统能够对XML文档进行深入解析与分析

本系统支持对XML格式数据的全面解析和逻辑分析

通过调用该函数可以实现对XML文件的解析。

logging.info("Parsing %s" % xml_filename)

annotation_list: [] = None

ET represents the library we utilize for XML data parsing.

tree被etree库中的parse函数用来解析XML文件xml_filename

root = tree.retrieveRootNode();

Extract the header from root and assign to header variable.

readingSession-> contains radiologists' annotation information.

for session in root.findall('nih:session', namespace)

注会被每个放射科医生保留

将每一份放射学检查的注释信息保存给每位 radiologist

例如,在XML文件中定义了一个读取会话的机制

radi_annotation = RadiAnnotation()

rad_annotation 的版本号字段 =

When accessing the 'nih:annotationVersion' within the read_session, the corresponding namespace (NS) is retrieved, and the text content is then obtained.

rad_annotation.id等于空值

从读取会话中调用find方法以获取.nih:servicingRadiologistID属性。

nodules

nodule_nodes被find的函数获取了从ns中查找的'nih:unblindedReadNodule'节点

遍历节点集合中的每个节点node

肿瘤结节被解析为节点 = 解析肿瘤结节(node)

当该节点为小结节时:

nodule被添加到annotation的小结节列表中

else:

rad_annotation.nodules.insert_at_end(nodule)

该资源能够帮助用户轻松识别non-nodules,并提供详细的分析报告。它通过直观的界面设计让用户能够快速掌握基本操作流程,并支持多种数据导入与导出功能以满足不同场景需求

nonNODULENodes = nodeReader.findall('nih:nonNODULE', namespace)

遍历所有非结节节点:

nodule变量解析为非nodle结构

annotation.non-nodules.extend([nodule])

annotations.append(rad_annotation)

返回标注

返回标注

深入解析关键部位

复制代码
该函数用于解析头文件。

annotation_header := AnnotationHeader()

输出root对象中所有具有nih属性的项

resp_hdr is obtained by querying all 'nih:ResponseHeader' elements in the specified namespace and selecting the first one in the list.

其中version字段由响应头对象中的.nih:Version属性获取而来。

其中version字段等于响应头对象中.nih:Version属性的内容。

header字段中的message ID属性被赋值为响应头中的NLMIME头信息中包含的message ID内容

Header字段中的请求日期字段赋值为响应头中的.nih:DateRequest节点的文本内容。

将变量time_request被赋值为响应头对象中查找指定的NLM-Schema元素的时间戳文本内容

header的任务描述字段将被赋值为通过查找元素 resp_hdr 中的 'nih:TaskDescription' 节点 并指定空间声明 NS 来获取其文本内容

header_node.series_id = response_header.find('Nih:series_id', NS).text

date_service将被赋值为resource_header中NIH/DateService节点的检索结果

if date_service检测存在:

headers.date_service_obj := date_service.text

time_service = resp_hdr中查找带有'nih:TimeService'节点并指定NS的结果

只有当time_service字段不是null对象时:

header的时间服务字段被设置为时间服务对象的文字字段值。

header.study_instance_uid = resp_hdr.locate('nih:StudyInstanceUID', NS).value

调用函数返回头信息

分析结节与无恶性病变的影像特征

请查看详细内容...源代码

请查看详细内容...源代码

复制代码
3\. DICOM script (part)

CT图像分为三类,包括CT、CR、DX三种类型。通过查阅LIDC-IDRI数据库中的Modalities信息,也可以进一步了解相关技术。如图所示。

基类DcmImage

基础类型 DCMImage

DCMImage 是一种用于定义数字色管理图像属性的基础类型

该接口定义了图像属性的集合及其操作规则

通过继承自此接口的所有实例均能实现相应的功能

三种子类 -> CTImage, CRImage, RXImage

三类核心组件分别对应CT影像、CR影像和RX影像

该技术图像系统

计算机视觉图像处理技术

DX图像

第4章 lidc_xml_parser.py的部分

主要是对XML文件进行深入研究和解析,以获取所需的所有信息内容,并在源代码中进行详细标注。

第五章 数据准备模块(部分)

判断指定位置是否有结节

判定固定位置是否存在病变

判定固定位置是否存在病变

One-hot编码

One-hot编码

通过独热编码技术将分类数据转换为二进制表示

干预病变肿块

在本节中,我们对数据的各个特性进行研究和评估,以揭示其内在规律及其与其他相关因素之间的相互作用机制.

鉴于数据包含多种不同的特性,在后续训练中有的特性具有益处(有益于提升训练效果),而有的特性则不具优势(不利于提高训练效率),因此需要实施一系列预处理措施。

有利点

有利点

有利点

有利点

优势

优势

优势

CT成像技术的连续采样特性有助于通过规则间隔的多次断层扫描实现对病变组织(如结节)的准确识别。

三维CT图像(断层方向成像过程)

对原始数据进行预处理(包括降噪、加强和平滑化处理等)

不利点

不利点

不利因素

不利点

不利因素

不利点

不利因素

不利因素

由于数据分布失衡且呈现不对称特征(其中标注数据占比极度匮乏仅占不到万分之一),建议采取以下措施:首先可通过正类样本实施旋转变换以扩展其数量;其次可补充新增的数据源以增强模型的泛化能力;最后针对负类样本实施合理筛选仅保留必要的样本内容以优化训练集质量

图像清晰度(灰度分辨率、空间分辨率以及分辨率等),存在投影(由于被测者自身主动或被动运动所导致)

原始图像遵循 DICOM 格式,在使用前必须经过多种预处理步骤才能应用;初期阶段较为繁琐;若处理得当,则将变得更为简便易行。

数据分割被视为一种关键的前期处理技术。该方法的主要目标在于提升模型训练效率。通过合理地将数据划分为训练集和验证集两部分来实现这一目标。该过程不仅能够有效防止过拟合现象的发生,同时还可以保证模型在各个子集中表现出一致的性能水平。

按程序进行的分段处理

图像分割技术:采用分辨率设置为512×512像素的CT扫描图像,在32像素的增量下进行采样操作,提取尺寸为64×64像素的样本块;每个原始图像将生成约225个训练样本

标记策略:在尺寸为64x64的图像中,若检测到结节的中心点,则标记值设为True;否则标记值设为False。

仅仅选取关键标记点

基于原始标注系统提供的所有结节与非结节信息,在其数量分布较为均衡的前提下,我们选择性采集具有标注信息的图像进行识别训练

采用如下方式执行切割:首先获取结节的位置坐标;然后确定其几何中心点作为分割基准;随后基于所述中心点位置截取大小为64×64像素的图像块

标注策略:当图像中的节点是关键点时,则标记值设为True;否则标记值设为False。

带标注的图像信息+剩余未做标注的数据处理

因为仅使用标注图像进行训练的原因在于无法准确识别图像边缘的位置,在此情况下会导致分类器难以处理边界区域的数据样本从而产生大量误判 因此需要重新构建数据集 将带标签和无标签的图像一并纳入训练集以提升模型对影像边界的适应能力

具体切割策略如下:针对所有标有标记的单元格,具体操作为仅提取这些标记单元格的内容;而对于未被标记的单元格,则遵循顺序切割的方式获取。

该方法对数据进行分类处理:首先将其划分为四个区域:1号区域定义为直径大于等于3毫米的结节;2号区域为小于3毫米但属于结节类型的物体;3号区域为大于等于3毫米但不属于结节类型的物体;无标注区域则表示未被识别的对象。对于包含标注信息的图片会被归入前三个类别;其余未被分类的对象则被归入第四类别。

注:

Data Imbalance

Data Sets exhibit imbalance

在医疗图像领域中,在绝大多数样本表现为健康状态的前提下(即正类与负类样本的比例不低于1:1000),由于此类先验概率极为罕见(即负类样本占比极低),从准确率角度来看(即使将所有样本全部归类为健康状态),其准确率仍可维持在99.9%或更高水平。然而对于疾病诊断工作而言(即病患识别任务),首要任务是尽量减少漏检现象的发生。因此需要重新优化数据分布结构(即增加正类样本占比),压缩负类样本数量(即减少负向样例的占比),使分类器能够更加精准地识别出阳性病例。

在本实验中采用以下方案优化数据集结构

对带有标记的图像进行旋转操作,在每次操作后生成一个新的图像样本。通过上述操作策略,在保持原有标记信息的基础上将原始标记图像的数量将增加至原来的10倍。

对所有未被原始标记的图片进行筛选,仅保留其中2%的部分,其余则全部剔除

损失函数:

在医疗诊断中,漏诊的影响更为显著;误诊为non-positive的情况会带来更为严重的影响。

误判行为的成本或影响被定义为:

第6章 短期总结

构建扎实的知识基础

开发一个详细且系统的checklist框架,并确保其在各个阶段都能持续优化

为了分享我的学习成果和实践应用,
我将整理出这些经验和体会,
并将其系统化地呈现出来。
随后,
我计划将其撰写成一篇完整的文章,
并在合适的平台或渠道中发布。

不仅能够让听众更好地理解和掌握相关知识

2.经验总结(项目库)

针对简单的题目,该方法能够较为稳定地达到不错的效果。

当遇到简单的数学题时,这个系统能表现出较高的正确度。

对于基础问题的解答,该系统表现出了良好的稳定性。

面对尚未接触过的项目,在出现新问题时,则具备迅速识别位置并采取行动的能力(例如,在服务器出现问题的情况下,则能在半小时内确定故障点并在三小时内完成修复工作)

Reference:
... 原始内容进行了详细描述与优化。
...

感谢您抽出时间阅读本文。期待本文能为您提供有价值的内容。如果觉得文章内容值得参考,请随时提出宝贵意见或建议。如您有任何建议或反馈,请随时联系。文章版权归 版权印 所有,请未经授权擅自复制或发布的行为将受到法律制裁。

全部评论 (0)

还没有任何评论哟~