发表于2019 Sensors。这篇文章的思想可能来源于2018 ECCV的SkipNet[11]。

没开源,和SkipNet基本一致,没什么创新点。

1. 故事

本文的改造对象是RDN。RDN由多个RDB组成,用于一般的图像恢复任务。但是,RDN只能用于单一水平的噪声【设计初衷是非盲的】。作者希望在RDN的基础上实现两个目标:

  1. 能够盲去噪。

  2. 能够根据输入噪声的程度,动态调整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层输出的向量)。我们希望参与门尽可能少,所以惩罚它。

  1. 我们首先要让整体网络和DRDB们收敛。此时让门函数恒输出1训练。同时,我们让系数\(\alpha = 0\)。

  2. 现在,我们仍然不惩罚重要性(\(\alpha = 0\)),但是让门函数自由输出。此时可能只有很少一部分DRDB会被跳过。

  3. 最后,我们设置\(\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的更多相关文章

  1. Paper | Residual Dense Network for Image Super-Resolution

    目录 Residual dense block & network 和DenseNet的不同 摘要和结论 发表在2018年CVPR. 摘要和结论都在强调方法的优势.我们还是先从RDN的结构看起 ...

  2. Paper | Residual Attention Network for Image Classification

    目录 1. 相关工作 2. Residual Attention Network 2.1 Attention残差学习 2.2 自上而下和自下而上 2.3 正则化Attention 最近看了些关于att ...

  3. Residual Attention Network for Image Classification(CVPR 2017)详解

    一.Residual Attention Network 简介 这是CVPR2017的一篇paper,是商汤.清华.香港中文和北邮合作的文章.它在图像分类问题上,首次成功将极深卷积神经网络与人类视觉注 ...

  4. Hinton's paper Dynamic Routing Between Capsules 的 Tensorflow , Keras ,Pytorch实现

    Tensorflow 实现 A Tensorflow implementation of CapsNet(Capsules Net) in Hinton's paper Dynamic Routing ...

  5. 【Paper】Deep & Cross Network for Ad Click Predictions

    目录 背景 相关工作 主要贡献 核心思想 Embedding和Stacking层 交叉网络(Cross Network) 深度网络(Deep Network) 组合层(Combination Laye ...

  6. 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 ...

  7. 读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 ...

  8. 【超分辨率】—(ESRGAN)增强型超分辨率生成对抗网络-解读与实现

    一.文献解读 我们知道GAN 在图像修复时更容易得到符合视觉上效果更好的图像,今天要介绍的这篇文章——ESRGAN: Enhanced Super-Resolution Generative Adve ...

  9. DIN(Deep Interest Network of CTR) [Paper笔记]

    背景 经典MLP不能充分利用结构化数据,本文提出的DIN可以(1)使用兴趣分布代表用户多样化的兴趣(不同用户对不同商品有兴趣)(2)与attention机制一样,根据ad局部激活用户兴趣相关的兴趣(用 ...

随机推荐

  1. iptraf: command not found

    在Linux上安装iptraf,然后执行命令时报错,iptraf: command not found 解决办法:iptraf-ng包的二进制文件是iptraf-ng.使用命令iptraf-ng即可 ...

  2. 【洛谷5072】[Ynoi2015] 盼君勿忘(莫队)

    点此看题面 大致题意: 一个序列,每次询问一个区间\([l,r]\)并给出一个模数\(p\),求模\(p\)意义下区间\([l,r]\)内所有子序列去重后值的和. 题意转化 原来的题意看起来似乎很棘手 ...

  3. go get 获取被墙依赖包解决方法

    前言: 随着 go1.11 的发布,go 官方引入了 go module 来解决依赖管理问题,go module 被集成到原生的 go cmd 中,但是如果你的代码库在$GOPATH中,go1.11 ...

  4. Python连载47-json文件、正则表达式初步

    一.在线工具 1.https://www.sojson.com/ 2.http://www.w3cshool.com.cn/json/ 3.http://www.runoob.com/json/jso ...

  5. Mybatis框架模糊查询+多条件查询

    一.ISmbmsUserDao层 //根据姓名模糊查询 public List<Smbms> getUser(); //多条件查询 public List<Smbms> get ...

  6. find与rm实现查找并删除目录或文件

    linux 下用find命令查找文件,rm命令删除文件. 删除指定目录下指定文件find 要查找的目录名 -name .svn |xargs rm -rf 删除指定名称的文件或文件夹: find -t ...

  7. 用Python做个海量小姐姐素描图

    素描作为一种近乎完美的表现手法有其独特的魅力,随着数字技术的发展,素描早已不再是专业绘画师的专利,今天这篇文章就来讲一讲如何使用python批量获取小姐姐素描画像.文章共分两部分: 第一部分介绍两种使 ...

  8. Java实现Mysql的 substring_index 函数功能

    Java实现Mysql数据库中 substring_index函数 前言: 由于hive中没有这个 substring_index函数,所以就自定义一个udf函数来调用使用.(不通过hive使用时可以 ...

  9. Apollo的基本概念和集成实战

    基本概念 使用场景 是一个分布式的配置中心.适用于微服务: 核心功能 集中管理不同环境,不同集群的配置: 配置修改后可以实时推送到应用端: 具备规范的权限,流程治理特性: 开发技术 服务端使用spri ...

  10. 多线程通信的两种方式? (可重入锁ReentrantLock和Object)

    (一)Java中线程协作的最常见的两种方式: (1)利用Object的wait().notify()和notifyAll()方法及synchronized (2)使用Condition.Reentra ...