MC-Net: multi-scale context-attention network for medical CT
image segmentation
期刊:Applied Intelligence 时间:2021年
中科院SCI期刊分区:3区
编解码器CNN结构在很大程度上改善了CT医学图像分割,但由于编码过程中细节的丢失而遇到了瓶颈,限制了准确率的提高。为了解决这个问题,我们提出了一种多尺度上下文注意网络(MC-Net)。其关键思想是探索跨多个尺度的有用信息以及分割医学感兴趣对象的上下文。通过引入多尺度和上下文关注模块,MC-Net能够提取目标周围的局部和全局语义信息。为了进一步提高分割精度,我们根据像素是否属于目标来加权。在肺部数据集和膀胱数据集上的大量实验表明,所提出的MC-Net在准确度、灵敏度、接收器操作特征曲线下的面积和Dice评分方面都优于最新的方法。
像素级医学图像分割是医学图像分析的重要步骤,包括CT图像中人体肺部的分割[1-4]、电子显微镜医学图像中的细胞结构分割[5-7]、视网膜医学图像中血管的检测和分割[8、9]、皮肤病变图像分割[10]、脑瘤分割[11]和牙科X射线图像分割[12]。在这样的背景下,CT图像的分割是人们普遍研究的问题。近年来,CNN模型在CT图像分割方面取得了很大的成功。对于早期的CNN模型,人们试图通过添加后处理步骤(如条件随机场(CRF)处理)来提高模型的性能。最新的端到端分割模型采用编码器-解码器架构。这些模型在编码器中遭受信息丢失,从而限制了模型在分割中的性能。
编码器负责从输入中提取语义信息,这不可避免地会导致细节信息的丢失。然而,在CT图像分割中,细节是至关重要的,原因有两个:(1)CT图像对比度低,物体边界噪声大。(2)CT图像中的物体在形状和大小上表现出很大的差异。发展MC-Net的动机是需要在语义特征提取过程中保留有用的细节,以便产生用于分割的有用信息。
首先,我们在编码器中采用了多尺度特征提取(MFE)模块来挖掘跨尺度的相关信息。多尺度处理是丰富提取的特征以提高图像处理任务性能的常用方法,包括图像恢复、图像分类和图像分割。考虑到CT图像的特点,提出的MFE模块与现有的多尺度方案相比有三个优点:(1)MFE模块可以在任何经典的CNN骨干网中以即插即用的方式使用。(2)用1×1和3×3的滤波器代替5×5的滤波器来扩展感受野。(3)当多个MFE模块级联时,在MFE模块中加入残差映射,便于训练。
其次,一些方法已经证明,通过考虑上下文信息,例如图像中描述的场景是否是卧室、聚会等,可以显著提高语义分割性能。对自然场景中的一个或多个实例进行语义分析与CT图像场景的语义分析有很大的不同。精细的上下文模块可以提取相关信息,例如颜色和形状信息,以改进分割结果。然而,这些技术对于从灰度CT图像中提取显著上下文信息并不实用。为了克服这一局限,我们提出了一种上下文信息提取(CIE)模块,该模块可以利用合适的上下文信息来分割CT图像中的组织或病变区域。
此外,在CNN模型中嵌入注意力模块,通过对特征地图或目标区域进行加权来识别区分区域的方法也得到了频繁的研究。通过这种方式产生的注意力信息可以作为改善分割性能的先验信息。受此启发,我们还引入了一个注意力模块,通过为目标像素赋予较高的权重来聚焦于感兴趣的区域。
我们设计的网络的优点是所有模块都是即插即用的,每个模块都提高了网络的分割精度,这对临床CT图像分割在实际场景中的应用具有重要意义。我们对网络进行了优化,使得网络的参数与U-Net相比有了很大的降低[6]。同时,可以使用不同的模块来处理不同的场景,以获得期望的分割推理速度。例如,在一个简单的CT图像数据集上,使用我们用FFD模块设计的主干网络可以获得很好的分割效果,参数少,推理时间短,并且轻量级。
综上所述,我们做出了以下四点贡献:
本文的其余部分组织如下。第二部分介绍了医学图像分割的相关工作和最新进展。第三节详细介绍了所提出的MC-Net。在第四节中,我们对MC-Net进行了测试,并将其与其他网络进行了比较。第五节给出了结论。
近年来,图像分割在包括医学图像分析在内的各个领域都得到了广泛的应用。早期基于灰度图像的传统医学图像分析方法主要有基于阈值的方法和基于边缘检测的方法。基于阈值的分割方法包括固定阈值分割[13]、基于直方图统计的分割[14]、Otsu方法[15]、迭代阈值分割等,而基于边缘检测的分割方法通过诸如Canny[16]、Harris[17]和SIFT[18]等微分算子来检测对象的外围。作为另一种方法,原始图像中的像素或区域可以被解释为图形中的节点,如基于图形的分割方法[19]。然而,这些传统的分割方法都存在明显的缺陷,如需要人工提取特征、鲁棒性差、准确率低等。
近年来,卷积神经网络(CNNs)在图像分割方面取得了很大的成功。全卷积网络模型(FCN)[20]是一种典型的代表性网络,它采用卷积层代替原来的全连通层进行像素级的语义分割预测。然而,很明显,由FCN生成的结果是不准确的,并且对每个像素的预测没有考虑到关于相邻像素的相关信息。因此,考虑到空间信息和像素之间的相关性,Chen等人提出了一种新的方法。[21]提出应用全连通CRF来获得像素分类结果,以获得更详细的分割结果。
后来,Ronneberger等人提出了一种端到端的分割模型UNET用于医学图像分割[6]。它具有类似于U形的编解码器结构。鉴于U-Net的优异性能,提出了几种变体,包括V-Net[22]、UNET++[23]、AG-Net[24]、R2U-Net[25]、Res-UNET[26]、密集U-Net[27]和MultiResUNet[28]。此外,PSPNet[29]还采用了金字塔池模块,通过聚合不同区域的上下文信息来挖掘全局信息。DeepLab v3+[30]采用了多尺度信息融合,同时保留了原始的膨胀卷积和ASPP层。MASK R-CNN[31]对目标提案进行粗略检测,然后对提案进行分割。
多尺度特征分割在图像分割中有着广泛的应用。为了获得优异的分割性能,Szegedy等人提出了一种新的分割算法。[32]提出了Inception v1模块,该模块在宽度方向上由级联多尺度卷积组成,增强了网络的适应性。为了增强多尺度和高维信息的表示能力,后来提出了Inception v2和v3[33]模块,增强了医学图像特征的多尺度分割。不同个体的病变区域大小和形状不同,这增加了分割的难度。Vo等人[34]将膨胀卷积的思想与基于多尺度特征的深层网络结构相结合进行分割。此外,D-Net[35]的作者提出了一个多尺度信息融合模块,该模块使用具有不同扩张率的平行卷积层来更好地捕捉不同大小视网膜血管的信息。
上下文特征提取使用样本的上下文感知特征信息来增强特征提取。例如,Z等人[36]提出了一种带有尺度上下文选择注意模块的双流结构,以增强多尺度处理能力。X等人[37]引入边界加固结构,通过Atros卷积结合空间信息。CE-Net[38]的作者提出了一个密集的Arous卷积模块来捕获更广泛和更深层的上下文特征。BA-Net[39]的作者引入了从边界解码器到分段解码器的跳跃连接,并定义了一致性损失,以推动两个解码器产生相同的结果。此外,通过组合两个金字塔模块来融合全局和多尺度上下文信息,开发了CPFNet[40]。上下文特征提取也被用于三维医学图像分割。ConResNet[41]显式地学习切片之间的上下文信息,作为一种注意力机制来提高分割精度。
图1说明了MC-Net的结构。它由四个主要部分组成:MFE模块、CIE模块、残差注意力(RA)模块和快速特征解码模块(FFD)。首先,CT图像被发送到编码网络。然后用SPConv[42]代替传统的卷积,在拼接前利用MFE模块学习目标的多尺度特征。然后,在编码器阶段加入CIE模块,以利用全局和局部上下文信息。同时,在跳跃连接中引入RA模块,对像素进行重新加权。最后,FFD模块代替原来的上采样操作,得到分割结果。
在U-Net框架中,每个编码模块包含双卷积层,其后是最大池化层。由于编码器阶段的连续卷积会导致有用细节的丢失,我们采用MFE模块来探索多个尺度上的相关信息。如图2所示,即插即用MFE模块有四个并行分支,它们输出相同大小和不同数量的通道的特征地图。四个并联支路的输出通道从上到下分别是输入通道的1/4、1/8、1/2和1/8。例如,当输入通道数为64时,四个并行分支的输出大小相同,但它们有16、8、32和8个通道。将这四个输出连接起来,再次获得64个通道,然后通过1×1卷积对它们进行平滑。核的大小为1×1或3×3,用1×1的卷积来捕捉低层特征。此外,使用较少模型参数的两个3×3卷积比使用较少模型参数的一个5×5卷积具有更强的特征表示能力。
在Inception-ResNet-V4[43]模块和RESIST[44]模块的启发下,添加了一种快捷机制,将先前的特征映射传递到下一阶段。然后,在编码器和解码器的每一级中使用MFE模块。此外,对于从编码器到解码器的每个对应阶段的最终输出特征图,我们采用了求和运算来保存更多细节。总体而言,MC-Net通过将编码器特征与解码器特征连接起来,充分利用了来自多个尺度的信息。
U-Net在编码器中包含了四个最大池化层,这自然会导致一些有价值的语义信息的丢失。为了进一步弥补这一损失,我们引入了一个CIE模块来探索对分割有用的上下文信息。CIE模块受Arous空间金字塔池化(ASPP)[21]和多尺度伸缩卷积[38,45]的启发,通过不同扩张率的伸缩卷积提取上下文知识。考虑到多重扩张卷积的网格效应,CIE模块被设计成三个扩张分支,速率从2到10,如图3所示。从数学上计算了单个3×3卷积在不同扩张率下的感受场,如公式(1)和(2)所示。
其中RF表示单个3×3卷积的感受野;x表示输入;r表示x的扩张率,这相当于将输入x与通过沿每个空间维度每两个连续的滤波器值插入r−1个零而产生的滤波器进行卷积;以及d是扩张。此外,我们使用与扩展值相等的填充来放大感受野,从而获得更多的上下文信息。例如,当比率r为2时,扩张度为1,单个3×3扩张式卷积的感受野为7×7。当比率r=6时,3×3扩张式卷积的感受野为23×23。同样,当扩张率为10时,感受野达到39×39。
如图3所示,以2、6和10的速率并行部署三个膨胀卷积,以从各种接受字段捕获上下文信息。CIE模块类似于空间金字塔集合结构,它利用全局高层语义信息快速定位分割目标,并获取局部低层信息来细化边缘细节。
在每个扩张的卷积分支之后,我们采用1×1的卷积进行信息融合。此外,还添加了与ResNet[44]中类似的快捷机制,将以前的特征与当前的特征合并,以获得更丰富的上下文信息,从而更好地进行图像分割。此外,在编码器中的每个池化层之后,我们应用CIE模块来补偿上下文语义信息的丢失。但是,我们发现最高语义信息层的CIE模块对提高准确率效果不大,造成过多的计算冗余,因此我们在第五阶段去掉了CIE模块以简化网络。
医学图像分割是一项需要对每个像素进行高精度识别的任务。为了聚焦于感兴趣的像素,我们设计了一个作用于跳跃连接的RA模块。如图4所示,跳跃连接补充解码器中的细节信息;RA模块调整这些连接上的权重以抑制不相关信息并突出显示特定特征。
具体地说,我们首先对前一阶段的特征图进行下采样,然后将其与当前的特征图融合以丰富特征,其中x维度为Hx×Wx×Dx,g的维度为Hg×Wg×Dg,其中Hg=Hx/2,Wg=Wx/2,Dg=2×Dx。随后,在两个特征映射相加后,通过上采样将融合的特征映射调整到相同的维度,然后依次进行RELU激活和1×1卷积。最后,将Sigmoid函数应用于特征图,得到关注度图α。因此,我们可以通过取关注度加权图α和特征图Mapxi的点积来重新加权像素。加权后的特征图ˆXi的定义如公式(3)所示:
其中是i第i个像素的索引。由于Sigmoid函数归一化后的注意图αi的值在[0,1]范围内,这种重新加权会削弱特征图的输出,降低网络性能。为了解决这一问题,我们将以前的特征映射添加到乘法后的结果中,通过身份映射的方式得到。RA模块ˆXi的输出如下所示:
映射的引入使得该模型比简单的像素加权更有效。最终,通过跳跃连接将加权后的输出与上采样的特征图连接起来,从而提高了特征的可区分性。
在每个阶段的跳跃连接中插入RA模块,以突出目标区域。具体地说,从高层提取的语义特征用于消除不相关信息,根据像素的空间位置调整像素权重,并融合相关信息以突出跳跃连接上的显著特征。
受文献[45,46]的启发,我们在解码器的每一级都采用了双线性插值和1×1卷积的方法来构建FFD模块。与转置卷积相比,FFD模块能够以较少的参数简单、快速地恢复高层语义特征图。此外,我们还进行了1×1的卷积来降低特征维数。考虑到双线性插值带来的细节退化,我们将解码器中的特征与编码器中的相应特征相结合,以弥补丢失的细节信息。
根据公式(5)计算的Dice系数损失函数[22,47]用于监督MC-Net模型的训练。Dice系数[48]是通常用于计算两个样本的相似性的相似性度量函数。然而,考虑到我们用于测试的数据集中的类别不平衡,我们增加了错误分类像素的权重,以增加错误分类的惩罚。与基本Dice损失相比,当一个像素被误分类时,变异Dice损失预测值与ground truth值之间的差距将进一步拉大。加权可变Dicee系数和损失函数分别如公式(6)和(7)所示:
其中总和超过N个像素;pi∈P和gi∈G分别表示预测的二进制分割和ground truth值;ε表示值为1的平滑函数;以及超参数k∈[1,0]确定正确分类的前景像素的数量和错误分类的像素的数量的相对权重。
为了评估所提出的MC-Net的分割性能,我们在四个CT图像数据集上进行了大量的实验。肺部数据集可以从http://www.kaggle.com/kmader/FINDING-LUNES-IN-CT-DATA/的Kagle社区下载,其中包含267张图像,尺寸为512×512,其中80%用于训练,其余用于测试。膀胱数据集包含从当地医疗系统收集的2200个水囊样本和相同数量的匹配标签。肿瘤数据集可从http://www.tipdm.org/bdrace/tzjingsai/20181226/1544的TipdmCup挑战赛下载。HTMland包括757幅尺寸为512×512的标记图像和相同数量的注释。KiTS19数据集来自https://kits19.。Grand-Challenge.Organd由6950张肾脏CT、ground truth图像和标记图像组成。我们使用肺部数据集的分割比率来对其他三个数据集进行训练和测试。此外,所有用于训练和测试的输入图像都被统一调整到512×512的分辨率。
我们在配备了NVIDIA RTX 2080Ti显卡和11G内存的Ubuntu 16.04系统上,在PyTorch平台上以端到端的方式对MC-Net进行了培训。
为了训练我们的模型,我们采用了Adam优化器。用于计算损失的系数β1和β2分别设置为0.9和0.999。在训练过程中,我们将初始学习率设置为10−4,并在每20个epoch后将其乘以0.75%进行降级。
为了得到较好的分割结果,我们在模型训练之前对图像进行了预处理。为了有效地加速收敛,将输入图像值从[0,255]转换为[0,1],然后归一化为[−,1]。此外,我们通过应用扩展操作(即翻转、旋转和镜像)增强了数据集。
为了定量评估MC-Net的分割性能,除了接收器操作特征曲线(AUC)下的面积外,还使用了四个指标来评估模型的性能,即准确度(AC)、灵敏度(SE)和Dice得分(DS)。AC、SE和DS的定义如下式(9)、(10)和(11)所示:.
其中TP、TN、FP和FN分别表示真阳性、真阴性、假阳性和假阴性的数量。
我们将MC-Net与几种最先进的方法进行了比较,包括U-Net[6]、UNET++[23]、Mask R-CNN[31]、CE-Net[38]和MD-Net[45]。
表1列出了比较结果。MC-Net的AC结果最好,比U-Net、UNET++、CENet和MD-Net的AC结果分别提高了2.1%、1.71%、0.58%和0.27%。在SE方面,我们的方法比最新的MD-Net方法获得了很大的优势。此外,MC-Net的性能也优于U-Net和MD-Net,AUC分别提高了3.12%和1.21%。显然,MC-Net在所有四个指标上都严格优于最先进的方法。此外,为了保证DS比较的公平性,我们用DS性能评估的基本Dice损失[22]代替了其他比较算法的损失函数,并选择精度最优的DS作为比较值。我们的MC-Net达到了0.9897的DS,分别比第二好的竞争对手MD-Net和第三好的竞争对手CE-Net高出1.12个百分点和1.48个百分点。
图5的前两行显示了由MC-Net和其他最先进的方法获得的肺部数据集上的视觉分割结果。在这些结果中,U-net和U-net++方法分割的噪声点和区域比其他三种方法更多。与Mask R-CNN、CENet和MD-Net方法相比,MC-Net方法获得了更精细的边界,因此结果更接近实际情况。
表1显示了在膀胱CT数据集上的比较结果。其中,U-net和UNET++值明显低于其他三种方法。MC-Net的AC性能再次达到最佳,分别比CE-Net和MD-Net提高了9.23%和7.98%。在SE和AUC指标方面,MC-Net也比CE-Net和MC-Net获得了更大的利润率。对于DS评估指标,我们使用了与肺部数据集相同的方法,MC-NET达到了0.9950的DS。与MD-Net的结果相比,该DS提高了9.37%。
图5的最后两行给出了用于膀胱数据集的视觉比较的分段样本。用U-Net、U-Net++和Mask RCNN分割的边界比其他三种方法分割的边界有更大的噪声。在CE-Net、MD-Net和MC-Net中,MC-Net得到的边界最平滑。
表2显示了直肠肿瘤CT数据集的比较结果。实验结果表明,MC-Net的AC、SE、AuC和DS值分别为0.9981、0.8823、0.9367和0.9977。其中,在AC和DS的评价指标上,MC-NET分别比CE-NET提高了0.01%和0.17%;MC-NET分别提高了0.02%和0.8%
表2显示了直肠肿瘤CT数据集的比较结果。实验结果表明,MC-Net的AC、SE、AuC和DS值分别为0.9981、0.8823、0.9367和0.9977。其中
在KiTS19 CT数据集上的比较结果如表2所示。实验结果表明,MCNet的AC、SE、AuC和DS值分别为0.9924、0.8725、0.9356和0.9729。
在图6的第3行和第4行中,我们可以观察到许多方法找到的边界是模糊的。然而,MC-Net实现了精确的边界分割。
最后,我们给出了消融实验,以验证不同配置的MC-Net的有效性。用SPConv[42]代替双卷积构造基于U-Net的主干,降低了模型参数。
与U-Net相比,提出的主干在肺、膀胱、肿瘤和KiTS19数据集上取得了更好的AC性能,仅用了五分之一的参数,如表3所示。特别是在膀胱数据集上,我们的主干获得了15.37%的增益。从图5中的可视化可以看出,膀胱数据集中一些对比度低、边界模糊的样本严重影响了这五种最新方法的分割性能。由于MC-Net在编码阶段结合了MFE、CIE和RA模块,能够准确地提取样本特征和噪声目标边界信息,达到了良好的分割效果。
为了进一步的测试,四个提出的模块被分别添加到骨干中。四个模块的分析总结如下:
将这四个模块结合起来,所提出的MC-Net在10.82M的参数下获得了最好的交流效果。这些发现表明,轻量级MC-Net的分割性能得到了提高,充分利用了这四个模块的优势。更换主干网络中的不同模块可以得到不同的网络参数和推理时间。更主动地减少参数会进一步缩短推理时间,但代价是精确度显著降低。此外,使用加权变量Dice损失比使用基本Dice损失更好。
图7展示了不同配置下的推理时间结果,包括U-Net[6]、主干以及添加到主干上的四个模块中的每一个。在所有实验中,都添加了torch.cuda.synchronize()函数进行评估。可以看出,添加了四个模块的主干在准确率和推理时间上都优于U-Net。MC-Net的推理时间与UNET相似,但在精度上明显优于U-Net。在不同的配置中,模型参数的数量都有不同程度的减少。如表3所示,不同配置的参数简化确实缩短了推理时间,但也导致了精度的下降。
如图8和图9所示,当在不同的数据集上比较不同权重的损失时,由k值为0.8的加权变量Dice损失组成的损失函数最稳定,并且在最终训练期间获得的Dice系数也较好。因此,对于MC-Net方法,我们选择k值为0.8。此外,我们建议可以从多个实验中学习和选择权重值。
我们提出了MC-Net来精确分割医学CT图像中的病变或感兴趣的组织。通过所提出的MFE和CIE模块,MC-Net可以利用多个尺度上的相关信息和上下文信息来获得清晰的分割边界。此外,采用RA模块对像素点进行加权,对分割结果进行细化。此外,FFD模块的设计减少了模型参数的数量。许多实验结果表明,MC-Net在四个公共CT数据集上的四个广泛使用的指标方面优于最新水平。MC网的推理时间也比同类网低。在未来,我们将对模型参数进行优化,使MC-Net能够以更少的计算量运行。