二、方法框架

二、方法框架

(一)CycleGAN网络结构

CycleGAN网络原理见图4-19,定义低对比度眼底图像样本空间为X,高质量眼底图像样本空间为Y,我们基于CycleGAN框架进行眼底图像增强,即实现眼底图像从低质量到高质量的转换。

根据图4-19a,CycleGAN由两个生成器GX2Y、GY2X和两个判别器DX、DY组成。作为本网络的学习目标,生成器GX2Y将X域图像映射为Y域图像,生成的高质量眼底图像使用判别器DY鉴别是否为真实图像。上述GX2Y和DY构成一个基础GAN网络结构,训练该网络结构时的对抗损失如公式(4-11)所示:

图4-19 CycleGAN网络原理图

同理,生成器GY2X和判别器DX则构成另外一个将Y域图像映射为X域图像的基础GAN网络结构,网络对抗损失如公式(4-12)所示:

将上述两个基础GAN网络进行拼接则得到CycleGAN网络框架。对于GAN网络,仅仅使用对抗损失进行训练极易出现模式崩塌(mode collapse)现象,即生成器GX2Y将所有X域中的图像都映射到Y空间的同一结果上,使模型损失函数无效化。同时GAN并没有对每个输入特征的映射过程进行限制,这也导致无法保证输入x能得到我们想要得到的对应结果y。为了解决此类问题,CycleGAN中引入了循环一致性损失(cycle consistency loss)。

如图4-19b所示,生成器GX2Y、GY2X分别实现图像在X、Y两个域之间的转换,为了对生成器的生成结果进行限制,考虑到当图像x经过GX2Y后得到Y域图像,那么图像再通过GY2X得到的X域图像便可以看作是两个生成器对原始图像x的编码解码结果。循环一致性损失由计算x和图像像素点之间的L1范数求得,网络训练时通过最小化循环一致性损失对生成器GX2Y进行约束。图像转换重构过程x→GX2Y(x)→GY2X(GX2Y(x))≈x可以简写如公式(4-13)所示:

同理,图4-19c中使用y→GY2X(y)→GX2Y(GY2X(y))≈y图像重构得到的循环一致性损失对生成器GY2X进行约束。重构过程简写如公式(4-14)所示:

综上,CycleGAN循环一致性损失计算公式(4-15)如下所示:

结合X→Y以及Y→X两个GAN网络自带的对抗损失函数,CycleGAN网络总损失函数如公式(4-16)所示:

其中超参数λ用来控制循环一致性损失在网络总损失中的权重。

在训练网络时的优化目标如公式(4-17)所示:

其中,G表示生成器GX2Y和GY2X,D表示判别器DX和DY。与GAN网络训练流程一致,CycleGAN中生成网络和判别网络交替训练更新参数。CycleGAN网络训练步骤如下。

(1)随机初始化生成器GX2Y和GY2X参数。

(2)冻结生成器网络参数,通过最大化损失max L(GY2X,GX2Y,DX,DY)训练判别器网络。

(3)冻结判别器网络参数,通过最小化损失min L(GY2X,GX2Y,DX,DY)训练生成器网络。

(4)重复步骤(2)(3)直到网络达到预设迭代次数n。

(二)注意力模块

CBAM模块结构示意图见图4-20。

图4-20 CBAM模块结构图

在CBAM模块中,输入特征分别经过通道注意力模块和空间注意力模块后得到输出特征。假设输入特征F的维度为F∈RC×H×W,通道注意力模块输出特征图维度为MC∈RC×1×1,空间注意力模块输出维度为MS∈R1×H×W。CBAM模块特征加权表达式如公式(4-18)所示:

式中,⊗表示两张特征图之间元素的点乘操作,首先输入特征F与通道注意力特征图MC(F)点乘得到F′,然后计算F′的空间注意力特征图MS(F′),最后将F′与MS(F′)点乘得到最终特征加权结果F″。

CBAM的通道注意力模块和SE模块一样,都是对特征图的空间维度进行压缩而仅仅保留通道数量特征。对比SE模块使用全局平均池化方式,CBAM通道注意力模块在空间维度上分别使用了全局最大池化和全局平均池化两种池化方式。两类池化结果分别经过多层感知机进行特征整合,最后在通道层面上将两类结果逐像素求和并经过sigmoid激活得到通道注意力特征图。CBAM通道注意力模块结构如图4-21所示。

CBAM通道注意力模块计算如公式(4-19)所示:

图4-21 CBAM通道注意力模块结构图

式中σ为sigmoid激活函数,MLP表示多层感知机,W0和W1为MLP中隐藏层权重,两者维度分别为W0∈RC/r×C,W1∈RC×C/r。网络中所有CBAM通道注意力模块的多层感知机共享参数,同时默认隐藏层W0后衔接一个ReLU激活函数。

CBAM空间注意力模块同样使用了最大池化和平均池化两种池化方法。类比CBAM通道注意力模块在空间维度上对特征进行压缩,CBAM空间注意力模块则是在通道维度上对特征进行压缩。首先将两种池化方式生成的特征图在通道维度上叠加,然后使用一个感受野大小为7(7的卷积核进行卷积,最后使用sigmoid函数将卷积结果归一化到0~1之间,输出结果即为空间注意力特征图。CBAM空间注意力模块结构见图4-22。

图4-22 CBAM空间注意力模块结构图

空间注意力模块计算如公式(4-20)所示:

其中σ为sigmoid激活函数,f7×7表示感受野大小为7(7的卷积核。

作为一个轻量级的通用模块,与SE模块一样,CBAM模块可以融入几乎所有主流分类网络中,在承担少量额外的网络参数与计算量的同时很大程度上提升了网络性能。

(三)Cycle-CBAM网络

为了解决由训练图像不成对导致的纹理细节退化,引入CBAM卷积注意力模块增强CycleGAN采样网络的特征提取能力。在验证Cycle-CBAM增强效果时,对增强后的眼底图像分别进行定量分析和定性分析,并构建一个DR分类网络,进行增强效果评价。分别将经过CycleGAN和Cycle-CBAM增强前后的眼底图像输入DR分类网络,通过比较两者的分类精度,最终得到Cycle-CBAM对视网膜眼底图像的增强效果。实验表明,将CBAM集成到CycleGAN中得到的Cycle-CBAM网络具有优于CycleGAN的性能。

CycleGAN网络生成图像的质量很大程度上取决于模型中生成器的选择,使用特征提取能力较弱的生成网络会导致结果图像中出现纹理细节退化等现象。本节在CycleGAN生成网络中引入CBAM卷积注意力模块,进而增强CycleGAN采样网络的特征提取能力,对生成结果的微小细节进行优化。

Cycle-CBAM眼底图像增强网络结构见图4-23,Cycle-CBAM网络可以分为左右两个子网络,分别对应x→GX2Y(x)→GY2X(GX2Y(x))以及y→GY2X(y)→GX2Y(GY2X(y))两个图像转换重构过程。

图4-23 Cycle-CBAM眼底图像增强网络结构图

生成器GX2Y和GY2X为全卷积网络结构,根据功能的不同可分为下采样模块、特征整理模块和上采样模块三个部分。下采样模块包含3层卷积层,对应卷积核数量分别为64、128、256,第一层卷积层使用大小为7(7的卷积核,步长为1,余下2层使用大小为3(3的卷积核,步长为2。下采样模块主要将输入图像中包含的信息转换为特征向量,而特征整理模块则是对特征再次进行整合,以提取全局高维信息。堆叠9个残差模块(resblock)作为特征整理网络,且每一个残差模块中均使用了CBAM注意力模块。原始残差模块结构与ResNet34中残差模块一致,在融入CBAM注意力机制后,CBAM残差模块结构,如图4-24所示。

图4-24 CBAM结构图

可以看到,通道注意力和空间注意力的提取步骤添加在残差模块中的卷积步骤和恒等连接之间。上采样模块则包含两层卷积核大小为3(3的转置卷积层,卷积核数量分别为128、64,步长均为2。最后网络再使用大小为7(7的卷积核将输出结果64维转换成3通道彩色图像。

判别器DX、DY并没有融入CBAM注意力机制,而是通过借鉴Patch GANs方法来减少判别网络参数数量。判别器分别对从原图中截取的各个N(N大小的子图进行判断,最终根据多数投票原则得到分类结果。判别器包含5个卷积层,对应卷积核数量分别为64、128、256、512、1,步长分别为2、2、2、1、1。