目录
1.论文概述
2.效果展示
3.网络内容介绍
3.1作者的贡献
3.2 网络数据
3.3 网络结构
3.4 损失函数
3.4.1颜色损失。
3.4.2纹理损失textures loss。
3.4.3内容损失 content loss。
3.4.4梯度损失 total variation loss。
这是一篇关于图像增强的神经网络论文,将手机照片作为输入,将DSLR相机拍出的照片作为target,通过网络使其学习到一个映射函数,希望手机能拍出相机照片的效果。论文地址,基于TensorFlow的github代码。
上图中右边是原始图,左边是增强后的图,可以看出效果还是显著的。言归正传,下面一一介绍其细节。
作者为了得到图像对也就是质量差的手机照片与高质量的DSLR图像,作者同时将三种不同的手机与相机进行同时拍摄。所以的照片均在白天拍摄,虽然同时同地拍摄,但仍然难保证图像对是完美的一模一样对齐。为了得到对齐的图像对,采用了SIFT匹配算法。而网络的输入是采用分辨率是100x100的三通道patch块,作者提出大的图像块对结果也没多大的提升,而且小的patch还可以减少计算资源。最终每个pathch作为网络的输入以及之前通过的匹配算法最终使得每个图像对的偏移像素不超过5个。
可以看出整个网络的框架是个基于GAN对抗网络的图像增强。先看图像增强网络也就是GAN的生成网络,将三通道的图像patch作为输入,经过4个残差block后,每个残差block里面有两个卷积层。经过残差block后再经过了三个卷积层,最后一个卷积层的特征图是三通道的。整个增强网络一共有12层。同增强网络得到的enhanced image可以计算出两种损失函数,color loss和tv loss.其中color loss还需要target图像与enhanced image一起作为参考计算得到。target这里就是DSLR的图像patch。
根据作者的代码里下面的判别网络的输入是单通道的灰度图。但是此单通道的灰度图是上面增强网络生成的图像与target图像一起融合生成的,至于融合的方式各有不同,作者是采用权重方式,还可以通过将两图进行concatate起来,多通道输入。下面的判别网络,有5层卷积层,一个全连接,全连接的神经元是1024,并最后生成2维的概率向量。[batchsize,2].此时就相当于二分类问题了,由于判别网络有target作为监督,其原型就是CGAN了。得到二分类的概率后由交叉熵可以得到对抗网络的损失,此损失用于对抗网络的反向传播求导。刚才得到的交叉熵损失同时可以作为textures loss。
最下面还可以看到还有一个预训练的VGG网络,此网络用于特征提取,分别将增强网络产生的图像和target分别输入,此网络用于得到content loss,其原则就是,如果enhenced image与target很接近的话,那么都通过VGG网络提取特征后两者所提取的特征也就是很接近的,此次用欧式距离来评价content loss。至此几个损失函数都介绍完了。
不过最终的增强网络的总损失为contentLoss colorLoss,tvLoss,texturesLoss相加和。将此损失作为增强网络的损失进行梯度下降方向传播。下面再一一介绍其各种损失函数。
颜色损失,分别将增强网络得到的enhenced image与target先进行高斯模糊,也就是去掉部分的边缘细节纹理部分,剩下的能作为比较的就是对比度,颜色了。采用高斯核处理后度量颜色损失的原因是人的视觉对颜色变化不是特别敏感,颜色在局部比较平滑。所以模糊核消除了纹理部分,内容部分,留下color作为评价也就是color loss。同时color loss(加了个模糊核)也有个好处,就是其能够保证图像的局部平移不变性。以下图为例
上图横坐标是图像的像素偏移量,纵坐标是其对应的误差,可以明显的看出在有像素偏移个数大于5时,colorloss明显的比mseloss要小,一般图像的评价用mse对每个像素进行评价,此时用colorloss看出,即使图像由像素的偏移,colorloss作为损失后对模型更鲁棒,表现出来的就是其误差够小,至少是比用Mse评价的标准要小。
作者在对抗网络里面没有采用预定义的损失函数,而选择一种比较好的损失并且还可以用来评价图像的纹理信息。损失函数用交叉熵函数。作者在对抗网络里进行评价纹理损失,将灰度图作为输入,其原因是图像的纹理信息与灰度空间分布有关。具体可以参考纹理与灰度的关系。通过最终对抗网络最终达到平衡以间接的保证增强网络的纹理信息。
分别将增强网络的图像与target图像均输入到VGG网络中用于提取特征,其原理是如果增强网络学习到的与target图像很像,则经过VGG网络提取特征后两者特征也很接近。内容损失是基于VGG网络提取特征进行评价。与直接进行像素一对一进行评价其内容外,可以选择一个更好的损失函数可以对图像的多方面比如纹理啊,图像的感知质量等进行特征的表达。能够尽量的保证图像的语义信息,而仅仅只考虑图像的像素级别一一对有时并不能对图像内容进行量化。作者通过VGG网络提取特征后进行欧式距离评价。
梯度损失也就是整体上对图像进行微小的平滑,同时有效的去除椒盐噪声。
作者通过增强后的图像显示,部分图像存在一些不可避免的缺陷。其中两个典型的缺陷出现在增强后的图像上。
尽管这些缺陷经常引起看起来还算比较合理的视觉效果,但有时候会导致图像内容的改变看起来像是人工的伪点。
另外一个显著的缺陷是,由于GAN的自然特点,当源图像有噪声时,增强后的图像中噪声将会被放大.(如下图 第二张和第三张图像),不过一般手机拍照出的低质量图像也很少有噪声。
最后,由于此算法在源图像和目标图像存在强的对应匹配关系,即需要强监督学习,这对于其他的相机来说是比较繁琐的,即需要一种弱监督的方式,同样,他们课题组提出了另外一篇paperWESPE: Weakly Supervised Photo Enhancer for Digital Cameras,期待下一期对此paper的讲解。