Paper | Dynamic Residual Dense Network for Image Denoising
发表于2019 Sensors。这篇文章的思想可能来源于2018 ECCV的SkipNet[11]。
没开源,和SkipNet基本一致,没什么创新点。
1. 故事
本文的改造对象是RDN。RDN由多个RDB组成,用于一般的图像恢复任务。但是,RDN只能用于单一水平的噪声【设计初衷是非盲的】。作者希望在RDN的基础上实现两个目标:
能够盲去噪。
能够根据输入噪声的程度,动态调整RDB数量(同一RDN种跳过的RDB数量)。
作者声称,DRDN(dynamic residual dense network)能够超越RDN性能,同时计算成本下降40-50%。在盲去噪任务上,DRDN在真实噪声基准上超越了CBDNet 1.34dB。
2. 动机
作者首先探究了RDN为什么能取得如此好的性能。有以下几点关键原因:
RDB结合了residual block和dense block。前者让特征在RDB之间具有连续记忆性 并且 让深度网络训练更简单,后者可以让多尺度特征得以利用【可能是同时利用low-level、mid-level和high-level特征的意思】。全局还有一个短连接。
RDN会融合来自所有RDB的信息(global feature fusion)。这是一种深监督,虽然其后跟着一个\(1 \times 1\)卷积。
作者考虑了相似的ResNet。在[7,8]中指出,一些residual block对最终结果的贡献微乎其微。因此,RDN中的RDB同理。于是作者对所有RDB进行了可视化(所有通道求均值):
作者发现,红框圈出的特征图是非常相似的。因此,我们完全可以跳过一些RDB而不牺牲过多性能。
3. 做法
方法很简单:作者用一个RNN捕捉每一个RDB的信息,然后作为每个RDB的gate module,来决策 跳过 或 正常推理。如果预测的“重要性”低于给定阈值,那么就跳过该RDB。
如图:
大体上仍是一个RDN,但是其中的RDB换成了DRDB。
特征提取采用2层CNN,都有全局短连接,连接到后面的2层CNN重建。
DRDB参与深监督,即\(1 \times 1\)卷积融合。
3.1 DRDB
DRDB和RDB也是一致的,唯一不同的就是增加了gate模块。gate模块采用LSTM,其结构如图,很简单。
注意,在反向传播时,我们采用sigmoid函数(软判决),而在前向传播时,我们就采用硬判决(要么短连接要么通过)。反向传播不能使用硬判决,因为开关不可导。
在测试时,我们可以调整阈值跳过t,来交互式地调整去噪强度。该 阈值t 和 跳过的DRDB比例\(\lambda\) 大致有个正相关。作者用了一个线性方程来近似表征这一关系(式11),从而通过调整t来调整\(\lambda\)。
3.2 训练方法
分三步。但每一步的损失函数是相同的:
前者是L1损失,后者是所有门的输出概率(重要性)(\(S\)是sigmoid函数,\(v_d\)是第\(d\)个DRDB的FC层输出的向量)。我们希望参与门尽可能少,所以惩罚它。
我们首先要让整体网络和DRDB们收敛。此时让门函数恒输出1训练。同时,我们让系数\(\alpha = 0\)。
现在,我们仍然不惩罚重要性(\(\alpha = 0\)),但是让门函数自由输出。此时可能只有很少一部分DRDB会被跳过。
最后,我们设置\(\alpha = 1e-4\),开始惩罚DRDB的保留数量。此时会有更多的DRDB被跳过。
4. 实验
实验设置了20个DRDB,每个DRDB内部有6层卷积。其他设置略。
实验主要考量的是PSNR,SSIM和FLOPs。
虽然PSNR和SSIM可能不如改进的RDN(RDN+),但FLOPs远远小。作者解释:SSID中的数据光照强度差距很大,所以DRDN的动态性能发挥得淋漓尽致。
我们再看跳过率。
如图,越是后面的block,越频繁被跳过。作者解释是因为深监督的使用,导致前面的block会影响后面所有的block。
此外,作者还在另一个真实噪声数据集上进行了测试。该数据库给了噪声方差,因此评测时一些对比算法在非盲模型下进行,性能会更好。
其他数据库的我们就不看了。
我们最后看一下阈值t的选取对去噪强度的影响。如图:
跳过率过高或过低都不好。跳太多,图像噪声大;跳太少,图像模糊。其中的红框是DRDN自己选择的结果,而绿框是作者主观挑选的最佳结果。可见,二者相近。
作者进一步计算了跳过率与PSNR、SSIM的关系:
可见二者是非对称的。
【这里图或实验有问题。图中显示,全部跳过(不增强)时的PSNR,比完整增强(ratio=0)时的PSNR还高???再加上该算法未开源,使得本文具有了疑点】
Paper | Dynamic Residual Dense Network for Image Denoising的更多相关文章
- Paper | Residual Dense Network for Image Super-Resolution
目录 Residual dense block & network 和DenseNet的不同 摘要和结论 发表在2018年CVPR. 摘要和结论都在强调方法的优势.我们还是先从RDN的结构看起 ...
- Paper | Residual Attention Network for Image Classification
目录 1. 相关工作 2. Residual Attention Network 2.1 Attention残差学习 2.2 自上而下和自下而上 2.3 正则化Attention 最近看了些关于att ...
- Residual Attention Network for Image Classification(CVPR 2017)详解
一.Residual Attention Network 简介 这是CVPR2017的一篇paper,是商汤.清华.香港中文和北邮合作的文章.它在图像分类问题上,首次成功将极深卷积神经网络与人类视觉注 ...
- Hinton's paper Dynamic Routing Between Capsules 的 Tensorflow , Keras ,Pytorch实现
Tensorflow 实现 A Tensorflow implementation of CapsNet(Capsules Net) in Hinton's paper Dynamic Routing ...
- 【Paper】Deep & Cross Network for Ad Click Predictions
目录 背景 相关工作 主要贡献 核心思想 Embedding和Stacking层 交叉网络(Cross Network) 深度网络(Deep Network) 组合层(Combination Laye ...
- Paper | Deep Residual Learning for Image Recognition
目录 1. 故事 2. 残差学习网络 2.1 残差块 2.2 ResNet 2.3 细节 3. 实验 3.1 短连接网络与plain网络 3.2 Projection解决短连接维度不匹配问题 3.3 ...
- 读paper:Deep Convolutional Neural Network using Triplets of Faces, Deep Ensemble, andScore-level Fusion for Face Recognition
今天给大家带来一篇来自CVPR 2017关于人脸识别的文章. 文章题目:Deep Convolutional Neural Network using Triplets of Faces, Deep ...
- 【超分辨率】—(ESRGAN)增强型超分辨率生成对抗网络-解读与实现
一.文献解读 我们知道GAN 在图像修复时更容易得到符合视觉上效果更好的图像,今天要介绍的这篇文章——ESRGAN: Enhanced Super-Resolution Generative Adve ...
- DIN(Deep Interest Network of CTR) [Paper笔记]
背景 经典MLP不能充分利用结构化数据,本文提出的DIN可以(1)使用兴趣分布代表用户多样化的兴趣(不同用户对不同商品有兴趣)(2)与attention机制一样,根据ad局部激活用户兴趣相关的兴趣(用 ...
随机推荐
- [java 基础]反射入门
原文 概况 使用java的反射,可以让我们检查(或者修改)类,接口,字段,方法的特性.当你在编译期不知道他们的名字的时候非常有用. 除此之外,可以使用反射来创建实例,调用方法或者get/set 字段值 ...
- HTML+css基础 标签
图片标签:<img src="./imgs/1.jpg" alt=“一种对图片解释说明的” /> HTML 超文本标记语言 英文名称: hyper text ...
- keras RAdam优化器使用教程, keras加载模型包含自定义优化器报错 如何解决?
本文首发于个人博客https://kezunlin.me/post/c691f02b/,欢迎阅读最新内容! python keras RAdam tutorial and load custom op ...
- redis集群之Cluster
RedisCluster 是 Redis 的亲儿子,它是 Redis 作者自己提供的 Redis 集群化方案. 相对于 Codis 的不同,它是去中心化的,如图所示,该集群有三个 Redis 节点组成 ...
- 一文告诉你,Kafka在性能优化方面做了哪些举措!
很多粉丝私信问我Kafka在性能优化方面做了哪些举措,对于相关问题的答案其实我早就写过了,就是没有系统的整理一篇,最近思考着花点时间来整理一下,下次再有粉丝问我相关的问题我就可以潇洒的甩个链接了.这个 ...
- 微信小程序反编译
看到一个有意思的小程序,想了解是如何实现的,于是找了反编译方法. 安装adb驱动 百度安装adb驱动, 设计设置开发者模式,连接电脑. -> % adb devices List of devi ...
- C#如何用IL和Emit类通过Calli来实现实例函数与静态函数的调用
一. 介绍 最近充能看书,在书上看到函数调用可以 " 通过 ldftn 获得函数指针,然后使用 calli 指令 " 来进行调用,并说这种行为 " 类似 C 的函数指针, ...
- Taro多端自定义导航栏Navbar+Tabbar实例
运用Taro实现多端导航栏/tabbar实例 (H5 + 小程序 + React Native) 最近一直在捣鼓taro开发,虽说官网介绍支持编译到多端,但是网上大多数实例都是H5.小程序,很少有支持 ...
- Python工具库分享
漏洞及渗透练习平台: WebGoat漏洞练习平台: https://github.com/WebGoat/WebGoat webgoat-legacy漏洞练习平台: https://github.co ...
- 靠谱的CSS样式
0. 引言 记录一些用到的CSS样式,只要可以使用CSS3的地方都可以使用. 1. CSS样式 flex布局:引用 阮一峰的网络日志http://www.ruanyifeng.com/blog/201 ...