前几篇文章给大家分享了各种基于小波变换方法的图像融合例子,今天我将分享如何使用生成对抗网络来进行图像融合。
一、FusionGAN网络结构
前面文章我已经分享过很多图像分割模型,例如UNet,VNet及其改进版本,这里我就不多说了,感兴趣的可以自己去阅读我的相关文章和GitHub项目。我在这里直接给出FusionGAN的网络结构,如下图所示。简单说明一下,FusionGAN是由生成网络和判别网络构成,生成网络采用的是VNet模型,判别网络采用的是常规分类网络,生成网络的输入是两幅多模态的原始图像,两幅原始图像经过VNet网络产生生成融合图像结果,然后将金标准融合图像和生成网络的融合图像一起输入到分类结构的判别网络中去进行真假判别。
二、用tensorflow实现FusionGAN
我已经用tensorflow实现了初始版本的GAN和Wasserstein GAN(这是GAN的改进版本,初始版本GAN训练的时候非常不稳定很难训练,WGAN训练的时候比较稳定,很快就能收敛看到以假乱真的生成图像)和VNet模型。只需将我在GitHub上的WGAN中的生成模型改成VNet模型就可以了,其它无需改动。
三、训练过程结果
FusionGAN的训练数据采用的是同一场景下的红外图像和自然图像,而红外图像与自然图像的融合图像是采用前面基于小波变换的自适应脉冲耦合神经网络方法来生成的。这里给出部分训练过程结果。
首先是生成网络损失函数和判别网络损失函数曲线训练结果。
然后是训练过程中生成的融合图像与金标准融合图像如下所示,可以看到随着不断训练生成的融合图像与金标准融合图像越来越相似。
四、生成融合图像效果
最后用训练好的FusionGAN模型来对输入红外图像和自然图像进行融合,并与基于小波变换的脉冲耦合神经网络融合结果进行比对,结果还是比较接近的,如下图所示。