张泽茹,李兆同,刘良友,高嵩,吴奉梁
1.北京大学医学部医学技术研究院,北京100191;2.北京大学医学人文学院,北京100191;3.北京大学第三医院骨科,北京100191
磁共振成像具有高分辨率软组织图像、病变显示敏感性高的优点,被广泛应用于临床诊断。不同的脉冲序列在成像时可以获取到不同模态的磁共振(Magnetic Resonance, MR)图像,这些模态图像的对比机制不同,提供的病理和生理信息也不同,因此同时使用多模态的MR图像可以获得更多的病理信息。例如,T1(自旋-晶格弛豫)加权图像(T1Weighted Image,T1WI)适用于观察解剖结构,而T2(自旋-自旋弛豫)加权图像(T2Weighted Image,T2WI)突出显示组织中的液体,适用于观察组织病变。同时获取高质量的多模态MR 图像比较困难。首先获取需要较长的扫描时间,其次受患者不自主运动影响获取到的MR 图像可能会出现伪影而不能用于诊断[1]。因此,通过利用扫描时间相对较短的图像来生成另一模态图像,或通过高质量的某一模态图像生成损坏的另一模态图像对获取多模态MR 图像具有潜在的临床应用价值[2]。
图像到图像转换网络在自然图像上的成功,为多模态医学图像转换提供了很好的参考。生成式对抗网络(Generative Adversarial Network, GAN)通过生成模型和判别模型之间的对抗来实现总目标函数的自动学习,使生成模型输出图像尽可能接近真实图像[3]。目前已有很多研究将GAN 用于多模态医学图像转换,如端到端的三维卷积神经网络[4]、三维条件生成式对抗网络[5-7]、全卷积网络的GAN模型[8]、有监督的GAN[9]和无监督的GAN[10-12]等。有监督的模型在不同模态MR 图像间的转换表现优于无监督的模型表现[2],但是成对的MR 图像较难获取,因此需要一个通过对未配对MR 图像进行学习生成高质量MR 图像的模型。鉴于在多数图像处理任务中很难获取到成对的训练数据,Zhu等[10]利用转换具有循环一致性的特性,提出了无监督的循环生成式对抗网络(CycleGAN),在GAN 网络中引入循环一致性损失,将该损失与对抗损失组合进行学习,实现了未配对图像到图像的转换。
本文对CycleGAN 模型进行改进,在使用对抗损失保证图像结构信息和循环损失保证循环一致性的同时,引入感知损失提高生成图像的准确性。Welander 等[12]提及到在训练中引入真实图像可以使模型学习到更多的图像信息,且本文使用成对的数据集进行训练,因此本文还搭建了一个训练可监督的CycleGAN 模型(S_CycleGAN)与改进后的模型(M_CycleGAN)进行对比。通过对M_CycleGAN 模型、S_CycleGAN 模型及CycleGAN 模型进行定量与可视化分析,研究M_CycleGAN 模型无监督、高质量地实现常规MR图像间相互转换的可行性。
GAN 是由两个子网络G和D组成的神经网络结构,其中G是生成器,D是鉴别器。G旨在学习从随机向量噪声z到目标域中图像y的映射,而D学习区分生成的图像G(z)和真实图像y。不同于GAN 网络,CycleGAN 同时学习两个映射。定义两个图像域X和Y,如图1a 所示,CycleGAN 学习从给定图像x(x∈X)到输出图像y(y∈Y)的映射G:x→y以及从给定图像y到输出图像x的映射F:y→x。在CycleGAN 中还包含了两个鉴别器DX和DY,生成器G和F尽可能生成真实的图像以欺骗鉴别器,而作为一个二分类模型的鉴别器模型,DX用于区分真实图像x和预测图像F(y),DY用于区分真实图像y和预测图像G(x)。本文提出的M_CycleGAN 在CycleGAN 的基础上引入感知损失,通过一个已训练的网络分别提取重建图像和真实图像的高层特征信息,并通过计算两幅图像提取特征的差异学习两幅图像之间的高级语义信息。S_CycleGAN 在CycleGAN的基础上引入一个L1损失,通过计算生成图像与真实图像之间的L1 损失实现模型的可监督训练。
本文中模型的损失函数包含4 种:用于将生成图像的数据分布与目标图像的数据分布相匹配的对抗损失;用于防止学习到的映射函数G和F之间矛盾的循环一致性损失;用于提高图像逼真度的重建图像与真实图像之间的感知损失;实现模型可监督的生成图像和真实图像之间的L1损失。
将对抗损失用于映射函数G:X→Y,则对映射函数G和它的鉴别器DY而言,其损失函数表示为:
其中,生成器G用来生成与Y中的真实图像尽可能一致的图像以迷惑DY,而DY用来最大努力地区分生成图像G(x)和真实图像y。类似博弈过程,G旨在将该损失最小化,DY则旨在将该损失最大化,训练目标为minGmaxDYLGAN(G,DY,X,Y)。将对抗损失也应用于映射函数F:Y→X,则其和对应鉴别器DX的损失函数为LGAN(F,DX,X,Y)。
理论上,通过对抗训练可以学习到映射函数G和映射函数F,两个映射分别通过源域X和Y的输入产生与目标域Y和X相匹配的分布。但由于G和F是随机的函数,有无限多个映射函数G和F可以使其输出数据的分布与目标域的分布相同,因此只使用对抗训练并不能保证单个输入x和输出y的配对有意义,且还有可能导致模型崩溃[10]。
在执行转换任务的过程中,可以观察到转换满足循环一致的特性,即域X中的图像x通过映射函数G生成G(x),通过转换循环可以再返回到原来的图像,即x→G( )x→F(G(x)) ≈x。类似地,域Y中的图像y通过映射函数F生成F(y),通过循环一致也可以返回到原来的图像,即y→F(y) →G(F(y)) ≈y。因此为了减少映射函数G和F的选择空间,引入循环一致性损失。这一损失的定义为:
图1 模型结构示意图Fig.1 Network architectures
上述提及到的循环一致性损失使用的逐像素损失在计算仅差一个像素的两幅相同图像时,尽管两幅图像的感知相似,也会出现很大差异。这是由于逐像素损失不能捕捉生成图像和真实图像之间的感知差异。研究表明在网络训练中结合感知损失可以在计算机视觉任务中产生更真实的视觉效果[13-16]。不同于像素级损失函数依赖于像素间的差异,感知损失依赖于高级语义特征的差异,一般这些高级特征通过预训练的网络进行提取。本文使用在ImageNet上预训练的VGG16[17]提取特征图。将感知损失用于重建图像和真实图像,结合循环一致性损失进一步缩小映射函数G和F的选择空间,则其损失函数为:
其中,V表示VGG16 中第二次最大池化前的特征映射图。
由于生成器G和F在生成图像迷惑鉴别器的同时,也要求产生高质量的图像。且在大多数情况下,L1 损失能够捕捉低频信息、保证图像低层特征的准确性。因此本文在S_CycleGAN 中引入L1 损失项来实现CycleGAN 模型的可监督训练。映射函数G的L1损失项定义为:
映射函数F的L1损失项定义为:
CycleGAN的总损失函数表达式为:
其中,λ用来控制循环损失的权重。
S_CycleGAN的总损失函数表达式为:
其中,λ1用来控制循环损失的权重,λ2用来控制L1 损失的权重。
M_CycleGAN的总损失函数表达式为:
其中,λ1用来控制循环损失的权重,λ2用来控制感知损失的权重与对抗训练中相互竞争的思想相同,生成器G和F旨在将损失最小化,鉴别器DX和DY旨在将损失最大化。因此上述3 种网络的总目标函数均为:
为了研究对抗性和循环一致性损失对模型的影响,本文还实现了Generator 模型。它由CycleGAN的生成器组成,仅使用L1 损失在可监督的方式下进行训练。其损失函数如式(4)和式(5)所示。
本文使用 M_CycleGAN、 S_CycleGAN、CycleGAN 以及Generator 模型生成跨模态MR 图像。图1a 中的S_CycleGAN、M_CycleGAN 与CycleGAN模型均由两个相同结构的生成器和两个相同结构的鉴别器组成。图1b 中Generator 模型中的生成器结构与CycleGAN模型中的生成器结构相同。
2.1.1 生成器结构在T1WI 和T2WI 相互转换研究中,由于输入图像和输出图像大小相同,因此生成器使用了上采样层数量和下采样层数量相同的编码-解码网络。另一方面先进行下采样再进行上采样的方法可以在计算代价相同的情况下,使用更大的网络。
生成器的结构中有4 个卷积层、9 个残差块以及2 个转置卷积层,如图2 所示。本网络中没有使用任何池化层,而是参照Radford 等[18]提出的网络及指导,使用带有步长的卷积层来代替池化层以实现网络中的图像上采样和下采样。使用残差连接能够让网络更容易地学习确定的函数,减少数据的丢失和损耗、保护输入信息的完整性[19],因此在网络中加入了残差块以在保证信息完整性的同时增加网络深度,其中残差块的结构为两个使用1×1卷积核的卷积层。由于图像转换的生成结果主要依赖于对应的输入图像实例,因此使用实例归一化对数据进行归一化,以保持每张图像实例之间的独立。
图2 生成器结构示意图Fig.2 Network architecture of generator
2.1.2 鉴别器结构在GANs 模型中,生成器生成的图像被用作鉴别器的输入之一与真实图像进行定量比较,以优化生成器的性能。鉴别器的目的是将生成器生成的图像判别为假的即标签为0,真实的图像判别为真的即标签为1,然后将结果反馈给生成器。根据实验证明在图像生成问题中使用L1 损失和L2损失产生的结果虽然会比较模糊,但是两者均可以准确地捕捉低频信息[9,20]。在CycleGAN 网络中通过计算重建图像与输入图像的L1损失来实现循环一致性,所以在CycleGAN 网络中可以使用循环一致性损失来捕捉图像的低频特征,使用PatchGAN[9]作为鉴别器来获取图像的高频信息。PatchGAN 鉴别器只对块规模的结构进行惩罚,即判别一个图像中N×N大小的块是真的还是假的,然后将这一鉴别器对整个图像进行卷积,将结果平均化后作为鉴别器最后的输出。这一特性将注意力集中到图像的局部块上,满足先前GAN 鉴别器对高频信息进行建模的需求,且使用PatchGAN 比使用整幅图像的鉴别器所需参数更少、训练时间更短。在本文中,使用70×70 的PatchGAN 作为鉴别器网络,判别70×70 重叠的图像块是真的还是假的。如图3 所示为鉴别器的结构示意图。不同于生成器,鉴别器中使用斜率为0.2 的带泄露修正线性单元(LeakyReLU, LReLU)进行非线性激活。
图3 鉴别器结构示意图Fig.3 Network architecture of discriminator
本文的模型使用Nvidia GeForce GTX 1060 GPU进行训练。训练的数据集由Human Connectome project(https://db.humanconnectome.org/)提供。本文使用了32位受试者成对的T1WI和T2WI(但需要注意的是CycleGAN 网络可以使用未配对的数据进行训练)。其中,将26 位受试者的数据用于训练,剩余6位受试者的数据用于测试。
数据处理主要分为三步。第一步,使用ITKSNAP 软件对每位受试者的成对数据进行配准,使配对的图像大小相同、位置相同。第二步,由于本文的模型只能支持二维的输入图像,所以对配准后的数据分别沿着x轴、y轴、z轴进行切割,其中水平面选择30 个切片,矢状面选择20 个切片,冠状面选择20 个切片。因此训练集的每个域有1 820 幅图像,测试集的每个域有420 幅图像。第三步,图像大小调整。数据集中的三维数据大小为256×256×176,切割后的数据大小分别为256×256、256×176、256×176,因此对大小为256×176的图像使用双线性插值调整图像大小,将所有的图像大小统一为256×256。为了使模型更容易收敛,在进行训练前,需要对数据进行归一化。由于MR 图像是8 bit 深度图像,因此使用公式X=- 1将数据统一映射到-1到1的区间上。
3个CycleGAN模型中所有的权重均以高斯分布N(0,0.02)进行初始化,且设循环一致性损失惩罚系数均为10.0。设M_CycleGAN 模型中λ2为10.0 对真实图像和重建图像的感知损失进行正则化,设S_CycleGAN 模型中的λ2为10.0 对生成图像与真实图像间的L1 损失进行正则化。3 个模型都是用Adam 优化器进行训练,其中用以控制权重分配的系数β1设置为0.5,用以控制之前梯度平方影响的系数β2设置为0.999。因为本文在模型中使用实例归一化,所以将batchsize 设置为1。将生成器的学习速率和鉴别器的学习速率初始设置为0.000 2,在训练的前100 个周期中保持学习速率不变,然后在后100 个周期中学习速率逐渐衰减到0。在每一周期循环中将生成器迭代次数和鉴别器的迭代次数均设置为1,使生成器和鉴别器进行交替训练。对于Generator模型,仅使用L1 损失进行训练,其余参数设置与上述CycleGAN模型参数一致。
使用归一化均方根误差(Normalized Root Mean-Squared Error,NRMSE)、峰值信噪比(Peak Signal-to-Noise Ratio, PSNR)、结 构 相 似 性(Structural Similarity Index, SSIM)[21]、互信息(Mutual Information,MI)[22]分别对模型测试的结果进行定量评估。PSNR、SSIM 以及MI 的值越高,NRMSE 值越小表示生成的图像失真越小。当生成图像与真实图像之间的误差很小的情况下,很难对生成图像继续进行视觉评估,因此本文计算两幅图像之间每个像素的绝对差值并将其可视化以实现视觉评估。
表 1列出了 M_CycleGAN、S_CycleGAN、CycleGAN 以及Generator 在测试集上的定量评估结果。Generator 模型在所有定量测量中表现最佳。与定量分析结果不同,图4 的误差可视化图表示M_CycleGAN 模型生成的T1WI 和T2WI 的视觉效果表现最佳。这是因为Generator 模型仅使用L1 损失进行监督训练使模型倾向于生成表面光滑、不真实的MR图像,而其余3个GAN模型利用对抗损失使生成的MR 图像更加真实。误差可视图和定量评估结果均显示所有模型在生成T2WI的任务中表现优于生成T1WI 的任务。这是因为在生成T1WI 的时候模型倾向于学习结构信息,而忽视了图像亮度值,使生成的T1WI平均亮度高于真实T1WI的平均亮度。
图4 评估模型的生成图像Fig.4 Evaluation of images generated by different models
表1 模型定量评估结果Tab.1 Quantitative evaluation results of the models
S_CycleGAN 的所有定量测量结果均优于CycleGAN 模型,但在可视化误差图中,S_CycleGAN模型生成的T1WI 误差要大于CycleGAN 模型生成的T1WI 误差。这是因为与Generator 模型一样,S_CycleGAN 模型使用了L1 损失实现CycleGAN 模型的可监督训练,而L1损失是逐像素的计算方法,使生成的MR图像更加光滑。
M_CycleGAN 模型的定量评估和可视化评估的结果均优于CycleGAN 模型。这是因为CycleGAN模型仅使用L1损失学习重建图像和真实图像之间的误差,而L1损失是像素级别的损失计算方式,忽略了图像的高层特征信息,M_CycleGAN 模型在此基础上引入感知损失,通过一个已训练的VGG16 网络分别提取重建图像和真实图像的高层特征信息,以结构级别的损失计算方式学习两幅图像之间的高级语义信息,减少了生成器映射函数的选择空间,生成与真实图像尽可能一致的MR图像。
Dar等[2]表明有监督的模型由于包含更多的参考图像信息,性能要优于无监督模型。本文中实现了一个有监督的CycleGAN 模型(S_CycleGAN)用来与M_CycleGAN 模型进行比较。在生成T1WI 的任务中,除了MI值外,M_CycleGAN模型的定量评估结果均优于S_CycleGAN 模型(PSNR 高0.376 4 dB,SSIM高0.016 5,NRMSE 低0.010 8,MI 低0.026 0)。在生成 T2WI的任务中,M_CycleGAN 模型与S_CycleGAN模型定量评估结果相近(PSNR 相差0.064 8 dB,SSIM 相差0.004 6,NRMSE 相差0.007 3,MI 相差0.007 1)。在可视化结果中M_CycleGAN 模型生成的T1WI和T2WI视觉效果均优于S_CycleGAN模型。这表明M_CycleGAN 模型可以在完全无监督的条件下达到与S_CycleGAN 模型相近甚至更优的效果。
Yang 等[5]、Yu 等[6]以及Nie 等[8]在研究跨模态医学图像转换时,均使用了配对的数据进行监督训练,但获取配对的多模态医学图像比较困难。Zhang等[4]提出了实现未配对CT 图像和MR 图像转换的网络,但是该网络为了减少生成图像的几何畸变,使用了带有语义标签的图像作为训练目标,不能实现完全无监督转换。Welander 等[12]为了对基于无监督CycleGAN 模型和UNIT 模型的多模态MR 图像转换进行评估,使用了配对的MR 图像进行训练。本文提出的方法是在完全无监督的条件下实现对未配对常规MR图像的转换,为了将训练结果和真实结果进行比较,本文使用无监督的方式对配对的常规MR图像进行了训练,但使用配对数据对训练结果是否存在影响还需要进一步的探索。
Dar 等[2]在多模态MR 图像转换的研究中提及到一个受试者连续的磁共振图像之间存在一定的联系,本文只使用了二维的深度神经网络对图像进行学习,丢失了连续图像之间的空间信息,因此可以对三维的深度神经网络在三维常规MR 图像相互转换的可行性进行进一步研究。
本文对CycleGAN 模型进行改进,引入感知损失,使模型在学习重建图像和真实图像之间的底层结构信息的同时,学习高级特征信息。模型利用循环一致性损失和感知损失实现未配对数据训练中的一对一映射,并使生成的MR图像与真实图像更加相似。该方法可以实现未配对多模态MR 图像的转换进而获取多模态MR 图像信息,并通过生成新的MR图像数据来进行数据增强进一步实现图像分割和图像配准等任务。