谢 飞,周 炀,管子玉,段 群
(1.西北工业大学 计算机学院,陕西 西安 710129;2.西安电子科技大学 前沿交叉研究院,陕西 西安 710126;3.西北大学 信息科学与技术学院,陕西 西安 710127;4.咸阳师范学院 计算机学院,陕西 咸阳 712000)
小肠间质瘤是原发于小肠的胃肠肿瘤之一,是最常见的胃肠道间叶源性肿瘤。传统的诊断方法主要是依靠X线钡剂小肠造影检查。近年来随着医学影像的发展,CT和MR成为了小肠间质瘤的主要检测方法[1]。
过去对小肠间质瘤的诊断往往是采用专家会诊的方式进行,通过对患者的CT影像切片进行分析,从而确定间质瘤的位置。但是,由于医疗资源的不平衡,不同级别医院的医疗从业人员存在差异,导致一些患者无法得到及时有效的诊断,从而延误病情。近年来,随着人工智能领域的快速发展,越来越多的基于深度学习的计算机视觉技术开始逐渐应用在医疗领域中。一方面基于此类技术的医疗辅助诊断系统可以弥补一些基层医院因专业人才匮乏及人才培养滞后而导致的误诊或漏诊,为患者提供更加精准的治疗。另一方面可以为医生的培养提供可靠的辅助工具。
目前, 很少有研究将计算机视觉技术应用到小肠间质瘤的检测任务中, 但已有将计算机视觉技术应用在其他部位的肿瘤或相关病灶区域的检测任务中。Yang等人通过普通的3D CNN来处理三组独立的2D MRI切片来检测股骨远端表面[2]。其中,检测出的3D位置被定义为具有最高分类概率输出的3个2D切片的交点。Shin等人展示了SAE在学习视觉和时间特征方面的能力, 在3D动态对比增强MRI影像序列中检测多个器官组织[3]。Setio等人考虑了三组正交视图,使用了3D Patch中的9个视图, 并使用了融合方法来融合来自不同视图的信息进行肺结节检测[4]。Shin等人通过对胸腹淋巴结构数据集进行检测和肺间质疾病分类, 探索CNN性能如何根据CNN架构、数据集特征和迁移学习等因素发生变化[5], 他们考虑了CifarNet[6]、AlexNet[7]、Overfeat[8]、VGG-16[9]和GoogLeNet[10]等5个深度卷积模型。管子玉等人采用多任务学习的方法,在检测算法的分支中添加分割子网络,提取病灶高维特征进行病变区域的检测与识别[11]。Shao等人在FPN网络中加入了MSB模块, 模块当中引入了膨胀卷积和注意力关注机制, 提高了对病灶当中小样本的检测能力[12]。谢飞等人在Mask R-CNN算法中添加空间注意力模块,使模型能够提取病灶区域空间信息,提高对病灶区域的检测分割能力[13]。
本文借鉴目标检测算法在其他疾病辅助诊断的解决方案,针对单模型在小肠间质瘤目标检测任务中容易陷入局部最优的问题,提出基于可变卷积的小肠间质瘤多模型联合检测方案。由于训练数据较少,所以使用迁移学习的方法,训练过程中冻结浅层参数特征只对深层参数进行调整,并在网络中添加可变形卷积[14]提升对微小病灶区域的检测精度。
目标检测是计算机视觉领域的主要任务之一,其主要内容主要包括两方面:一是确定目标位置,并用矩形框表示其范围;二是识别矩形框内目标的类别。主流的检测模型主要分为两种类型:一种为一阶段方法,其主要思路是直接回归目标的类别和位置坐标,如YOLO[15-17]系列和SSD[18];另一种为两阶段方法,其主要思路为先由算法生成一系列作为样本的候选框,再通过卷积神经网络进行样本分类,如Faster R-CNN[19]。上述举例的算法均为anchor-based类型,其主要是基于anchor进行分类和回归。近年来,随着FPN[20]和Focal loss[21]等方法的提出,基于anchor-free的算法开始出现,如CenterNet[22]和RepPoints[23]算法,其主要思路是确定目标关键点和对边界的预测进行目标检测。不同类型的算法在检测精度及速度上各有优劣,需要根据具体检测任务对精度和速度的需求进行模型选择。
本文数据来源于上海瑞金医院267名含有医生标注的小肠间质瘤CT影像切片。每一位患者的CT影像文件是由相应的设备对患者腹部进行5 mm间隔逐层的断面扫描得到的一系列沿z轴堆叠的三维影像数据,数据格式为DICOM。每一位患者平均切片数量为70张左右,多的数量可以达到160张。这一系列切片中只有一部分是有医生标注的小肠间质瘤的切片,数量为2~18张。我们需要把这一部分切片截取出来,作为后续进行监督学习训练的数据集。每例患者的切片以多个单张切片的形式储存,医生标注后产生的标注文件也为DICOM格式,以单个三维文件的形式储存,每一个DICOM文件除了包含医学影像信息外,还包含相应的DICOM头部信息,其中包括病患相关信息及切片信息。通过DICOM头部信息中的切片信息建立原始切片与标注切片的一对一映射关系,将标注文件所对应的原始切片从原始切片序列中提取出来。如图1所示,展示了患者原始切片和医生标注后的切片。本文主要使用Pydicom库来完成提取间质瘤数据的工作,最终得到已标注的间质瘤数据4 993张。
A 患者原始切片 B 医生标注切片
迁移学习是一种机器学习方法,是把一个领域(即源领域)的知识,迁移到另外一个领域(即目标领域),使得目标领域能够取得更好的学习效果。小肠间质瘤目前没有相关公开数据集,只能通过与医院合作进行数据采集,并且数据涉及到病人隐私,数据获取难度很大,无法获取大量的数据。另外,由于小肠间质瘤的大小和形状不规则,并且与周围正常组织相似,导致病灶去标注难度高,耗费医生大量的时间和精力。使用迁移学习可以在数据量较少的情况下加快模型的收敛,提高模型检测性能。ImageNet[24]是一个计算机视觉系统识别项目,是目前世界上图像识别最大的数据库,使用这些数据训练出来的模型不仅使得分类算法的改进更加高效,且得益于出色的特征提取能力,使得其他数据集的特征提取获益,作为预训练模型被广泛地应用于很多任务之中。但是,对于医学影像数据而言,ImageNet图像特征有着比较大的差异,使用ImageNet做迁移学习并不能得到良好的效果。DeepLesion[25]是NIHCC 临床中心公布的多类别、病灶级别标注临床医疗 CT 图像开放数据集,包含了32 735个带标记的病灶实例,928 020张CT横切影像切片。本文使用Deep Lesion数据集作为预训练数据,将得到的参数迁移到小肠间质瘤检测任务中,冻结浅层的参数并通过训练调节深层的参数。
小肠间质瘤在医学影像中纹理、形态等多个方面差异性较大,与正常组织器官边界模糊,经过大量实验表明,单个目标检测模型容易陷入局部最优问题,导致模型检测性能不佳,在对不同网络结构的目标检测模型的测试结果进行分析后,本文采取多模型联合检测的方法进行小肠间质瘤检测任务。方法基本结构如图2所示,模型主要分为两个部分,第一部分为多模型检测部分,主要任务是将待检测患者切片分别输入不同模型进行目标检测任务,得到多组检测结果,文中采取3个结构不同的检测模型分别进行小肠间质瘤检测,分别是基于Cascade R-CNN[26]、RetinaNet和RepPoints模型,并在特征提取网络中添加可变形卷积增强模型检测性能。第二部分为检测结果选择部分,主要由NMS(非极大值抑制)和最大置信度选择组成,通过将第一部分得到的多组检测结果送入NMS中进行筛选,再选择筛选结果中置信度最高的结果作为模型的最终输出结果,得到小肠间质瘤检测结果。
图2 多模型检测结构图
Cascade R-CNN网络是两阶段检测模型,其主要思路是使用不同的IoU阈值划分正负样本,让每一个阶段的检测器都专注于检测IoU在某一范围内的候选框,因为输出IoU普遍大于输入IoU,因此检测效果会越来越好。RetinaNet网络是一阶段检测模型,其主干网络是由ResNet+FPN构成,并引入Focal loss损失函数,目的是解决易分类样本和难分类样本之间的均衡问题,不仅仅是解决样本数量不均衡的问题。上述两个模型都属于anchor-based型检测方法,而RepPoints模型属于anchor-free检测方法,其将可变形卷积与关键点检测结合,通过定位和分类的监督来学习可变形卷积的偏移量,使得偏移量具有可解释性,并且通过采样点来生成边界框。
NMS(非极大值抑制),即抑制不是极大值的元素,用于在目标检测中提取置信度高的目标检测框,而抑制置信度低的误检框。在当解析模型输出到目标框时,目标框会非常多,具体数量由anchor数量决定,其中有很多重复的候选框定位到同一个目标,NMS用来去除这些重复的框,获得真正的目标框。第一部分中多模型产生的多组检测结果先输入到NMS中进行筛选,最终在NMS筛选结果中,选择置信度最高的目标框作为最终输出结果,可以有效降低假阳率,即将正常组织误判为病灶区。
传统卷积网络CNN对大型、未知形状变换的建模存在固有的缺陷,这种缺陷来源于CNN模块固有的几何结构:卷积单元对输入特征图的固定位置进行采样。可变形卷积模块基于一个平行网络学习偏移量offset,使得卷积核在输入特征图的采样点发生偏移,集中于我们感兴趣的区域或目标。为了解决标准卷积中的规则格点采样导致网络难以适应几何形变的问题,可变形卷积对卷积核中的每个采样点的位置都增加了一个偏移量,可以实现在当前位置附近随意采样而不局限于之前的规则格点。如图3所示,是常用的采样点和可变形卷积采样的对比,图3A是标准的3×3卷积核采样位置,图3B是可变形卷积的采样位置,添加偏移量之后采样点的变化,图3C和3D是图3B的特殊情况,表明可变形卷积包括了各种尺度变换、纵横比和旋转。
图3 3×3标准卷积和可变形卷积采样位置
通过式(1)计算输出特征图的每个位置p0,
y(p0)=∑pn∈Rw(pn)·x(p0+pn)。
(1)
其中:R是标准卷积中采样网格大小和扩张;pn是对R中所列位置的枚举。在可变形卷积中,常规的采样网格R通过增加一个偏移量Δpn进行扩展,同样的位置p0通过式(2)变化,
y(p0)=∑pn∈Rw(pn)·x(p0+pn+Δpn)。
(2)
文中分别采用Cross Entropy(交叉熵)和Focal loss作为多模型网络损失函数。其中交叉熵损失刻画了两个概率分布之间的距离,它是分类问题中使用比较广的一种损失函数,其在二分类任务中的表达式如式(3)所示,
(1-yi)·log(1-pi)]。
(3)
其中:pi表示样本i预测为正的概率;yi表示样本i的标签,正类为1,负类为0。
Focal loss可以解决医学影像数据中困难样本训练以及正负样本比例不平衡的问题。其公式如式(4)所示,
(4)
其中:y′γ表示模型预测的概率得分;α和γ表示相应的平衡因子,α用来平衡正负样本的重要性,γ可以降低易于分类样本的损失,使模型可以更加关注于较难分类的样本。
总体损失函数如式(5)所示,
Loss=Lf1+Lf2+βLf3。
(5)
损失由3部分构成:Lf1代表模型在局部切片的分类损失;Lf2代表模型的回归损失;Lf3代表模型对整张切片的分类损失。β代表平衡因子,用于平衡不同损失之间的权重。
通过对小肠间质瘤原始数据进行分析,并使用这些数据对现有检测模型以及本文提出的检测方案进行训练和测试。本文实验运行的硬件配置为:Intel(R)Core(TM)i7-7800X CPU@3.50GHz,NVIDIA RTX 2080 Ti 11GB,64GB运行内存,操作系统为Ubuntu 16.04 LTS。
我们从医院获取小肠间质瘤数据共267例病例,标注切片共计4 993张,其中229例作为训练和验证样本,包含标注切片4 349张,38例作为测试样本,包含切片644张。其中病灶区域标注由专业医生使用3D Slicer医学图像处理和分析应用平台对每一张切片上的病灶区进行标注,最终以病例为单位生成一个DICOM格式的标注文件,使用SimpleITK和Opencv转换标注文件格式,并对标注掩码进行外接矩形计算,生成对应的Annotation标注文件,制作成目标检测数据集,训练中采取0.5概率水平翻转。
本文针对小肠间质瘤目标检测人物,引入了3个评价指标:交并比(IoU),召回率(recall)和平均精准度(average precision,AP)。
交并比衡量的是两个区域,即模型预测区域和医生标注区域的重叠程度,是两个区域重叠部分面积占两者总面积的比例,其计算公式为
(6)
其中,A和B分别表示两个区域,本文取平均IoU来评估模型检测的精准度。
召回率表示样本中正例(间质瘤)被正确预测的比例,主要是用于评价模型对间质瘤的敏感程度,间质瘤置信度设置为0.5,IoU设置为0.5,即置信度与IoU均高于0.5的都被认定为是间质瘤,召回率计算公式为
(7)
平均精准度(AP)可以通过对PR(precision-recall)曲线求均值来综合判定目标检测模型的性能,其计算公式为
(8)
其中:R代表召回率;p表示精准度。本文采取AP50和AP75两个指标,即设置IoU阈值为0.5和0.75,分别对模型性能进行评估。
在Pytorch深度学习框架的基础下,构建以Cascade R-CNN、RetinaNet和RepPoints网络为基础,并将可变形卷积DCN加入到各模型中的多模型检测模型,主干网络为ResNet101,输入病人切片大小为512×512,学习率为0.01,学习动量为0.9,权重衰减为0.000 1,优化器为SGD,训练24个epoch。并分别用ImageNet和DeepLesion作预训练以及是否添加DCN进行对比试验。
实验结果如表1所示,其中:ImgN代表使用ImageNet预训练模型做迁移学习;DeepL代表使用DeepLesion数据集作为预训练数据,并进行迁移学习;DCN代表网络中加入了可变形卷积。
表1 实验结果
从结果上看,纵向比较可以看出使用DeepLesion数据集做预训练要优于使用ImageNet数据集做预训练,因为DeepLesion数据与小肠间质瘤数据相似度更高。模型中加入可变形卷积后,各模型性能都有所提升,说明可变形卷积可以提高模型的特征提取能力。在使用DeepLesion预训练+可变形卷积DCN后,模型性能提升较大。横向比较可以明显看出,表中单个模型性能差距不大,但是使用多模型联合检测算法的性能明显高于单个模型性能。
图4为单模型检测与多模型检测在小肠间质瘤患者切片上的对比图。蓝色矩形框为模型预测的结果,红色矩形框为医生标注。
图4 单模型与多模型检测实验结果对比图
通过对比可以看出,采用多模型检测方法得到的结果相比单个模型,其检测结果与医生标注重叠度更高。
本文提出了小肠间质瘤多模型联合检测方案,该检测模型通过结合多个网络结构不同的检测模型,对多模型产生的多组检测结果进行非极大值抑制并且选取置信度最高的作为检测结果,不仅可以提高对小肠间质瘤病灶区的检测准确度,还能够有效降低模型的假阳率。本文采用更加贴近间质瘤数据的DeepLesion数据做预训练并进行迁移学习,可以加快模型收敛,提高模型检测能力。为解决间质瘤形态大小差异较大的问题,本文在原有模型的基础上添加可变形卷积,通过对卷积核内的采样点添加偏移量,使网络更好地提取病灶区特征,实验表明本文的方案可以达到良好的效果。