热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【论文详解】DPED:DSLRQualityPhotosonMobileDeviceswithDeepConvolutionalNetworks

目录1.论文概述2.效果展示3.网络内容介绍3.1作者的贡献3.2网络数据3.3网络结构3.4损失函数3.4.1颜色损失。3.4.2纹理损失textureslos

目录

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。



1.论文概述

这是一篇关于图像增强的神经网络论文,将手机照片作为输入,将DSLR相机拍出的照片作为target,通过网络使其学习到一个映射函数,希望手机能拍出相机照片的效果。论文地址,基于TensorFlow的github代码。

2.效果展示

上图中右边是原始图,左边是增强后的图,可以看出效果还是显著的。言归正传,下面一一介绍其细节。

3.网络内容介绍

3.1作者的贡献


  • 提出了一个新颖的端对端的方式,使其学习到从手机到DSLR相机的一种特征映射。
  • 作者贡献了大量的数据集,有6k张使用DSLR相机采集的照片,以及三种不同的手机照片。
  • 提出了多种loss函数融合,有content loss,textures loss,color loss,tv loss,有效的对图像质量进行评估。这里多种loss函数相当于实现了不同的图像增强(纹理增强,颜色增强,内容增强,细节增强)
  • 实验客观的评估了其算法,表明算法能够使手机照片生成DSLR相机质量的图像

3.2 网络数据

作者为了得到图像对也就是质量差的手机照片与高质量的DSLR图像,作者同时将三种不同的手机与相机进行同时拍摄。所以的照片均在白天拍摄,虽然同时同地拍摄,但仍然难保证图像对是完美的一模一样对齐。为了得到对齐的图像对,采用了SIFT匹配算法。而网络的输入是采用分辨率是100x100的三通道patch块,作者提出大的图像块对结果也没多大的提升,而且小的patch还可以减少计算资源。最终每个pathch作为网络的输入以及之前通过的匹配算法最终使得每个图像对的偏移像素不超过5个。

3.3 网络结构

可以看出整个网络的框架是个基于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相加和。将此损失作为增强网络的损失进行梯度下降方向传播。下面再一一介绍其各种损失函数。

3.4 损失函数


3.4.1颜色损失。


 

颜色损失,分别将增强网络得到的enhenced image与target先进行高斯模糊,也就是去掉部分的边缘细节纹理部分,剩下的能作为比较的就是对比度,颜色了。采用高斯核处理后度量颜色损失的原因是人的视觉对颜色变化不是特别敏感,颜色在局部比较平滑。所以模糊核消除了纹理部分,内容部分,留下color作为评价也就是color loss。同时color loss(加了个模糊核)也有个好处,就是其能够保证图像的局部平移不变性。以下图为例

上图横坐标是图像的像素偏移量,纵坐标是其对应的误差,可以明显的看出在有像素偏移个数大于5时,colorloss明显的比mseloss要小,一般图像的评价用mse对每个像素进行评价,此时用colorloss看出,即使图像由像素的偏移,colorloss作为损失后对模型更鲁棒,表现出来的就是其误差够小,至少是比用Mse评价的标准要小。

3.4.2纹理损失textures loss。

作者在对抗网络里面没有采用预定义的损失函数,而选择一种比较好的损失并且还可以用来评价图像的纹理信息。损失函数用交叉熵函数。作者在对抗网络里进行评价纹理损失,将灰度图作为输入,其原因是图像的纹理信息与灰度空间分布有关。具体可以参考纹理与灰度的关系。通过最终对抗网络最终达到平衡以间接的保证增强网络的纹理信息。

 

3.4.3内容损失 content loss。 

   

分别将增强网络的图像与target图像均输入到VGG网络中用于提取特征,其原理是如果增强网络学习到的与target图像很像,则经过VGG网络提取特征后两者特征也很接近。内容损失是基于VGG网络提取特征进行评价。与直接进行像素一对一进行评价其内容外,可以选择一个更好的损失函数可以对图像的多方面比如纹理啊,图像的感知质量等进行特征的表达。能够尽量的保证图像的语义信息,而仅仅只考虑图像的像素级别一一对有时并不能对图像内容进行量化。作者通过VGG网络提取特征后进行欧式距离评价。

3.4.4梯度损失 total variation loss。


 

    梯度损失也就是整体上对图像进行微小的平滑,同时有效的去除椒盐噪声。

  • 总损失 =weights(contenloss +texturesloss +colorloss+tvloss ),总损失为以上各损失的加权和,将此总损失作为增强网络的损失进行约束增强网络,使其产生一种很好的由手机到DSLR相机的映射。

4. 作者论文网络还存在的缺陷

    作者通过增强后的图像显示,部分图像存在一些不可避免的缺陷。其中两个典型的缺陷出现在增强后的图像上。 

  • 颜色偏差,如下图第一张图片(第一张为原图像,第二行为增强后的图像)
  • 对比度提高(下图第二张图片)

   尽管这些缺陷经常引起看起来还算比较合理的视觉效果,但有时候会导致图像内容的改变看起来像是人工的伪点。

  另外一个显著的缺陷是,由于GAN的自然特点,当源图像有噪声时,增强后的图像中噪声将会被放大.(如下图 第二张和第三张图像),不过一般手机拍照出的低质量图像也很少有噪声。

   最后,由于此算法在源图像和目标图像存在强的对应匹配关系,即需要强监督学习,这对于其他的相机来说是比较繁琐的,即需要一种弱监督的方式,同样,他们课题组提出了另外一篇paperWESPE: Weakly Supervised Photo Enhancer for Digital Cameras,期待下一期对此paper的讲解。

 


推荐阅读
  • 人工智能推理能力与假设检验
    最近Google的Deepmind开始研究如何让AI做数学题。这个问题的提出非常有启发,逻辑推理,发现新知识的能力应该是强人工智能出现自我意识之前最需要发展的能力。深度学习目前可以 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • cs231n Lecture 3 线性分类笔记(一)
    内容列表线性分类器简介线性评分函数阐明线性分类器损失函数多类SVMSoftmax分类器SVM和Softmax的比较基于Web的可交互线性分类器原型小结注:中文翻译 ... [详细]
  • 【论文】ICLR 2020 九篇满分论文!!!
    点击上方,选择星标或置顶,每天给你送干货!阅读大概需要11分钟跟随小博主,每天进步一丢丢来自:深度学习技术前沿 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 也就是|小窗_卷积的特征提取与参数计算
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了卷积的特征提取与参数计算相关的知识,希望对你有一定的参考价值。Dense和Conv2D根本区别在于,Den ... [详细]
  • 标题: ... [详细]
  • 本文介绍了在Python张量流中使用make_merged_spec()方法合并设备规格对象的方法和语法,以及参数和返回值的说明,并提供了一个示例代码。 ... [详细]
  • Learning to Paint with Model-based Deep Reinforcement Learning
    本文介绍了一种基于模型的深度强化学习方法,通过结合神经渲染器,教机器像人类画家一样进行绘画。该方法能够生成笔画的坐标点、半径、透明度、颜色值等,以生成类似于给定目标图像的绘画。文章还讨论了该方法面临的挑战,包括绘制纹理丰富的图像等。通过对比实验的结果,作者证明了基于模型的深度强化学习方法相对于基于模型的DDPG和模型无关的DDPG方法的优势。该研究对于深度强化学习在绘画领域的应用具有重要意义。 ... [详细]
  • Opencv提供了几种分类器,例程里通过字符识别来进行说明的1、支持向量机(SVM):给定训练样本,支持向量机建立一个超平面作为决策平面,使得正例和反例之间的隔离边缘被最大化。函数原型:训练原型cv ... [详细]
author-avatar
突击手丶罪域
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有