2024AAAI | DiffRAW: 利用扩散模型从手机RAW图生成单反相机质量的RGB图像

文章标题:《DiffRAW: Leveraging Diffusion Model to Generate DSLR-Comparable Perceptual Quality sRGB from Smartphone RAW Images》

原文链接:DiffRAW

本文是清华大学深圳研究院联合华为发表在AAAI-2024上的论文(小声bb:华为这个方向做的不少啊…)。

【1】论文的主要motivation是解决Smartphone Raw to DSLR images的难点(小声bb:工业界的论文就是切实)。

  • 智能手机拍摄相关的硬件本身就不如数码单反相机,硬件相关的限制导致了RAW图采集时在细节上必定会有损失。所以从智能手机感知到的RAW图推导出单反相机画质的图像本身就是一个困难的任务;
  • 用手机采集RAW图,单反相机采集RGB图像,不同的设备拍摄同一个场景势必导致RAW-sRGB图像对空间位置不精确对齐的问题
  • 由于RAW-sRGB数据对是在不同的环境条件和相机参数下分别采集的,这会导致颜色差异以及不稳定的颜色映射关系

【2】论文的主要贡献在于以下四点:

  • 设计了一个新颖高效的前馈和逆向过程,即DTDM(Domain Transform Diffusion Method)。该方法减少了推理期间所用的迭代步数。DTDM是一个对于基于扩散模型的图像恢复/增强方法通用的加速算法,可以灵活的被迁移到其他基于扩散模型的图像恢复/增强方法中;
  • 第一次使用RAW图作为扩散条件,在生成图像中保留了RAW图的轮廓和纹理信息;
  • 通过设计的颜色-位置保留条件,本文缓解了由于颜色/空间不对齐导致的训练干扰;
  • DiffRAW拥有一个颜色即插即用特征,使用不同的颜色条件作为颜色信息注入可以灵活的调整生成图像的颜色风格

Preliminary

扩散模型

关于扩散模型的相关知识这里就不展开了,推荐看一下b站上李宏毅老师的扩散模型课程:扩散模型-李宏毅。

基于扩散模型的图像修复/增强

定义 x x x y y y分别表示低质量和高质量的图像。经典的图像修复/增强算法都会先构建一个关于高质量图像的图像序列作为扩散模型的前馈过程: { y t = α ‾ t y + 1 − α ‾ t ϵ } t = 1 T \{y_t = \sqrt{\overline{{\alpha}}_t}y + \sqrt{1-\overline{\alpha}_t}\epsilon\}_{t=1}^T {yt=αt y+1αt ϵ}t=1T

在训练过程中,低质量图像的信息会作为条件被注入到U-Net网络 f θ ( y t , x , t ) f_{\theta}(y_t,x,t) fθ(yt,x,t)中,网络最后会学到未知的条件分布 p ( y ∣ x ) p(y|x) p(yx)
p θ ( y t − 1 ∣ y t ) = N ( y t − 1 ; μ θ ( y t , x , t ) , σ t 2 I ) p_\theta(y_{t-1}|y_t) = \mathcal{N}(y_{t-1};\mu_\theta(y_t,x,t),\sigma_t^2I) pθ(yt1yt)=N(yt1;μθ(yt,x,t),σt2I)

μ θ ( y t , x , t ) = 1 α t ( y t − 1 − α t 1 − α ‾ t f θ ( y t , x , t ) ) \mu_\theta(y_t,x,t) = \frac{1}{\sqrt{\alpha_t}}(y_t-\frac{1-\alpha_t}{\sqrt{1-\overline{\alpha}_t}}f_\theta(y_t,x,t)) μθ(yt,x,t)=αt 1(yt1αt 1αtfθ(yt,x,t))

在推理过程中, y T ∼ N ( 0 , I ) y_T\sim\mathcal{N(0,I)} yTN(0,I)通常被用于生成过程的起始点,通过应用上述公式,目标图像 y y y会在T个迭代步以后被生成。

Abstract

由于明显的细节差异(discernible detail disparity)不稳定的颜色映射关系RAW-sRGB pair的空间尺寸不对齐从智能手机RAW图推导出数码单反相机(DSLR,Digital Signal Lens Reflex Camera)质量的RGB图像已经成为了一个很吸引人的挑战。本文提出了DiffRAW,一个第一次把扩散模型用于学习RAW-to-sRGB映射的新颖的方法。本方法利用扩散模型学习到了DSLR图像的高质量细节分布,进而增强了输出图像的细节。同时,本文使用RAW图作为扩散模型的输入条件以保持图像结构信息(例如,轮廓和纹理)。为了减轻由训练数据对中颜色和空间不对齐带来的干扰,本文在DiffRAW中嵌入了一个颜色-位置保持条件,以确保输出图像没有颜色和像素偏差问题。为了加速DiffRAW的推理速度,本文设计了域变换扩散方法,一个高效的扩散过程及其逆过程(reverse process)。域变换扩散方法在减少基于扩散模型的图像恢复/增强算法所需推理步数的同时,还提高了生成图像的质量。通过在ZRR数据集上的评估,DiffRAW在所有的感知质量评估指标(例如,LPIPS,FID,MUSIQ)上都展示了sota的性能,并且在SSIM和PSNR指标上达到了还不错的结果。

Methodology

img

图1. DiffRAW模型架构
 

颜色-位置保持条件

定义 w w w 为智能手机捕获到的RAW图,定义 y y y为数码单反相机捕捉到的目标RGB图像,定义颜色-位置保持条件为符号 c c c

在训练过程中, c t r a i n c^{train} ctrain是使用一个高阶退化模型 D 2 D^2 D2 (Wang et al. 2021)对 y y y做退化处理得到的结果,即 c t r a i n = D 2 ( y ) c^{train}=D^2(y) ctrain=D2(y)。本方法对该模型进行了微调,以确保 c t r a i n c^{train} ctrain y y y的颜色一致性。

在测试过程中,使用lightweight ISPNet (Zhang et al. 2021)处理 w w w 得到 c t e s t c^{test} ctest

img

图2. 实验结果可视化
 

这里把实验结果可视化搬过来,以更好说明颜色-位置保持条件的作用。可以看到,图2(a)是用简单isp pipeline处理后的rgb图像;图2(b)没有加入任何条件,失去了轮廓、纹理、颜色信息(颜色映射和空间映射都学乱了);图2(c)加入了 w w w ,保持了原RAW图的轮廓和纹理信息;图2(d)基本保持了图2(a)的颜色信息。这里注意,图2(d)不要跟图2(f)比,因为这是测试过程,是要看跟 c t e s t c^{test} ctest,即图2(a)的关系;图2(e)是单反相机图像退化后得到的可视化结果。

DTDM (Domain Transform Diffusion Method)

这一小节的逻辑比较复杂,作者写得很乱,我尽量讲的详细一点。

在这一小节,作者指出,在forward过程中,其实没必要把 y y y 一直加噪到纯噪声,只要加噪到 y s y_s ys 就好了。这样在reverse过程中,从 y s y_s ys 往回倒,推出 y y y所需要的步数自然就少了。

那么这里有一个问题:在测试集中, y s y_s ys 怎么获得?(注:因为在测试集里,我们只有手机拍的raw图 w w w ,需要得到DSLR-qualified images y y y

你可能已经想到了,我们既然有 w w w ,就可以用一个神奇的数学魔法 x t e s t = I S P ( w ) x^{test}=ISP(w) xtest=ISP(w)【文中用一个函数G替代ISP,但其实是一样的】,如果我们大概能证明 x s t e s t x_s^{test} xstest y s y_s ys差不多,是不是就可以了?

不太令人满意的是, x s t e s t x_s^{test} xstest y s y_s ys稍微有点区别。因为前者在图像质量差的域里面,后者在图像质量好的域里面,两者并不能完全等价。讲到这里,你或许已经发现了为什么这个方法叫做"域变换扩散方法"。

没错!聪明的作者朋友们指出了如下公式:

x t e s t x^{test} xtest相对应,有 x t r a i n = D 2 ( y ) x^{train}=D^2(y) xtrain=D2(y),作者试图在forward过程中,把 y y y变成 x s t r a i n x_s^{train} xstrain 。这不仅涉及到加噪过程,还在每一个微小步中涉及到一点点的域移动,域总体移动量大概可以认为是 ( y − x t r a i n ) (y−x_{train}) (yxtrain) 。继而又有 x s t r a i n = α ‾ s x t r a i n + 1 − α ‾ s ϵ x_s^{train}=\sqrt{\overline{\alpha}_sx^{train}}+\sqrt{1-\overline{\alpha}_s}\epsilon xstrain=αsxtrain +1αs ϵ

到此为止,DTDM的核心思想就算是讲完了。总结如下:作者通过精巧的设计,令高质量的图像 y y y 在forward过程中,不仅做了加噪退化,还做了域偏移处理,最后得到了位于另一个域中的加噪数据点 x s t r a i n x_s^{train} xstrain (而非高斯纯噪声)。

因此,在测试过程中,作者使用了两个数学魔法, x t e s t = I S P ( w ) x^{test}=ISP(w) xtest=ISP(w) x s t e s t = α ‾ s x t e s t + 1 − α ‾ s ϵ x_s^{test}=\sqrt{\overline{\alpha}_s}x^{test}+\sqrt{1-\overline{\alpha}_s}\epsilon xstest=αs xtest+1αs ϵ直接得到了另一个域中的数据点,再通过上述过程的逆过程,即可转移回数据点 y y y

本小节的剩余部分,作者对forward、train、reverse三个过程做了精细的数学推导。我们大致可以理解为:经典的扩散都是只加噪声,DTDM却还做了域偏移,那每次的微小偏移是偏移多少?作者要给出证明推导。此外,在新的模型框架下,原有的关于噪声预测的Loss也需要修正。总而言之,在推理阶段,DTDM不仅对 x s x_s xs 做了去噪,还执行了一个从 x x x y y y 的域迁移,允许DTDM在很短的步数内把 x s t e s t x_s^{test} xstest 转换成 y y y ,同时提高了生成图像的质量。

Conclusion

本文提出了一个新颖的可以自适应解决smartphone raw to DSLR-quality sRGB图像的方案。融合RAW图信息保持轮廓,提出了高效的diffusion过程加强图像质量、减少推理步骤。

【思考1】思考了一下本文提出颜色注入特征的过程,可能是如下所述的这种情况。①CNN版本: 相关研究者发现训练数据集中的pair对颜色是不对齐的,这可能导致网络需要学习对应的颜色映射关系,但是映射关系也不稳定,这导致网络对于颜色的拟合效果不好,用CNN做这件事情就不太行了。②扩散模型基础版本: 用raw图信息注入,消除纯高斯噪声,得到对应的RGB图像,但是也存在映射不稳定的问题(因为raw图注入也会产生一些颜色信息的注入),会干扰网络训练。③DiffRAW: 干脆将颜色信息剥离出来,直接作为一个输入,模型学raw输入的轮廓和纹理,学注入的rgb信息的颜色特征,而且还能通过这个模块改变颜色风格,一举两得。空间注入特征的推导同理。

【思考2】感觉本文公式好多,有些变量对齐起来比较麻烦。比如在原文Methodology的第二小节中的 c t r a i n = D 2 ( y ) c^{train}=D^2(y) ctrain=D2(y) 到了第三小节又变成了 x x x

【思考3】关于DTDM小节,本文写得不甚详细,望广大读者朋友批评指正。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/12279.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

idea出现的问题

1.idea正常的运行,但是debug失败 原因:debug模式中使用的jdk和你在环境变量中配置的不是同一个jdk。或者说三处地方修改一致即可 1.File/Project Structure/Project Settings/Modules中的SDK 2.File/Project Structure/Platform Settings 中的SDKS 3.Run/Debug Conf…

uni-app之数据驱动的picker选择器( uni-data-picker)之可以选择到任意级别

背景说明 uni-app 官方的插件市场有数据驱动选择器,可以用作多级分类的场景。本人引入插件后,发现,在h5和微信小程序都只能选择到叶子级。而在给出的官方组件示例中确并非如此。 以选择年级,而不选择班级。然后,想试试…

vue3如何修改element ui input中type属性为textarea的高度

效果&#xff1a; 方法一&#xff1a;直接使用autosize <el-input:maxlength"500":autosize"{ minRows: 5, maxRows: 5 }"type"textarea"v-model"form.description"placeholder"请输入描述"></el-input> 方法二…

紫光展锐携手上赞随身Wi-Fi,让5G触手可及

近年来&#xff0c;随着各类移动应用层出不穷&#xff0c;人们对随时随地上网的需求日益增强&#xff0c;随身 Wi-Fi 设备以其便捷性、灵活性和相对较低的成本&#xff0c;成为用户满足办公、社交、娱乐等多元化需求的重要工具。5G技术的逐步普及为随身Wi-Fi市场注入了新的活力…

第四十三章 Vue之mapMutations简化mutations操作

目录 一、引言 二、完整代码 2.1. App.vue 2.2. main.js 2.3. Son1.vue 2.4. Son2.vue 2.5. index.js 一、引言 本章节我们通过掌握辅助函数mapMutations&#xff0c;来简化前面章节中调用mutations函数的繁琐方式。mapMutations 和 mapState很像&#xff0c;它是把位于…

C++编程语言:抽象机制:派生类(Bjarne Stroustrup)

第20章 派生类(Dirived Classes) 目录 20.1 引言 20.2 派生类 20.2.1 类成员函数 20.2.2 类构造函数和析构函数 20.3 派层次结构 20.3.1 类型域(Type Fields) 20.3.2 虚函数(Virtual Functions) 20.3.3 显式修饰(Explicit Qualification) 20.3.4 覆盖控制(O…

Qt--命令行终端程序开发

提示&#xff1a;本文为学习记录&#xff0c;若有错误&#xff0c;请联系作者&#xff0c;谦虚受教。 文章目录 前言一、头文件二、cpp文件三、使用流程如图所示 总结 前言 Constant dropping wears the stone. 一、头文件 #ifndef TERMINALWIDGET_H #define TERMINALWIDGET_…

一文了解珈和科技在农业遥感领域的服务内容和能力

2020年&#xff0c;农业农村部、中央网信办联合印发了《数字农业农村发展规划&#xff08;2019-2025年&#xff09;》&#xff0c;对数字农业农村建设作出了具体部署。其中&#xff0c;农业遥感作为推进数字农业农村的重要力量贯穿《规划》始终。 今年10月&#xff0c;农业农村…

D65【python 接口自动化学习】- python基础之数据库

day65 SQL-DQL-分组聚合 学习日期&#xff1a;20241111 学习目标&#xff1a;MySQL数据库-- 133 SQL-DQL-分组聚合 学习笔记&#xff1a; 分组聚合 总结 分组聚合的语法 分组聚合的注意事项 group by 中出现了哪个列&#xff0c;哪个列才能出现在select中的非聚合中

初学mongoDB

MongoDB 是一个开源的 NoSQL 数据库&#xff0c;由 C 语言编写。它与传统的关系型数据库不同&#xff0c;MongoDB 使用的是一种基于文档的存储模型&#xff0c;不需要定义固定的表结构&#xff0c;可以灵活地存储和管理大量的非结构化数据。下面是 MongoDB 的一些核心特性&…

DAY59||并查集理论基础 |寻找存在的路径

并查集理论基础 并查集主要有两个功能&#xff1a; 将两个元素添加到一个集合中。判断两个元素在不在同一个集合 代码模板 int n 1005; // n根据题目中节点数量而定&#xff0c;一般比节点数量大一点就好 vector<int> father vector<int> (n, 0); // C里的一…

基于Spring Boot的乡政府管理系统设计与实现,LW+源码+讲解

摘 要 传统办法管理信息首先需要花费的时间比较多&#xff0c;其次数据出错率比较高&#xff0c;而且对错误的数据进行更改也比较困难&#xff0c;最后&#xff0c;检索数据费事费力。因此&#xff0c;在计算机上安装乡政府管理系统软件来发挥其高效地信息处理的作用&#xf…

【NLP】使用 PyTorch 从头构建自己的大型语言模型 (LLM)

读完这篇文章后&#xff0c;你会取得什么成就&#xff1f;你将能够自己构建和训练大型语言模型 (LLM)&#xff0c;同时与我一起编写代码。虽然我们正在构建一个将任何给定文本从英语翻译成马来语的 LLM&#xff0c;但你可以轻松地修改此 LLM 架构以用于其他语言翻译任务。 LLM…

QT打包应用程序文件步骤

QT应用程序&#xff08;.exe&#xff09;打包复制到其他电脑 在QT程序在自己电脑编译好了后&#xff0c;需要打包给其他人。这里介绍一下详细步骤&#xff1a; 确定编译器 搜了很多相关的打包教程&#xff0c;但是还是会出现“应用程序无法正常启动(0xc000007b)”这类错误。经过…

JMeter进阶篇

目录 上篇导航&#xff1a; 总目录&#xff1a; 一、逻辑控制器&#xff1a; 1.逻辑控制器和关联&#xff1a; 2.if逻辑控制器&#xff1a; 3.forEach控制器&#xff1a; 4.循环控制器&#xff1a; 二、关联&#xff1a; 1.xpath&#xff1a; 2.正则表达式提取器&…

homework 2024.11.10 math 1 - math 6

小学1年级和小学6年级数学图形结合&#xff0c;以及习惯养成&#xff0c;过程改进 6年级数学&#xff1a; 一年级数学&#xff1a;

【Linux 31】网络层协议 - IP

文章目录 &#x1f308; 一、IP 协议的基本概念⭐ 1. TCP IP 能保证数据的可靠传输⭐ 2. 如何理解 IP地址⭐ 3. 路由选择⭐ 4. 主机 & 路由器 & 节点 &#x1f308; 二、IP 协议的报头格式⭐ 1. IP 协议的报头格式⭐ 2. 如何将 IP 报头和有效载荷分离⭐ 3. 如何将有效…

Mac中安装OhMyZsh

Mac中安装OhMyZsh 文章目录 Mac中安装OhMyZsh一、Homebrew二、OhMyZsh1、Oh-My-Zsh配置1.1&#xff1a;主题配置1.2&#xff1a;插件配置&#xff08;语法高亮和自动提示&#xff09;1、zsh-autosuggestions&#xff08;需下载安装&#xff09;&#xff1a;高亮显示所有支持的命…

7、computed计算属性使用

代码 Student.vue <template> <div><h2>computed计算属性使用</h2><input type"text" v-model"name"/><br/><input type"text" v-model"sex"/><br/>完整信息&#xff1a;{{info}}&…

SystemVerilog学习笔记(三):结构体与联合体

结构体 结构包含具有不同大小的不同数据类型&#xff0c;这些数据类型分组在一个结构体名称下。默认情况下&#xff0c;结构体最初是未压缩的形式&#xff0c;但可以使用“packed”关键字将其转换为压缩结构。 结构与普通数组不同&#xff0c;因为数组仅使用相同类型和大小的…