论文阅读:DualDn Dual-domain Denoising via Differentiable ISP

这篇文章是 2024 ECCV 的一篇文章,介绍的是降噪相关的工作。

Abstract

图像去噪是相机图像信号处理 (ISP) 流程中的一个关键组成部分。将去噪器融入 ISP 流程有两种典型方式:直接对拍摄的原始帧(RAW域)应用去噪器,或者对 ISP 输出的 sRGB 图像(sRGB 域)应用去噪器。然而,这两种方法都有其局限性。原始域去噪产生的残留噪声可能会被后续的 ISP 处理放大,而且 sRGB 域很难处理空间变化的噪声,因为它只能看到被 ISP 扭曲的噪声。因此,大多数原始域或 sRGB 域的去噪方法仅适用于特定的噪声分布和 ISP 配置。为了应对这些挑战,我们提出了 DualDn,一种新颖的基于学习的双域去噪方法。与之前的单域去噪不同,DualDn 由两个去噪网络组成:一个在原始域,一个在 sRGB 域。原始域去噪可适应传感器特有的噪声以及空间变化的噪声水平,而 sRGB 域去噪可适应 ISP 变化并去除被 ISP 放大的残留噪声。这两个去噪网络都与一个可微的 ISP 相连,该 ISP 经过端到端训练,并在推理阶段被舍弃。通过这种设计,与大多数基于学习的去噪方法相比,DualDn 具有更强的通用性,因为它可以适应不同的未知噪声、ISP 参数,甚至新的 ISP 流程。实验表明,DualDn 达到了最先进的性能,并且可以适应不同的去噪架构。此外,DualDn 可以作为即插即用的去噪模块用于真实相机,无需重新训练,而且性能仍优于相机上的商业去噪功能。

  • 图 1
    在这里插入图片描述

Introduction

近年来,基于 AI 模型的降噪算法在真实拍摄的图像和合成图像上都展现出了惊人的质量。通常,为了训练这些去噪网络,首先要为具有已知噪声水平的特定相机型号收集一个训练集。在该数据集上训练的网络通常在这种设置下表现良好,但当应用于其他相机型号或不同噪声水平时,性能会下降。研究人员试图通过通用的训练计划来缓解这个问题,但是以这种方式训练的去噪网络要么速度很慢,要么表现比传统去噪网络差,尤其是在处理严重噪声时。因此,设计一个普遍适用的去噪框架,适用于各种传感器噪声和相机 ISP,仍然是一项具有挑战性的任务。

我们的关键观察结果是,有限的泛化能力与去噪算法所应用的域有关。如图 2 所示,在典型的相机流程中,传感器噪声在原始域中引入,并在原始图像由图像信号处理器(ISP)流程处理后传播到最终的 sRGB 图像。因此,有两种典型的应用去噪的方式:在原始域和在 sRGB 域。原始域去噪通常对不同的噪声分布具有良好的泛化能力,因为有相关工作研究表明,这些模型将噪声分布与一些可以通过校准获得的参数相关联。然而,原始域去噪后的轻微残留噪声或伪影可能会被 ISP 处理放大,导致最终的 sRGB 图像不是最优的(图 2 的第一行)。例如,去马赛克处理通常会在图像边缘周围产生高频伪影,而色调映射可能会放大暗区域中的残留噪声。此外,原始域去噪不知道 ISP 处理过程,因此当切换到不同的 ISP 流程时,其性能会下降。

  • 图 2
    在这里插入图片描述
    比较单域和双域去噪。原始域中的噪声是特定于传感器且与 ISO 相关的,而 ISP 是与设备相关且由用户偏好决定的。只有双域去噪才能分别妥善处理噪声和 ISP 的变化。

另一方面,sRGB 域去噪直接应用于由 ISP 生成的最终 sRGB 图像,因此可以泛化到不同的 ISP 流程。尽管如此,大多数 sRGB 域去噪网络是用单一噪声分布进行训练的。另一方面,实际的 sRGB 噪声分布很复杂,主要是因为可校准的原始噪声被 ISP 处理扭曲了,使得它在 sRGB 域中不可预测(图 2 的第二行)。因此,当应用于低光照条件下或具有空间变化噪声的强噪声时,sRGB 去噪的性能会下降。

因此,在这项工作中,为了同时考虑传感器噪声和 ISP 处理的变化,我们提出了一种新颖的双域去噪流程,它由一个 RAW 去噪器和一个 sRGB 去噪器组成,如图 2 的底部所示。利用原始去噪可以使网络处理空间变化的噪声,并在经过校准的噪声水平的帮助下泛化到不同的传感器。在经过去噪的原始信号由 ISP 处理后,第二个 sRGB 去噪器进一步消除由 ISP 引入的放大和相关的残留噪声。与单域去噪相比,我们的双域去噪能生成具有精细细节的视觉上令人愉悦的图像。为了训练这些双域去噪网络,我们还提出了一种训练方案,其中包括增强的噪声分布和 ISP 参数,以及可微的 ISP 流程,以支持同时对两个去噪器进行联合训练。

据我们所知,虽然传统的 ISP 流程通常在原始域和 sRGB 域都放置噪声滤波器,但我们是第一个提出基于学习的可端到端训练的双域去噪框架的人。为了实现这一目标,我们使用可微的 ISP 和噪声图机制作为 “桥梁”。此外,我们在训练期间为原始域生成不同的噪声,为 sRGB 域生成不同的 ISP,使原始去噪器和 sRGB 去噪器能够共同处理噪声和 ISP 的变化。而且,我们在合成图像和真实图像上的实验结果显示,与单域基线相比有显著的改进,特别是在应用于未知的 ISP 或噪声分布时。此外,尽管我们的模型仅在合成图像上进行训练,但它可以应用于商业智能手机中的黑盒 ISP,甚至优于为其相机精心设计的去噪算法,如图 1 所示。

Method

对于来自未知相机的具有广泛噪声的原始图像,我们的目标是使用经过训练的去噪网络和目标 ISP 恢复出干净的 sRGB 图像。我们的去噪网络不与任何特定的 ISP 绑定,只是替换其去噪模块。在本节中,我们首先介绍我们的 DualDn 的总体框架。然后,我们详细描述 DualDn 的每个部分的设计。

  • 图 3
    在这里插入图片描述
    DualDn 的总体流程。它由三个关键组成部分组成:(a)具有各种噪声的图像泛化;(b)具有噪声图融合的双域去噪;(c)具有相应 EXIF 数据和可变 ISP 参数的可微 ISP。

DualDn 的总体流程如图 3 所示。给定一个干净的原始图像块,我们根据其 EXIF 元数据生成相应的干净 sRGB 图像块,并基于噪声模型合成一个有噪声的原始图像块。然后,有噪声的原始图像块经过原始去噪和 sRGB 去噪处理,以产生最终的 sRGB 图像块。这个过程采用可微的 ISP 来模拟原始域和 sRGB 域之间的中间 ISP 处理,利用 EXIF 元数据并保持其他参数可调整。

Image Generalization

我们使用一个噪声模型和大量的模型参数集从干净的原始图像合成有噪声的原始图像。为了增强我们方法的泛化能力,我们主要考虑类似于散粒噪声和读出噪声,而忽略设备特定的噪声,如固定模式噪声。后续实验表明使用这个有效的噪声模型进行训练可以很好地泛化到来自未知相机的真实图像上,虽然这些相机具有未知的噪声分布。

散粒噪声和读出噪声分别符合泊松分布和高斯分布,所以有噪声的 RAW 图像 R 被合成如下:

R ∼ K ⋅ P ( R ∗ K ) + N ( 0 , σ r 2 ) (1) R \sim K \cdot \mathcal{P}(\frac{R^{*}}{K}) + \mathcal{N}(0, \sigma_{r}^{2}) \tag{1} RKP(KR)+N(0,σr2)(1)

其中 R ∗ R^{*} R 表示干净的原始图像, K K K 是整体的 gain 值,与 ISO 设置有关。

为了模拟一个更大范围的噪声水平,让 K , σ r 2 K, \sigma_{r}^{2} K,σr2 从某个分布中进行采样:

log ⁡ ( K ) ∼ U ( log ⁡ ( K m i n ) , log ⁡ ( K m a x ) ) log ⁡ ( σ r 2 ) ∣ log ⁡ ( K ) ∼ N ( α ⋅ log ⁡ ( K ) + β , σ 2 ) (2 ) \log(K) \sim \mathcal{U}(\log(K_{min}), \log(K_{max})) \\ \log(\sigma_{r}^{2}) | \log(K) \sim \mathcal{N}(\alpha \cdot \log(K) + \beta, \sigma^{2}) \tag{2 } log(K)U(log(Kmin),log(Kmax))log(σr2)log(K)N(αlog(K)+β,σ2)()

U \mathcal{U} U 表示均匀分布, K m i n , K m a x K_{min}, K_{max} Kmin,Kmax 分别表示最小与最大的噪声水平。 α , β , σ \alpha, \beta, \sigma α,β,σ 是高斯分布中的超参,文章中 α = 2.540 , β = 1.218 , σ = 0.268 \alpha = 2.540, \beta = 1.218, \sigma = 0.268 α=2.540,β=1.218,σ=0.268

此外,我们使用全尺寸图像的裁剪块进行训练。在裁剪过程中,我们在随机位置周围的 R-G-G-B 拜耳模式下搜索最近的原始块。因此,在经过像素解交织操作 pixel unshuffle 处理后,得到的打包原始块具有固定的通道配置(RGGB),这进一步提高了模型的性能。

  • 图 4
    在这里插入图片描述
Differentiable ISP

为了端到端地训练我们的双域网络,我们基于 PyTorch 设计了一个可微的 ISP。虽然有一些开源的 ISP ,但它们不可微或不可变,如果我们采用它们,会限制去噪网络的性能和泛化能力。在我们的框架中,我们按照特定的顺序实现 ISP 的基本部分,如图 3 的右列所示。与大多数实际的 ISP 不同,我们排除了某些模块并设计了一个通用的 ISP,原因有二:(1)商业 ISP 通常是黑盒函数,完全模拟它们可能会导致过拟合;(2)某些 ISP 模块,如颜色风格化,对噪声影响不大,在训练期间可以忽略,我们只选择对噪声有影响的必要模块。为了测试我们的可微 ISP 与实际 ISP 相比的稳健性,我们以著名的 RawPy 作为参考。在一组 50 张图像上,我们的 ISP 实现了平均 41.7dB 的 PSNR。

首先,我们从原始的原始文件中提取 EXIF 数据,包括黑电平、白平衡增益、颜色校正矩阵和拜耳模式,并将它们输入到可微的 ISP 中。对于颜色滤波阵列(CFA)插值模块,我们特别修改了经典的 AHD 算法以减轻边缘周围的拉链图案。对于全局色调映射模块,我们在训练期间在可微的 ISP 中采用可变曲线。由于色调映射可能会放大噪声并且根据所需的调整而在风格上有所不同,我们随机改变曲线而不是固定它,以更充分地模拟实际情况。该曲线应满足两个约束:首先,它应通过点(0,0)和(1,1);其次,它应单调递增且二阶导数为负。因此,我们使用深度曲线,定义如下:

R n = R n − 1 + α ⋅ R n − 1 ( 1 − R n − 1 ) (3) R_{n} = R_{n-1} + \alpha \cdot R_{n-1} (1 - R_{n-1}) \tag{3} Rn=Rn1+αRn1(1Rn1)(3)

其中 Rn 表示图像 R 经过第 n 次迭代处理后的值,α 是控制色调映射曲线形状的放大比率。在这里,我们设置 n = 2 并从范围 [0,1] 中随机采样 α,得到的曲线如在图 4b 中可视化的那样,足以覆盖大多数情况。

Denoising in Dual-domain

Noise Map 噪声图最初是为 RAW 域去噪而设计的,因为噪声水平与传感器增益高度相关。虽然噪声图并不是新的概念,但我们是第一个在原始域和 sRGB 域中都使用它的人。根据之前的研究工作,泊松分布可以被视为高斯分布的一种特殊情况,因此公式 (1) 可以近似如下:

R ∼ N ( R ∗ , K R ∗ + σ r 2 ) (4) R \sim \mathcal{N}(R^{*}, KR^{*} + \sigma_{r}^{2}) \tag{4} RN(R,KR+σr2)(4)

我们使用干净原始图像的标准差,即 K R ∗ + σ r 2 \sqrt{KR^{*} + \sigma_r^{2}} KR+σr2 来生成噪声图,并通过比较不同的噪声图(包括方差等)进行消融实验以验证其有效性。标准差被证明是作为我们噪声图的最佳选择。需要注意的是,在实际中没有无噪声的 R ∗ R^{*} R,所以我们使用原始图像 R R R 来预测它。此外,我们引入了一个噪声图融合块(NFB),它采用卷积、拼接和切换机制来融合输入图像和噪声图。

以前的工作没有在 sRGB 域中纳入噪声图,因为很难准确预测经过 ISP 非线性放大后的噪声水平。然而,在我们的方法中,我们设法为 sRGB 去噪器估计一个 sRGB 噪声图。由于原始去噪不可避免地会损害细节并产生伪影,所以在给定预测损害强度的噪声图的情况下,后续的 sRGB 去噪有望修复这种损害。我们将原始去噪的噪声图通过可微的 ISP,就像图像信号被处理一样,以获得用于 sRGB 去噪的噪声图,这充分考虑了进入 sRGB 域之前的处理步骤。

Dual-denoising Framework 我们的目的是将双去噪网络插入到目标 ISP 流程中,并且在部署之前,双去噪网络在如图 3 所设计的框架中进行训练。在原始域去噪中,每个 2×2 的拜耳模式最初使用像素解交织操作 pixel-unshuffle 被打包成四个通道,并使用像素交织操作 pixel-shuffle 进行解包。在 sRGB 域去噪中,三个颜色通道直接映射到第一层和最后一层的通道。如前所述,可微的 ISP 和噪声图机制作为双网络之间的 “桥梁”,所以我们在两个域的去噪网络中采用长跳跃连接,使得双网络的协同训练成为可能。

Loss Functions 我们在原始域和 sRGB 域中纳入两个阶段的有监督学习,使用下面定义的损失函数:

L = λ ⋅ ∥ R − R ∗ ∥ 1 + ∥ I − I ∗ ∥ 1 (5) L = \lambda \cdot \left \| R - R^{*} \right \|_1 + \left \| I - I^{*} \right \|_1 \tag{5} L=λRR1+II1(5)

尽管可微的 ISP 使我们的双域模型能够仅使用 sRGB 图像计算损失并优化网络,但添加原始域的监督可以稍微提高去噪性能。在所有实验中我们采用 λ \lambda λ = 1.0。

最后看看文章在实际手机上的降噪效果。
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

详解MySQL安装

目录 Ubantu 1. 使⽤apt安装MySQL 2.查看MySQL状态 3. MySQL 安装安全设置 4.设置密码 卸载MySQL Centos 1. 确认当前的系统版本 2.下载MySQL源 3.安装MySQL 4.启动mysqld 5.查看MySQL状态 6.设置开机自启动 7.查看MySQL密码,并登录 8.修改密码 Ubant…

AndroidStudio-视图基础

一、设置视图的宽高 1.在XML文件中设置视图宽高 视图宽度通过属性android:layout_width表达,视图高度通过属性android:layout_height表达,宽高的取值主要有下列三种: (1)wrap_content:表示与内容自适应。对于文本视图来说&…

【LQ_tips】在DEVc++中的带空格的输入格式

目标输入: 3 4 5 6 关于cin.ignore();的解释: 在 DEV C 或任何其他 C 环境中,如果你的代码没有输出,这可能是由于输入缓冲区的问题。当你使用 cin 读取输入时,如果输入中包含空格,cin 会停止读取。因此&a…

dolphin 配置data 从文件导入hive 实践(一)

datax 支持多种数据源的相互读写,作为开源软件,提供了离线采集功能,方便系统开发,过程中遇到诸多配置,需要开发者自己探索,免费同样有成本 配置模板 {"setting": {},"job": {"s…

计算机网络综合题

IP数据报的划分 CRC差错检测 冗余码的计算 因此,余数是1110,传输的数为11010110111110。在传输过程中最后两位变成o,接收端能够发现,因为11010110111110除以10011余数不为0。 子网划分 暴力求解法 (定长子网划分大量…

Linux系统程序设计--2. 文件I/O

文件I/O 标准C的I/O FILE结构体 下面只列出了5个成员 可以观察到,有些函数没有FILE类型的结构体指针例如printf主要是一些标准输出,因为其内部用到了stdin,stdout,stderr查找文件所在的位置:find \ -name stat.h查找头文件所…

Modbus TCP 西门子PLC与 多个设备进行通讯 使用Modbus Slave模拟多个设备ID

目录 1前言 2相同地址不同ID 1创建连接数据 2创建连接程序 3模块参数设置 4Modbus Slave设置 5成果展示 3结语 1前言 本篇文章讲了PLC如何与同一地址的多个ID设备进行通讯,如果看不懂这篇文章就去看一下这篇博客学一下基础。 Modbus TCP 西门子PLC指令以太…

group_concat配置影响程序出bug

在 ThinkPHP 5 中,想要临时修改 MySQL 数据库的 group_concat_max_len 参数,可以使用 原生 SQL 执行 来修改该值。你可以通过 Db 类来执行 SQL 语句,从而修改会话(Session)级别的变量。 步骤 设置 group_concat_max_l…

UnixBench和Geekbench进行服务器跑分

1 概述 服务器的基准测试,常见的测试工具有UnixBench、Geekbench、sysbench等。本文主要介绍UnixBench和Geekbench。 1.1 UnixBench UnixBench是一款开源的测试UNIX系统基本性能的工具(https://github.com/kdlucas/byte-unixbench)&#x…

皮卡超级壁纸 1.4.1 | 解锁会员版的全景壁纸、动态壁纸和超级壁纸

皮卡超级壁纸是一款提供海量壁纸的应用,不仅包含静态的精美壁纸,还提供了独特的超级壁纸。这些超级壁纸不仅仅是动态效果,还能自动匹配用户的手机UI,提供更加个性化的体验。解锁会员版后,用户可以享受更多高级功能和壁…

怎么查看navicat的数据库密码

步骤1:打开navicat连接数据库工具&#xff0c;顶部的文件栏-导出结果-勾选导出密码-导出 步骤2&#xff1a;导出结果使用NotePad或文本打开&#xff0c;找到&#xff0c;数据库对应的的Password"995E66F64A15F6776“”的值复制下来 <Connection ConnectionName"…

09 Oracle数据拯救:Flashback Technologies精细级数据恢复指南

文章目录 09 Oracle数据拯救&#xff1a;Flashback Technologies精细级数据恢复指南一、Flashback Technologies概览二、Flashback Query&#xff1a;查询过去的数据三、Flashback Table&#xff1a;恢复整个表四、Flashback Database&#xff1a;恢复整个数据库五、总结与最佳…

在vscode中如何利用git 查看某一个文件的提交记录

在 Visual Studio Code (VSCode) 中&#xff0c;你可以使用内置的 Git 集成来查看某个文件的提交历史。以下是具体步骤&#xff1a; 使用 VSCode 内置 Git 功能 打开项目&#xff1a; 打开你的项目文件夹&#xff0c;确保该项目已经是一个 Git 仓库&#xff08;即项目根目录下…

【Qt聊天室客户端】登录窗口

1. 验证码 具体实现 登录界面中创建验证码图片空间&#xff0c;并添加到布局管理器中 主要功能概述&#xff08;创建一个verifycodewidget类专门实现验证码操作&#xff09; 详细代码 // 头文件#ifndef VERIFYCODEWIDGET_H #define VERIFYCODEWIDGET_H#include <QWidget>…

ctfshow(328)--XSS漏洞--存储型XSS

Web328 简单阅读一下页面。 是一个登录系统&#xff0c;存在一个用户管理数据库。 那么我们注册一个账号&#xff0c;在账号或者密码中植入HTML恶意代码&#xff0c;当管理员访问用户管理数据库页面时&#xff0c;就会触发我们的恶意代码。 思路 我们向数据库中写入盗取管理员…

智能电销机器人的操作流程

对于电销行业的人来说&#xff0c;有了智能电销机器人&#xff0c;简直是太省心了&#xff01; 智能外呼机器人&#xff0c;是一款基于人工智能语音外呼系统&#xff0c; 它可以代替人工自动拨打电话&#xff0c;自动筛选客户&#xff0c;自动推送意向客户到你的微信上 &#x…

【ESP】一小时速通入门笔记

【ESP】一小时速通入门笔记 前言: 之前上学时就用过一次esp32, 当时初次使用搭建编译环境费了老大功夫.在我第一篇esp32笔记中也有说明.以至于我好像忘记记录完整的入门笔记了.最近因为工作需要又开始接触esp32才发现,现在已经方便得多了.顺利的话一小时速通. 前排提醒: 本笔记…

Linux【基础篇】

-- 原生罪 linux的入门安装学习 什么是操作系统&#xff1f; 用户通过操作系统和计算机硬件联系使用。桥梁~ 什么是Linux&#xff1f; 他是一套开放源代码&#xff08;在互联网上找到Linux系统的源代码&#xff0c;C语言写出的软件&#xff09;&#xff0c;可以自由 传播&…

Golang | Leetcode Golang题解之第540题有序数组中的单一元素

题目&#xff1a; 题解&#xff1a; func singleNonDuplicate(nums []int) int {low, high : 0, len(nums)-1for low < high {mid : low (high-low)/2mid - mid & 1if nums[mid] nums[mid1] {low mid 2} else {high mid}}return nums[low] }

Python学习从0到1 day26 第三阶段 Spark ⑤ 搜索引擎日志分析

目录 一、搜索引擎日志分析 二、需求1&#xff1a;热门搜索时间段(小时精度)Top3 实现步骤 三、需求2&#xff1a;打印输出:热门搜索词Top3 实现步骤 四、需求3&#xff1a;打印输出:统计hadoop关键字在哪个时段被搜索最多 实现步骤 五、需求4&#xff1a;将数据转换为JSON格式…