论文:Physics-guided Noise Neural Proxy for Practical Low-light Raw Image Denoising

今天介绍一篇有关物理噪声建模的文章,降噪一直是图像处理,尤其是暗光环境下的图像处理非常重要的一个算法,而在计算机视觉领域,降噪也一直是非常热门的一个研究方向,无论是图像降噪还是视频降噪,每年都有很多的研究工作发表,而在这些工作中,噪声建模也一直是研究热点。从以前的经典泊松-高斯分布,到如今用神经网络去拟合更复杂的噪声分布,这篇文章就是用网络去拟合噪声分布的一个比较优秀的工作。

Abstract

近年来,训练低光照原始图像去噪方法的主流实践已转向采用合成数据。噪声建模专注于表征真实世界传感器的噪声分布,对合成数据的有效性和实用性具有深远影响。目前,基于物理的噪声建模难以表征完整的真实噪声分布,而基于学习的噪声建模则不切实际地依赖成对真实数据。本文提出了一种新策略:从暗帧(而非成对真实数据)中学习噪声模型,以打破数据依赖性。基于该策略,我们引入了一种高效的物理引导噪声神经代理(PNNP)来近似真实世界的传感器噪声模型。具体而言,我们将物理先验融入神经代理中,并提出三种高效技术:物理引导噪声解耦(PND)、物理引导代理模型(PPM)和可微分布损失(DDL)。其中,PND 将暗帧解耦为不同组件,可灵活处理不同程度的噪声,从而降低了噪声建模的复杂度;PPM 通过融入物理先验来约束生成的噪声,提升了噪声建模的准确性;DDL 为噪声分布提供了明确且可靠的监督,提高了噪声建模的精度。PNNP 在表征真实噪声分布方面展现出强大的潜力。

Introduction

随着摄像头在移动设备中日益普及,提供高质量的摄影体验变得至关重要,尤其是在低光照条件下。低光照环境中不可避免的噪声会导致大量信息丢失,因此低光照原始图像去噪成为一项关键任务。基于学习的去噪方法 [1]、[2]、[3]、[4]、[5]、[6]、[7]、[8]、[9],即通过神经网络学习从含噪图像到清晰图像的映射关系,已成为低光照去噪的主流方法 —— 这类方法能够从海量数据中学习数据先验,从而填补丢失的信息。然而,收集大规模高质量的去噪数据集是一个耗时费力的过程,需要精心准备以确保数据质量 [10]、[11]、[12]、[13]、[14]、[15]、[16]、[17]。因此,基于噪声模型的合成数据进行训练是一种高效且实用的替代方案 [13]、[14]、[18]、[19]、[20]。

噪声建模旨在对传感器噪声进行代理,以用于合成噪声和指导去噪过程。基于物理的噪声建模 [13]、[14]、[21]、[22]、[23]、[24]、[25]、[26]、[27] 作为一种经典且成熟的方法,通过考虑传感器的潜在物理机制和统计特性来进行噪声建模。对于物理机制已知的噪声,基于物理的噪声建模能提供准确且可解释的表征,例如与信号相关的散粒噪声,可等效建模为泊松噪声 [21]、[24]。然而,当噪声的潜在物理机制仅部分已知时,基于物理的方法通常会偏离真实世界的传感器噪声模型。这种偏离在与信号无关的噪声建模中尤为明显 [22]、[24]、[25]、[26]、[27]。为填补这一空白,SFRN [20] 将真实暗帧作为与信号无关的噪声进行捕捉,但有限的采样无法全面覆盖连续的相机设置和噪声分布的整个范围。总之,基于物理的噪声建模面临的主要挑战是在低光照条件下难以精确代理传感器噪声,尤其是与信号无关的噪声。

近年来,基于学习的噪声建模 [28]、[29]、[30]、[31]、[32]、[33]、[34] 已成为一种具有潜力的替代方案。基于学习的噪声建模通常通过在成对真实数据上训练的神经网络,来学习从清晰图像到含噪图像的映射关系。借助大规模高质量数据集,这种方法为近似真实世界的传感器噪声模型提供了新思路,尤其适用于传感器潜在物理机制尚未完全明确的场景。然而,由于数据采集设备的不完善以及不可避免的环境干扰,获取高质量的成对真实数据仍是一项重大挑战 [17]。从数据层面来看,基于学习的噪声建模对高质量成对真实数据的依赖,与其建模的初衷形成了矛盾。此外,现有方法难以从复杂的噪声分布中准确提取噪声模型 [32]、[33]。由于缺乏能精确近似复杂噪声分布的高精度测量技术,基于学习的噪声建模在实际场景中往往难以奏效 [14]、[20]。总之,基于学习的噪声建模面临的主要挑战在于:获取高质量成对真实数据存在固有困难,且难以对复杂噪声分布进行近似。

为解决上述挑战,我们提出一种新策略:从暗帧而非成对真实数据中学习噪声模型。一方面,采集暗帧比收集成对真实数据容易得多,这打破了噪声建模对高质量成对真实数据的依赖;另一方面,暗帧仅表征与信号无关的噪声,这降低了噪声分布近似的难度。基于这一策略,我们引入了物理引导的噪声神经代理(PNNP)框架。该框架利用传感器的物理先验对复杂噪声进行解耦、约束优化过程并提供可靠监督。通过对暗帧的充分利用,我们的框架能够更好地近似真实世界的传感器噪声模型。

首先,我们提出了物理引导噪声解耦(PND)方法,以灵活处理不同程度的噪声。基于噪声的统计特性,我们将暗帧解耦为帧级、带状级和像素级三个组件。对于帧级和带状噪声,我们采用基于物理的噪声建模方法;而对于像素级噪声,则通过神经网络进行代理。这种噪声解耦策略简化了噪声建模的复杂度,从而降低了噪声建模的难度。

此外,我们提出了一种融入物理先验的物理引导代理模型(PPM),用于约束生成的噪声。参考传感器的成像过程,我们设计了一种可解释的网络架构来实现物理约束。该代理模型基于物理先验限制优化过程中的自由度,从而提高噪声建模的准确性。

最后,我们提出了一种可微分布损失(DDL),用于高效监督分布学习过程。通过对噪声分布的累积分布函数(CDF)进行插值,我们设计了一种可微损失函数,能够直接度量像素级的噪声分布。该损失函数为噪声建模提供了明确且可靠的监督信号,从而提高了噪声建模的精度。

Method

Strategy and Framework

在这里插入图片描述

  • 图 1

为便于清晰理解我们的策略与框架,我们将首先简要概述通用的传感器成像模型。在传感器成像过程中,入射的场景辐照度 III 会经历一系列转换,包括转化为电荷、进而转化为电压,经放大器放大后,再由模数转换器(ADC)量化为数字信号 DDD [24]。对于传感器拍摄的原始图像,其成像模型可表示为:

D=K(I+Np)+Nindep(1) D = K(I + N_{p}) + N_{indep} \tag{1} D=K(I+Np)+Nindep(1)

其中,KKK 代表整体系统增益,NpN_pNp 是与信号相关的光子散粒噪声,NindepN_{indep}Nindep 是与信号无关的噪声。通用噪声模型可提取为:

N=KNp+Nindep(2) N = K N_p + N_{indep} \tag{2} N=KNp+Nindep(2)

在通用噪声模型中,基于光电效应的散粒噪声模型因其物理过程明确,具有较高的可靠性,可建模为:

(I+Np)∼P(I)(3) (I+N_p) \sim \mathcal{P}(I) \tag{3} (I+Np)P(I)(3)

其中,P(⋅)\mathcal{P}(\cdot)P() 表示泊松分布。相比之下,与信号无关的噪声来源极为复杂,成像领域对于其噪声模型尚未达成共识 [22]、[24]、[26]、[27]、[47]、[48]。在低光照条件下,与信号无关的噪声所占比重远高于正常光照条件,因此更凸显了精确噪声建模的必要性。

为实现精确的噪声建模,一些先进的噪声建模方法 [32]、[33]、[34] 尝试将基于物理的方法与基于学习的方法相结合。然而,如表 1 所示,这些方法受限于对高质量成对真实数据的依赖,实用性因此受到制约。为使噪声建模摆脱数据依赖的束缚,并进一步提升噪声建模的准确性,我们提出了一种新策略:从暗帧而非成对真实数据中学习噪声模型。基于这一策略,我们引入了一种新型噪声建模框架 —— 物理引导的噪声神经代理(PNNP),如图 1 所示。

PNNP 的第一步是物理引导噪声解耦。暗帧是在无光环境下拍摄的图像,包含了完整的与信号无关的噪声。我们将暗帧解耦为三个独立的层级,其形式可表示为:

Nindep=Nframe+Nband+Npixel(4) N_{indep} = N_{frame} + N_{band} + N_{pixel} \tag{4} Nindep=Nframe+Nband+Npixel(4)

其中,NframeN_{frame}Nframe 代表时间稳定的帧级噪声,NbandN_{band}Nband 代表与行或列相关的带状级噪声,NpixelN_{pixel}Npixel代表独立同分布(i.i.d.)的像素级噪声。

我们利用帧级噪声和带状级噪声,采用已有的基于物理的噪声校准方法 [13]、[14]、[49] 对其各自的噪声模型进行校准。值得注意的是,我们的主要研究重点在于对像素级噪声进行精确建模 —— 这是以往基于物理的噪声建模方法面临的一项挑战。因此,我们采用一个强大的神经网络作为像素级噪声的代理模型。解耦后的像素级噪声具有空间独立性这一优良特性,这是一项宝贵的物理先验。为充分利用这一物理先验,我们引入 PPM 来表征像素级噪声,并利用 DDL 来度量分布距离。通过精确高效的训练,我们能够得到像素级噪声模型。关于 PND、PPM 和 DDL 的具体实现细节,将在本文后续章节中详细阐述。

Physics-guided Noise Decoupling

在这里插入图片描述

  • 图 2

已有研究 [49] 强调了噪声解耦在降低数据映射复杂度和提升去噪性能方面的优势。我们将这一理念拓展至噪声建模领域,证明噪声解耦的优势不仅限于去噪任务。通过采用不同的建模方法处理不同层级的噪声,我们能够有效降低噪声建模的复杂度。根据噪声的物理机制和统计特性,我们将暗帧解耦为三种模式差异显著的独立噪声类型:帧级噪声、波段级噪声和像素级噪声。暗帧的解耦过程如图 2 所示。PND 的核心思想是:噪声神经代理应仅聚焦于噪声的未知部分。经过简化的真实噪声,为数据映射的可学习性带来了优势。

首先,在无光环境下拍摄的原始暗帧被表示为具有量化间隔的离散信号。在解耦过程中,我们首先采用帧级解耦 [17] 来校准并消除帧级噪声NframeN_{frame}Nframe。由此得到的无帧级噪声暗帧不再表现出明显的空间非均匀性,并保留了各类随机噪声成分。随后,我们采用带状级解耦 [14] 来校准并消除带状级噪声NbandN_{band}Nband,最终得到无空间相关性的暗帧,其中仅剩余独立同分布(i.i.d.)的像素级噪声。由于原始暗帧采用低比特量化,像素级噪声的分布会呈现出由量化引起的信号错位所导致的周期性波动,如图 2 所示。为减轻量化引起的信号错位对噪声神经代理的影响,我们通过高比特重建 [20] 消除量化噪声的干扰。最终得到的高比特像素级噪声NpixelN_{pixel}Npixel将作为后续噪声神经代理建模的真值(ground truth)。图 2 中观察到的噪声分布和噪声强度(标准差)的显著变化,证明了我们提出的物理引导噪声解耦(PND)的有效性。

帧级噪声也称为暗阴影 [22],代表与信号无关的噪声中的时间稳定成分,既包括空间不变的黑电平误差(BLE)[14]、[52],也包括空间变化的固定模式噪声(FPN)[24]、[25]、[27]、[48]、[53]。借鉴以往研究 [17],我们首先计算相同 ISO 下暗帧的平均值,以估计该 ISO 特定的帧级噪声。然后,我们采用线性暗阴影模型对不同 ISO 下的特定帧级噪声进行拟合,作为最终的帧级噪声模型。

Nframe=NFPNk⋅iso+NFPNb+BLE(iso)(5) N_{frame} = N_{FPNk} \cdot iso + N_{FPNb} + BLE(iso) \tag{5} Nframe=NFPNkiso+NFPNb+BLE(iso)(5)

其中,NFPNk∈RH×WN_{FPNk} \in \mathbb{R}^{H \times W}NFPNkRH×WNFPNb∈RH×WN_{FPNb} \in \mathbb{R}^{H \times W}NFPNbRH×W 是需要回归的固定模式噪声(FPN)系数图,isoisoiso 为感光度值,BLE(iso)BLE(iso)BLE(iso) 是特定感光度值 isoisoiso 下的黑电平误差(BLE)。在训练过程中,我们对每个参数引入微小扰动,以模拟校准误差。

带状级噪声主要可分为行噪声NrowN_{row}Nrow和列噪声NcolN_{col}Ncol,它们通常与传感器电路的工作频率和读出机制相关。

Nband=Nrow+Ncol(6) N_{band} = N_{row} + N_{col} \tag{6} Nband=Nrow+Ncol(6)

借鉴以往研究 [13]、[14],我们将波段级噪声建模为零均值高斯噪声:

Nrow∼N(0,σrow2),Ncol∼N(0,σcol2)(7) N_{row} \sim \mathcal{N}(0, \sigma_{row}^2),N_{col} \sim \mathcal{N}(0, \sigma_{col}^2) \tag{7} NrowN(0,σrow2)NcolN(0,σcol2)(7)

其中 Nrow∈RH×1N_{row} \in \mathbb{R}^{H \times 1}NrowRH×1Ncol∈R1×WN_{col} \in \mathbb{R}^{1 \times W}NcolR1×W

带状级噪声可通过计算暗帧中每行或每列的均值轻松估计。拟合优度可通过概率图中的决定系数(记为R2R^2R2)[54] 进行评估。在我们的实验中,用高斯分布拟合波段级噪声的R2R^2R2值超过 0.999,这表明波段级噪声与高斯分布假设具有很强的吻合度。

经过上述物理引导噪声解耦后,剩余的噪声即为像素级噪声,可视为传感器内所有独立同分布(i.i.d.)噪声的集合。如本节开头所述,通过噪声解耦得到的像素级噪声存在量化引起的信号错位问题。因此,我们采用 SFRN [20] 中提出的高比特重建技术对像素级噪声进行重建。值得注意的是,SFRN 并未在高比特重建前进行噪声解耦,导致产生非独立同分布信号,从而影响高比特重建的准确性。而高比特重建技术的有效性依赖于我们提出的噪声解耦策略,这一点是现有研究中未考虑的。

总之,物理引导噪声解耦策略简化了噪声建模的复杂度,进而降低了噪声建模的难度。

Physics-guided Proxy Model

在这里插入图片描述

  • 图 3

如图 3 所示,我们提出了物理引导代理模型(PPM),以基于物理先验约束优化过程。我们的整体网络架构采用轻量级双分支设计。PPM 的输入是服从标准正态分布的随机噪声 N1N_1N1N2N_2N2。我们将输入分为两部分,分别送入 ISO 依赖分支和 ISO 独立分支。网络的两个分支具有相同的结构,包括 1×1 卷积、Swish 激活函数 [55] 以及由这些操作构成的残差块(ResBlocks)。遵循传感器的物理成像过程,ISO 依赖分支的输出 NpreN_{pre}Npre 通过增益层 g(iso)g(iso)g(iso) 进行放大,而 ISO 独立分支的输出 NfolN_{fol}Nfol 则不随 ISO 变化而改变。双分支输出之和即为像素级噪声 NpixelN_{pixel}Npixel,代表我们代理模型的噪声转换结果。我们使用分位数损失 LquantileL_{quantile}Lquantile 和累积分布函数(CDF)损失LCDFL_{CDF}LCDF来监督模型,其中高比特像素级噪声N^pixel\hat{N}_{pixel}N^pixel 作为真值(ground truth)。该过程可概括为:

Npixel=PPM(N1,N2,iso)(8) N_{pixel} = \text{PPM}(N_1, N_2, iso) \tag{8} Npixel=PPM(N1,N2,iso)(8)

其中,N1,N2,Npixel∈RH×WN_1, N_2, N_{pixel} \in \mathbb{R}^{H \times W}N1,N2,NpixelRH×W

我们将详细说明网络中融入的两种物理引导设计。

首先,我们介绍像素级独立模块的设计。考虑到像素级噪声的独立同分布(i.i.d.)特性,所有模块设计均采用空间独立操作,使用 1×1 卷积而非 3×3 卷积。尽管 3×3 卷积在优化自由度方面具有理论优势(因其搜索空间包含 1×1 卷积的搜索空间),但在实际场景中,3×3 卷积可能会陷入优化陷阱。3×3 卷积中(除中心参数外)非零参数的存在会引入空间相关性,这与像素级空间独立性的先验假设相矛盾。值得强调的是,大多数基于学习的方法 [29]、[30]、[31]、[32],包括基于流的方法 [28]、[33],都会引入空间相关性。此外,物理引导噪声解耦(PND)的显著特点 —— 将噪声解耦为空间独立的像素级噪声,是 1×1 卷积效能得以优势的充分条件。因此,在代理模型中使用 1×1 卷积看似简单,实则意义重大。通过遵循 1×1 卷积的结构约束,代理模型在恪守空间独立性先验假设的同时,显著降低了自身的优化自由度。

接下来,我们介绍 ISO 感知双分支的设计。噪声模式受传感器电路中的模拟放大器影响显著。受模拟放大器中噪声放大物理原理的启发,我们将网络分为 ISO 依赖分支和 ISO 独立分支。通常情况下,传感器增益随 ISO 呈线性增长。因此,我们基于线性增益先验设计了一个 ISO 依赖增益层 g(iso)g(iso)g(iso),它等同于模拟增益 K。本文中,我们将增益层 g(iso)g(iso)g(iso) 定义为一个可学习的查找表(LUT),并使用噪声校准得到的参数对其进行初始化。通过 ISO 感知双分支网络的显式建模,代理模型在保持可解释性的同时,有效衔接了不同 ISO 水平下的噪声模型。

总之,物理引导代理模型基于物理先验限制了优化过程中的自由度,从而提高了噪声建模的准确性。

Differentiable Distribution Loss

在这里插入图片描述

在基于学习的噪声建模中,损失函数的选择是一项重大挑战,因为很难基于一组噪声精确测量噪声分布之间的距离。以往的方法只能通过间接方式测量分布来训练神经网络。一种常用方法是采用生成对抗网络(GANs)[56]。GANs 利用神经网络提取噪声特征并估计这些特征之间的距离,从而间接量化噪声分布之间的距离。然而,众所周知,GANs 容易出现不稳定和过拟合问题,在噪声建模中往往需要精心初始化才能有效收敛。另一种常用方法是采用归一化流(normalizing flow)[50]。基于流的模型的可逆神经网络具有双射性。通过学习从未知真实噪声到已知高斯噪声的转换过程,该模型可以同时学习反向过程,这相当于进行噪声建模。但这种严格的可逆性也限制了基于流的模型的性能,导致噪声模型出现欠拟合。

我们提出的新型噪声解耦策略分离出了无空间相关性的像素级噪声,这为噪声建模的损失函数设计带来了新的机遇。我们观察到,独立同分布(i.i.d.)像素级噪声的分布函数本身即可作为噪声模型的一种表征。基于这一见解,我们提出了分布距离损失(DDL),它利用累积分布函数(CDFs)对噪声分布进行精确且可解释的度量。我们没有强迫复杂的数据去适配度量方法,而是通过简化数据以契合可靠的度量技术。

分布距离损失(DDL)包含两种新型分布损失:分位数损失LquantileL_{\text{quantile}}Lquantile和累积分布函数(CDF)损失LCDFL_{\text{CDF}}LCDF。分位数是将概率分布划分为等份的数值,而累积分布函数则描述随机变量取值小于或等于某一给定值的概率 [54]。在图 4 (a) 中,分位数和累积分布函数值分别构成了累积分布函数图的横轴和纵轴。该累积分布函数图启发我们通过对应分位数和累积分布函数值的差异来度量分布点之间的距离,这构成了分位数损失和累积分布函数损失的设计基础。

值得注意的是,若要使用分布损失函数训练神经网络,尽管噪声样本具有离散性,但整个损失计算过程必须是完全可微的。我们利用了排序和归一化操作本身具有梯度保持性这一特性,从而为这些离散数据点推导出累积分布函数(CDF)的可微近似。因此,这确保了 CDF 查询以及整个损失计算流程的可微性。

例如,在计算累积分布函数(CDF)时,给定一组包含 nnn 个噪声样本的数据,第 iii 个最小值 pip_ipi 的 CDF 可表示为 F(i)=i/nF(i) = i/nF(i)=i/n。若要查询某一数值对应的 CDF 值,需通过二分查找定位到最小索引 iii,使得该索引对应的样本值 qiq_iqi 大于给定值 qqq。随后,如图 4 (b) 所示,通过线性插值计算相邻样本 qi−1q_{i-1}qi1qiq_iqi 之间的查询结果 ppp

p=F(q)=(i−qi−qqi−qi−1)/n(9) p = F(q) = (i - \frac{q_i - q}{q_i - q_{i-1}}) / n \tag{9} p=F(q)=(iqiqi1qiq)/n(9)

其中,我们在数据集中附加了负无穷大值,并进行了相应调整以支持任意查询。

上述过程仅涉及可微操作,从而确保了分布损失函数的可微性。对于分位数损失的推导,我们采用了类似但此处未详述的方法。

接下来,我们对分位数损失 LquantileL_{\text{quantile}}Lquantile 和累积分布函数(CDF)损失 LCDFL_{\text{CDF}}LCDF 进行正式定义。对于任意像素级噪声 NpixelN_{\text{pixel}}Npixel,其累积分布函数记为 FFF,分位数函数记为F−1F^{-1}F1。给定像素级噪声NpixelN_{\text{pixel}}Npixel、高比特像素级噪声N^pixel\hat{N}_{\text{pixel}}N^pixel以及一组查询值采样点 Q={qk∣k=1,2,...,N}Q = \{q_k | k = 1, 2, ..., N\}Q={qkk=1,2,...,N},CDF 损失定义为:

LCDF=∑k=1N∣Fout(qk)−Freal(qk)∣(10) L_{\text{CDF}} = \sum_{k=1}^{N} |F_{\text{out}}(q_k) - F_{\text{real}}(q_k)| \tag{10} LCDF=k=1NFout(qk)Freal(qk)(10)

其中,FoutF_{\text{out}}FoutFrealF_{\text{real}}Freal分别代表像素级噪声NpixelN_{\text{pixel}}Npixel和高比特像素级噪声 N^pixel\hat{N}_{\text{pixel}}N^pixel 的累积分布函数(CDF)。同理,分位数损失 LquantileL_{\text{quantile}}Lquantile 定义为:

Lquantile=∑k=1N∣Fout−1(pk)−Freal−1(pk)∣(11) L_{\text{quantile}} = \sum_{k=1}^{N} |F_{\text{out}}^{-1}(p_k) - F_{\text{real}}^{-1}(p_k)| \tag{11} Lquantile=k=1NFout1(pk)Freal1(pk)(11)

其中,Fout−1F_{\text{out}}^{-1}Fout1Freal−1F_{\text{real}}^{-1}Freal1 分别代表像素级噪声 NpixelN_{\text{pixel}}Npixel 和高比特像素级噪声 N^pixel\hat{N}_{\text{pixel}}N^pixel 的分位数函数。通常情况下,单次查询操作仅能对查询值附近的两个样本提供监督。因此,查询值的采样策略对损失函数的效率起着至关重要的作用。我们设计了一种随机采样策略,通过对固定样本引入微小扰动,增强监督的鲁棒性。具体而言,我们首先以标准正态分布上的均匀采样作为基准,以均匀覆盖整个噪声分布;随后在基准周围添加高斯扰动,以增加监督点的多样性;同时对查询值进行截断处理,避免数值溢出。总之,该分布损失函数为噪声模型提供了明确且可靠的监督,从而提升了噪声建模的精度。

Experiment

Noise Modeling 在 SID 数据集 [12] 和 ELD 数据集 [13]、[14] 上进行噪声建模所用的暗帧,是通过一台 Sony A7S2 相机拍摄的。该相机与公开数据集采用相同的传感器,但并非同一台相机。我们为物理引导噪声代理模型(PNNP)每个 ISO 准备了 5 帧暗帧。经过物理引导噪声解耦后,在训练物理引导代理模型(PPM)时,每一步会随机裁剪出 1024×1024 的图像块。我们使用 Adam 优化器 [57] 对 PPM 进行训练,每个 ISO 下训练 1000 步。每一步会根据分布距离损失(DDL)的随机采样策略,采样 10⁶个查询值。学习率的变化模式与 SGDR [58] 类似,基础学习率设为 1×10⁻²,最小学习率设为 1×10⁻⁵。在 LRID 数据集 [17] 上的训练设置遵循相同流程。

受以往研究 [13]、[14]、[52] 的启发,我们在标定时会基于高斯误差假设,记录与每种噪声(包括线性暗阴影)相关的误差。在合成噪声时,我们根据这些记录的误差对噪声参数进行扰动,从而使去噪模型具备更强的鲁棒性。

Low-light Raw Image Denoising 我们采用与 ELD 相同的 UNet 架构 [59] 进行去噪。对于 SID 数据集和 ELD 数据集,我们利用 SID Sony 训练集中的原始图像来合成训练数据。定量结果在 ELD Sony 数据集和整个 SID Sony 数据集(包括验证集和测试集)上报告。对于 LRID 数据集,我们基于训练集中的干净图像合成训练数据,定量结果在官方测试集上报告。我们采用了暗阴影校正策略 [17],因此在推理前会对帧级噪声进行校正。训练时,我们将原始图像打包为 4 通道,并将每个图像裁剪为不重叠的 512×512 图像块。这些图像块会被随机旋转和翻转后组成一个批次。为了便于查看,我们基于参考图像的元数据,通过 RawPy(LibRaw 的 Python 包装器)将原始图像可视化为 sRGB 图像。所有定量结果均在原始图像上计算得出。

我们使用 Adam 优化器和 L1 损失函数训练去噪模型。每个 epoch 包含来自不同场景和曝光比的数据对。学习率随迭代次数的变化模式与 SGDR 类似。整个训练过程包含 1000 个 epoch,其中每个 epoch 会遍历每种曝光比下的一张带噪图像。训练过程分为两个不同阶段:一个是持续 600 个 epoch 的粗调阶段,初始基础学习率为 2×10⁻⁴;随后是持续 400 个 epoch 的微调阶段,基础学习率降至 1×10⁻⁴。两个阶段的最小学习率均为 1×10⁻⁵。优化器每 200 个 epoch 重启一次,且每次重启时学习率减半。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐