zoukankan      html  css  js  c++  java
  • 【CVPR2021】NBNet解读

    【CVPR2021】NBNet: Noise basis learning for image denoising with subspace projection

    基于子空间注意力模块的图像降噪,作者尚未公开官方代码,但 github上目前有一个非官方的实现可参考。下面内容主要来自青源LIVE,旷视CVPR20201预讲。这是一个来自旷视、快手和电子科大的工作

    1、背景

    图像降噪是 ill-posed 问题:设噪声观测图为 (y),真实图像为(x),噪声为(n),则降噪是从 (y) 恢复 (x) 的过程。传统方法在抹掉噪声的同时容易丢失细节,最近比较流行的方法是深度CNN方法,当前基于深度学习的方法大多使用L1或者L2 loss,这样的损失函数趋于输出平均值,导致结果会过平滑。如下图所示,左边的是知名的 DnCNN 方法的结果,可以看到,很多信息丢失了,一个好的算法应该能够在降噪的同时保留图像细节。

    2、子空间方法

    子空间方法用于图像分析是相当经典的,经常见到的是傅立叶变换、小波去噪、SVD。基本原理就是把图像拆分为一组基,只要找到噪声所处的基,把这部分去掉就可以了。

    但是,当前方法的主要问题是,图像分析中的基是人工构造的。图像信息和噪声往往在一组基中,当把这组基抹掉的同时,图像的细节也损失了。

    因此,作者想到,能不能利用深度学习自动的学习一组基,就可以更好的区分信息和噪声的分布。论文中使用 subspace projection 来实现这个想法。投影可以较好的保留图像的结构信息,同时,投影也是一种捕获全局相关性的方式。同时,投影可以训练一种信息与噪声分离的网络。

    为此,作者提出了 SSA (subspace attention)模块,如下图所示。(X_1, X_2 in mathbb{R}^{H imes W imes C}) 表示两个特征,首先输入一个卷积网络,得到一组 basis vectors。然后,将 (X_1) 投影到此子空间。值得注意的是(X_1)(X_2)是来自不同 level 的特征,这里想用(X_2)来引导 (X_1) 的重构。

    3、整体网络结构

    整体网络是基于 U-NET,如下图所示。首先,作者在 skip connection 位置加了很多 conv-block。同时,还发现越顶层的 block 对于降噪越有利,因此,在顶层加了很多 conv-block。每一个 level 上都加了一个SSA模块。

    在SSA中,左边直接过来的特征作为 (X_1),因为它的特征抽象能力,是比从 decoder 那边来的要小的。因此,从 decoder 过来的特征作为 (X_2),用来引导 (X_1) 的重构。

    该网络使用了简单的损失函数:(L(G,x,y)=|| x-G(y)||_1) ,其中,(G(cdot))表示NBNet网络。

    4、实验结果

    作者指出,该方法在线条、点状等弱纹理图案处优于其他方法。这说明该方法能够很好的利用全局信息修复图像。

    Ablation study 中,第一个实验表明SSA模块确实有效,只增加了很小的计算量就取得了非常好的效果。

    作者还对基底进行了一组可视化,可以看到在绿框区域,NBNet对于细节的重构更好。同时,左侧是16个基底的可视化结果,可以看出细微的纹理在基底上较好的学了出来,利用这样的一组基底可以更好的实现图像细节的修复。

  • 相关阅读:
    C# 创建一个日志文件
    C# WinForm程序添加引用后调用静态方法时报“Interfaces_Helper.Global”的类型初始值设定项引发异常。---> System.NullReferenceException: 未将对象引用设置到对象的实例。
    SqlServer 一些操作
    多线程处理sql server2008出现Transaction (Process ID) was deadlocked on lock resources with another process and has been chose问题
    SQL
    WinForm 弹框确认后执行
    C#强制清除缓存
    C#TextBox自动滚动到最低端
    XmlDocument To String
    ROCK 算法
  • 原文地址:https://www.cnblogs.com/gaopursuit/p/14683494.html
Copyright © 2011-2022 走看看