该领域存在什么问题:
①适用于多种融合任务的ground truth和指标不存在
②对于不同场景图像,怎么保存图像的重要信息,从而把模型的泛化性做好
③聚合多个任务可以获得更好的融合结果
本文是怎么解决的:
①提出了一个通用的无监督模型来解决不同任务
②为了解决不同场景图片的信息,提出测量特征中的信息丰富程度来定义这些特征的相对重要性,来表明源图像与融合图像的相似关系,较高的相似性表示信息更多。
③提出了持续学习,确保学习新任务不会忘记旧任务的能力
④发布了一个数据集RoadScene
模型主要结构
特征提取器用于提取上述的浅层特征、深层特征,然后对这些特征进行信息度量,产生两个度量值,最后经过信息保护度处理得到信息保护度的值,这两个用于损失函数中,从而避免使用groundtruth(结合浅层信息和深层信息可以更有效表示人类视觉不容易感知的有效信息)。训练阶段信息保护度值用于定义损失函数,而DenseNet优化该损失函数,测试阶段只需要上面的DenseNet步骤
信息保护度:为了保留源图像中的信息,为信息保护度分配两个自适应权重,定义了融合图像与源图像之间相似性的权重,更高的权重代表更高的相似性,即源图像更多信息被保留。自适应权重由先前的信息度量计算得到,由于两个信息度量值之前差异较小,和两个本身值较大的信息度量相比可能太小,所以用一个常数c来对这两个值预先进行缩放获得更优权重分配,通过下式计算。这里用softmax将信息度量值映射到0到1之间,并保证两个权重值之和为1。得到的两个权重值直接用在损失函数中控制信息保护度。
损失函数:
第一项代表融合图像与源图像的相似性损失(SSIM),第二项是持续学习的损失(这个创新不是很重要)
代码复现:
笔者使用显卡为GTX 3090,配置环境为tensorflow1.14。程序能够运行,但是调用不了GPU,只能在CPU上运行
后续查找资料,发现30系显卡不能装tensorflow1.x,因为不支持CUDA10,CUDA10最多支持到GTX2080,换成低级一些的显卡(如1080TI,TITANX)后就可以成功调用GPU了
如果没有低级显卡,可以尝试在30系显卡上安装tensorflow1.15,环境得严格配准cuda11安装tensorflow-gpu1.15_tensorflow 1.15 在cuda11.0上运行-CSDN博客