Practical Deep Raw Image Denoisingon Mobile Devices

1 篇文章 0 订阅

Abstract

近年来,基于深度学习的图像去噪方法得到了广泛的研究,并在许多公共基准数据集中盛行。然而,最先进的网络计算成本太高,无法直接应用于移动设备。在这项工作中,我们提出了一种轻量级、高效的基于神经网络的原始图像降噪器,它可以在主流移动设备上流畅运行,并产生高质量的降噪结果。我们的主要见解有两个:(1)通过测量和估计传感器噪声水平,在合成传感器特定数据上训练的较小网络可以胜过在一般数据上训练的较大网络; (2) 不同 ISO 设置下的大噪声水平变化可以通过新颖的 k-Sigma 变换消除,从而允许小型网络有效地处理各种噪声水平。我们进行了大量的实验来证明我们方法的效率和准确性。我们提出的移动友好型降噪模型在高通 Snapdragon 855 芯片组上以每百万像素约 70 毫秒的速度运行,它是 2019 年发布的几款旗舰智能手机的夜间拍摄功能的基础。

1 Introduction

近年来,智能手机已成为消费者摄影的首选设备。与单反相机相比,由于使用相对低成本的传感器和镜头,移动设备拍摄的图像更容易受到较高水平的噪声污染,尤其是在弱光场景下。

尽管图像去噪技术已经发展了数十年,但在移动设备上从极其嘈杂的图像中恢复高质量图像仍然具有挑战性。最近,基于深度神经网络(DNN)的去噪方法[36,10,42,21,38,30]取得了巨大的成功,并且优于大多数传统方法[43,12,18,39,40]。然而,由于移动设备上可用的计算资源有限,直接在移动设备上部署这些重量级 DNN 是不切实际的。

在这项工作中,我们提出了一种简单而有效的深度原始图像去噪方法。它可以在现成的智能手机上高效运行,并具有高质量降噪功能。我们的主要观察结果是,特定传感器模型的噪声特性是一致的,并且可以以足够的精度进行测量。通过捕获和建模传感器噪声,我们可以生成具有干净和噪声图像对的合成数据集,并在其上训练轻量级神经网络。经过训练的模型对于同一传感器(即同一智能手机型号)捕获的真实图像仍然非常有效。此外,基于参数传感器噪声模型,我们在亮度空间中推导了一种独特的线性变换,称为 k-Sigma 变换,它将在不同 ISO 设置下捕获的噪声图像映射到 ISO 不变的信号噪声空间中,从而允许单个网络处理不同场景中的不同噪声级别。我们证明,这种方法不仅在理论上很优雅,而且在实践中比为每个 ISO 设置训练单独的模型或在具有不同噪声水平的图像上训练一个大型模型更有效。

总而言之,这项工作的主要贡献如下:

– 一种系统方法,用于估计传感器噪声并使用正确构建的合成数据训练特定于传感器的去噪神经网络。

– 一种新颖的 k-Sigma 变换,可将不同 ISO 设置下的噪声图像映射到 ISO 不变的信号噪声空间。所提出的变换允许在该空间中训练的单个小型网络来处理具有不同噪声水平的图像,而不是根据 ISO 训练单独的模型或更大的模型来覆盖变化。

– 适合移动设备的网络架构,可实现高效的图像去噪。我们对不同的网络架构和去噪方法进行了深入的分析和比较,证明我们的方法具有与最先进的方法兼容的性能,并且计算资源显着减少。

据我们所知,我们的解决方案是第一个实用的基于深度学习的图像去噪方法,在移动设备上具有令人满意的效率和准确性。在图 1 中,我们展示了由现成的智能手机拍摄的示例图像,该智能手机使用我们的低光摄影方法。与默认的 ISP 图像去噪技术相比,我们的结果包含了更多的场景细节。

2 Related work

图像去噪是图像处理和计算机视觉中的一项基本任务。经典方法通常依赖于使用稀疏图像先验,例如非局部均值(NLM)[6]、稀疏编码[13,28,2]、3D变换域滤波(BM3D)[12]等[18, 32]。其中 BM3D 考虑到其准确性和鲁棒性,通常被认为是领先的方法。这些方法大多数是针对一般噪声而设计的,并且没有利用已知的传感器噪声特性。它们的算法复杂性通常很高,使得在智能手机上全面实施变得困难。

随着卷积神经网络(CNN)的最新发展,训练端到端去噪 CNN 受到了相当多的关注。使用多层感知器 (MLP) [7] 的早期工作已经取得了与 BM3D 相当的结果。随着更先进的网络架构的引入,取得了进一步的改进,产生了大量基于CNN的去噪方法[36,10,21,38,30,37,41,23]。这些工作主要集中在新颖的网络结构上以提高准确性,而没有过多关注它们对移动设备的适应性。

我们的工作重点是对原始图像进行去噪,即在去马赛克和其他 ISP 处理之前以原始拜耳格式从传感器读出的图像。在最近提出的公共原始图像去噪基准数据集[1,8,3]上,基于CNN的方法[8,20,17]取得了最好的结果。然而,用干净和嘈杂的图像对构建如此高质量的真实数据集是一项非常乏味的工作。因此,合成用于训练的真实图像噪声的问题也得到了广泛的研究,包括高斯-泊松噪声[16,27]、高斯混合模型(GMM)[44]、相机内过程模拟[25,34]、GAN生成噪声[9]等。事实证明,根据合成数据进行适当训练的网络可以很好地推广到真实数据[42,5]。

移动设备上原始图像去噪的现有最佳实践是捕获并合并多个帧[19,24,31]。这些方法通常需要准确和快速的图像对齐,当场景中存在移动物体时,这很难实现。此外,当噪声水平较高时,对多个帧进行平均可以减少但不能完全消除噪声,从而导致结果不令人满意。据我们所知,我们提出的方法是第一个专为移动设备设计的单帧、基于深度学习的原始图像降噪器。

3 Method

在本节中,我们首先回顾相机传感器的一般与 ISO 相关的噪声模型,然后描述如何在给定新传感器的情况下估计噪声参数。我们进一步展示了如何使用所提出的 k-Sigma 变换合成独立于 ISO 的训练数据,并使用它来训练可以处理各种噪声水平的小型神经网络。

3.1 The Noise Model

相机传感器将曝光时间内撞击像素区域的光子转换为数字化亮度图。如图2所示的光子传输管道所示,该过程包含多个阶段,每个阶段都会引入特定的噪声。让我们首先考虑一个没有噪声的理想系统。在线性相机模型下,在每个像素处,传感器转换是线性放大:

其中 u* 是击中像素区域的预期光子数量,α 是量子效率因子,g 是模拟增益。现在考虑图 2 中管道每个步骤中的系统噪声,我们有:

其中u表示实际收集的光子量,nd ∼ N(0, σ2 d) 和nr ∼ N(0, σ2 r) 是应用模拟增益之​​前和之后的高斯噪声。此外,[14] 证明 u 服从 u* 的泊松分布,由下式给出

结合方程 (1) 至等式(3),我们有:

这与之前的工作中广泛研究的泊松高斯噪声模型一致[16,27]。通过替换 k = gα 和\sigma^{2}=g^{2}\sigma_{d}^{2}+\sigma_{r}^{2} 可以进一步简化该公式:

请注意,k 和 \sigma^{2}都与 g 相关,g 由相机的 ISO 设置决定。

3.2 Parameter Estimation

对等式5中描述的分布进行采样,我们需要在特定传感器的指定 ISO 设置下准确估计 k 和 σ。幸运的是,当我们检查 x 的均值和方差时,如方程6所示,则可以将其转化为如下线性回归问题:

与[15]类似,我们在突发模式下捕获一系列静态灰度图的原始图像,如图3a所示,并根据同一像素位置的一系列亮度值计算E(x)。接下来,如图 3b 所示,我们将具有相同估计亮度的所有像素括起来,并根据它们计算 Var(x)。然后应用线性回归来找到 k 和 σ2 的最佳估计,如图 3c 所示。

3.3 The k-Sigma Transform

在实际应用中,相机会根据场景光照自动调整ISO设置,因此在训练去噪神经网络时必须考虑不同的噪声水平。一个简单的解决方案是训练单个网络来覆盖广泛的 ISO 设置,但随着训练数据中的噪声变化变得相当大,它会给网络本身带来额外的负担。受方差稳定变换 [4,29] 的启发,我们在这里提出 k-Sigma 变换来避免这个问题。

具体来说,我们定义一个线性变换

根据我们的噪声模型方程(5),

为了分析这种分布,通常的简化是将泊松分布 P(λ) 视为 N(λ, λ) 的高斯分布 [16]。所以:

结合方程(8) 和等式(9) 则f(x)的近似分布为:

方程。 (10) 表明 f(x) 的分布仅取决于 f(x*)。如图 4 所示,我们可以训练一个以 f(x) 作为输入并输出 f(^x*) 作为 f(x*) 估计的单个网络。然后可以通过应用反向 k-Sigma 变换 f−1(·) 到 f(ˆx*) 来计算估计的真实图像值 x*。换句话说,我们将 ISO 相关变换应用于神经网络的输入和输出,以便可以使用归一化数据来训练网络,而无需考虑 ISO 设置。

4 Learning to Denoise

4.1 Mobile-friendly Network Architecture

我们进一步引入了一种适合移动设备的卷积神经网络,用于图像去噪,如图 5 所示。我们使用类似 U-Net [33] 的架构,具有 4 个编码器和 4 个带有跳跃连接的解码器阶段,如图 5a 所示。

图5b描述了网络块的详细结构。具体来说,为了在移动设备上运行,我们在所有编码器和解码器阶段使用separable-conv [11]以降低计算成本,并且仅在输入和输出阶段使用普通密集卷积层。在编码器中,我们使用 5×5 内核大小来增加感受野并减少网络深度,并使用 stride-2 卷积对特征图进行下采样。在解码器中,我们仅使用 3 × 3-speconv 和具有 2×2 反卷积的上采样特征图。每个编码器级的输入通过逐元素相加的方式组合到相应的解码器级中,在skip connect中采用3×3-speconv来匹配通道形状。最后,最后一个卷积层输出添加到输入图像上的残差作为去噪结果。

4.2 Training Dataset

为了训练我们的去噪网络,我们需要一对有噪声和干净的 RAW 图像。在本文中,我们使用[8]中提出的黑暗中看到(SID)数据集的子集作为地面真实干净图像。 SID数据集包含索尼α7s II和富士X-T2相机拍摄的RAW图像,我们选择索尼α7s II相机拍摄的10秒和30秒长曝光子集,并手动剔除那些可见噪声的图像,留下214高优质 RAW 图像。

根据第 3 节中描述的噪声模型,如果可以获得干净的 RAW 图像,我们可以通过从泊松高斯分布中采样以及从目标传感器测量的估计噪声参数来合成噪声图像。

4.3 Settings and Details

为了生成训练样本,我们从原始数据集中随机裁剪 1024×1024 大小的拜耳补丁。我们采用[26]中描述的bayer-aug方法,随机水平和垂直翻转,并确保输入拜耳模式为R-G-G-B顺序。然后,我们将拜耳图像打包为 512 × 512 × 4 形状的 RGGB 张量。我们还随机调整裁剪图像的亮度和对比度以进行数据增强。然后根据噪声模型合成噪声图像,噪声参数为随机选择的 ISO 值。最后,我们将 k-Sigma 变换应用于噪声图像和干净图像,以便在独立于 ISO 的空间中训练去噪网络。

我们使用噪声图像和干净图像之间的 l1 距离作为损失函数,并使用 Adam [22] 优化器训练网络。我们采用三角循环学习率调度[35],最大学习率为1e-3,循环步长为50×214次迭代,基础学习率在4000×214次迭代后线性衰减到1e-5。批量大小设置为1,训练在8000×214次迭代时收敛。

5 Experiments

在本节中,我们使用 OPPO Reno-10x 智能手机收集的真实数据集来评估我们的去噪方法。这款智能手机配备了三个后置摄像头,我们使用最常用的主摄像头进行测试。该相机的传感器为索尼IMX586,尺寸为1/2'',48兆像素,像素尺寸为0.8微米。该传感器广泛应用于2019年的多款智能手机中,包括OPPO Reno系列、小米9等。

5.1 Noise Parameters Estimation

我们首先使用3.2节中描述的方法测量和估计噪声参数。我们编写了一个简单的应用程序来使用 Android Camera2 API 收集 RAW 图像,它允许我们手动控制相机的 ISO 和曝光时间。为了保持稳定的光照条件,我们在暗室中使用 Xrite SpectraLight QC 灯箱。在每个 ISO 和曝光时间设置下,我们都会调整光源的亮度以避免曝光过度或不足,并将捕获图像的最终值保持在适当的范围内。

在每个 ISO 设置下,以连拍模式拍摄 64 张 RAW 图像,平均图像被视为干净图像。使用 3.2 节中描述的方法,我们可以估计每个指定 ISO 设置下的噪声参数 k 和 σ2。图6a绘制了测试手机在ISO 4800下的数值-方差曲线,其中散点表示平均图像上每个原始值对应的测量方差,蓝线绘制了方程6的线性回归结果。从图中我们可以看出,我们的理论噪声模型能够很好地拟合测量结果。拟合线的斜率是估计的噪声参数 ˆk,y 截距值是估计的噪声参数 ˆσ2。

IMX586传感器模拟增益的可调范围为[1.0, 64.0],对应OPPO Reno-10x相机的ISO值为[100, 6400]。根据我们的噪声模型方程(4) 参数 k 和 σ2 分别与 ISO 值线性相关和二次相关。我们测量和估计每个 ISO 设置下的噪声参数,并绘制图 6 中的 ISO-k 和 ISO-σ2 曲线。散点代表每个 ISO 设置下的估计噪声参数,图 6b 和 6b 中的蓝线表示图6c分别表示线性和二次拟合曲线,这表明我们的理论模型与测量结果吻合良好。

通过很好地拟合ISO-k和ISO-σ2曲线,可以轻松计算出任何ISO设置下的噪声参数,从而满足合成训练数据和应用k-Sigma变换的要求。

5.2 Test Dataset and Metrics

由于我们提出的去噪网络需要针对特定​​传感器进行训练,因此由于传感器的不匹配,我们无法直接使用 SIDD [1] 等公共基准。因此,我们构建了一个测试数据集来评估我们的去噪方法。

我们在暗室中使用 Xrite SpectraLight QC 灯箱来构建稳定的光照条件。对于每个捕获过程,捕获 64 张 RAW 图像,平均图像可以用作估计的地面实况。如图7所示,我们捕获4个静态场景作为测试图像的内容,并为每个场景设置2个亮度条件。捕捉一个场景时,相机位置和场景内容保持固定。我们在每个场景和亮度下设置了5种曝光组合,分别是ISO-800@160ms、ISO-1600@80ms、ISO3200@40ms、ISO-4800@30ms和ISO-6400@20ms。这些设置共享相同的 ISO 和曝光时间乘积值,因此拍摄的图像具有相似的亮度但不同的噪点水平。

我们使用峰值信噪比(PSNR)和结构相似性(SSIM)来衡量去噪方法的性能。使用简单的后处理流程在 sRGB 域中测量去噪结果和干净图像之间的 PSNR 和 SSIM,包括 (1) 白平衡校正、(2) 去马赛克、(3) 颜色校正和 (4) 伽玛校正。白平衡校正和色彩校正的参数是从RAW图像的元数据中获取的。去马赛克算法为像素分组(PPG),gamma值为2.2。

5.3 Results

我们首先展示我们的方法与[26]中提出的先前最先进的原始图像去噪方法之间的比较,该方法使用 SIDD 数据集进行训练和测试。 [26] 中提出了一种超大型类 UNet 网络,每百万像素需要 1T 乘法累加运算(MAC),并在 NTIRE 2019 去噪挑战中实现了最先进的性能。除了 UNet-1T 架构之外,我们还通过减少通道宽度和层深度来修改网络,以适应各种计算复杂性。我们使用两个不同的数据源训练这些模型:SIDD 数据集和我们的方法生成的训练数据。

如图 8 所示,由于我们精确的噪声建模,使用我们的合成数据训练的模型大大优于使用 SIDD 数据集训练的模型。此外,我们在合成数据上训练的移动友好网络实现了与 UNet-36G 相当的性能,而计算复杂度仅为 UNet-36G 的 10%(3.6G 与 36.3G)。图 9 提供了更多视觉比较。

我们进一步测试了不同模型在移动设备上的实际运行时间,如表 1 所示。我们的适合移动设备的模型可以在 Qualcomm Snapdragon 855 GPU上以 70.70 毫秒(即 12MP 全尺寸图像的 ∼850 毫秒)处理 1024 × 1024 Bayer 输入,而其他性能相当的型号则需要更长的时间,21G 网络为 292ms,36G 网络为 383ms(12MP 为 4.45 秒),这使得它们在移动设备上部署不切实际。

5.4 Ablation Studies

Data synthesis method

为了验证我们的数据合成方法的有效性,我们使用四个不同的训练数据集来训练我们的去噪网络,包括

- 测试集过度拟合:直接使用测试集中的输入和真实数据作为训练数据;

– 合成测试集:使用测试集的真实值并添加合成噪声作为输入;

– 具有噪声缩放的测试集:使用我们的噪声合成方法,但缩放噪声参数以故意与目标传感器不匹配;

– SID:将训练集与第 4.2 节中描述的 SID 数据集合成。

测试结果如表2所示。毫不奇怪,过拟合实验获得了最高的PSNR 40.06dB和SSIM 0.9335,这为这次比较设定了上限。使用我们的合成噪声的测试集取得了第二好的结果,PSNR 为 39.97dB。当通过将 k 和 σ2 缩放 0.5 或 2.0 来使用不准确的噪声参数时,网络会导致本实验中的 PSNR 最低。我们使用 SID 数据集的方法实现了 39.76dB PSNR。

该实验表明,我们的噪声模型和合成噪声能够很好地匹配真实输入噪声的特征,并且测试结果可以接近上限性能。不准确的噪声参数,即使在过度拟合实验中,也会导致明显的性能下降。

Robustness to ISO

我们比较了不同 ISO 设置的几种图像去噪策略,以验证 k-Sigma 变换的有效性。我们比较了处理多个 ISO 设置的两种方法:(1)iso-augmentation:在合成训练样本时随机选择 ISO 设置并将其直接输入到去噪网络中; (2) concat-variance:[5]中提出的方法,其中估计的噪声方差作为 4 个附加通道连接到输入。此外,我们还测试了单 ISO 方法的性能,其中训练数据是使用单 ISO 的噪声参数合成的。

结果如表3所示。concat-variance策略的PSNR达到了39.65 dB,比iso-augmentation策略高了约0.09dB。这意味着明确的噪声水平信息可以帮助模型获得比盲目去噪更好的结果。通过提出的 k-Sigma 变换,我们的网络在本次实验中实现了最高的 PSNR。相比之下,所有单 ISO 方法的性能都比多 ISO 方法差得多。

表 4 给出了对单 ISO 方法和我们的方法的更详细分析,其中测试集中测量的 PSNR 被分组为不同的 ISO 设置。从表中我们可以看到,当测试集的ISO设置与单ISO模型匹配时,可以产生有竞争力的去噪结果。我们基于 k-Sigma 变换的方法在所有 ISO 设置下始终表现良好。

6 Conclusion

我们推出了一款专为移动设备设计的新型原始图像降噪器。通过准确的传感器噪声估计,我们可以利用在特定于传感器的合成数据上训练的轻量级网络,该网络可以很好地推广到真实噪声。我们还提出了 k-Sigma 变换来处理输入和输出数据,以便可以在独立于 ISO 的空间中学习去噪。这使得网络能够处理各种噪声级别,而不会增加网络复杂性。我们的结果表明,所提出的方法可以实现与最先进的方法兼容的性能,这些方法通常采用无法直接应用于移动应用的更大的网络。

在应用中,我们的方法可以集成到现有的相机管道中并替换其去噪组件。由于我们的方法可以生成高质量的去噪原始图像,因此它为 ISP 应用更积极的后处理奠定了坚实的基础。我们的方法已在2019年发布的多款旗舰手机的夜拍模式中得到应用,在移动设备上表现稳定、出色。

未来,我们希望探索如何进一步降低所提出方法的计算复杂度,以便我们可以将其实时应用于视频流。此外,我们相信探索基于深度学习的原始图像处理方法将是有趣且有前途的,这些方法可以改进甚至取代相机的 ISP 管道。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
practical poissonian-gaussian noise modeling and fitting for single-image ra(单幅图像的实用泊松-高斯噪声建模和拟合)是一种用于处理数字图像的方法。图像通常会受到各种噪声的干扰,其中泊松与高斯噪声是最常见的。 泊松噪声是由于光子在相机的图像传感器上随机到达的数量不稳定而产生的。这种噪声的特征是其值在整个图像中有明显的空间相关性,并且通常会在边缘和细节部分更为显著。泊松噪声建模通常通过对每个像素的信号强度建模来实现,可以使用最大似然估计方法来估计泊松参数。然后,可以根据该模型对图像进行降噪处理。 高斯噪声则是由于无法避免的电子噪声、传输噪声和其他干扰因素引起的。这种噪声的特征是其值在整个图像中呈现出随机分布,且无空间相关性。高斯噪声建模可以通过对噪声标准差进行估计来实现,这可以通过图像的局部特性进行参数优化和拟合。 将泊松噪声与高斯噪声结合起来建模和拟合是处理单幅图像噪声的实际需求。这种方法可以最大限度地减少噪声对图像质量的不利影响,并提高图像的清晰度和细节。为此,可以使用适当的算法和技术,如小波去噪、图像增强和傅里叶变换等方法,对噪声进行建模和拟合。 值得注意的是,实际的泊松-高斯噪声建模和拟合需要考虑到图像的特性、噪声的分布特征以及算法的复杂度等因素。这种方法在许多图像处理应用中具有广泛的应用,如医学图像处理、无损图像压缩和计算机视觉等领域,可以改善图像质量,提高图像分析和识别的准确性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值