许冬 李浩 周利晓 吕梁
糖尿病性黄斑水肿(diabetic macular edema,DME)是糖尿病引起微血管病变后导致视网膜黄斑积液所产生的一种疾病。目前DME已成为糖尿病患者视力障碍的重要原因[1],严重影响了患者的日常工作和生活质量。据2010年数据显示[2],我国20岁以上人群中,约有9240万人(占成年人口的9.7%)患有糖尿病,且60.7%的糖尿病患者未能得到及时诊断,其中伴有糖尿病性视网膜病变以及DME的患者也不在少数。DME患者若未能得到及时有效治疗,很可能导致不可逆性视力损害,因此在临床工作中快速准确地识别出DME显得十分重要。
光学相干断层扫描(optical coherence tomography,OCT)是目前眼科诊疗中重要的检查手段,可以便捷无创的对视网膜进行成像显示。临床医师会反复通过OCT检查判断患者视网膜的病变情况,由于人工识别并标记病变区域相对繁琐,使用OCT机器软件自动识别能为临床医师节省大量时间,但精确程度往往不能达到满意的效果。目前自动识别软件一般仅能判断出是否存在黄斑水肿,而不能准确量化黄斑水肿的程度和分布。随着深度学习在医学领域的广泛应用,特别是深度学习算法中卷积神经网络的出现,大大提高了计算机识别医学图像的能力。卷积神经网络的学习以及特征提取能力十分强大,可以做到目标物体的自动化检测与分割,无需人为手工提取特征,并且如果设计合理得当,分割效果会非常好。目前卷积神经网络在医学领域已被尝试用于医学图像的自动识别与分割,如特定病变细胞的区域分割、细胞内异常物的检测以及视网膜的分层检测[3]等。
很多研究表明,卷积神经网络可以用于自动检测各类眼科疾病,尤其是视网膜疾病如糖尿病性视网膜病变[4-5]、老年黄斑变性[6]、青光眼[7]等,为临床视网膜疾病的快速诊断和分型提供了新的手段。并且在快速诊断的同时还可以对病变图像进行定量分析。视网膜囊样水肿(intraretinal cystoid fluid,IRC)是量化视网膜水肿严重程度和渗出性黄斑病变的一个特别重要的诊断区域,本研究通过卷积神经网络UNet[8]对IRC区域进行了定量检测,从而建立OCT中DME的自动识别模型,并通过相关指标判断其价值。
1.1 一般资料使用了开源的OCT数据集2014_BOE_Srinivasan[9]和OCT2017[10]以及来自郑州大学第五附属医院的OCT图像,其中2014_BOE_Srinivasan含DME患者与正常人样本共2508张,并随机抽取OCT2017中含DME患者与正常人样本共4217张以及我院自2018年1月至2019年5月的60例DME患者的1127张双眼OCT图像(美国OPTOVUE公司,RTVue100-2型OCT,MM6模式)共同组成试验样本。由两名临床医师分别独立评判了所有试验样本,在基于临床经验的综合评估后将样本图片标记为正常或DME;当出现不一致的判断时,再由一位主任医师对结果进行仲裁。将开源的两个数据集的样本混合后抽取70%作为训练样本(训练集),剩余30%与来自我院的数据合并后共同作为测试样本(验证集)。
1.2 方法
1.2.1 卷积神经网络与UNet不同种类的神经网络经常具有不同的结构以及层次,一般而言神经网络层次的加深可以增强其特征学习能力,因此现在主流的卷积神经网络往往有着很深的层次[11-12]。而基于卷积神经网络提出的残差网络是一种具有独特的跳级连接结构的网络,在卷积神经网络的每两层之间增加一个捷径,即构成了一个残差块,这有利于后面的层级直接学习残差。当不断重复这样的残差块结构时,便可以形成一个深度残差网络。当残差网络的层次足够深时,便可以具有非常多的神经元和残差块结构,其特征提取和学习能力也会随之增加,这样的神经网络可以解决模型训练过程中出现的准确度下降的问题。卷积神经网络UNet结构(见图1)同样具有非常深层次的对称网络结构:前向卷积与池化层、下采样层、上采样层,并且运用了残差网络进行特征提取,这些都确保卷积神经网络UNet具有强大的特征提取能力。
图1 卷积神经网络UNet结构示意图
本研究采用卷积神经网络UNet的多个卷积层来提取DME患者的OCT图像特征。在下采样部分,算法使用残差网络ResNet50进行输入图像的特征提取。残差网络的深层次卷积网络结构可以保障卷积神经网络UNet模型在训练时不会产生过拟合现象,同时还可以更好地提取图像中的区域特征,便于试验操作人员进行模型的预训练,以加速卷积神经网络UNet的训练。之后再对采样到的高层次高语义的特征图进行上采样,上采样后的特征图再与特征提取的网络部分进行相同尺度的特征图融合与拼接。然后重复以上操作过程,直至得到最后一层特征图,最后输出与原始图像中病变区域对应的目标区域分割图。
1.2.2 卷积神经网络UNet训练过程本研究是在Ubuntu16.04操作系统下运行。试验运行环境为NVIDIA cuDNN5.1、CUDA8.0、Python 2.7、Anaconda2、OpenCV3.0,试验运行硬件平台配置为NVIDIA Quadro P4000,8.0GB显存,1 Tb容量的机械硬盘,深度学习框架选择tensorflow,并在试验数据集上进行训练。由于试验样本中,有关IRC病变区域的图像数量相对较少,因此使用数据增强的方式来扩充数据集。常见的数据增强有增加高斯噪声,缩小或放大图像,随机裁剪,随机颜色抖动,对原始图像旋转固定角度等。经过数据增强后的数据集有15 000张,训练集和验证集的比例为101。卷积神经网络通过训练集图像来学习初始的神经元权重和偏置数值,之后在训练的过程中结合验证集来调整网络参数,并通过验证集的精确度变化曲线图判断出训练性能较好的网络模型,并计算验证过程中的敏感度与特异度。最后绘制受试者工作特征(receiver operating characteristic,ROC)曲线来判断卷积神经网络UNet模型的准确性。本研究采用随机梯度下降的优化函数来对网络参数进行优化,并使用交叉熵损失函数来衡量网络的分割误差大小,特征提取网络采用ResNet50网络,其有助于算法高效地提取待分割区域的特征,加速网络的训练过程。
1.3 统计学方法所有统计分析及图表绘制均使用Python语言以及MedCalc软件进行。将DME患者OCT图像中的IRC区域进行识别并准确分割出来,本质上是对像素的识别与分割,因此我们将待测试图像中的每个像素点划分为IRC点和非IRC点。并使用训练过程中产生的损失函数变化和验证集中的精确度变化评估其分割速度与精确度。同时为了定量评价模型的分割效果,我们采用了以下的量化统计指标:真正例(true positive,TP)表示模型实际分割正确的IRC点,假正例(false positive,FP)表示实际为背景点却被模型误识别为IRC的点,真反例(true negative,TN)表示模型实际分割正确的背景点,假反例(false negative,FN)表示实际为IRC却被模型误识别为背景的点,以及基于这些数据之上的敏感度和特异度。
敏感度的计算如公式(1)所示:
(1)
特异度的计算如公式(2)所示:
(2)
之后绘制ROC曲线。ROC的曲线下面积(area under curve,AUC)可以用于反映模型诊断效能大小,当AUC=0.5时视为完全没有诊断价值,在0.7~0.9时具有中等诊断价值,0.9以上时具有较高诊断价值。
2.1 原始图像与输出结果示例本研究中所有的测试样本均转换为单张尺寸大小为948×480,位深度为24的图像,然后进行了IRC的识别和分割测量,平均单张处理时间在75 ms左右。对测试样本识别的示例图片见图2。
图2 输入的原始图像及输出结果示例图 原始图像中白色箭头指示IRC区域;输出结果中白色箭头指示UNet模型自动识别后相对应的区域
2.2 损失函数变化和精确度变化利用卷积神经网络UNet对验证集进行自动识别分割时,基于病变区域像素面积计算并绘制了损失函数变化图和精确度变化图。训练集中的损失函数变化趋势和验证集中的精确度变化趋势见图3。在模型训练过程的前500次的迭代中损失数值下降速度非常快,到达1000次迭代后损失函数变化曲线趋于平缓,表明已逐渐收敛。当验证集中的迭代次数到达1000次后,验证集的精确度即可以达到0.9左右,并且随着迭代次数的不断增加,精确度逐渐趋于稳定。
图3 训练集的损失函数变化图以及验证集的精确度变化图 A:训练集中损失数值随迭代次数变化的示意图;B:验证集中精确度随迭代次数变化的示意图
2.3 对病变区域识别能力的ROC分析在卷积神经网络UNet模型训练完成后,根据其对验证集分割的正确与否而绘制的ROC曲线见图4,其中AUC达到了0.902(95%CI为0.884~0.917,P<0.01)。
图4 UNet模型的 ROC曲线
OCT成像是目前临床上用来诊断视网膜疾病的重要工具,快速准确地识别OCT中的特征信息可以为选择治疗方案提供更好的依据。这促使了视网膜OCT图像自动分割技术的研究和发展[13]。本研究基于卷积神经网络UNet的结构思想,对DME患者的OCT图像进行一系列的卷积、池化等操作来训练模型。最终构建了对DME病变的自动识别和分割模型,并结合了来自我院的样本进行验证。结果证实应用卷积神经网络UNet能够准确快速地识别并分割出DME病变区域,具有较高的医疗辅助价值。
在目前已发表的相关文献中,提出了很多关于黄斑水肿图像的自动分割方法,但以往的方法多局限于图论,当出现较为严重或复杂的病理情况时,则很可能出现错误分割[14]。同时由于各方法间使用的数据集以及研究目的不尽相同,这导致目前还难以较为准确地量化判断不同方法间的优劣[15-16]。本研究通过绘制ROC曲线判断自动识别模型的准确性和稳定性,证明了基于卷积神经网络UNet模型对DME自动识别具有高度的可行性。
本研究中采用的卷积神经网络UNet具有特殊的结构,即包含特征金字塔结构[17]。这样的结构可以充分结合低尺度高分辨率的特征图与高层次高语义的特征图信息,为神经网络算法进行区域的分割提供了更加丰富的关于待分割物体的高层语义信息。与此同时,卷积神经网络UNet结构适合对超大的图像进行分割,尤其是对一些医学图像的分割。由于常见的医学图像往往尺寸较大,较难被计算机处理,在分割的时候一般需要先将其裁剪为小块区域。而卷积神经网络UNet结构对于含有交叠区域的切片具有较好的容忍度和适应性,因此它针对大尺寸的医学图像也具有较为良好的分割效果。并且本试验结果也显示,卷积神经网络UNet对于单张尺寸大小为948×480,位深度为24的图像处理时间在75 ms左右,分割速度极快。同时卷积神经网络UNet的损失函数变化图显示,在前500次迭代中损失数值的下降速度非常快,仅需1000次迭代后的损失数值即已逐渐收敛。而在验证集中,当迭代次数到达1000次后,验证集的精确度即可稳定在0.9左右。最后我们绘制了ROC曲线来判断卷积神经网络UNet模型的实用价值,其结果显示AUC达到了0.902。这也证实了该模型对于OCT图像中DME区域具有较强识别能力。综上所述,基于卷积神经网络UNet结构可以较为快速准确地自动识别出DME病变区域,这有助于眼科临床医生针对病情进一步判断以及调整治疗方案。
基于卷积神经网络UNet识别DME需要大量图像样本数据用于训练模型,但受限于时间与人力因素,在本研究中未能标记开源数据集的全部样本,而是以随机抽样的方式标记了一部分作为训练样本。另外,单纯增加图像的数量并不一定能够提高卷积神经网络UNet模型的性能,例如添加大量健康对照组数据可能并不会对疾病分类的模型提供改进。因此,对于使用卷积神经网络UNet模型自动识别视网膜图像和诊断眼科疾病,还需要更为深入地研究以及开展多学科的合作与讨论。