《Unprocessing Images for Learned Raw Denoising》论文阅读

摘要

当用于训练的数据与用于评估的数据相似时,机器学习技术最有效。这对于学习过的单图像去噪算法来说是正确的,这些算法应用于真实的原始相机传感器读数,但由于实际的限制,通常在合成图像数据上进行训练。虽然从合成图像推广到真实图像需要仔细考虑相机传感器的噪声特性,图像处理管道的其他方面(如增益、颜色校正和色调映射)常常被忽略,尽管它们对原始测量数据如何转换成最终图像有重要影响。为了解决这个问题,我们提出了一种通过反转图像处理管道的每个步骤来反处理图像的技术,从而使我们能够从普遍可用的互联网照片合成现实的原始传感器测量。此外,在评估我们的损失函数时,我们还对图像处理管道的相关组件建模,这使得训练能够意识到去噪后将发生的所有相关光度处理。通过对训练数据和模型输出进行反处理和处理,我们可以训练出一个简单的卷积神经网络,它的错误率在Darmstadt Noise数据集上比之前的技术低14%-38%,快9-18,也适用于这个数据集之外的传感器数据。

一、引言

传统的单图像去噪算法通常是对图像的性质及其要去除的噪声进行分析建模。相比之下,现代的去噪方法通常使用神经网络来学习从噪声图像到无噪声图像的映射。深度学习能够表示图像和噪声的复杂属性,但是训练这些模型需要大的成对数据集。因此,大多数基于学习的去噪技术依赖于合成训练数据。尽管在设计用于去噪的神经网络方面做了大量的工作,最近的基准测试表明,在对真实的噪声原始图像进行评估时,深度学习模型往往比传统手工设计的算法表现得更好。我们认为,造成这种差异的部分原因是不现实的合成训练数据。由于噪声是加性的、白噪声和高斯噪声的假设,许多经典算法对真实数据的推广效果很差。最近的工作已经发现了这种不准确性,并转移到更复杂的噪声模型,更好地匹配物理图像形成。但是,这些技术没有考虑典型图像处理管道的许多步骤。为了改善人工训练数据与真实原始图像之间的不匹配,一种方法是利用降噪算法所针对的同一摄像机捕获有噪声和无噪声的图像对。然而,捕捉噪声和无噪声的图像对是困难的,需要长时间曝光或多摄图像,以及后处理来应对相机的运动和照明变化。获取这些图像对既昂贵又耗时,而在训练神经网络时,为了防止过度拟合,需要大量的训练数据,这又加剧了这个问题。此外,由于不同的相机传感器表现出不同的噪声特征,将一种学习去噪算法应用到新的相机传感器可能需要捕获新的数据集。

图1 来自Darmstadt噪声数据集的图像,其中我们给出(a)噪声输入图像,(b)地面真值无噪声图像,(c)先前最先进算法的输出,以及(d)模型的输出。四幅图像均由原始Bayer空间转换为sRGB进行可视化。每个结果旁边是三个裁剪的子图像,用最近邻插值渲染。更多结果见补充。

当适当建模时,合成数据是简单和有效的。数字传感器的物理特性和成像管道的步骤已经得到了很好的理解,可以利用它们从几乎任何图像中生成训练数据,只需要使用目标摄像机传感器的基本信息。提出了一种对图像处理管道关键部件建模的系统方法,对一般的互联网图像进行反处理以生成真实的原始数据,并将传统的图像处理操作集成到神经网络的训练中。在Darmstadt Noise数据集中对真实的噪声原始图像进行评估时,我们的模型的错误率降低了14%-38%,比以前的技术水平快了9 -18个百分点。模型输出的可视化结果如图1所示。我们的反处理和处理方法还可以在生成我们的综合训练数据时,泛化没有明确建模设备捕获的图像。本文从以下几个方面展开:第2节对相关工作进行了回顾。在第3节中,我们详细介绍了原始图像处理管道的步骤,并定义了每个步骤的逆过程。在第4节中,我们提出了将一般的网络图像处理为合成原始数据的反处理程序,修改训练损失以适应原始处理,训练我们简单有效的去噪神经网络模型。在第5节中,我们展示了我们的模型在Darmstadt噪声数据集上的改进性能,并提供了一个消融研究,隔离了我们方法的各个方面的相对重要性。

二、相关工作

单幅图像去噪一直是计算机视觉和图像处理领域的研究热点。经典的技术,如各向异性扩散、全变差去噪和小波核取心,在信号和噪声都表现出特定统计规律的前提下,使用手工设计的算法从噪声输入中恢复干净的信号。这些参数化模型虽然简单有效,但其容量和表达能力有限,这使得人们对BM3D和非局部均值等非参数、自相似性驱动的技术越来越感兴趣。从简单的分析技术向数据流方法的转变继续以词典学习和KSVD和专家领域等基本搜索算法的形式进行,这些算法通过查找稀疏性保持或统计规律建模良好的图像表示形式进行操作。在现代,大多数单图像去噪算法完全是数据驱动的,由深度神经网络组成,经过训练可以从噪声图像回归到去噪图像。最经典的去噪工作是在图像噪声为加性、白噪声和高斯噪声的假设下进行的。该模型虽然方便、简单,但并不现实,光子到达传感器的随机过程更适合描述为“拍摄”和“读取”噪声。整体噪声可以更准确地建模为包含高斯和泊松信号相关分量或者从一个方差是强度函数的异方差高斯分布中采样。分析建模图像噪声的一种替代方法是使用真实的噪声和无噪声图像的例子。这可以通过捕捉由一对真实照片组成的数据集来实现,其中一张照片是短曝光,因此会产生噪声,而另一张照片是长曝光,因此基本上没有噪声。这些数据集可以观察到,使用合成数据训练的最新技术被老模型(如BM3D)所超越。因此,最近的工作通过收集这些真实的、成对的数据显示出了进展,这些数据不仅用于评估,而且用于训练模型。这些方法显示了巨大的希望,但将这种技术应用于特定的相机需要大量的艰苦的收集与仅需要合成训练数据或校准参数的老技术相比,该摄像机的训练数据需要完全对齐,大大增加了从业者的负担。此外,还不清楚该数据集采集程序如何用于捕捉小运动无处不在的对象,如水、云、树叶或生物。最近的研究表明,可以使用同一场景的多个噪声图像作为训练数据而不是成对的噪声和无噪声图像,但这并没有很大程度上减轻这些大型真实照片数据集的局限性或劳动要求。虽然人们普遍认为,在图像形成过程中对噪声进行正确的建模是学习有效去噪算法的关键,一个较少被深入探讨的问题是用于将原始传感器读数转换成最终图像的图像处理管道的影响。现代图像处理管道由几个步骤组成,这些步骤转换图像强度,从而影响输入噪声如何缩放或修改,以及最终呈现的图像如何作为原始传感器测量的函数出现。在这项工作中,当为我们的模型合成训练数据时,我们对这些步骤进行建模和反求,并证明这样做可以显著提高去噪性能。

三、方法

这部分描述了传统的图像处理流程,从传感器测量到最终成像的过程。

《Unprocessing Images for Learned Raw Denoising》论文阅读_第1张图片

3.1 :Shot and Read Noise

由于非线性和像素值之间的相关性,processed image中的噪声具有非常复杂的特性,但是raw sensor data(就是raw image)中的噪声就非常简单,主要是两种:

(1)“shot” noise:photon arrival statistics(光子到达统计)

Shot noise是一个泊松随机变量,其均值为真实光强(以光电子测量)

(2)“read” noise:imprecision in the readout circuitry (读出电路中的不精确)

Read noise是一个近似高斯随机变量,均值为零,方差固定。

将两种noise共同近似为单个异方差高斯分布,强度y视为随机变量,方差是真实信号x的函数:

 

 

是由传感器的模拟和数字增益决定( sensor’s analog and digital gains)。

gd: 数字增益。ga:模拟增益。σr2:就是read noise的固定方差。

为了选择合成图像的噪声水平,文中模拟了真实原始图像中不同的shot/read noise参数对和来自该分布的样本的联合分布。

以Darmstadt Noise Dataset数据集为例,shot/read noise因子的合理采样程序是:

《Unprocessing Images for Learned Raw Denoising》论文阅读_第2张图片

 

3.2:Demosaicing

传统相机传感器中的每个像素由单个红色,绿色或蓝色滤色器覆盖,以Bayer模式排列,例如R-G-G-B。恢复图像中每个像素的所有三种颜色测量的过程是一个去马赛克问题。

例如:Darmstadt数据集遵循双线性插值来执行去马赛克方式。

反转在这一步骤可以忽略,对于图像中的每个像素,根据Bayer滤波器模式省略三个颜色值中的两个。

3.3:Digital Gain

相机通常会对图像强度应用数字增益,其中每个图像的特定增益由相机的自动曝光算法选择。这些自动曝光算法通常是专有的“黑匣子”,并且对任意图像很难进行逆处理。但是要将这一步反转为一对合成和真实数据集。方法是找到一个全局缩放,它能匹配两个数据集中所有图像强度的边际统计。

为了产生这种缩放,假设真实和合成图像强度都来自不同的指数分布:

对于x>0。尺度参数λ的最大似然估计简单地是样本均值的倒数,并且缩放x等于λ的逆缩放。这意味着可以通过使用两组样本均值的比率来匹配两组指数均为指数分布的强度。

使用合成数据和达姆施塔特数据集时,此缩放比率为1.25。

为了更全面的数据增强并确保我们的模型在训练期间观察整个[0,1]的像素强度,,而不是应用这种恒定的缩放, 选择1/1.25=0.8为中心的正态分布中采样反向增益,标准差为0.1,导致反向增益大致跨越[0.5, 1.1]。

3.4:White Balance(WB白平衡)

相机记录的图像是场景中灯光颜色和物体的材料颜色的乘积。

相机管道的一个目标是消除一些照明效果,让图片看起来更加自然。

这是通过白平衡算法执行的,该算法使用启发式或统计方法估计图像的红色和蓝色通道的每通道增益。

从合成数据中反转此过程具有挑战性,因为与自动曝光一样,相机的白平衡算法是未知的,因此难以进行逆向工程。

然而,原始图像数据集(如达姆施塔特)记录了他们图像的白平衡元数据,因此可以通过简单地从该数据集中的白平衡增益的经验分布中采样来合成一些实际数据:[1.9,2.4]之间的红色增益和[1.5 , 1.9]中的蓝色增益,然后均匀,独立地采样即可。

当合成训练数据时,对inverse digital white balance gain进行采样,并将它们的乘积来获得每条通道的反向增益,这个反向增益就应用于合成的训练数据。反向增益的值是小于1,意味着,合成图像数据集缺少高亮度(highlights)和没有剪切像素(clipped pixels)。

这是有问题的,因为正确处理饱和图像强度在去噪方面是非常重要的。

为了解决这个问题,应用一个高亮度保留变化函数f(x,g),其中当g≤1或对于一些阈值t = 0.9 x≤t时是线性的,但是当g > 1,x > t时是一个立方变换:

《Unprocessing Images for Learned Raw Denoising》论文阅读_第3张图片

 

这个变换被设计成当x<=t时f(x,g) = x/g,当g<=1时f(1,g) =1,f(x,g)是连续可微的。这个函数用图形4表示。

《Unprocessing Images for Learned Raw Denoising》论文阅读_第4张图片

图4 函数f(x,g)(定义在公式6中)我们用于在保持高光的同时降低合成图像的强度x,得到一组具有代表性的增益{g}。

 

 

3.5:Color Correction

通常,相机传感器的颜色滤镜与sRGB颜色空间所期望的光谱不匹配。为了解决这个问题,相机将应用3x3色彩校正矩阵(CCM)将其自己的相机空间”RGB颜色测量值转换为sRGB值。达姆施塔特数据集由四个摄像头组成,每个摄像头在执行色彩校正时都使用自己的固定CCM为了生成我们的合成数据以便它将推广到数据集中的所有相机,本文对这四个CCM的随机凸组合进行采样,并且对于每个合成图像,我们应用采样CCM的逆采样以撤消颜色校正的效果。

3.6: Gamma Compression

由于人类对图像黑暗区域的渐变更加敏感,伽玛压缩通常用于将更多动态范围的比特分配给低强度像素。本文使用标准gamma曲线,同时注意将输入钳位到ε=10-8的伽马曲线,以防止训练期间数值不稳定:

在生成合成数据时,我们应用此运算符的(略微近似,由于)逆。

《Unprocessing Images for Learned Raw Denoising》论文阅读_第5张图片

图5 (a)来自MIR Flickr数据集的sRGB图像的每个颜色通道的直方图;(b)按照第4.1节列举并在第3节详细说明的过程创建的未处理图像;(c)来自Darmstadt数据集的真实原始图像。注意,真实原始强度的分布和我们的未加工强度是相似的。

《Unprocessing Images for Learned Raw Denoising》论文阅读_第6张图片

 

3.7: Tone Mapping

高动态范围的图像需要极端的色调映射,即使是标准的低动态范围的图像,也经常使用s形曲线来处理,以匹配电影的特征曲线。可以执行更复杂的具有边缘感知的本地音调映射,但是对这种操作进行反向工程是困难的。因此,我们假设色调映射是用一个简单的平滑步长曲线执行的,并且在生成合成数据时使用该曲线的逆。

《Unprocessing Images for Learned Raw Denoising》论文阅读_第7张图片

其中,两者仅在[0,1]中的输入上定义。

四、训练

输入和GT是使用第三部分提出的相机管道逆处理过程得到的,

4.1:Unprocessing Training Images

为了生成真实的合成RAW数据,本文通过对图像处理转换顺序逆变来对图像进行反处理,如图2所示。这包括的逆变有,按顺序,色调映射(3.7节),应用伽玛解压(3.6节),将sRGB应用到相机RGB色彩校正矩阵(3.5节),以及逆变白平衡增益(3.4节)和数字增益(3.3节)。得到的合成RAW图像在训练期间用作无噪声真实状况,并且添加了shot和read噪声(第3.1节)以创建嘈杂的网络输入。我们合成的RAW图像更接近真实的原始强度,如图5所示。

《Unprocessing Images for Learned Raw Denoising》论文阅读_第8张图片

6.我们模型的网络结构。网络输入是4通道噪声马赛克图像,与4通道噪声水平图连接,输出为4通道去噪马赛克图像。

 

4.2:Processing Raw Images

由于RAW图像在被查看之前最终要经过一个图像处理管道(ISP),因此我们模型的输出图像在评估任何损失之前也应该受到这个管道的约束。因此我们RAW处理应用到我们的模型的输出,依次由应用白平衡收益(3.4),双线性去马赛克(3.2),应用色彩校正矩阵从相机RGB转换到sRGB(3.5),和gamma压缩(3.6)。这个简化的图像处理管道与Darmstadt噪声数据集基准中使用的管道相匹配,对于一般的图像管道是一个很好的近似。在计算损失之前,我们将此处理应用于网络输出和地面真值无噪声图像。将这个管道合并到训练中,可以让网络推断出下游处理将如何影响所需的去噪行为。

 

4.3:Architecture

输入:Bayer域中的噪声原始图像

输出:raw格式降噪图像

添加噪声:根据图像的shotread噪声参数,通过网络对输入图像中的噪声标准差进行逐像素估计。

输入为4通道,每个通道对应于R-G-G-B拜耳平面

网络框架:U-Net。在编码器和解码器块之间具有相同规模的skip connect(详见图6),编码时采用盒下采样(box downsampling),解码时采用双线性上采样,PReLU激活函数。

网络预测:噪声残差。

4.4:Training

本文中的训练数据是自己合成的。从MIR Flickr扩展数据集的100万张照片开始,留出5%的数据集用于验证,5%用于测试。

使用高斯2x内核(σ= 1)下采样

训练图像尺寸为128x128

使用unprocessing steps来合成噪声和干净的原始训练对。

Adam,学习率为10^{-4}

本文训练了两个模型,一个针对sRGB错误度量的性能,另一个针对RAW错误度量的性能。对于我们的sRGB模型,在计算损失之前,网络输出和合成地面真值都被转换到sRGB空间,如4.2节所述。我们“RAW”模型直接计算我们的网络输出和我们的RAW合成地面真值之间的损失,没有这个处理。对于这两种实验,本文都将输出图像与地面真值图像之间的L1损耗最小化。

五、结果

1、评估数据集:用了Darmstadt噪声数据集。

《Unprocessing Images for Learned Raw Denoising》论文阅读_第9张图片

VST:方差稳定转换。表中为什么有些算法没有+VST。文中给的解释是,因为这些算法加了VST比没加的效果更好,所以这里只列出效果好的形式。

因为在PSNR和SSIM上的相对改进很难判断,因为这两个指标都被设计成在错误变得很小时达到饱和。所以添加了括号中的指标

括号中是报告性能最好的模型相对于该模型的错误的相对减少,即通过将PSNR转换为RMSE,RMSE\alpha \sqrt{10^{-PSNR/10}}和SSIM到DSSIM ,(DSSIM = (1-SSIM)/2)

 

消融实验:

无CCM、WB、增益表明,在生成合成训练数据时,我们没有执行sRGB对相机RGB CCM反演的反处理步骤,也没有对白平衡和数字增益进行反演。没有色调映射,Gamma表示我们没有执行逆色调映射或Gamma解压缩的反处理步骤。没有反处理表示我们没有执行任何反处理步骤,4 bigger表示我们将每个conv层的通道数量增加了3倍。Noise-blind是指没有将噪声电平作为输入提供给网络。AWGN表明,不使用我们更现实的噪声模型当合成训练数据时,我们使用的加性高斯白噪声σ在0.001~0.15之间均匀取样。没有残差输出表明我们的模型架构直接预测输出图像,而不是预测添加到输入中的残差。

消融实验结果:

移除任何模型组件都会降低质量。性能对我们的噪声建模最为敏感,因为使用高斯噪声会显著降低性能。反处理(Unprocessing)也有很大的贡献,尤其是在使用sRGB度量进行评估时,尽管它比实际的噪声模型稍微小一些。值得注意的是,增加网络大小并不能弥补unprocessing steps的缺失。唯一有效的消融研究是删除了神经网络架构的一个组件(残留输出块),导致最小的性能下降。

最后运行时间:可以看到运行时间非常快。

2、可视化效果

为了验证本文的方法是否适用于其他数据集和设备,文中对HDR+数据集的RAW图像去噪方法进行了评估。

 

《Unprocessing Images for Learned Raw Denoising》论文阅读_第10张图片

图7 来自HDR+数据集图像,与图1相同的格式表示(a)有噪声的输入图像和(b)模型的输出。更多结果见补充。

 

六、总结

通俗的说,本文提出了一种方法,将普通的图片可以处理成类似于真实相机传感器捕获的原始测量数据(通过建模和反转相机图像处理管道的每一步)。神经网络对raw图像进行处理。这样就可以从互联网中获取大量的训练数据。

注:rRAW的原意就是“未经加工”。可以理解为:RAW图像就是CMOS或者CCD图像感应器将捕捉到的光源信号转化为数字信号的原始数据。RAW文件是一种记录了数码相机传感器的原始信息,同时记录了由相机拍摄所产生的一些元数据(Metadata,如ISO的设置、快门速度、光圈值、白平衡等)的文件。RAW是未经处理、也未经压缩的格式,可以把RAW概念化为“原始图像编码数据”或更形象的称为“数字底片”。RAW格式的全称RAW Image Format,在编程中称之为原始。

其优势:

·RAW文件几乎是未经过处理而直接从CCD或CMOS上得到的信息,通过后期处理,摄影师能够最大限度地发挥自己的艺术才华。

·RAW文件并没有白平衡设置,但是真实的数据也没有被改变,就是说作者可以任意的调整色温和白平衡,并且是不会有图像质量损失的。

·颜色线性化和滤波器行列变换在具有微处理器的电脑上处理得更加迅速,这允许应用一些相机上所不允许采用的、较为复杂的运算法则。

·虽然RAW文件附有饱和度、对比度等标记信息,但是其真实的图像数据并没有改变。用户可以自由地对某一张图片进行个性化的调整,而不必基于一、两种预先设定好的模式。

·也许RAW最大的优点就是可以将其转化为16位的图像。也就是有65536个层次可以被调整,这对于JPG文件来说是一个很大的优势。当编辑一个图像的时候,特别是当你需要对阴影区或高光区进行重要调整的时候,这一点非常重要。

你可能感兴趣的:(论文)