刘 渝,夏源祥,万永菁
(华东理工大学信息科学与工程学院, 上海 200237)
脉络膜[1]位于视网膜下方,上接视网膜色素上皮细胞(RPE)层,下接脉络膜巩膜分界面(CSI)。脉络膜的病变与许多疾病相关,如近视眼、黄斑病变、年龄相关性黄斑病变等。通过计算脉络膜厚度、脉络膜血管指数,以及观察结构变化来了解眼组织变化和功能异常[2]。随着光学断层扫描图像(Optical Coherence Tomography,OCT)技术的发展,观察脉络膜的结构变得容易,但是对脉络膜的厚度测量以及脉络膜血管指数的计算还需要医生先手动分割,整个过程耗时耗力,因此研究准确自动分割脉络膜的方法对提升眼科疾病诊断的效率具有重要意义。
随着卷积神经网络(Convolutional Neural Network,CNN)的发展,深度学习方法在医学图像分割领域得到广泛应用。2015 年Long 等[3]在CNN 的基础上,提出了一种全新的网络结构即全卷积神经网络(Fully Convolutional Network, FCN)。该网络将卷积神经网络中最后的全连接层替换成卷积层实现每一个像素的分类,以达到图像分割的结果。在此基础上,Ronneberger 等[4]提出一种U 型结构的神经网络(U-Net),中间使用跳跃连接融合深层和浅层的图像特征,结构由一个编码器和一个解码器构成。U-Net结构简单,在模糊边界和区域也能取得很好的效果,基于改进U-Net 模型的OCT 图像分割方法已经被许多研究人员采用。Oktay 等[5]在U-Net 模型中引入注意门机制,提升了模型对前景像素的敏感性。Gu 等[6]提出融合了密集空洞卷积模块和残差多池化模块的语义分割模型(CE-Net),使用U 型结构实现编解码,在医学图像分割领域得了很好的效果。Cheng 等[7]在U-Net 的编码器部分加入了残差细化模块,同时引入通道注意力机制,很好地利用了高层语义信息,在952 张OCT 图像脉络膜分割中Dice 系数达到了85%。Mao 等[8]也基于U-Net 网络融合改进的注意力机制,提高了脉络膜分割的准确率。但这类方法没有很好地利用脉络膜的空间依赖关系,导致分割区域可能错误,边缘分割精度不够,同时在获取脉络膜的高级语义信息以及模型的优化上仍有提升空间。
基于以上研究,本文提出了一种端到端的脉络膜分割编解码网络模型。本文模型的主干编码结构是基于预训练过的残差分类模型:ResNet-34[9],这样的编码结构能充分获得脉络膜语义信息、加快模型收敛以及防止梯度消失。在跳跃连接处设计了一种平行的桥结构,桥结构包含两个模块,分别是坐标并行注意力模块(Coordinate Parallel Attention, CPA)和密集空洞卷积模块(Dense Atrous Convolution, DAC)。DAC 提取多感受野特征,CPA 模块抑制跳跃连接时复制浅层特征产生的语义噪声,经过桥结构的特征图在解码层进行融合。为使模型分割时对OCT 图像中脉络膜整体结构给与关注度,本文还引入一种混合损失函数,混合损失函数从像素级、结构级、整体级监督训练本文提出的模型。在分割具有不同特点的脉络膜的场景时,本文设计的模型表现均优于其他常见的医学图像分割模型。
本文模型主要由3 部分构成:编码结构、解码结构和桥结构。整体结构如图1 所示。
经典的U-Net 和改进的U-Net 都采用特征拼接的编解码结构,优点是能聚合浅层细节和深层特征信息,本文也采用了类似思想,但在编解码阶段和跳跃连接处进行了改进。本文选择已经在ImageNet[10]数据集上预训练过的ResNet-34 分类网络作为特征提取的主干编码结构,以此更好地提取特征图语义信息。利用预训练模型的优势是当预训练模型迁移到新任务时,计算机能以较少的调整参数快速实现模型的优化。本文保留了ResNet-34 的4 个特征提取模块,同时去除了最后的平均池化层和全连接层。ResNet-34 特征提取模块包含的残差块的个数由浅入深分别为3、4、6、3,每个残差块的结构如图1左下角所示。残差块中的残差连接能有效防止模型梯度消失。另外,本文使用步长为2 的5×5 的卷积替换ResNet-34 开始输入时步长为2 的7×7 卷积层以及3×3 最大值池化层,目的是为了让特征图在第2 个编码层之前能保持尺寸不变,在编码早期能包含更多细节信息。但这样的操作缩小了模型整体感受野,为了弥补,在编码结构的最后一层添加了2×2 的最大值池化层以及3 个级联的残差块。
为了抑制跳跃连接时浅层特征图直接复制到解码层所包含的噪声信息,同时在深层获得更多全局语义信息,本文在跳跃连接处提出了坐标并行注意力模块,引入了一种密集空洞卷积模块。两个模块在跳跃连接处并行处理特征图,形成了一种桥结构,这种桥结构如同一个关卡,能有效捕捉高级语义信息同时抑制浅层噪声。
为了能快速有效地还原高分辨率特征图直至输出,抑制由于空洞卷积和反卷积造成的棋盘效应,本文采用文献[11]所类似的解码操作,如图1右下角所示。采用双线性插值的方式进行上采样,并采用两个3×3 和一个1×1 的卷积压缩通道数量,调整通道之间权重。
图1 脉络膜分割模型图Fig.1 Proposed model of choroid segmentation
注意力机制可有效提高基于卷积神经网络任务的性能,能放大感兴趣的区域,忽略其他无用噪声,让网络模型只关注对结果提升有益的部分。文献[12]提出坐标注意力(Coordinate Attention, CA)模块能很好地利用一维平均池化的方式聚合特征图两个坐标的相关信息,被证明非常适用于图像分割领域,但在特征提取上还有改进空间。
基于CA 模块,本文提出了CPA 坐标并行注意力模块,在CA 模块基础上融合并行的一维最大值池化操作来提取重要特征信息。平均值池化能关注显著性目标的中间区域,而最大值池化则可以关注变化明显的边缘区域,对于脉络膜这一类图像边缘模糊的医学组织来说,模型需要在边缘分配更多的注意力。并行的一维最大值池化不会大幅增加模型的参数量,却能提高模型的性能。CPA 注意力模块的结构如图2 所示,其中r表示压缩率,是超参数,它的作用是控制卷积滤波器的参数量,能灵活控制注意力模块的大小。
图2 CPA 注意力模块Fig.2 CPA attention block
CPA 注意力模块先对输入X(X∈RC×H×W,表示特征图,C、H、W分别表示特征图的通道数、高、宽)进行两个并行的一维池化操作并融合,然后将提取出来的包含坐标注意力的两个特征向量与原输入相乘,实现注意力的标定。池化的方式为一维平均池化和一维最大值池化。并行的池化方法又分为两个方向,分别是沿着X轴方向(即沿着宽度方向)做池化和沿着Y轴方向(即沿着高度方向)做池化。特征图沿着X、Y轴两个方向的一维池化示意图如图3所示。
图3 两个方向的一维池化操作示意图Fig.3 1D pooling operation in two directions
然后,分别对一维最大值池化和一维平均值池化后得出的特征图进行转置拼接、1×1 卷积操作、批量归一化操作(Batch Normalization, BN)、非线性激活操作。转置拼接简化计算,1×1 卷积操作实现特征信息的通道压缩和解压缩。卷积之后经过归一化和非线性激活,可以使模型增加非线性拟合能力。
以一维最大值池化后的特征图举例,公式如式(1)所示:
其中:σ 表示sigmoid 激活函数。Conv1表示1×1 卷积,maxzH和 maxzW表示沿着特征图高度和宽度方向进行一维最大池化后得出的特征图,[·;·] 表示转置后沿着空间维度拼接。
接着,沿着空间维度相同位置的元素相加,融合一维最大值池化和一维平均值池化后的特征信息:
式中:Fmax∈R(C/r)×(W+H),Favg∈R(C/r)×(W+H),F∈R(C/r)×(W+H),Favg表示经过一维平均池化后的中间特征图;将融合后的特征图F沿着空间维度拆成两个特征向量,FH∈R(C/r)×H,FW∈R(C/r)×W分别表示跟H相关和W相关,即两个坐标位置相关的两个特征张量。
将生成的两个特征张量利用1×1 卷积的方式转换成原始通道大小:
最后,将原始特征图与两种注意力权重加权生成注意力图,第c通道的注意力重标定输出特征图的公式如下:
经过CPA 注意力模块的特征图,既包含了沿着Y轴方向的空间层次信息,也包含了沿着X轴方向的坐标位置信息。相比于CA 模块,并行的一维最大值池化模块提取特征边缘信息,更能捕获边缘模糊情况下有用的特征。
医学上脉络膜的下边界圆滑,但OCT 成像中下边界模糊区域比较大,导致视觉上部分边界缺失。在比较小的感受野下模型无法感受脉络膜下边界的语义特征,因此扩大模型感受野是非常有必要的。目前扩大模型感受野通常采用扩大卷积核或者增加小卷积核的层数的方法,但这样会增加模型参数量,并且导致感受野的范围比较固定。
空洞卷积[13]的提出是为了在不增加参数量的情况下扩大模型的感受野。空洞卷积滤波器沿着标准卷积核的空间维度填充0 作为空洞,当空洞卷积的空洞率为1 时,就成为了标准卷积,空洞卷积中等效卷积核的计算公式如式(6)所示:
式中:C表示等效卷积核大小;d表示空洞率;f表示标准卷积滤波器大小。
为了灵活扩大模型感受野,在空洞卷积的基础上,本文引入了DAC[6]。如图4 所示,DAC 模块包含4 个分支,灵感来源于Inception 模型[14],每个分支分别从不同的感受野去捕捉特征图信息,在本文模型深度足够的情况下,级联的空洞卷积分支加宽了本文模型。在每个空洞卷积分支的最后利用1×1 的卷积对特征图线性激活,最后与原始输入特征图相加,该思想来源于ResNet 中的残差连接,能有效防止梯度爆炸和消失。
图4 DAC 模块Fig.4 DAC block
原始的DAC 模块的空洞率分别是1、1、3、5,每个分支获得的感受野是3、7、9、19。本文考虑了多个并行的空洞卷积模块会导致棋盘效应,采用文献[15]中的空洞卷积设置建议,将空洞率调整为1、1、2、4。在DAC 模块多个尺度的感受野作用下,能提取脉络膜模糊区域跟其他区域的上下文依赖。采用padding 填0 的方式,使空洞卷积后的特征图尺寸不变,经过空洞卷积后特征图的尺寸计算公式如下:
其中:O为输出特征图尺寸;n表示输入特征图尺寸;p表示填零层数;s表示卷积步长。
本文引入了一种新的混合损失函数[16]替换常用的二值交叉熵损失函数。混合损失函数由3 种损失函数相加,分别从分割结果和标签的像素级相似度、结构级相似度、整体图形相似度来监督训练模型。整体的loss 函数计算如式(8)所示:
其中:lbce代表二值交叉熵(Binary Cross Entropy,BCE)损失函数;lssim代表结构相似性(Structural Similarity, SSIM)损失函数;liou代表交并比(Intersection of Union, IoU)损失函数。
BCE 损失函数的公式如下:
其中:N表示一张图里像素的总数目;yi∈{0,1} 表示原始图像中的标签;pi表示像素点的预测概率。
SSIM 损失函数的公式如下:
其中:x、y表示从标签图和预测图中截取的大小为N×N的小µx、块µy与分别表示x、y的均值与x、y的方差;表σx示yx 和y 的协方差。ε1、ε2是为了避免分母为0 而设置的常数。
IoU 损失函数公式如下:
其中:y(i,j)∈{0,1} ,表示脉络膜的标签;p(i,j) 表示预测输出的概率图。
实验中SSIM 损失函数截取块设置的大小为11,常数设置为0.000 1,参数设置基于文献[16]的研究。
本文采用的数据集来自上海市第一人民医院眼科。OCT 图像通过设备Topcon DRI OCT-1 采集得到,每个B-scans 的分辨率大小为992×1 024。数据集样本量一共1 644 张,按照约8∶2 的方式随机抽取1 392 张样本用作训练集,252 张样本用作测试集,每张样本的分割金标准是在上海市第一人民医院眼科专业医生的严格指导下标注完成。
实验使用基于GPU 的Windows10 系统计算机来训练模型,GPU 显卡型号为NVIDIA Quadro P4000,显存为8 GB。本文利用Pytorch 0.4.0 作为开源深度学习框架。由于计算机中显卡的存储和计算资源有限,在训练前,OCT 图片先经过缩小,成为输入大小为1×248×256 的灰度图像,再进行网络模型训练和测试。实验采用Adam 优化器训练,学习率设为0.001,一阶矩估计的指数衰减率为0.9,二阶矩估计的指数衰减率为0.999。Batch Size 设为6,一共训练100 轮。实验中CPA 注意力模块中的压缩率r设置为8。
实验采用灵敏度(Sensitivity, Sen)、F1 分数、Jaccard 相似度(Jaccard Similarity, JS)、Dice 系数(Dice Coefficient, Dice)作为评价指标,计算公式如下:
实验对预测的分割结果进行了二值化,因为是二分类的图像分割,将输出的概率图中值大于0.5 的设定为1,其余为0。二值化之后,TP 表示预测为脉络膜区域,实际也是脉络膜区域;FN 表示预测为背景区域,实际上是脉络膜区域;FP 表示预测为脉络膜区域,实际上是背景区域。SR 表示分割后的结果,GT 表示输入标签。
本文方法的有效性通过以下几个方面的对比来验证:CPA 对比CA 的实验;本文模型的各个模块消融实验;3 种损失函数组合下的消融实验;不同模型的对比实验。
本文改进的CPA 注意力模块相较于CA 注意力模块,融合了并行一维最大池化后的注意力信息,为了证明并行一维最大池化操作的有效性,本文进行了CPA 模块和CA 模块的对比实验,实验中的其他部分保持不变。在测试集上进行了验证,实验结果如表1 所示,证明了本文提出的并行一维最大值池化操作对分割性能有较大提升,以及坐标并行注意力机制在脉络膜分割任务中的有效性。
表1 CPA 模块和CA 模块对比Table 1 Comparison of CPA block and CA block
为了充分了解各模块的有效性,本文将去除桥结构以后的主干编解码结构(En-De)作为基线模型,对CPA 模块和DAC 模块以及混合损失函数lbsi进行消融实验,对于没有使用混合损失函数的消融实验部分采用二值交叉熵损失函数训练模型。实验结果如表2 所示。从表2 可以看出,分别加入CPA 模块和DAC 模块对模型性能提升显著,CPA 模块相比于DAC 模块对模型提升要大一点。但两者同时加入相比单独加入时对模型提升最大。CPA 模块抑制浅层特征中的噪声信息,DAC 模块辅助提取深层语义信息,并且在训练过程中引入注意力机制对空洞卷积的参数形成了监督,有利于模型在多感受野上的特征提取。虽然模型采用混合损失函数的贡献比不上CPA 模块和DAC 模块,但是也在精细化分割和脉络膜结构保持上对模型训练形成了促进作用。
表2 模块消融实验结果对比Table 2 Comparison of ablation study by block
为了证明本文引入的损失函数组合在脉络膜分割任务上的有效性,本文分析了3 种损失函数不同组合下对实验结果的影响,损失函数的消融实验结果对比如表3 所示。
表3 结果表明可以单独使用BCE 损失函数的性能比单独使用另外两种损失函数时的性能要好,这是传统BCE 损失函数在密集像素分类任务的优势,但如果再结合SSIM 损失函数以及IoU 损失函数,模型将进一步优化,说明混合损失函数能较好地提高模型性能。
表3 损失函数消融实验结果对比Table 3 Comparison of ablation study by loss
本文还对比了其他论文中出现的网络模型,包括U-Net、CE-Net、BAS-Net[16],USE-Net[17],其中CENet 在U-Net 基础上提出密集空洞卷积块和残差多核池化模块来捕获多尺度、多感受野信息。USE-Net在UNet 的跳跃连接处引入了SE 注意力模块[18]。BAS-Net 在编解码后增加残差细化模块并利用混合损失函数进行训练。不同模型的实验结果对比如表4 所示。
表4 不同模型结果对比Table 4 Comparison of different model results
表4 结果表明,本文提出的脉络膜分割模型在JS 相似度上达到了0.952 8,Dice 系数达到了0.976 3,相比于CE-Net 分别提升了0.0036 和0.0029;同样地,在灵敏度和F1 分数方面,本文模型也均高于其他模型,证明了本文模型的有效性。
选择了不同模型的4 种具有代表性的OCT 脉络膜图像来对比分割效果,如图5 所示,从上到下分别是正常的脉络膜图像、边界模糊的脉络膜图像、成像包含大量噪声的图像以及脉络膜结构不完整的图像。可以看出U-Net 表现最差,因为其编解码码结构简单,且跳跃连接引入了浅层语义信息中的无关噪声信息,所以对包含有噪声的输入图像的处理能力是最弱的;USE-Net 虽然引入注意力机制,但是对于下边界模糊情形处理不佳;CE-Net 和BAS-Net 表现稍好,但整体分割出的脉络膜的结构还不是最好,边缘不够圆滑,而且偶尔有预测出离群点的情况出现。总体而言,本文提出的方法脉络膜边界清晰圆滑、整体结构最接近金标准。
图5 分割效果对比Fig.5 Comparison of segmentation results
针对U-Net 类型网络分割脉络膜时提取高级特征不足,在跳跃连接不加处理时导致引入噪声,感受野不够大的问题,本文提出了一种新的端到端的脉络膜分割模型。该模型基于ResNet-34 作为主干网络进行特征编码,能有效防止模型出现梯度消失。本文设计了一种桥结构,包含两个模块,分别是坐标并行注意力模块和密集空洞卷积模块。特征在浅层经过编码后输入到坐标并行模块,提取有效信息,抑制噪声,特征在深层经过编码后,经过密集空洞卷积模块提取多尺度的感受野信息,然后在解码层通过跳跃连接的方式进行融合。在模型训练时,采用混合损失函数,提高模型对医学组织结构的关注度,通过这些方式解决脉络膜分割难点问题。实验结果表明,本文提出的方法相较于现有的几种常见分割方法表现更好,表明了本文方法的有效性。但本文提出的模型只在OCT 脉络膜分割应用上得到验证,本文的后续工作重点是提高模型的泛化能力,对其他的OCT 图像也能进行同构迁移学习训练。