当前位置: 首页 > news >正文

DiffIR: Efficient Diffusion Model for Image Restoration

  • 清华&ETH&字节&UTD
  • https://github.com/Zj-BinXia/DiffIR

问题引入

  • IR任务和image synthesis任务不同点是IR任务本身有一个很强的低质量图片作为先验,所以可以不完全遵循图片生成的范式,本文主要在compact的IPR空间进行DM;
  • 本文提出的模型分为三个部分,1)CPEN(compact IR prior extraction network)来得到IPR(IR prior representation),这个作为回归模型的指导信息;2)DIRformer回归模型,类比为decoder;3)DM来通过LQ图片得到IPR
  • 训练分为两个stage,首先第一个stage训练CPEN和DIRformer,此时CPEN输入的是高质量图片;第二个stage使用的IPR是DM得到的;

methods

在这里插入图片描述

  • stage1: 训练CPEN和DIRformer,首先将gt和LQ concat到一起,然后经过pixelunshuffle得到CPEN的输入,输出IPR Z = C P E N S 1 ( P i x e l U n s h u f f l e ( C o n c a t ( I G T , I L Q ) ) ) , Z ∈ R 4 C ′ Z = CPEN_{S1}(PixelUnshuffle(Concat(I_{GT},I_{LQ}))),Z\in\mathbb{R}^{4C'} Z=CPENS1(PixelUnshuffle(Concat(IGT,ILQ))),ZR4C,之后IPR被送到DIRformer的DGFN和DMTA模块,第一阶段训练的损失是GT和生成HQ的L1损失,超分和inpainting任务还有erceptual loss and adversarial
    loss;
  • DMTA的操作 F ′ = W l 1 Z ⊙ N o r m ( F ) + W l 2 Z F' = W_l^1Z\odot Norm(F) + W_l^2 Z F=Wl1ZNorm(F)+Wl2Z,其中 W l W_l Wl是linear层, F , F ′ F,F' F,F分别是输入和输出的feature map, Q = W d Q W c Q F ′ , K = W d K W c K F ′ , V = W d V W c V F ′ Q = W_d^QW_c^QF',K=W_d^KW_c^KF',V = W_d^VW_c^VF' Q=WdQWcQF,K=WdKWcKF,V=WdVWcVF,其中 W d W_d Wd是depthwise卷积, W c W_c Wc是pointwise卷积,之后被reshape成 Q ^ ∈ R H ^ W ^ × C ^ , K ^ ∈ R C ^ × H ^ W ^ , V ^ ∈ R H ^ W ^ × C ^ \widehat{Q}\in\mathbb{R}^{\widehat{H}\widehat{W}\times\widehat{C}},\widehat{K}\in\mathbb{R}^{\widehat{C}\times\widehat{H}\widehat{W}},\widehat{V}\in\mathbb{R}^{\widehat{H}\widehat{W}\times\widehat{C}} Q RH W ×C ,K RC ×H W ,V RH W ×C ,最后 F ^ = W c V ^ ⋅ S o f t m a x ( K ^ ⋅ Q ^ / γ ) + F \widehat{F}=W_c\widehat{V}\cdot Softmax(\widehat{K}\cdot \widehat{Q}/\gamma)+F F =WcV Softmax(K Q /γ)+F
  • DGFN的操作: F ^ = G E L U ( W d 1 W c 1 F ′ ) ⊙ W d 2 W c 2 F ′ + F \widehat{F}=GELU(W_d^1W_c^1F')\odot W^2_dW_c^2F' + F F =GELU(Wd1Wc1F)Wd2Wc2F+F
  • stage2:同时训练三个部分,首先使用 C P E N S 1 CPEN_{S1} CPENS1得到 Z Z Z,之后经过diffusion process得到 Z T ∈ R 4 C ′ Z_T\in\mathbb{R}^{4C'} ZTR4C C P E N S 2 CPEN_{S2} CPENS2得到 D = C P E N S 2 ( P i x e l U n s h u f f l e ( I L Q ) ) D = CPEN_{S2}(PixelUnshuffle(I_{LQ})) D=CPENS2(PixelUnshuffle(ILQ)),之后进行DM,以D为条件,进行去噪t-1次得到 Z ^ \widehat{Z} Z ,和 C P E N S 1 CPEN_{S1} CPENS1得到的 Z Z Z计算损失 L d i f f = 1 4 C ′ ∑ i = 1 4 C ′ ∣ Z ^ ( i ) − Z ( i ) ∣ L_{diff} = \frac{1}{4C'}\sum_{i = 1}^{4C'}|\widehat{Z}(i) - Z(i)| Ldiff=4C1i=14CZ (i)Z(i),这损失和stage1的损失在一起计算总损失;

实验

http://www.lryc.cn/news/376848.html

相关文章:

  • xss一些笔记
  • 以太坊网络中为什么要设置Gas上限
  • vue-cli是什么?和 webpack是什么关系?
  • leetcode刷题(46-50)
  • [渗透测试学习] Runner-HackTheBox
  • keil5显示内存和存储占用百分比进度条工具
  • 示例:推荐一个应用Adorner做的消息对话框
  • Building wheels for collected packages: mmcv, mmcv-full 卡住
  • 可视化表单拖拽生成器优势多 助力流程化办公!
  • 数据集制作——语义分割前png、jpg格式标签图转yolo格式.txt文件(附代码)
  • 机器学习课程复习——ANN
  • C++回溯算法(2)
  • 流量有限、日活低的APP适合对接广告变现吗?
  • Shell 学习笔记 - 变量的类型 + 变量的赋值
  • vue播放flv格式的直播流
  • Qt入门小项目 | 实现一个图片查看器
  • qt仿制qq登录界面
  • HashMap详解(含动画演示)
  • TVS的原理及选型
  • 【机器学习】无监督学习:探索数据背后的隐藏模式
  • 使用Elasticsearch在同一索引中区分不同类型的文档
  • 驾校在线考试系统源码 手机+PC+平板自适应
  • c++的多态,继承,抽象类,虚函数表,虚函数等题目+分析
  • 利用 Qwen-VL 进行私有化部署第一个 AI 多模态大模型
  • 王思聪隐形女儿曝光
  • 学习笔记——网络管理与运维——SNMP(SNMP原理)
  • 基于STM32和人工智能的自动驾驶小车系统
  • 简单介绍vim
  • 使用本地数据对transformers模型进行微调训练
  • Java面试题:讨论何时需要创建自定义异常类,并展示如何实现一个自定义异常