重新思考原始图像去噪中的噪声合成与建模

原论文标题:Rethinking Noise Synthesis and Modeling in Raw Denoising

发表单位:CUHK-SenseTime Joint Lab, SenseTime Research

论文发表时间:2021年10月

开源代码链接:https://github.com/zhangyi-3/noise-synthesis

在近期的研究中,原始图像去噪因缺乏大规模的真实原始图像去噪数据集而面临挑战。现有的方法无法准确建模所有噪声源,并且为每个传感器建立噪声模型也是繁琐的过程

之前的方法

现有的原始图像噪声合成方法通常分为两个步骤:(1) 建立噪声模型并通过拟合真实噪声分布来优化参数,(2) 从噪声模型中随机生成合成噪声。根据不同的噪声模型,可以将这些方法分为基于物理的统计方法基于深度神经网络(DNN)的方法

基于深度神经网络的方法

深度神经网络(DNN)方法通过深度生成网络(如GAN、Flow)从真实数据集中学习噪声分布。尽管深度模型具有强大的表示能力,但在密集预测任务中生成每个像素的准确值特别困难。在图像生成中,如何生成具有较少伪影的真实细节是一个相对具有挑战性的问题。

基于物理的统计方法

物理统计方法通过遵循特定相机传感器的物理过程,并根据从光子到数字信号的物理过程逐步建模各种噪声源。相比于DNN方法,这些方法更具前景,但也存在明显的局限性。首先,无法准确提取和建模相机中的所有噪声源,因为相机的每个电子元件都可能是噪声源。其次,大多数噪声源的自然分布是未知的,因此大多数情况下基于不准确的分布进行建模。第三,实际噪声分布在不同相机或光照条件下差异很大,这使得物理方法非常繁琐。

要解决的问题

由于实际原始图像噪声由许多噪声源贡献,并且在不同传感器之间差异很大,现有方法无法准确建模所有噪声源。为每个传感器建立噪声模型也非常繁琐。因此,如何高效且准确地为不同相机传感器生成真实的原始图像噪声是一个亟待解决的问题

核心设计

本文提出了一种通过直接从传感器的真实噪声中采样来合成噪声的新视角。它自然地为不同相机传感器生成准确的原始图像噪声。我们提出了两种高效且通用的技术:模式对齐的补丁采样高位重建,分别用于准确合成空间相关噪声和高位噪声。

 

模式对齐的补丁采样

空间相关噪声在低光条件下变得尤为显著。为了保留空间相关噪声,我们使用补丁采样,通过从构建的暗帧数据库中裁剪补丁来合成信号独立的噪声。这样可以在暗帧补丁中保留空间相关噪声。此外,我们观察到原始拜耳模式也会影响噪声分布,因此我们进一步提出模式对齐的补丁采样,确保暗帧补丁与要损坏的干净图像具有完全对齐的拜耳模式。

高位重建

在极低光环境中,信号独立噪声成为主导噪声,这需要准确和高位的合成噪声。我们提出了一种高位重建方法,首先对量化进行逆运算,并在每个量化步长内合成高位值(32位),以细化通过模式对齐补丁采样获得的噪声补丁。

实验结果

为了验证我们提出方法的有效性和通用性,本文在SIDD和ELD数据集上进行了系统性的对比实验。结果表明,方法在不同相机传感器和光照条件下均表现出色

定量结果

表1展示了DNN方法、基于物理的统计方法以及我们提出的真实噪声合成方法在SIDD数据集上的定量结果。

方法PSNRSSIM
NoiseFlow[1]45.000.975
Camera-Aware GAN[7]45.380.976
In-Camera P-G45.390.977
Calibrated P-G45.620.978
Pixel-wise Sampling44.350.971
PAP+HB45.620.978

定性结果

下图展示了在ELD数据集上的定性结果。我们使用不同方法合成噪声来创建训练图像,并保持训练去噪模型时的所有其他设置相同。我们的方法帮助去噪模型保留了更多的细节和生动的颜色。

 

 

 

 

Figure 3: The qualitative results on ELD dataset. We use different methods to synthesize the noise for creating training images. All other settings are kept the same when training the denoising models. 

实现细节

我们的方法主要包括两个部分:信号相关噪声的合成和信号独立噪声的合成。以下是伪代码:

# 合成信号相关噪声
def synthesize_signal_dependent_noise(Y, K_d, K_a):
    I = Y / (K_d * K_a)
    N_p = np.random.poisson(I)
    return K_d * K_a * (I + N_p)

# 合成信号独立噪声
def synthesize_signal_independent_noise(dark_frame_database):
    dark_frame_patch = sample_patch(dark_frame_database)
    high_bit_patch = high_bit_reconstruction(dark_frame_patch)
    return high_bit_patch

# 高位重建
def high_bit_reconstruction(dark_frame_patch):
    continuous_distribution = estimate_distribution(dark_frame_patch)
    high_bit_values = sample_high_bit_values(continuous_distribution)
    return high_bit_values

通过这些方法,我们可以生成符合实际传感器噪声分布的高质量噪声图像,从而提高去噪模型的性能。

总结

本文提出了一种通过直接从传感器的真实噪声中采样来合成噪声的新方法。实验结果表明,我们的方法在不同相机传感器和光照条件下均表现出色,并且在极低光环境下表现尤为突出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值