DDcGAN:用于多分辨率图像融合的双判别器生成对抗网络 您所在的位置:网站首页 图像融合算法有几种类型 DDcGAN:用于多分辨率图像融合的双判别器生成对抗网络

DDcGAN:用于多分辨率图像融合的双判别器生成对抗网络

#DDcGAN:用于多分辨率图像融合的双判别器生成对抗网络| 来源: 网络整理| 查看: 265

目录 📝论文下载地址🔨代码下载地址👨‍🎓论文作者📦模型讲解[背景介绍][论文解读][DDcGAN总体结构][损失函数][网络具体结构][生成器][判别器] [医学影像的融合] [结果分析][数据集以及参数设置][训练细节][评估指标][红外与可见光图像融合的结果与分析][对比不同的损失函数的结果与分析][在医学影像融合上的结果与分析] 🚪传送门

📝论文下载地址

  [论文地址]

🔨代码下载地址

  [GitHub-official-Tensorflow]   [GitHub-unofficial-PyTorch]

👨‍🎓论文作者 Jiayi Ma,HanXu, Junjun Jiang, Xiaoguang Mei, and Xiao-Ping Zhang,Senior Member, IEEE 📦模型讲解 [背景介绍]

  GAN是Generative Adversarial Networks的缩写译为生成对抗模型,GAN最早是2014年提出的网络模型,有兴趣可以去看原文[Generative Adversarial Networks]。GAN在近几年是一个比较热门的研究话题,它可以生成想要的图片,如下图所示,可以将图片中原本的马或斑马互相交换,或者是夏天和冬天风景的互换:

  或者是近期比较热门的风格转换,可以把实际拍到的图片转换成油画、二次元等风格:

  另外还有图像的修复、换脸等应用,这里有几百种GAN的网络,可以访问[GAN-ZOO]。   传统的GAN主要由两部分组成:Generative Network和Adversarial Network也就是生成网络和判别网络,也叫生成器和判别器。在GAN中两个网络是单独进行训练。首先训练判别器,让判别器能够对图片的真假进行判别。之后训练生成器,通过生成器生成图像,利用判别器生成的图像进行判别。   如果样本服从真实分布 P d a t a ( x ) P_{data}(x) Pdata​(x),生成器会从样本 { x 1 , x 2 , . . . , x m } \{x^1,x^2,...,x^m\} {x1,x2,...,xm}的概率分布 P d a t a ( x ) P_{data}(x) Pdata​(x)中学习由 θ \theta θ参数化的模型 P m o d e l ( x ; θ ) P_{model}(x;\theta) Pmodel​(x;θ),其中 P m o d e l ( x ; θ ) P_{model}(x;\theta) Pmodel​(x;θ)是高斯混合模型。生成样本的可能性定义如下: L = ∏ i = 1 m P m o d e l ( x i ; θ ) L=\prod_{i=1}^mP_{model}(x^i;\theta) L=i=1∏m​Pmodel​(xi;θ)执行最大似然估计: θ ∗ = arg max ⁡ θ ∑ i = 1 m log ⁡ P m o d e l ( x i ; θ ) \theta^*=\argmax_\theta\sum_{i=1}^m\log P_{model}(x^i;\theta) θ∗=θargmax​i=1∑m​logPmodel​(xi;θ)   可以认为是使 P d a t a ( x ) P_{data}(x) Pdata​(x)和 P m o d e l ( x ; θ ) P_{model}(x;θ) Pmodel​(x;θ)之间的Kullback-Liebler方差最小化。但是,如果 P m o d e l ( x ; θ ) P_{model}(x;θ) Pmodel​(x;θ)是更为复杂的概率分布,则很难计算其似然函数来执行最大似然估计。为了解决这个问题,GAN通过同时训练两个模型(生成器 G G G和判别器 D D D),通过对抗过程来估计生成模型。   生成器是一个可以捕获数据分布并生成新样本的网络。如果输入从潜在空间采样的噪声 z z z,它将生成一个样本 x = G ( z ) x=G(z) x=G(z)。借助神经网络,由生成器生成的样本形成的概率分布 P G ( x ) P_G(x) PG​(x)变得更加复杂。 G G G的训练目标是使 P G ( x ) P_G(x) PG​(x)和 P d a t a ( x ) P_{data}(x) Pdata​(x)尽可能接近,并且优化公式可以定义为: G ∗ = arg min ⁡ G D i v ( P G ( x ) , P d a t a ( x ) ) G^*=\argmin_GDiv(P_G(x),P_{data}(x)) G∗=Gargmin​Div(PG​(x),Pdata​(x)) 其中 D i v ( ⋅ ) Div(·) Div(⋅)表示两个分布之间的差异。但是,由于 P G P_G PG​和 P d a t a P_{data} Pdata​的公式未知,因此难以计算差异。   判别器 D D D可以巧妙地用于解决此问题,因为它会判断样本来自训练数据而不是 G G G生成的概率。 D D D的目标函数可以表示为: D ∗ = arg max ⁡ D V ( G , D ) D^*=\argmax_DV(G,D) D∗=Dargmax​V(G,D) 其中 V ( G , D ) V(G,D) V(G,D)定义如下: V ( G , D ) = E x ∼ P d a t a [ log ⁡ D ( x ) ] + E x ∼ P G [ log ⁡ ( 1 − D ( x ) ) ] V(G,D)=\mathbb E_{x\sim P_{data}}[\log D(x)]+\mathbb E_{x\sim P_{G}}[\log (1-D(x))] V(G,D)=Ex∼Pdata​​[logD(x)]+Ex∼PG​​[log(1−D(x))]   上式较大时意味着 P G P_G PG​和 P d a t a P_{data} Pdata​的Jensen-Shannon(JS)差异很大,并且易于区分。因此,可以将 G G G的优化公式转换为: G ∗ = arg ⁡ min ⁡ G max ⁡ D V ( G , D ) G^*=\arg\min_G\max_D V(G,D) G∗=argGmin​Dmax​V(G,D)   当训练 G G G时,判别器 D D D是固定的。 G G G和 D D D的对抗过程组成了一个两人游戏,其中 G G G试图欺骗 D D D,而 D D D被训练来辨别生成的数据。因此,生成的样本与真实数据越来越难以区分。   如果生成器和判别器都以某种额外信息为条件,则GAN可以扩展为条件模型,这些信息可以是任何种类的辅助信息。可以通过提供额外信息作为附加输入层来执行条件化,并且将该模型定义为条件生成对抗网络,也就是条件GAN,cGAN。

[论文解读]

  本文中作者提出了一种通过双判别器条件GAN(DDcGAN)的融合方法。

[DDcGAN总体结构]

  作者提出的DDcGAN的整个过程如下图所示。

  给定可见图像 v v v和红外图像 i i i,作者假设可见图像 v v v的分辨率是红外图像 i i i分辨率的4×4倍。最终目标是学习以它们为条件的生成器 G G G,并鼓励生成的图像 G ( v , i ) G(v,i) G(v,i)足够实际和有用,以欺骗判别器。判别器的输出是一个概率,表示输入是真实数据不是生成器 G G G生成的概率。    D v D_v Dv​旨在将生成的图像与可见图像区分开,而 D i D_i Di​则经过训练以区分原始的低分辨率红外图像 i i i和下采样(平均池化)的生成/融合图像。   注意为了在生成器和判别器之间保持平衡,除了输入鉴别器外,作者不将源图像 v v v和 i i i作为附加/条件信息提供给 D v D_v Dv​和 D i D_i Di​。即每个判别器的输入层是包含样本数据的单通道,而不是同时包含样本数据和对应的源图像作为条件信息的两通道。因为当条件和待判别的样本相同时,判别任务被简化以判断输入图像是否相同,这对于神经网络来说太简单了。当生成器无法欺骗鉴别器时,对抗关系将无法建立,并且生成器将倾向于随机生成。 因此,该模型将失去其原始含义。注意作者的意思可能是判别器的设计输入的是一张图片,如果是源图 v v v或者 i i i那么判别器输出应该是“real”,如果输入是样本图像也就是 G G G生成的图像,判别器输出应该是是“fake”,这也就对应上面的结构图,两者要输入一个。如果样本图像在判别器后输出的是“real”的话就不会构成对抗关系了,应该是这个意思。如果大家认为我理解有误,可以评论告诉我。   将下采样算符表示为 ψ ψ ψ,由两个平均池化层实现。,这两层的kernal_size为3×3,stride为2。因此, G G G的训练目标可以表述为最小化以下对抗目标: min ⁡ G max ⁡ D v , D i { E [ log ⁡ D v ( v ) ] + E [ log ⁡ ( 1 − D v ( G ( v , i ) ) ) ] + E [ log ⁡ D i ( i ) ] + E [ log ⁡ ( 1 − D i ( ψ G ( v , i ) ) ) ] } \min_G\max_{D_v,D_i}\{\mathbb E[\log D_v(v)]+\mathbb E[\log (1-D_v(G(v,i)))]\\ +\mathbb E[\log D_i(i)]+\mathbb E[\log(1-D_i(ψG(v,i)))]\} Gmin​Dv​,Di​max​{E[logDv​(v)]+E[log(1−Dv​(G(v,i)))]+E[logDi​(i)]+E[log(1−Di​(ψG(v,i)))]} 相反,判别器的目的是使上式最大化。   通过生成器 G G G和两个判别器( D v D_v Dv​和 D i D_i Di​)的对抗过程, P G P_G PG​和两个实际分布(即 P V P_V PV​和 P I P_I PI​)之间的差异将同时变小,其中 P G P_G PG​是生成样本的概率分布, P V P_V PV​是可见图像的真实分布, P I P_I PI​是红外图像的分布。

[损失函数]

  在本文中,生成器不仅被训练来欺骗判别器,而且还被要求约束内容中生成的图像和源图像之间的相似性。 因此,生成器的损失函数由对抗损失 L G a d v \mathcal L^{adv}_G LGadv​和内容损失 L c o n \mathcal L_{con} Lcon​组成,权重 λ λ λ控制权衡: L G = L G a d v + λ L c o n L G a d v = E [ log ⁡ ( 1 − D v ( G ( v , i ) ) ) ] + E [ log ⁡ ( 1 − D i ( ψ G ( v , i ) ) ) ] \mathcal L_G=\mathcal L^{adv}_G+\lambda\mathcal L_{con}\\\mathcal L^{adv}_G=\mathbb E[\log(1-D_v(G(v,i)))]+\mathbb E[\log(1-D_i(ψG(v,i)))] LG​=LGadv​+λLcon​LGadv​=E[log(1−Dv​(G(v,i)))]+E[log(1−Di​(ψG(v,i)))]   作者使用Frobenius范数来约束融合而图像的强度信息,使其与输入的红外图像更相似。而融合图像的梯度信息则是由可见光继承,利用TV损失函数: L c o n = E [ ∣ ∣ ψ G ( v , i ) − i ∣ ∣ F 2 + η ∣ ∣ G ( v , i ) − v ∣ ∣ T V ] \mathcal L_{con}=\mathbb E[||ψG(v,i)-i||^2_F+η||G(v,i)-v||_{TV}] Lcon​=E[∣∣ψG(v,i)−i∣∣F2​+η∣∣G(v,i)−v∣∣TV​]   上面是针对生成器的损失,下面是判别器 D v D_v Dv​与 D i D_i Di​的损失: L D v = E [ − log ⁡ D v ( v ) ] + E [ − log ⁡ ( 1 − D v ( G ( v , i ) ) ] L D i = = E [ − log ⁡ D i ( i ) ] + E [ − log ⁡ ( 1 − D i ( ψ G ( v , i ) ) ] \mathcal L_{D_v}=\mathbb E[-\log D_v(v)]+\mathbb E[-\log (1-D_v(G(v,i))]\\ \mathcal L_{D_i}==\mathbb E[-\log D_i(i)]+\mathbb E[-\log (1-D_i(ψG(v,i))] LDv​​=E[−logDv​(v)]+E[−log(1−Dv​(G(v,i))]LDi​​==E[−logDi​(i)]+E[−log(1−Di​(ψG(v,i))]

[网络具体结构] [生成器]

  生成器由2个反卷积层,一个编码器网络和一个对应的解码器网络组成,如下图所示。

  由于红外图像的分辨率较低,反卷积是为了提高图像的分辨率,同时还将可见图像通过另一个独立的反卷积层,该层会生成具有相同分辨率的特征图,这里是为了统一可见光与红外的分辨率。将反卷积层获得的结果进行通道相连作为编码器的输入。特征提取和融合的过程都在编码器中执行,并生成融合的特征图作为输出。然后featuremap输入到解码器以进行重构,并且所生成的融合图像具有与可见图像相同的分辨率。

[判别器]

  判别器旨在对生成器起对抗作用。 D v D_v Dv​和 D i D_i Di​旨在分别将产生的图像与可见图像和红外图像区分开。不仅应考虑生成器和判别器之间的对抗关系,还应考虑 D v D_v Dv​与 D i D_i Di​的平衡。否则,随着训练的进行,一个的优势或劣势最终将导致另一个的效率低下。

  判别器 D v D_v Dv​和 D i D_i Di​共享相同的体系结构,与生成器体系结构相比,其设置要简单一些,如上图所示。所有卷积层的stride都设置为2。在最后一层, 使用Tanh函数生成标量,该标量代表是源图像而不是 G G G生成的概率。

[医学影像的融合]

  作者将提出的方法应用于融合图像,例如MRI和PET图像融合。将以假彩色显示的PET图像视为彩色图像,并将DDcGAN用于融合高分辨率MRI图像和低分辨率强度的PET图像。MRI图像在以高空间分辨率捕获大脑,心脏和肺等器官的软组织结构细节方面表现出色。PET图像通过核医学成像获得,以提供功能和代谢信息,例如血流和供水活动。

  假设MRI图像的分辨率是PET图像的4×4倍。整个融合过程如上图所示。首先对具有RGB通道的多光谱输入PET图像进行变换到IHS,其中强度通道显示光谱的亮度,色相通道显示光谱波长的属性,饱和度通道显示光谱的纯度: ( I P E T V 1 P E T V 2 P E T ) = [ 1 / 3 1 / 3 1 / 3 1 / 6 1 / 6 − 2 / 6 1 / 2 − 1 / 2 0 ] ( R P E T G P E T B P E T ) \left(\begin{array}{c} \text {I}_{PET} \\ V 1 _{PET} \\ V 2 _{PET} \end{array}\right)=\left[\begin{array}{ccc} 1 / \sqrt{3} & 1 / \sqrt{3} & 1 / \sqrt{3} \\ 1 / \sqrt{6} & 1 / \sqrt{6} & -2 / \sqrt{6} \\ 1 / \sqrt{2} & -1 / \sqrt{2} & 0 \end{array}\right]\left(\begin{array}{c} R_{\mathrm{PET}} \\ G_{\mathrm{PET}} \\ B_{\mathrm{PET}} \end{array}\right) ⎝⎛​IPET​V1PET​V2PET​​⎠⎞​=⎣⎡​1/3 ​1/6 ​1/2 ​​1/3 ​1/6 ​−1/2 ​​1/3 ​−2/6 ​0​⎦⎤​⎝⎛​RPET​GPET​BPET​​⎠⎞​ H和S通道的分量可以用变量V1和V2表示,如下所示: H P E T = tan ⁡ − 1 ( V 1 P E T V 2 P E T ) S P E T = V 1 P E T 2 + V 2 P E T 2 \begin{array}{l} H_{\mathrm{PET}}=\tan ^{-1}\left(\frac{V 1_{\mathrm{PET}}}{V 2_{\mathrm{PET}}}\right) \\ S_{\mathrm{PET}}=\sqrt{V 1_{\mathrm{PET}}^{2}+V 2_{\mathrm{PET}}^{2}} \end{array} HPET​=tan−1(V2PET​V1PET​​)SPET​=V1PET2​+V2PET2​ ​​   融合过程是在PET图像和MRI图像的I通道的分量上产生的。也就是说,只有I通道才会进行融合。 I f u s e = G ( M , I P E T ) I_{fuse} = G(M,IPET) Ifuse​=G(M,IPET)   在训练过程中,判别器 D i D_i Di​被训练以区分 I f u s e I_{fuse} Ifuse​和 I P E T I_{PET} IPET​之间的差异,而判别器 D v D_v Dv​获得MRI图像而不是 G G G生成的概率。因此,损失函数可以表示为: L G = L G a d v + λ L c o n \mathcal L_G=\mathcal L_G^{adv}+\lambda\mathcal L_{con} LG​=LGadv​+λLcon​ 其中 L G a d v \mathcal L_G^{adv} LGadv​与 L c o n \mathcal L_{con} Lcon​定义为: L c o n = E [ log ⁡ ( 1 − D v ( G ( M , I P E T ) ) ) ] + E [ log ⁡ ( 1 − D i ( ψ G ( M , I P E T ) ) ) ] L c o n = E [ ∣ ∣ ψ G ( M , I P E T ) − I P E T ∣ ∣ F 2 + η ‖ G ( M , I P E T ) − M ‖ T V ] \mathcal L_{con}=\mathbb E[\log(1-D_v(G(M,I_{PET})))]+\mathbb E[\log(1-D_i(ψG(M,I_{PET})))]\\ \mathcal L_{con}=\mathbb E[||ψG(M,I_{PET})-I_{PET}||^2_F+η‖G(M,I_{PET})−M‖_{TV}] Lcon​=E[log(1−Dv​(G(M,IPET​)))]+E[log(1−Di​(ψG(M,IPET​)))]Lcon​=E[∣∣ψG(M,IPET​)−IPET​∣∣F2​+η‖G(M,IPET​)−M‖TV​] 以上是生成器的损失,判别器损失如下: L D v = E [ − log ⁡ D v ( M ) ] + E [ − log ⁡ ( 1 − D v ( G ( M , I P E T ) ) ) ] L D i = E [ − log ⁡ D i ( I P E T ) ] + E [ − log ⁡ ( 1 − D i ( ψ G ( M , I P E T ) ) ) ] \begin{aligned} \mathcal{L}_{D_{v}}=& \mathbb{E}\left[-\log D_{v}(M)\right] \\ &+\mathbb{E}\left[-\log \left(1-D_{v}\left(G\left(M, I_{\mathrm{PET}}\right)\right)\right)\right] \\ \mathcal{L}_{D_{i}}=& \mathbb{E}\left[-\log D_{i}\left(I_{\mathrm{PET}}\right)\right] \\ &+\mathbb{E}\left[-\log \left(1-D_{i}\left(\psi G\left(M, I_{\mathrm{PET}}\right)\right)\right)\right] \end{aligned} LDv​​=LDi​​=​E[−logDv​(M)]+E[−log(1−Dv​(G(M,IPET​)))]E[−logDi​(IPET​)]+E[−log(1−Di​(ψG(M,IPET​)))]​   为了保留PET图像中的色度信息,PET图像和融合图像的H和S通道的分量应尽可能相同。对于这两个通道,作者直接采用双三次插值作为上采样操作。上采样的分量表示为 H n e w H_{new} Hnew​和 S n e w S_{new} Snew​,其分辨率均为 H P E T H_{PET} HPET​和 S P E T S_{PET} SPET​的4×4倍,那么可以得到: V 1 n e w = S n e w s i n H n e w V 2 n e w = S n e w c o s H n e w V1_{new}=S_{new}sinH_{new}\\V2_{new}=S_{new}cosH_{new} V1new​=Snew​sinHnew​V2new​=Snew​cosHnew​   从IHS通道获得RGB通道中最终融合图像的逆变换可以表示为: ( R new  G new  B new  ) = [ 1 / 3 1 / 6 1 / 2 1 / 3 1 / 6 − 1 / 2 1 / 3 − 2 / 6 0 ] ( I fusc  V 1 new  V 2 new  ) \left(\begin{array}{l} R_{\text {new }} \\ G_{\text {new }} \\ B_{\text {new }} \end{array}\right)=\left[\begin{array}{ccc} 1 / \sqrt{3} & 1 / \sqrt{6} & 1 / \sqrt{2} \\ 1 / \sqrt{3} & 1 / \sqrt{6} & -1 / \sqrt{2} \\ 1 / \sqrt{3} & -2 / \sqrt{6} & 0 \end{array}\right]\left(\begin{array}{c} I_{\text {fusc }} \\ V 1_{\text {new }} \\ V 2_{\text {new }} \end{array}\right) ⎝⎛​Rnew ​Gnew ​Bnew ​​⎠⎞​=⎣⎡​1/3 ​1/3 ​1/3 ​​1/6 ​1/6 ​−2/6 ​​1/2 ​−1/2 ​0​⎦⎤​⎝⎛​Ifusc ​V1new ​V2new ​​⎠⎞​

[结果分析] [数据集以及参数设置]

  作者在公开可用的TNO数据集上验证了DDcGAN图像融合方法。从数据集中选择36对红外图像和可见图像,并将它们裁剪为27264个像素对,分辨率为84×84。当用于融合不同分辨率的图像时,作者将红外图像下采样到四分之一分辨率。因此,所有可见图像patch的尺寸为84×84,所有红外图像patch的尺寸为21×21。   DDcGAN在MRI和PET图像融合中的应用在哈佛医学院网站上进行了验证。原始PET和MRI图像的尺寸均为256×256。为了验证方法在融合不同分辨率的图像上的有效性,将PET图像的每个通道下采样到64×64的大小。下载了83对PET和MRI对,并将其裁剪为9984个补丁对作为训练集。 同样,所有MRI的patch的大小为84×84,所有PET图像的patch的大小为21×21。

[训练细节]

  模型中的参数设置为 λ = 0.5 λ= 0.5 λ=0.5和 η = 1.2 η=1.2 η=1.2。整个网络以 2 × 1 0 − 3 2×10^{-3} 2×10−3的学习率进行训练,每个周期后指数衰减至原始值的0.75,批次大小设置为24。详细的训练过程可以查看下表:

算法1 DDcGAN的训练过程参数说明: G 、 D v 、 D i \\G、D_v、D_i G、Dv​、Di​的训练步数分别表示为 I G 、 I D v 、 I D i I_G、I_{D_v}、I_{D_i} IG​、IDv​​、IDi​​。 I m a x \\I_{max} Imax​是训练的最大步数, I m a x = 20 I_{max}=20 Imax​=20。 L m a x 、 L m i n 、 L G m a x \\\mathcal L_{max}、\mathcal L_{min}、\mathcal L_{Gmax} Lmax​、Lmin​、LGmax​是停止训练的标志。 L m a x 、 L m i n \\\mathcal L_{max}、\mathcal L_{min} Lmax​、Lmin​是 G G G和 D D D之间的对抗损失, L G m a x \mathcal L_{Gmax} LGmax​是 G G G的总损失。 L m a x = 1.8 \\\mathcal L_{max}=1.8 Lmax​=1.8, L m i n = 1.2 \mathcal L_{min}=1.2 Lmin​=1.2, L G m a x = 0.8 × L G \mathcal L_{Gmax}=0.8×\mathcal L_G LGmax​=0.8×LG​初始化 D v D_v Dv​和 D i D_i Di​的参数 θ D v \theta_{D_v} θDv​​与 θ D i \theta_{D_i} θDi​​,初始化 G G G的参数 θ G \theta_{G} θG​;在每次训练迭代中: — 训练判别器 D V D_V DV​和 D i D_i Di​  ● m m m张红外图像 { v 1 , . . . , v m } \{v^1,...,v^m\} {v1,...,vm},以及对应的可见光图像 { i 1 , . . . , i m } \{i^1,...,i^m\} {i1,...,im}。  ●获得生成器生成的数据 { G ( v 1 , i 1 ) , . . . , G ( v 1 , i m ) } \{G(v^1,i^1),...,G(v^1,i^m)\} {G(v1,i1),...,G(v1,im)}。  ●通过SGD优化器最小化损失 L D v \mathcal L_{D_v} LDv​​更新判别器参数 θ D v \theta_{D_v} θDv​​;(步骤 1)  ●通过SGD优化器最小化损失 L D i \mathcal L_{D_i} LDi​​更新判别器参数 θ D i \theta_{D_i} θDi​​;(步骤 2)  ●当 L D v > L m a x \mathcal L_{D_v}>\mathcal L_{max} LDv​​>Lmax​并且 I D v < I m a x I_{D_v}\mathcal L_{max} LDi​​>Lmax​并且 I D i < I m a x I_{D_i}i1,...,im}。  ●获得生成器生成的数据 { G ( v 1 , i 1 ) , . . . , G ( v 1 , i m ) } \{G(v^1,i^1),...,G(v^1,i^m)\} {G(v1,i1),...,G(v1,im)}。  ●通过RMSProp优化器最小化损失 L G \mathcal L_{G} LG​更新生成器参数 θ G \theta_{G} θG​;(步骤 3)  ●当 L D v < L m i n \mathcal L_{D_v}


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有