基于深度学习的颈椎间盘突出识别方法

2021-01-29 03:03延亚洁袁细国
关键词:池化椎间盘颈椎

延亚洁,袁细国

(西安电子科技大学 计算机科学与技术学院,陕西 西安710071)

0 引言

颈椎间盘突出是一种非常普遍的疾病,尤其多发于老年患者,它产生的原因主要包括不正确的姿势习惯、年龄、外伤等。颈椎长期反复劳损或者受到外力刺激,可能会加速颈椎间盘的病变,造成颈椎间盘突出。近年来,由于科技的迅猛发展、多媒体技术的不断进步和高压力快节奏的生活环境,人们养成了长时间久坐、长时间伏案使用电脑或者低头玩手机、睡觉时枕头过高或者过低、喜欢睡过软的床或沙发、喜欢用不正确的姿势比如躺着看书或电视等不健康的生活习惯,不仅导致颈椎病每年的确诊率逐年上升,而且患者也越来越趋于年轻化[1,2]。

随着颈椎间盘突出患者数量的增多,影像科医生处理相关影像的工作压力也越来越大。据实地调研,一名普通医院的影像科医生一年要诊断600多个病例,而仅靠人工对输出到电脑屏幕上的影像进行诊断的常规方式,在工作量加大的情况下,极容易造成医生产生视觉疲劳,导致医生的失误率增高,从而延误疾病的及时治疗。将人工智能运用于颈椎间盘突出的诊断识别,不仅可以降低错诊和漏诊的发生,也可以节省医生的时间,降低医生在这种繁琐工作上的工作负担。

深度学习在肺癌[3]、肺结节[4]、乳腺癌[5]、阿尔兹海默症[6]、肝硬化[7]等多种医疗领域的研究中都取得了很丰硕的成果,有很多已经投入到现实生活的应用之中。但是,深度学习在颈椎疾病内的研究还较少,权威颈椎疾病影像学数据集也很少。现阶段,国内外将计算机技术与颈椎疾病相结合的主要研究有:Chang T K,Hsu C C,Chen K T[8]在2015年等人针对颈椎退行性椎间盘疾病,通过使用非线性C3-T2多级脊柱模型和神经遗传算法建立模型,找到治疗过程中固定螺钉的最佳方向。2018年,Arvind V,Kim J S,Oermann E K等人[9]在接受ACDF的患者的多中心数据集上训练了人工神经网络(ANN),逻辑回归(LR),支持向量机(SVM)和随机森林决策树(RF)模型,证明了机器学习模型在预测颈椎前路椎间盘切除术和融合术(ACDF)术后并发症的性能。2019年,余行[10]等人采用AlexNet网络作为深度学习模型,并运用迁移学习对该模型进行预置,将训练样本按照椎体部位分为颈部、胸部、腹部和盆腔四类并进行标记,并利用数据扩增提高分类准确率,以达到准确对CT图像进行部位定位的目的。

本文采用迁移学习的方法,将 GoogleNet Inception V3[11]在官方公开的其他类型图像数据集上学习得到的图像分类的共性知识迁移到颈椎疾病识别模型上,对颈椎间盘突出进行识别,给出最终的诊断结果,实现对颈椎间盘突出类型的快速、准确分类。同时,针对颈椎间盘核磁共振影像的特点,本文也对GoogleNet中的Inception V3模型进行了改进,将该模型中的最大池化以及平均池化替换成了按不同权重组合起来的组合池化,以提高模型在本数据集上的训练效率和识别率,促进人工智能在医疗领域的进一步应用与发展。

1 方法研究

本文采取的研究方法是在采集的颈部MRI影像数据的基础上,结合迁移学习,提出了一种改进的迁移学习网络模型(GoogleNet Inception V3)[11]结构,将模型中的平均池化以及最大池化替换成了组合池化,利用采集的样本进行反复训练,确定合适参数,得出最后适用于本数据集的分类模型。通过大量测试样本对分类模型进行测试并评价分类模型的性能,该模型的建立、训练、及测试质量将直接影响:其一,颈椎间盘突出疾病患者的筛查效率;其二,检测的敏感性及特异性。整体深度学习训练框架如图1所示。

图1 深度学习模型训练框架图

1.1 影像数据来源

据医生介绍,颈椎疾病包括黄韧带增厚、颈椎椎体骨刺、颈椎间盘突出、椎管狭窄、颈椎间盘变性、椎体后部血管瘤、颈椎骨质增生、曲度反曲等多种类型,本文选取了其中最常见且最高发的颈椎间盘突出疾病作为研究对象。在多种影像学方式中,对于颈椎病、腰椎间盘突出等椎间盘疾病,软组织是非常重要的判断疾病的信息,而据医生介绍,核磁共振(MRI)是临床上对于颈椎间盘突出症针对性最强的方法,该方法可清晰地看出病灶部分,为病情的诊断、治疗起到了非常积极的作用,所以采集颈部核磁共振影像。

一个病人的MRI图像有多张,选取离病灶区域最近,颈椎间盘最清晰的一层来进行标注存储。MRI图像的层面成像如图2所示,能看到的椎间盘有C2/3、C3/4、C4/5、C5/6和C6/7,据医生介绍,其中最易发生颈椎间盘突出的是C3/4、C4/5、C5/6和C6/7,医生平时也只要对这些椎间盘进行诊断,判断属于颈椎间盘突出中的膨出、突出、脱出还是正常哪种类型。

图2 颈椎间盘标号图

针对目前官方公开的颈椎疾病数据集极少的现状,通过医院采集了600余名患者的影像学图像。因为颈椎间盘突出症分为膨出、突出和脱出三类,其中脱出非常少见,一年一万多个病例中只有一个脱出的情况,综合医院减轻医生负担的诉求,所以,脱出的情况不考虑在本次研究的范围内。

1.2 影像的处理

影像数据的处理对于最终训练出的模型分类效果很重要。在实地搜集到的真实数据,由于设备状态不同,影像生成时间不同,患者姿势不同以及影像数据人工标注繁琐等多方面的因素,会包含噪声多、清晰度有差异、经过标注的影像数量较少等问题。所以,对收集到的数据需要进行一定的数据处理操作,包括筛选、截取、归一化、扩增等,保证最终获得的数据集有更好的分类特性。下面对每一种影像处理操作和具体实施方法进行详细描述。

1.2.1 筛选操作。对采集的颈椎图像数据进行筛选操作主要分为2种类型:第1种,由于颈椎间盘突出疾病的判断主要以轴位影像为主,一个颈椎间盘对应3张轴位影像,如图3所示,需要先从每个椎间盘对应的三个轴位影像种,筛选出病灶区域最清晰的一张,作为最终的数据集影像。

图3 图片筛选

第2种,为保证最终得到的数据集质量,对于以下情况的数据,要对其进行舍弃:第一,由于所用的影像学设备状态不同或机器不同,会存在个别影像数据不够清晰的情况,这种不清晰的影像需要舍弃。第二,存在一些颈椎骨骼先天性畸形的患者,颈部的骨骼轮廓和正常骨骼有很大不同,无法看清楚其骨骼形态及病灶区域的需舍弃。第三,很多患者,尤其是老年患者,在患颈椎间盘突出的同时,还患有颈部曲度过大、颈椎间隙变窄等其他病症,如果其他病症过于严重会导致截取出来的颈椎间盘边缘轮廓不清晰,病灶模糊,这种情况的图像应该予以舍弃。经过以上两种类型筛选后,剩下的高质量颈椎间盘影像数据量为膨出118张,突出166张,正常44张。

直接将筛选过后的图像输入网络模型中进行训练,训练效果不佳,推测是以下两种原因造成:一是轴位影像中存在很多与病灶区域无关的干扰信息,二是数据量太少,针对这两个问题,分别进行了以下截取和扩增两种操作。

图4 颈椎轴位影像各部分说明图

1.2.2 截取操作。在颈椎轴位影像中,如图4所示,其他部位如喉、甲状舌骨肌、肩胛舌骨肌、椎动脉、颈韧带等部分均为无关信息,在训练过程中,无关的信息尤其是颈部边缘的无关轮廓信息对网络模型的训练会产生一定的干扰,所以,我们对颈椎的四个椎间盘进行截取操作,进行有针对性的训练,减少无关信息对颈椎间盘特征提取的干扰。

截取后的图像如图5所示,仅保留图像中的椎体、脊髓、脊神经根等和病灶区域相关的部分。图5左为这种对脊髓没有压迫的情况,是正常人的核磁共振图像。突出型是如图5中所示颈椎间盘的相邻的脊神经根遭到了压迫或者刺激,其突出的症状是目前三种类型中最严重的一种,造成这种情况的原因是髓核或者纤维环被挤压破裂后,髓核组织突出到后方或椎管内,这一点在图中也能清晰地看出。膨出型是如图5右这种椎间盘的纤维环没有破裂,只是向椎管内或神经根方向突出,引起的症状相对轻微。

图5 图片截取

1.2.3 扩增操作。虽然迁移学习所需数据量要少一些,但需要大量数据进行训练,所以需要标注大量的数据。但是当标注的数据量很大的情况下,难免会产生疲劳导致出错,在不出错的情况下,效率也十分低下。且由于每一类患者的人数不同,导致采集到三类数据的数据量不均衡。

为解决这些问题,往往需要采取一些图像处理的方式与策略,在已有的数据集上进行调整和改进,以得到更多的数据。为了增加数据集的数据量,本文采用了在原有数据图像的基础上加上随机噪声、翻转、在合理范围内增强对比度等方式,其中,增强对比度后的图像如图6所示,扩增后的数据量达到:膨出600张,突出600张,正常600张。

图6 经过对比度增强的扩增数据

1.2.4 大小归一化及命名操作。针对经过上述操作后的椎间盘图像的大小不统一,存在一定程度的差异的问题,对图片大小进行了归一化操作,以方便后续进行卷积处理,补全、特征提取等等操作,减少了计算量,缩短了训练时间。因为后续要进行特征提取操作,所以必须保证图像的特征清晰。最终确定的图片大小不能过大,这样会导致失真且增加了神经网络的参数计算量;也不能过小,防止信息的丢失,影响影像的识别和分类效率。经过对截取的图片大小的统计后,其均值为32×32,这个大小既能保证大部分图片的信息都保留完整,又能稍稍降低网络模型的计算复杂度。

对于处理好的图像要进行重命名操作,命名时标明影像是哪种类型、属于哪一椎间盘,因为所有椎间盘的诊断方式都一样,所以在截取和网络输入的过程中,就丢失了该张核磁共振图像属于哪一椎间盘的信息,需要在图片命名时加以说明。

1.3 深度学习模型

随着深度学习的不断发展进步,神经网络的研究也促进了特征识别、图像分类的发展,也使机器识别颈椎间盘突出病灶以及对颈椎间盘突出症中:膨出、突出、正常进行分类成为了可能。本文先搭建和配置深度学习网络模型所需的环境,并提出了Googlenet Inception V3模型的一种改进策略,结合迁移学习的方法,以提高准确率。

1.3.1 设定训练集、验证集和测试集。将经过处理后得到的颈椎间盘突出数据集中的80%作为训练集,10%作为验证集,剩下10%作为测试集,即训练集1440张,验证集180张,测试集180张。训练集用来训练分类模型,验证集用来在模型的训练过程中不断的对模型做出调整,测试集用来测试最终得到的模型的识别效果。最终得到的数据集类别情况如表1所示。

图7 优化后模型结构

表1 数据集类别情况表

1.3.2 基于GoogleNet Inception V3网络模型的迁移学习。GoogleNet中的Inception V3网络模型[11]在图像分类中表现优异,它的进步之处在于,它保留了Inception V2结构中将大卷积变成小卷积的思路,引入了分解卷积的思想,将整个GoogleNet模型中较大的二维卷积全部拆分为较小的一维卷积[11]。例如,将3×3卷积拆分成1×3和3×1两个不对称的小卷积。这样不仅可以减轻计算量防止过拟合,而且因为多卷积一次,多一次Relu环境激活,对非线性多维度的细微特征更加敏感,这对于需要提取细微特征的颈椎数据集来说十分有优势。

常见的迁移学习有:基于距离的迁移学习、基于特征的迁移学习、基于参数的迁移学习和基于相关性的迁移学习[12]。本文采用的是基于参数的迁移学习,这种迁移学习方法可以保留原训练模型时的参数,仅需重新调整原模型中的几层,即可达到很好的效果。它可以把Inception V3 在其他大规模数据集上学习得到经验直接迁移到本次模型的训练中,大大提高了训练效率以及训练速度。

1.3.3 改进的GoogleNet Inception V3网络模型。由于颈椎核磁共振影像数据集相较于其他数据集不同,具有其他数据集不具备的特点。第一,核磁共振都是灰度影像,边缘两边的颜色对比不是特别强烈,导致一些边缘特征不易提取,丢失这些边缘信息对病症的诊断不利。第二,医疗影像特征的提取相较于整体特征的把握,更注重细节局部特征的提取。针对这两点,本文对原有模型进行了优化,最终得到的优化模型如图7所示。

首先,针对图像对比不强的问题,本文在图片输入神经网络之前的扩增操作中,对扩增的图像进行了一定范围内的对比度增强处理。第二,由于平均池化着重提取模型的整体特性,最大池化着重提取模型的局部细节特征,针对颈椎间盘数据集注重局部特征细节的特点,本文将Inception V3模型中特征提取部分的池化,都替换为组合池化,即如果原模型是最大池化,则最大池化与平均池化的比例为7比3;如果原模型是平均池化,则最大池化与平均池化比例为3比7。并且,针对GoogleNet Inception V3模型中特有的三种Inception模块,也按该思路进行优化,以其中一种Inception模块为例,优化后的Inception模块如图8所示。

图8 优化后的Inception模块

针对组合池化权重的选取问题,本文对不同的权重进行了尝试,以迭代训练过程中的loss值和accuracy为评定指标,其结果如表2所示。综合测试集和验证集,结果表明,在组合池化层的比例为3比7时,实验效果最佳。

通过优化网络进行改进从而得出适用于颈椎间盘突出数据集的模型具有重要的意义。基于初步确定的网络结构,将有效的训练样本数据输入到网络模型中进行训练,并根据训练结果不断优化参数,选取合适的网络结构,达到了较优的分类效果。本文通过对膨出、突出、正常样本的学习和训练,优化网络结构及相关参数,以达到分类模型具有高敏感度、极低假阴性的目标。

表2 池化比例的选取

2 实验过程及结果分析

2.1 实验准备

本实验的实验设备、系统环境如表3所示,操作系统为Windows10,处理器型号为Intel(R) Core(TM) i7-8500U CPU,显卡型号为GeForce GTX 1050 with Max-Q Design,编程语言为python3.6.10,深度学习框架为Tensorflow框架,所选学习率为固定值0.01。

表3 实验设备及系统环境

2.2 训练过程

在整个训练过程中,判断训练是否正常进行,在迭代多少步终止能得到最佳模型主要观察以下两个指标:其一为accuracy,它是将所有判断正确的个数累加起来,然后除以样本总数,其中正确的个数指的是真阳性、真阴性,错误的个数指的是假阳性、假阴性;第二个指标为Loss函数,Loss函数采用的是Cross Entropy Error Function(交叉熵损失函数)[12],其在多分类的情况下的公式如

(1)

其中M表示类别的数量;yic表示如果该类别和样本i的类别相同就是1,否则是0;pic表示对于观测样本i属于类别的预测概率。pi涉及到计算每个类别的概率,所以交叉熵常与softmax函数[12]一起使用,表示将图片识别为特别类的概率,其公式如

(2)

图9 Trainning loss值变化曲线

最后对损失函数做L2正则化,放大误差,避免过拟合。假设待正则的网络参数为w,则其表达式为

(3)

其中λ越大对模型复杂度的约束就越大。最终的Loss函数为

Loss=L+L1。

(4)

最终在学习率0.01,迭代次数9200次的时候模型达到最优,经过一定平滑处理后的trainning loss值变化曲线图如图9所示。

2.3 模型评估结果

在测试集上,定义的识别准确率,即疾病实际类别标记值和模型预测的类别输出值一致率。由于此问题是三分类问题,所以不能简单用传统的混淆矩阵,本文建立一个本次实验的三分类的混淆矩阵[13,14],如表4。由该混淆矩阵,可以计算每一个类别的精准率和召回率,在计算该类别时其他类别可以当作负样本,此时对于该类别就可以变成一个二分类问题。

表4 三分类结果混淆矩阵

精准率(Precision)[13,14]是针对预测结果而言的,其含义是在被所有预测为正的样本中实际为正样本的概率,表达式为公式(6)。精确率和准确率看上去有些类似,但是是两个完全不同的概念。精确率代表对正样本结果中的预测准确程度,准确率则代表整体的预测准确程度,包括正样本和负样本。

(6)

召回率(Recall)[13,14]是针对原来本的数据样本来说的,其含义是被预测为正的样本相对于实际正样本的占比,表达式为公式(7)。

(7)

虽然我们希望精确率和召回率都很高,但实际上上述两个指标是矛盾的。因此,选择合适的阈值点,就需要根据实际问题需求来定。通常情况下,是根据他们之间的平衡点,定义一个新的指标:F1分数(F1-Score)[13,14],F1分数同时考虑精确率和召回率,让两者同时达到最高,取得平衡,F1分数表达式为

(8)

由于颈椎间盘突出症中,突出比膨出的情况更严重,所以可以人为设定权重,将这三个类别的F1score按照权重合成在一起。我所定义的人工权重如表5所示。

表5 人工权重设置

得到最后该网络的总得分Score为

Score=0.45×F1score+0.35×F1score+0.20×F1score。

(9)

最终计算结果如表6所示。

表6 计算结果

由表6可知,最终得到的该模型分类结果评分为0.8628。

2.4 与其他算法的对比

为了测试改进的方法是否优于其他的方法,本次颈椎影像学分类在颈椎间盘突出的数据集上测试中进行了一系列的对比实验,将该模型与其他用于图像分类的深度学习模型进行了对比。

图10 评分对比图

LeNet[15]、ResNet[16]以及VggNet[17]三种神经网络均是用于图像分类的经典神经网络。其中LeNet是卷积神经网络的开山之作,是最经典也是最基本的结构[15];而ResNet作为2015年ILSVRC竞赛中图片分类和物体识别的优胜,在图片分类方面有很好的表现[16];虽然2014年ILSVRC竞赛中的第一名是GoogLeNet[18],第二名VggNet,但是它在很多迁移学习任务中的表现要优于GoogLeNet[17]。

将数据集带入这三种用于图像分类的卷积神经网络模型:VggNet、ResNet、LeNet中,将其效果与本课题采用的方法进行对比,采用上一节中提到的测试集F1score的加权评分来评判模型的优略。结果表明,改进后的神经网络模型训练集的评分为0.8628分。LeNet、ResNet、VggNet的测试集加权评分分别为:0.6627分、0.7298分、0.6832分,对比图如图10所示。

3 结论

本文主要以颈椎间盘突出作为研究对象,以颈椎核磁共振影像为基础,提出一种改进的GoogleNet Incption V3迁移学习模型,训练出了一种深度学习模型,来实现颈椎间盘突出疾病的影像学分类,判断被诊断者是否患有颈椎间盘突出。如果他患有该疾病,判断他患有的是膨出类型还是突出类型。

在研究过程中,首先,采集影像数据并且制作了颈椎间盘突出数据集,经过筛选、截取、扩增、以及大小归一等操作后,得到正常600张,膨出600张,突出600张共1800张的一个三分类数据集。然后,结合迁移学习方法,针对本数据集特点,提出了一种对本数据集有优势的一种改进的GoogleNet Inception V3网络模型,将数据集带入模型进行训练,最终实现对颈椎间盘突出影像的分类。最后,通过综合三分类混淆矩阵、查准率、查全率、F1score提出了一种0到1的评分方法来评估神经网络的分类准确度。得到改进后的GoogleNet Inception V3模型评分为0.8628分,高于其他深度学习方法LeNet的0.6627分、ResNet的0.7298分以及VggNet的0.6832分。

猜你喜欢
池化椎间盘颈椎
基于高斯函数的池化算法
颈椎为什么易发病
养护颈椎,守住健康
卷积神经网络中的自适应加权池化
颈椎间盘突出症的CT、MRI特征及诊断准确性比较*
椎间盘源性腰痛患者锻炼首选蛙泳
用于手写汉字识别的文本分割方法
你想不到的“椎”魁祸首之:冠心病可能与颈椎有关
失眠可能与颈椎有关
半躺姿势最伤腰