本文是关于论文《CT Super-resolution GAN Constrained by the Identical, Residual, and Cycle Learning Ensemble (GAN-CIRCLE)》的阅读笔记,本来是想看有关cycle-GAN 的内容,但是错找成了 GAN-Circle 的论文。
GAN-Circle 是一个半监督的深度学习网络,用来从低分辨率的 CT 图像生成高分辨率的 CT 图像。在模型中使用了 GAN、CNN、残差学习、网中网等技术。
对于当前的 CT 成像技术来说,虽然分辨率已经很高了,但是在早期肿瘤描绘和冠状动脉分析等方面分辨率仍然不够。所以如何在使用低辐射剂量的前提下产生出高分辨率的图像是一个热门的问题。一般来说有两种思路,一种是硬件定向的方法,如提高 CT 成像设备的精度等,但这种方法往往很昂贵,并且可能产生较高的辐射;另一种是软件计算的方法,主要的挑战是对低像素图像去模糊。
对于软件计算的提高 CT 分辨率的方法,主要有三类方法:
基于深度学习的方法有几个局限:
本文的主要贡献有:
在恢复高分辨率 CT 图像时的主要挑战有:
在该模型中一共有两个 GAN,它们的结构相同,功能不同,一个是从 LR 图像生成 HR 图像,然后做对抗学习;另一个是从 HR 图像生成 LR 图像,然后做对抗学习。两者之间也有一定的联系。这样我们优化的问题就变成了:
min G , F max D Y , D X L G A N ( G , D Y ) + L G A N ( F , D X ) \min_{G,F}\max_{D_Y,D_X}L_{GAN}(G,D_Y)+L_{GAN}(F,D_X) G,FminDY,DXmaxLGAN(G,DY)+LGAN(F,DX)
在训练过程中一共有四种损失函数:对抗损失(adversarial loss, adv)、循环一致性损失(cycle-consistency loss, cyc)、一致性损失(identity loss, idt)和联合稀疏变换损失(joint sparsifying transform loss, jst)
对抗损失的作用是促使生成的图像遵循源域或目标域的分布,在具体使用的时候使用了 Wasserstein 距离来代替负的对数似然损失,其表达式为:
min G max D Y L W G A N ( D Y , G ) = − E y [ D ( y ) ] + E x [ D ( G ( x ) ) ] \min_G\max_{D_Y}L_{WGAN}(D_Y,G)=-E_y[D(y)]+E_x[D(G(x))] GminDYmaxLWGAN(DY,G)=−Ey[D(y)]+Ex[D(G(x))]
+ λ E y ^ [ ( ∣ ∣ ∇ y D ( y ) ∣ ∣ 2 − 1 ) 2 ] +\lambda E_{\hat{y}}[(||\nabla yD(y)||_2-1)^2] +λEy^[(∣∣∇yD(y)∣∣2−1)2]
其中 E() 表示期望,y 表示对于 G(x) 和 y 的沿直线的均匀采样, λ \lambda λ 是规范化参数。 min F min D X L W G A N ( D X , F ) \min_F\min_{D_X}L_{WGAN}(D_X,F) minFminDXLWGAN(DX,F) 的表达式也与上式类似。
循环一致性损失:研究证明单纯使用对抗损失不能很好的实现从源域到目标域图像的转换,所以又使用了循环一致性损失。简单来说,就是先把 LR 图像转换为 HR 图像,再转换回 LR 图像,然后将原始 LR 图像和结果计算损失函数,使得 F ( G ( x ) ) ≈ x F(G(x))\approx x F(G(x))≈x 。HR 图像同理。其表达式为:
L C Y C ( G , F ) = E x [ ∣ ∣ F ( G ( x ) ) − x ∣ ∣ 1 ] + E y [ ∣ ∣ G ( F ( y ) ) − y ∣ ∣ 1 ] L_{CYC}(G,F)=E_x[||F(G(x))-x||_1]+E_y[||G(F(y))-y||_1] LCYC(G,F)=Ex[∣∣F(G(x))−x∣∣1]+Ey[∣∣G(F(y))−y∣∣1]
一致性损失:相比于 L 2 L_2 L2 正则, L 1 L_1 L1 正则可以容忍估计图像和目标图像之间的小错误,并且收敛速度更快。
L I D T ( G , F ) = E y [ ∣ ∣ G ( y ) − y ∣ ∣ 1 ] + E x [ ∣ ∣ F ( x ) − x ∣ ∣ 1 ] L_{IDT}(G,F)=E_y[||G(y)-y||_1]+E_x[||F(x)-x||_1] LIDT(G,F)=Ey[∣∣G(y)−y∣∣1]+Ex[∣∣F(x)−x∣∣1]
联合稀疏变换损失:为了表示图像稀疏性,我们在以下联合约束条件下建立了一个基于非线性全变分的损失函数,其表达式如下:
L J S T ( G ) = τ ∣ ∣ G ( x ) ∣ ∣ T V + ( 1 − τ ) ∣ ∣ y − G ( x ) ∣ ∣ T V L_{JST}(G)=\tau||G(x)||_{TV}+(1-\tau)||y-G(x)||_{TV} LJST(G)=τ∣∣G(x)∣∣TV+(1−τ)∣∣y−G(x)∣∣TV
其中 τ \tau τ 是比例因子,设置为 0.5。
总的损失函数为:
L G A N − C I R C L E = L W G A N ( D Y , G ) + L W G A N ( D X , F ) L_{GAN-CIRCLE}=L_{WGAN}(D_Y,G)+L_{WGAN}(D_X,F) LGAN−CIRCLE=LWGAN(DY,G)+LWGAN(DX,F)
+ λ 1 L C Y C ( G , F ) + λ 2 L I D T ( G , F ) + λ 3 L J S T ( G ) +\lambda_1 L_{CYC}(G,F)+\lambda_2 L_{IDT}(G,F)+\lambda_3 L_{JST}(G) +λ1LCYC(G,F)+λ2LIDT(G,F)+λ3LJST(G)
当有监督信息也就是成对的图像 (x,y) 时,还可以加入监督损失,其公式如下:
L S U P ( G , F ) = E ( x , y ) [ ∣ ∣ G ( x ) − y ∣ ∣ 1 ] + E ( x , y ) [ ∣ ∣ F ( y ) − x ∣ ∣ 1 ] L_{SUP}(G,F)=E_{(x,y)}[||G(x)-y||_1]+E_{(x,y)}[||F(y)-x||_1] LSUP(G,F)=E(x,y)[∣∣G(x)−y∣∣1]+E(x,y)[∣∣F(y)−x∣∣1]
上图是生成网络的结构示意图,如图中所示, 生成网络包括特征提取网络和重建网络两部分,特征提取网络由12个非线性特征 SR 特征块组成,每个非线性 SR 特征块 3 × 3 3\times3 3×3 的卷积、偏置和 Leaky ReLU 组成,为了提取局部和全局的图像特征,各个隐藏层的输出通过跳跃连接结合,如图中虚线所示。
在重建网络中有两个重建分支,在图中表示为 A、B 分支,然后将两个分支合并为 C。这种网络结构通过多个分支进行运算,然后再将其输出结果合并的结构被称作网中网(network in network),而在 GoogLeNet 中被称作 Inception Module。其中的 1 × 1 1\times1 1×1 卷积有两个优点,一方面是过滤器较小,计算快,另一方面可以提升网络的非线性性,使其可以学到更复杂的映射关系。
当是有监督的训练时,生成网络中还对原图进行了双三次插值,然后与重建网络的输出结果进行合并得到最终的结果。
上图是判别网络的结构示意图,判别网络由8个块组成,每个块由 4 × 4 4\times4 4×4 卷积、偏置、实例正则化和 Leaky ReLU 组成,后面跟着两个全连接。图中 n64s1 中的 n64 表示通道数,s1 表示步长为1。