翟岳仙,刘 翔,宋家琳
(1.上海工程技术大学 电子电气工程学院,上海 201620;2.中国人民解放军第二军医大学 长征医院超声诊疗科,上海 200003)
肝纤维化是肝脏内结缔组织增生异常的病理过程,由各种致病因子诱发[1]。肝脏损伤修复过程中均会发生肝纤维化。纤维化持续发展将会导致具有弥漫性损害的肝硬化,进而诱发肝癌等严重疾病。对肝纤维化疾病的诊断常用方法有肝活检、血清检查和影像学检查。肝活检被称作“金标准”,但其作为一种有创性检查易引起出血、昏厥等并发症。血清检查则缺乏特异性且检测效率过低。影像学检查方法中,CT(Computed Tomography)具有放射性损害;MRI(Magnetic Resonance Imaging)无法实现实时动态检查且成本较高。近年来,随着超声技术的发展,其在大规模筛查和随访诊断中具有明显的优势,且具有无损、无电离辐射等优点,尤其适合肝纤维化这种弥漫性疾病的诊断。
对于医学影像的分析,主要采用人工解读的方式,依赖于医生的主观经验和知识水准,易导致主观误判,且诊断效率较低。随着人工智能技术的发展,计算机辅助诊断的优势得以体现。通过对医学影像大数据的自主学习,可最大程度地获取医生的经验。这种对医学图像的量化分析方式,避免了主观因素的影响。同时,计算机辅助诊断系统也可以部署在不同地区,以解决医疗资源分布不均的难题。
肝纤维化的计算机辅助诊断方法已经有诸多研究。文献[2]依据高频超声图像下的肝表面形态特征,采用计算机辅助打分的方式进行肝纤维化诊断,得到重度肝纤维化的诊断敏感度为89.0%,特异度为61.0%。文献[3]针对肝硬化疾病的高频超声图像中肝包膜提取率低的问题,采用改进的动态规划算法提取肝包膜,并将肝包膜特征用于肝硬化的分类,得到了较高的准确率。文献[4]将灰度共生矩阵(Gray Level Cooccurrence Matrix, GLCM)的相关参数作为神经网络的数据输入,分期结果作为输出,通过神经网络模型诊断肝纤维化,但S1、S2、S3期的准确率不高。文献[5~8]应用不同的小波变换等方法提取肝实质纹理特征,通过CART(Classification and Regression Tree,CART)决策树或者集成分类器分类肝纤维化。这些方法一般用于是否患病的二分类且准确率不高。目前,基于高频超声图像的肝纤维化分类方法中,利用图像特征结合计算机辅助打分法尚缺乏统一标准,且易受医师的主观影响。纹理特征提取法多数只关注到肝实质纹理特征,部分特征并不适用于临床,分类效果也有待提高[9]。
深度学习强大的特征抽取与表达能力使其在图像分类识别任务中体现出一定的优势。因此,本文基于迁移学习策略采用预训练的ResNet-34 (Residual Network-34)网络模型,提取高频超声肝纤维化图像中肝包膜与肝实质的高层次特征来代替肝实质纹理、边缘线条等一些低层次特征,以便实现对肝纤维化的分期诊断。
卷积神经网络(Convolutional Neural Network,CNN)具有强大的图像分类、语音识别能力。在ILSVRC(ImageNet Large Scale Visual Recognition Challenge,ILSVRC)图像分类竞赛中,AlexNet和GoogleNet分类的错误率分别为16.4%和6.7%,并且采用VGG(Visual Genometry Group)和ResNet也都取得了较好的效果[10-13]。深度神经网络取得较好的分类性能离不开对大数据的学习,而医学数据不仅涉及病人隐私问题,数据收集与标定也需要耗费大量时间,所以数据集较小且数量有限。人类视觉神经研究表明,低层次提取的图像特征基本相同,例如颜色、边缘、线条等,高层次的特征则差异明显。因此经过大量优秀训练集训练的权重参数是可以共享的,仅需加入新数据集进行权重微调即可被应用到新的分类任务中。肝纤维化是一种弥漫性疾病,各期变化特征不显著,尤其是S2与S3期更加难以区分。在设计网络结构时,在提取可有效应用于分类的高层次语义特征的同时还要避免误差累积和梯度弥散问题。针对以上需求,本文基于迁移学习策略,迁移ResNet-34网络在ImageNet数据集上进行训练分类任务的模型及参数,调整最后一层的softmax分类器,由原来的1 000分类修改为4分类,并将其结果应用到肝纤维化的分类上。初始化全部层的权值参数,加入肝纤维化数据集进行训练,微调(Fine Tuning)各类参数,得到新的模型权重。具体流程如图1所示。
图1 微调预训练模型流程图Figure 1. Flow chart of fine tuning the pre-training model
原数据集为ImageNet数据集,包括120万张训练集图片、5万张验证集图片和10万张测试集图片。新数据集为肝纤维化的patch小块数据集。网络模型采用ResNet-34网络[14-15]。
如图2所示,ResNet引入了一个重要的残差学习单元。当网络层数不断加深时,将后面的网络层处理为恒等映射,此时模型退化成一个浅层的网络,既保证了网络的深度,提取到了图像不同层次的语义特征,又避免了梯度爆炸。
图2 残差学习单元Figure 2. Residual learning unit
恒等映射函数为H(x)=x。网络直接拟合比较困难,若将网络设计为H(x)=F(x)+x,则F(x)=H(x)-x,网络改为学习输入与输出的差值。当F(x)=0时,得到恒等映射函数H(x)=x。这种残差学习单元在不产生额外参数和计算量的情况下优化了网络,使网络分类、识别的性能得到有效提升。
本文采用ResNet-34的结构,其结构如图3和表1所示。
图3 ResNet-34网络结构图Figure 3. Diagram of ResNet-34 network structure
表1 ResNet-34网络结构
网络由5大卷积层和全连接层组成,conv2_x、conv3_x、conv4_x和conv5_x均包含残差结构的building block,全连接层为softmax分类器。由于本文的目标是4分类,所以将ResNet-34网络预训练模型的最后一层修改为4分类输出,然后采用softmax计算概率。本文在优化网络训练过程中采用的是随机梯度下降法(Stochastic Gradient Descent,SGD),学习率的设置不再采用单一值法。配合网络训练的特点,通过指数衰减进行学习率的更新,避免学习率过大导致网络激荡。分类损失采用交叉熵损失函数结合结构风险最小化,损失函数为
(1)
式中,x代表输入训练样本;y代表标签;q代表预测类别概率;θ代表权重;λ代表权重衰减系数;类别的概率均由softmax计算。
临床上依据2000年全国病毒性肝炎病理诊断标准[15]对肝纤维化进行分期:S0代表正常且无纤维化;S1代表汇管区扩大纤维化;S2代表汇管区周围纤维化,有纤维间隔结构;S3代表有大量纤维间隔,小叶结构发生紊乱,无硬结节;S4代表早期肝硬化。
本文高频超声兔子肝纤维化的数据来源于第二军医大学上海长征医院,其肝纤维化兔子模型的建立采用为:从健康的雄性,体重在1.8~2.1 kg的新西兰白兔中随机选取65只注射硫代乙酰胺溶液,其余15只注射生理盐水的方式获取肝纤维化和正常肝脏的超声和病理图像。注射后第6~19周采集兔子的二维高频超声图像。将麻醉的兔子仰卧位固定,采用11L-D线阵探头,频率在4~10 MHz的美国GE Voluson E8超声诊断仪于剑突下和右侧肋间进行扫查,每个至少采集3张高频超声图像备用。处死超声检查后的兔子并取相同部位的组织制作病理切片,在未知超声检查结果的情况下进行病理判断,得到4组实验数据。综合图像质量与临床医学价值因素,最终得到数据共有95例,其中S0~S1组有16例;S2组有32例;S3组有24例;S4组有23例像素。图片平均尺寸为:宽度450 ± 67像素,高度为500 ± 59像素。
为了获取足够的数据,本文将原图进行90°、180°、270°旋转,按照大小尺寸为64×64,步长为16进行patch裁剪。通过灰度共生矩阵的图像对比度指标剔除不合格的小块。本文保留对比度大于0.005的小块,剔除对比度小于0.005的小块,建立patch小块的训练集a。对于测试集,对原图采用不同的角度旋转(45°、135°、225和315°)。patch小块裁剪尺寸设置为45×45,步长15,通过灰度共生矩阵指标剔除不合格的小块,建立patch小块测试集b。
肝纤维化病程中S0~S4期的典型图像如图4所示。图中可以观察到随着病程的加剧,肝包膜与肝实质区域都发生了改变。图5为筛选掉的不合格小块区域示意图。
图4 不同肝纤维化期样本的高频超声图 (a)S0~S1 (b)S2 (c)S3 (d)S4Figure 4. High frequency ultrasonography of samples with different stages of liver fibrosis(a)S0~S1 (b) S2 (c) S3 (d) S4
图5 不合格小块示意图Figure 5. Diagram of unqualified small patches
本文基于TensorFlow深度学习框架进行研究,计算机硬件配置为AMD CPU 3.80 GHz,4块GTX1080ti GPU,共64 GB。软件环境为:Windows 10 64 bit、Python 3.6.5、CUDA 9.0、CUDNN 7.0以及TensorFlow-GPU 1.12.0。实验在训练与测试阶段均使用GPU加速,batch-size设置为256,学习率(learning-rate)初始值设置为0.002,学习衰减率为0.000 4,迭代50 000次。
混淆矩阵是评价模型分类结果优劣的指标,本文采用混淆矩阵的相关指标对肝纤维化的分类模型进行评价。正例定义为Positive,反例定义为Negative。真实值是Positive且被模型预测为Positive的数量定义为True Positive(TP);真实值是Positive但被模型预测为Negative的数量定义为False Negative(FN);真实值是Negative但被模型预测为Positive的数量定义为False Positive(FP);真实值是Negative且被模型预测为Negative的数量定义为True Negative(TN)。各指标组成了混淆矩阵,如图6所示。
图6 混淆矩阵Figure 6. Confusion matrix
由混淆矩阵得出以下统计指标:
(1)准确率。准确率表示分类模型中判断正确的数量占总数量的比值
(2)
(2)灵敏度。灵敏度表示在真实值为Positive的所有结果中,预测正确的数量占总数量的比重
(3)
(3)特异度。特异度表示在真实值为Negative的所有结果中,预测正确的数量占总数量的比重
(4)
(4)精确率。精确率表示在预测值为Positive的所有结果中,预测正确的数量占总数量的比重
(5)
F1-score为
(6)
式中,P为Precision;R代表Recall。
测试阶段采用patch小块投票策略实现肝纤维化分类。一幅图像经分块送进网络进行测试,得出每个小块的类别以及准确率信息,通过如下投票策略得到整幅图的类别:
(1)Set the initial value:intk=0,inti=0,
intn=num
(2)fori=1,2,3,…,n:
if(ACC)(i)≥75%
k++
(3)ifk≥n×70% judge success
Else judge failure
设置准确率阈值为0.75,大于0.75的小块即认为判定正确。所有判别正确的小块占总小块数的概率值大于0.7,则认为该幅图的类别为占多数概率的小块的类别。
采用投票原则对测试集的测试结果如表2和表3所示。
表2 模型测试的混淆矩阵
表3 模型测试的分类性能
表2和表3分别为分类模型的混淆矩阵、特异度、灵敏度和F1-score。由混淆矩阵可以计算得出,对于肝纤维化的S0~S1、S2、S3与S4期的分类灵敏度分别为93.75%、90.63%、87.50%和86.96%;特异度分别为93.75%、87.88%、87.50%和90.91%;F1-score分别为93.75%、89.23%、87.50%和88.90%,相较于其他利用高频超声图像做肝纤维化定量诊断的实验,达到了较好的效果。由分类性能表格可以看到在F1- score中,S3期与S4期的分数较低,主要原因在于S3与S4时期肝纤维化病程加剧,肝包膜区域均发生断裂、波浪状改变,肝实质区域回声增强,图像较为相似,模型较难区分。总体来说,本文基于迁移学习的ResNet-34分类方法实现了对肝纤维化的高准确率分类,尤其是在S2与S3期中表现良好,具有较强的实用性。
本文分类网络选取ResNet-34,同时选取了ResNet-18网络做肝纤维化四分类的对比试验。
对于肝纤维化的分期研究中,大多数研究人员采用传统的提取肝实质纹理特征的方法进行分析或者依据形态特征变化统计分析差异性。文献[4]将反映肝纤维化声像图纹理特征的GLCM参数送入神经网络,通过建立神经网络模型对肝纤维化进行分期诊断。文献[16]采用人工监督和梯度优化结合的方法提取肝包膜骨架,定义肝包膜轮廓的平滑性和连续性特征,并统计分析这些特征的差异性,得到平滑性特征中S0~S1组较其余组差异具有统计学意义;连续性特征中S0~S1组与S4、S2与S4组差异具有统计学意义。
本文选用另外两组对比实验,一个是常规的纹理分析法,一个是基于文献[16]的肝包膜平滑性、连续性特征的分类方法。在纹理分析法对比实验中选取图像GLCM的ASM(Angular Second Moment)能量、对比度、逆差矩和熵4个参数指标,将4个参数指标组合成一组特征向量(p1,p2,p3,p4)输入到支持向量机(Support Vector Machine,SVM)训练分类器中,从纹理特征分析的角度对肝纤维化进行分类。文献[16]只是统计分析了肝纤维化各期特征的差异性,没有进行分期比较。本文基于肝包膜平滑性、连续性特征中的线段数量、熵、线段之间的夹角均值、方差等数据,采用KNN(K-Nearest Neighbor,KNN)、TSVM等分类器进行分类。对比实验结果如表4所示。
表4 其他网络模型分类性能对比试验
对比实验中设置了相同的实验环境与条件。表中给出了各期分类的准确率。分析可知, ResNet-18网络分类性能比ResNet-34差,这是因为随着网络层数的增加,高层网络可以提取到图像中更加丰富的高层次特征,结合肝包膜与肝实质的高级特征更有利于肝纤维化的分期诊断。同时,迁移学习的加入使得网络训练更加高效,而采用基于GLCM参数的纹理分析法和肝包膜特征的分类方法所取得的分类效果并不理想。
本文提出了基于迁移学习策略的ResNet-34网络用于肝纤维化的四分类任务,采用微调训练的方式,实现了纤维化的四分类,具有较高的准确率。同时,与常规纹理提取分析用于肝纤维化分类的方法进行了对比分析,验证了本文方法的有效性。但本文方法还存在一些不足,针对S3与S4时期图像特征相似所导致的分类精度不高的问题仍有待解决,未来将会进一步对相关的模型优化问题进行研究。