python tensorflow1.14实现

卷积降噪自动编码器用于图像去噪,这个博客主要是借鉴了DnCNN用于图像去噪的方式,论文可以直接搜到(https://arxiv.org/pdf/1608.03981.pdf),也有很多人对于这个论文的中文讲解(https://www.jianshu.com/p/3687ffed4aa8,https://blog.csdn.net/weixin_42296533/article/details/85171512?ops_request_misc=&request_id=&biz_id=&utm_source=distribute.pc_search_result.none-task),有需要的同学可以去看看。

话不多说,直接说一下我的内容。DnCNN的结构简单来说是这样的:含噪图像被输入到设计的DCNN中,相应的输出是预测的噪声图像,然后用含噪图像减去预测的噪声图像,就能得到纯净的图像,如图1所示。

图1

DnCNN结合了ResNet的residual learning,不同的是DnCNN并非每隔两层就加一个shortcut connection,而是将网络的输出直接改成residual image(残差图片),设纯净图片为x,带噪音图片为y,假设y=x+v,则v是残差图片。即DnCNN的优化目标不是真实图片与网络输出之间的MSE(均方误差),而是真实残差图片与网络输出之间的MSE。(这段话参考的链接:https://www.jianshu.com/p/3687ffed4aa8,来源:简书,若原作者对于本博客的引用存在不妥,可联系我删除)。

上述方法作者将其命名为基于残差学习的深度卷积神经网络图像去噪,基于此思想,本文提出一个基于噪声学习的卷积降噪自动编码器的图像去噪(总感觉这个方式学习的是噪声分布,因此取这么个名字),主题结构和原作者的不一样,取消了BN,因为我实际编程时发现加了BN层之后,测试集的要比不好,其结构如图2所示,图3是普通的卷积降噪自动编码器。

图2 基于噪声学习的卷积降噪自动编码器

图3 普通的卷积降噪自动编码器

主要的框架为上图2,骨干网络是卷积降噪自动编码器,在MNIST手写字体数据下,进行训练,训练时是对数据中加[0 0.1]的正态随机噪声,即np.random.normal(0,0,1),得到的loss曲线如图4所示。

图4 loss曲线对比

从图4可以看出,改进后的卷积降噪自编码(图2结构)的loss要比一般的卷积降噪自编码(图3结构)下降的更快,而且最终的loss更低,这呼应了DnCNN的结果,说明了对噪声学习,要比直接输入纯净图像的效果好。下面是MNIST测试集部分效果,训练时是对数据中加[0 0.1]的正态随机噪声,测试时我们加入不同等级的看看效果。

       可以看出,这种方式基于噪声学习的卷积降噪自动编码器应该是能够学习到噪声分布,刚才说过训练时是对数据中加[0 0.1]的正态随机噪声,而测试时我们加入不同等级的噪声,可以看出,当噪声为[0 0.4]时,依旧能够较好的消噪,直到噪声增强到[0 0.4]时,效果才变得比较差。因为加入的正态分布的随机数,那么是不是可以认为此方法能够能够学习到这个噪声分布规律,因为已经学到了这种分布规律,所以即使噪声增强了,此方法依旧具有不错的泛化性能呢?后面的工作可以有兴趣的同学接着研究。

接着我们再来看看,训练时是对数据中加[0 0.1]的正态随机噪声,而测试时我们加入其他类型的噪声,比如均匀分布np.random.uniform,来看看效果

从上面结果可以看出,采用正态分布随机数训练,测试时添加均匀分布随机数,效果依旧还可以,能够清晰的分辨出降噪前后的数据。

为了对比,我们对图3的一般的卷积降噪自编码,进行上述操作, 首先是正态随机数训练,正态随机数测试。

然后是正态随机数训练,均匀分布随机数测试

从上面结果可以看出,一般的卷积降噪自编码的效果较差,当采用正态分布随机数测试时,在[0 0.2]的时候就出现较大的失真。而泛化到均匀分布随机数测试时,在[0 0.1]的时候就出现了较大的失真,随着噪声程度的增加,失真更为严重。因此一般的卷积降噪自编码泛化性能相比基于噪声学习的卷积降噪自编码效果差,泛化能力低。

上述结果表明了本博客所提方法的有效性。

基于噪声学习的卷积降噪自动编码器用于图像去噪相关推荐

  1. 卷积神经网络训练准确率突然下降_基于联邦学习和卷积神经网络的入侵检测方法...

    王蓉1,马春光2,武朋2 1. 哈尔滨工程大学计算机科学与技术学院,哈尔滨 150001:2. 山东科技大学计算机科学与工程学院,青岛 266590 doi :10.3969/j.issn.1671- ...

  2. 【城市污水处理过程中典型异常工况智能识别】(基于迁移学习,拓扑结构卷积神经网络的污水异常工况识别)

    基于迁移学习拓扑结构卷积神经网络的污水异常工况识别 **摘 要:针对城市污水处理过程的异常工况识别问题,本文提出了基于图像纹理性分析的工况识别方法.首先总结了几种典型的异常工况的特点,并且分析了卷积神 ...

  3. 综述:基于深度学习的情感分析

    近年来,深度学习有了突破性发展,NLP 领域里的情感分析任务逐渐引入了这种方法,并形成了很多业内最佳结果.本文中,来自领英与伊利诺伊大学芝加哥分校的研究人员对基于深度学习的情感分析研究进行了详细论述. ...

  4. 论题:基于深度学习的图像识别系统

    本文为论题:基于深度学习的图像识别系统 的编写思路. 目录 摘要: 引言 2.深度学习技术及卷积神经网络原理 3.图像识别系统设计 4.实验评估与改进策略 5.改进策略及未来发展趋势 6.结论 摘要: ...

  5. 基于深度学习的服装图像分类与检索

    摘要      面对海量的服装图像数据,如果使用人工进行服装图像的语义属性标注以用于分类和检索,则需要花费大量的人力和时间,而且语义属性并不能完全表达服装图像中的丰富信息,造成检索效果不佳.     ...

  6. DeepIPs:使用基于深度学习的方法对新型冠状病毒感染的磷酸化位点进行综合评估和计算识别

    期刊:Briefings in Bioinformatics 论文出处:DeepIPs: comprehensive assessment and computational identificati ...

  7. 基于深度学习的瓶子检测软件(UI界面+YOLOv5+训练数据集)

    摘要:基于深度学习的瓶子检测软件用于自动化瓶子检测与识别,对于各种场景下的塑料瓶.玻璃瓶等进行检测并计数,辅助计算机瓶子生产回收等工序.本文详细介绍深度学习的瓶子检测软件,在介绍算法原理的同时,给出P ...

  8. 基于深度学习的泰坦尼克旅客生存预测

    基于深度学习的泰坦尼克旅客生存预测 摘要:近年来,随着深度学习的迅速发展和崛起,尤其在图像分类方向取得了巨大的成就.本文实验基于Windows10系统,仿真软件用的是Anaconda下基于python ...

  9. 基于深度学习的车型识别系统(Python+清新界面+数据集)

    摘要:基于深度学习的车型识别系统用于识别不同类型的车辆,应用YOLO V5算法根据不同尺寸大小区分和检测车辆,并统计各类型数量以辅助智能交通管理.本文详细介绍车型识别系统,在介绍算法原理的同时,给出P ...

最新文章

  1. android layout analyze
  2. CVPR‘22 最新106篇论文分方向整理|包含目标检测、动作识别、图像处理等32个方向
  3. MYSQL5.5 YUM更新安装
  4. 人工智能工程师学习路线及具备的5项基本技能
  5. matlab中 三种方法计算 Ax b,在MATLAB中,方程Ax=B的解可以用哪个命令求得? matlab 求助 解方程组...
  6. boost::fusion::pop_back用法的测试程序
  7. gpu处理信号_GPU中的并行运算,加速你的Matlab程序
  8. pstate0 vid数值意义_天体运动的简单数值计算
  9. 论文浅尝 - ICLR2020 | 知道什么、如何以及为什么:基于方面的情感分析的近乎完整的解决方案...
  10. HBase中数据的多版本特性潜在的意外
  11. Top 10 盘点:2019 Java 开发者必学的测试框架、工具和库!
  12. 代码手写UI,xib和StoryBoard间的博弈,以及Interface Builder的一些小技巧
  13. 什么是损失函数与平均误差算法分析
  14. 栈的应用 算术表达式转换为后缀表达式
  15. 【直播预告】云栖社区特邀专家蒋泽银:Jpom一款低侵入式Java运维、监控软件...
  16. 130、总结:华为、H3C、锐捷三家交换机配置命令详解
  17. SolidWorks用鼠标中键控制模型的旋转、缩放和平移
  18. 804计算机考研,北京邮电大学804信号系统考研经验
  19. J_101.Java工程Properties配置文件注释中文,会自动转换为其他编码方式问题解决
  20. 保持激昂斗志的18种有效方法

热门文章

  1. 签offer和签三方协议
  2. GBase 8s CREATE SECURITY LABEL COMPONENT 语句
  3. 统计学习方法读书笔记(六)-逻辑斯蒂回归与最大熵模型(迭代尺度法(IIS))
  4. 【VUE学习】(一)IDEA:Vue的安装和使用(详细过程)
  5. java除余_Java中的相除(/)和取余(%)的实现方法
  6. linux文本替换效率,提高UNIX/Linux工作效率的十个小贴士
  7. 京东数科与京东云联袂发布智臻链“云”
  8. Python字典大总结
  9. thinkphp中提示Warning:Invalid argument supplied for foreach()的解决方法
  10. 01-基础篇1:正念是什么?