APP下载

LIDC-IDRI肺结节数据集解析及对构建中医共享数据集的意义

2024-04-18李旖旎刘子晴成福春姚政上海中医药大学附属岳阳中西医结合医院上海200437

中国医疗器械信息 2024年5期
关键词:像素结节卷积

李旖旎 刘子晴 成福春 姚政 上海中医药大学附属岳阳中西医结合医院 (上海 200437)

内容提要:通过搭建环境运行lidc_nodule_detection_master项目,对LIDC-IDRI数据集进行解析,并利用卷积神经网络、长短时记忆网络等对已标注的肺结节计算机体层成像医学影像进行训练,并用相关的测试数据集进行验证。该项目,对于中医共享数据集的构建,如类似DICOM文件的生成(舌像图、脉象图等),相关属性及特征的标注,XML文件的构建,相关算法的开发等,具有重要的参考借鉴意义。

当前,肺结节的发病机制尚未完全清楚,但是通过对肺结节的早期诊断和管理,尽早发现是否恶性肿瘤,对于促进患者的生命健康有着积极的意义。肺结节的早期发现,主要来自临床影像检测。本文主要通过lidc_nodule_detection_master开源项目的实际运行,对LIDC-IDRI肺结节数据集进行解析,对构建中医共享数据集的意义进行探讨。

1.肺结节的定义及其临床意义

肺结节是指肺部影像上各种大小、边缘清楚或模糊、直径≤3cm的局灶性圆形致密影[1]。肺结节事实上是一种影像的描述,根据影像特点不同,又可以分为实性结节和亚实性结节。其中亚实性结节又分为部分实性结节和磨玻璃样密度的结节。大多数肺结节都是良性病变。有少部分肺结节可能是肺恶性肿瘤的早期表现,包括腺癌、鳞癌及其他原发肿瘤转移至肺内的征象[2]。

2.LIDC-IDRI数据集简介

LIDC-IDRI由美国国家癌症研究所(National Cancer Institute)发起收集,目的是为了研究高危人群早期癌症检测。该数据集由胸部医学图像文件(.dcm)如计算机体层成像(Computed Tomography,CT)、X射线片和对应的诊断结果病变标注(.xml)组成,共收录了1018个研究实例。对于每个实例中的图像,都由4位经验丰富的胸部放射科医师进行两阶段的诊断标注。在第一阶段,每位医师分别独立诊断并标注患者位置,其中会标注三种类别:≥3mm的结节,<3mm的结节,≥3mm的非结节。在随后的第二阶段中,各位医师都分别独立复审其他三位医师的标注,并给出自己最终的诊断结果。这样的两阶段标注可以在避免强制一致的前提下,尽可能完整地、独立地标注所有结果。

数据集可于美国国家癌症研究所官网下载,需要伦理审核及数据不滥用等相关承诺。针对此数据集,有一个名为肺结节检测lidc_nodule_detection_master的项目,源代码可于GitHub上下载,此项目的深度学习环境,基于Python TensorFlow 1.0平台。此项目并非一键可以运行,其中关系到基础深度学习运行环境平台的搭建,基本训练数据集的准备、数据文件的解析以及供训练的标准格式的生成等。

3.关键技术

3.1 项目运行环境的搭建

硬件环境:MacBook Pro笔记本电脑,16G内存,2T硬盘。软件环境:Python 2.7,TensorFlow 1.0,TensorBox,Pydiom,NumPy等相应模块。

此项目主要分为api_lidc(应用程序接口模块),负责数据的预处理,如XML文件的读取,及BMP文件的生成等;cnn_3d,三维卷积神经网络;CNN_LSTM,卷积长短时记忆网络;pylung,关于肺实质的切割等。此项目的重点部分,主要在于CNN_LSTM的具体实现。

3.2 XML文件的读取与肺结节的标注文件生成

LIDC-IDRI数据集共收录了1018个研究实例。一般而言,每个实例包含两个子文件夹,其中一个文件夹包含几个DICOM文件与一个XML文件,检查类型为CXR(Chest X-Ray,胸部X射线检查);而另一个文件夹由若干个DICOM文件与一个XML文件组成,检查类型为CT。此项目研究,主要基于CT文件夹中的相关文件进行处理。XML文件为树状结构,由带尖括号的标签对与相应的值构成。XML文件适合于表达层次型、树状、以及相对复杂的数据结构。

此项目通过读取XML 文件,提取出相应的信息,如Nodules的位置、大小信息等,形成相应的PKL、JSON、TXT等格式的文件,供后期训练及验证使用。

3.3 DICOM文件的读取

医学数字成像和通信[标准](Digital Imaging and Communications in Medicine,DICOM),是指医疗数字影像传输协定,用于医学影像处理、储存、打印、传输的一组通用的标准协定。它包含了文件格式的定义以及网络通信协议。两个能接受DICOM格式的医疗仪器间,可通过DICOM格式的文件,来接收与交换影像及患者资料。目前,DICOM被广泛应用于放射医疗、心血管成像以及放射诊疗诊断设备(X射线、CT、核磁共振、超声等)。DICOM文件,主要由标签对构成。

3.4 CT值与灰度值的转换

Dicom数据的原始像素值是没有实际意义的,所以常用的是Dicom数据的输出像素,即(CT值)。CT值的单位是Hounsfield,简称为HU,范围是-1024-3071。用于衡量人体组织对X射线的吸收率,设定水的吸收率为0HU。原始扫描出的Dicom数据并不是规则的矩形,为了后续分析,构建一个长方体,无效区域填充了-2000,但是边界会有一些噪声,CT值处于有效值最小~-3024,但数量很少。并且这样算出的CT值最小值会很小,没有实际意义,所以最终的方案是CT值小于-1024的都置成-1024(-1024往往是无效的数据,所以分割组织时一般不考虑)。在DICOM图像读取的过程中,图像的像素值有可能不是这个范围,通常是0-4096,这个值就是常见到的像素值或者灰度值。

此项目通过PyDicom模块读取DICOM文件,获得基本信息及图像像素,并另存为BMP文件,供训练使用。这里面发生了CT像素值(0-4096)向BMP像素值的转换(0,255),自然也就存在着信息的丢失。

3.5 反向传播及匈牙利算法与LSTM

长短时记忆网络(Long short-term memory,LSTM)是一种特殊的RNN,主要是为了解决长序列训练过程中的梯度消失和梯度爆炸问题。简单来说,就是相比普通的RNN,LSTM能够在更长的序列中有更好的表现[3]。

此项目通过OverFeat进行特征的提取,通过OverFeat算法,用于定位肺结节,返回矩形框位置参数,实现肺结节矩形框的预测。并通过匈牙利算法匹配预测框与真实框。匈牙利算法(Hungarian Algorithm)用来解决多目标跟踪中的数据关联问题,而数据关联问题,亦可转化为求解二分图的最大匹配问题。Hungarian算法是一种组合优化算法,它是解决多项式时间复杂度问题的较快方法,广泛应用在运筹学领域[4]。

匈牙利算法模块是用C++语言编写的,因此,此项目的运行,需要先行编译该算法,供Python环境调用。

4.项目结果

4.1 通过训练后得到的结果如下

训练很快即可达到较高的准确率,但是,随着训练次数的增加,准确率并不是趋向于收敛的,甚至还有一定反复。这与训练过程中,随机丢弃某些数据,确保生成模型的健壮性,是有关系的,目的是避免过拟合。随着训练次数的增加,累积准确率逐步提升,并趋于稳定。

4.2 部分图像的肺结节标注

部分图像的肺结节标注见图1。

图1.部分图像的肺结节标注(注:图片采自于该项目)

5.讨论

5.1 对深度学习所提取的特征内涵的理解

深度学习的过程,是通过反向传播,去拟合相应的特征向量集。卷积神经网络中,一般用卷积核去提取特征,这些初始化的卷积核会在反向传播的过程中,在迭代中被一次又一次的更新,无限地逼近真实解。深度学习本质没有对图像矩阵求解,而是初始化了一个符合某种分布的特征向量集,然后在反向传播中更新这个特征集,让它能无限逼近数学中的那个概念上的特征向量。

特征,在于能够区分,在于能够分类,在于能够在相应坐标上准确地表示,可以将相应事物的本质表示出,可以将此事物与彼事物分开,而不是重叠或模糊。特征的表示,与坐标系的选择有关。坐标系的选择有多种,坐标系定下来之后,有唯一的标识。特征,若认为所分析的数据为向量的话,求特征,就是求主轴,求距离,求相应的维度。若能对维度进行充分地分解,简化,则可以得出相应的特征。特征是相关冗余的剔除。特征是分解到最小的粒度与最小的单位,正如数轴上连续的点一样,特征,从某种意义上说,就是寻找具体的点,具体的数值,此数值与彼数值的不同。

5.2 主要的挑战

虽然是开源项目,但是并不像通常意义上理解的一键即可运行。由于此次项目运行环境的TensorFlow采用的是1.0版本,而目前普遍的版本均在2.0以上,以及一系列的第三方包如SciPy、NumPy、Cython等,更新迭代速度较快,而在安装相关包的时候,往往自动安装最新的版本,版本不一致会导致诸多报错或无法运行。除了数据集本身,也存在不同的CT厂商所产生的DICOM文件格式、标签不一致,导致有些内容解析不出或不正确等。也存在着个别的文件标注错误。

小尺度目标检测。对于基于深度卷积神经网络的目标检测,由于深度网络顶层神经元感受野较大,对于小尺度目标信息保存较不完整,故而小尺度目标检测性能不高。

计算复杂度。目标检测算法计算复杂度取决于特征提取网络的前向传播计算时间。网络特征表达能力与网络深度存在较强的关系,一般而言,在一定深度范围内,网络越深,表达能力越强,目标检测算法性能越好,但计算开销随之增大。

5.3 下一步可以更加深入分析的内容

原始数据集的图像信息是以DCM 格式存储的,一个DICOM文件封装了诸多的附加信息,这些信息,对于科研工作者而言,是重要的医学影像研究维度。文件中(7fe0,0010)Pixel Data OW: Array of 524288 bytes,是像素信息,大小为512×512,其中每一个像素点,由两个字节表示,故总的大小为512×512×2=524288字节。单个像素,难以表达准确的信息,但是通过像素的组合,却可以表达有效的信息。特征提取,就是确定像素的位置、像素的大小(具体的值),像素之间的关系,像素之间的变化,从而与某一标注或判断产生具体的关联,获得相应的概率。

此次影像文件标注,采用了四位医师,主要是为了消除偏差,尽可能地客观。其中对于3~33mm 结节的characteristics,还包含了如下信息:①Subtlety:检测难度(1~5级,1最难,5最明显);②internal structure:内部结构(4种,软组织、液体、脂肪、空气);③calcification:钙化(6种情况);④sphericity:球形度(5种程度,但只明确3种);⑤margin:边缘(5种程度);⑥lobulation:分叶征(5种情况,但只明确2种);⑦spiculation:毛刺征(5种情况,但只明确2种);⑧texture:纹理(5种情况,但只明确3种);⑨malignancy:恶性程度(1~5,1最低,5最高)。

通过这些数据,可以更加深入、更加全面、更加丰富地分析相关内容。

5.4 对中医科研数据的来源、标注及共享的思考

中医的核心在于辨证论治,而辨证论治的核心在于中医证型的判断。中医对证型的判断,类似于肺结节的诊断,但是维度更加丰富,结论更加复杂。对于中医证型特征及本质等相关数据的分析,应当充分借助于当今先进的科学技术,而深度学习相关方法,是一种很好的借鉴与应用。LIDC-IDRI数据集解析,尤其是利用深度学习方法,对已标注的肺结节进行提取模型特征,并可用新的数据集进行预测判断,对于数据的日常自动标注,对影像进行初筛与自动化,高效地处理繁琐的重复的事宜,提高工作效率与准确性等,均具有实际的意义[5]。

但是中医本身存在自身的问题,如中医术语标准不统一,中医术语内涵不准确等[6]。尤其是在症状体征的量度刻画过程中,定性指标多,定量指标少,如结局常用的好转、轻、中、重等,或者简单的1~3分,1~7分,甚至1~10分等,过于简单笼统,不利于数据的精确分析。应从离散型的数据,过渡到连续型的数据,且对于连续型的数据,应对其数据的内涵进行准确的界定,进行数据本身的标准化、规范化。

6.小结

医院每日产生大量的影像数据,这些海量的医学数据,是潜在的巨大的科学研究数据源。如何与中医诊疗数据相结合,如何提取出这些数据的特征,如何进行中医临床疗效的评价,得出相应的结论,并反过来指导临床,是下一阶段工作的重点内容。对于构建中医共享数据集,如类似DICOM文件的生成(舌像图、脉象图等),相关属性及特征的标注,XML文件的构建,相关算法的开发等,该项目提供了一个完整的示例,具有重要的参考借鉴意义。

猜你喜欢

像素结节卷积
赵运哲作品
像素前线之“幻影”2000
基于3D-Winograd的快速卷积算法设计及FPGA实现
肺结节,不纠结
发现肺结节需要做PET/CT吗?
从气、虚、痰、瘀辨治肺结节术后咳嗽
“像素”仙人掌
从滤波器理解卷积
体检查出肺结节,我该怎么办
基于傅里叶域卷积表示的目标跟踪算法