码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • NAFNet(ECCV 2022)-图像修复论文解读


    文章目录

    • 解决问题
    • 算法
      • 背景
      • Simple Baseline
        • Plain Block
        • 归一化
        • 激活函数
        • Attention机制
        • 总结
      • NAFNet
        • SimpleGate替换GELU
        • SCA替换CA
        • 总结
    • 实验
    • 应用
      • RGB图像去噪
      • 图像去模糊
      • RAW图像去噪
    • 结论

    论文: 《Simple Baselines for Image Restoration》
    github: https://github.com/megvii-research/NAFNet

    解决问题

    目前图像复原领域SOTA方法复杂度比较高,这不利于分析和方法比较;作者提出简单网络NAFNet,发现激活函数非必须,在GoPro、SIDD取得SOTA。

    算法

    背景

    block间通常通过有两种方式,如图2所示:
    1、不同feature map之间进行联系;
    2、多阶段网络,后一个阶段精细化前一个阶段结果;
    在这里插入图片描述
    block内设计如图3a所示,多个反卷积attention机制,门控反卷积,swin transformer block、HINBlock
    在这里插入图片描述
    为了简化网络,作者使用常规图2c中U-Net结构

    Simple Baseline

    Plain Block

    为了简化神经网络,作者提出PlainNet,使用最常见的模块,如图3b,之所以没有使用Transformer,是因为:
    1、一些工作声称达到SOTA效果,Transformer不是必须的;
    2、depthwise conv比self-attention机制更加简单;

    归一化

    BN(N/H/W通道计算均值方差)对于小batch统计量不稳定,IN可以避免此问题,但是一些工作展示IN(H/W通道计算均值方差)并不总是带来正向收益,需要finetune。随着Transformer的成功,LN(C/H/W通道计算均值方差)用于越来越多方法,因此作者使用LN至Plain Block,可以稳定训练过程。

    激活函数

    目前SOTA方法中存在趋势:使用GELU替换ReLU,在保持图像去噪性能的同时,也为图像去模糊带来了增益。

    Attention机制

    原生self-attention机制计算量随着特征图大小二次增长,swin transformer在固定大小局部window进行,可缓解计算量增加问题,然而缺少全局信息,原生channel attention(SE Network)满足要求:计算高效,同时具备全局信息;

    总结

    Simple Baseline结构如图2c,3c,每个组成部分很普通,比如:LN、GELU、CA,但它们组成的Baseliine超越之前SOTA。

    NAFNet

    作者想在保证性能前提下,进一步简化图3c中baseline,发现SOTA方法都使用GLU。

    SimpleGate替换GELU

    GLU如式1,GELU如式2,通过比较发现,GELU是GLU的特殊情况,同时 GLU本身包含非线性,基于此,作者提出SimpleGate,如式4,图4c,将feature map在channel维分为两部分,而后逐像素相乘。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    SCA替换CA

    CA过程如图4a、式5,可重写为式6,简化为GLU类似形式,作者仅保留CA两个重要部分:聚合全局信息,channel维信息交互,提出SCA,如式7
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    总结

    Simple Baseline中,
    1、SimpleGate替换GELU;
    2、SCA替换CA;
    得到简化后的NAFNe,其不包含任何激活函数(ReLU,GELU,Sigmoid)

    实验

    从PlainNet到simple baseline消融实验如表1;
    在这里插入图片描述
    从simple baseline到NAFNet的消融实验如表2,性能提升同时,速度加快;
    在这里插入图片描述
    表4验证不同block数量影响,当增大到72时,性能改进不明显;
    在这里插入图片描述
    表5验证SimpleGate中不同激活函数影响,发现激活函数非必要;
    在这里插入图片描述

    应用

    RGB图像去噪

    表6展示在图像去噪方向与SOTA方法比较,超越最佳结果Restormer0.28dB,同时计算量大幅降低。如图5,作者提出的方法可修复更多细节;
    在这里插入图片描述
    在这里插入图片描述

    图像去模糊

    在GoPro数据集图与SOTA方法比较如表7,可视化结果如图6
    在这里插入图片描述
    在这里插入图片描述

    RAW图像去噪

    实验结果如表8,可视化结果如图7。
    在这里插入图片描述
    在这里插入图片描述

    结论

    作者对基线进行分析发现非线性激活函数非必须,提出的NAFNet没有线性激活,虽然结构简单但是性能未下降。

  • 相关阅读:
    电脑e盘文件没删除但不见了怎么办?了解原因与找回方法
    化工巨头巴斯夫&Pasqal:利用量子神经网络优化天气预报
    KDD 2022 | 生命科学中的图神经网络:机遇和解决方案
    使用接口根据关键词取视频列表详情
    微信DAT文件解密(dat转图像)
    【C语言数据结构】线性表-链式存储-单链表
    线上JAVA应用平稳运行一段时间后出现JVM崩溃问题 | 京东云技术团队
    x264 参考帧管理原理:b_ref_reorder 数组变量
    git 工具学习笔记
    批处理文件(.bat)中,dir与tree命令的效果
  • 原文地址:https://blog.csdn.net/qq_41994006/article/details/127859059
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号