摘要
智能手机拍摄的照片数量呈指数级增长。然而,智能手机在尺寸和成本方面的局限性对所采用传感器的质量产生了负面影响。与此同时,他们的计算能力也在稳步提升,允许使用更复杂的处理方法来增强图像。在之前的工作中,与传统和手工制作的方法相比,使用匹配的传感器输出和 DSLR 图像训练的深度神经网络已经显示出可以显着改善图像。我们提出了一种基于注意力的轻量级网络 (LAN),它采用卷积层来学习输入镶嵌和无监督预训练策略。我们的方法在标准基准测试中得到验证,并证明在感知和保真度方面都优于最先进的方法,而不会影响智能手机设备上的 GPU 推理时间。我们的代码位于:github.com/draimundo/LAN
1. Introduction
智能手机摄影在过去几十年中一直在不断发展。最初,智能手机拍摄的图像质量不高,紧凑型相机主导了数码摄影的消费市场。到了2013年,智能手机的销量超过了数码相机,比例为10比1。如今,全球大部分的剧照都是用智能手机拍摄的。虽然通常宣传的输出分辨率相似,但智能手机拍摄的质量仍然不如数码单反相机(DSLR),后者通常具有更好的动态范围、色彩准确性和更少的数字噪音,仅此而已。
与单反相机相比,智能手机的一个缺点是,由于其结构紧凑,集成的镜头和传感器系统尺寸较小,导致信噪比(SNR)较差,并对(未经处理的)图像产生其他不良的物理影响。另一方面,智能手机的计算能力一直在稳步上升,允许使用更强大的方法来弥补硬件限制。
大多数嵌入相机的数字传感器都是基于拜耳滤光片马赛克,这是叠加在数字图像传感器上的彩色滤光片阵列 (CFA),使特定像素对某些波长(主要是绿色、红色、蓝色)更加敏感。这允许成像器捕获场景的颜色信息,并输出 RAW 图像。然而,这种颜色的空间分离需要一个重建步骤,称为去马赛克,以获得在每个像素位置包含完整颜色信息的图像和最终的 RGB 图像。
在经典方法中,这种去马赛克步骤是图像信号处理 (ISP) 系统 [28] 的一部分,它还可以减轻传感器噪声的影响,调整色彩平衡,并提高整体图像质量。即便如此,后者仍受到传感器特性的限制,并且增加的处理通常会以噪声换取提供给最终用户的结果中缺乏细节。
在学习的ISP中,一个深度学习模型被训练为从智能手机传感器的低质量RAW输出中重现用单反相机拍摄的高质量图像,显示出比默认的智能手机输出有很大的改进。我们在以前的结果基础上,表明使用分层卷积层来学习输入的马赛克,极大地提高了清晰度,而没有大量增加移动推理的时间。此外,我们提出了一种无监督的方法,对经典的去马赛克图像进行网络预训练。
作为一个介绍性的例子,图1显示了在这项工作中遇到的不同输出之间的比较。在图1a中,智能手机ISP产生的输出显示了良好的对比度,但细节被水彩效果夸大了,这也冲淡了色调。图1b描述了由数码单反相机拍摄的相同场景,在训练过程中被用作基础真实。最后,图1c和1d显示了使用CSANet[10]获得的结果,这是移动人工智能2021年学习型智能手机ISP挑战赛(MAI21)[13]中质量最高的解决方案,以及所提出的解决方案。请注意色彩平衡和细节上的差异(尤其是在背景的百叶窗上可以看到)。
图 1. 不同输出的质量和一致性。最好在电子版上放大观看。
2. Related Work
在过去几年中,机器学习在RAW到RGB图像映射中的应用越来越流行,这也与最近智能手机计算能力的提升有关。到目前为止,研究一直集中在两个主要目标上:找到一个好的网络设计和训练过程以提高图像质量,以及使网络适应智能手机的计算限制。
智能手机图像增强是通过卷积神经网络 (CNN) 引入的,通过在智能手机-DSLR 图像对上进行训练,将智能手机的 RGB 输出映射到增强的 RGB 版本,如 DPED [14] 中所示。第一个 RAW-to-RGB 数据集 Zurich RAW-Èto-RGB (ZRR) 是为 AIM2019 挑战赛 [15] 引入的,PyNET [17] 建立在该数据集之上,通过使用强大的多-规模网络。在 AIM2020 [16] 上,重点仍然放在图像质量上。最近,轻量级模型也受到关注,特别是在 MAI21 智能手机 ISP 挑战赛 [13] 中,其中评分还包括移动运行时。
联合去马赛克和去噪从使用经典方法开始,表明与按顺序处理问题的解决方案(首先将RAW输入去马赛克为RGB图像,然后进行去噪)相比,结合这两个过程带来了更高的性能[9]。 大规模(部分合成)数据集的建立使CNN的使用成为可能,从而进一步改善结果[7]。 由于噪声在低光照条件下特别明显,Chen等人[3]引入了一个成对的数据集,包括仍然是RAW格式的有噪声的曝光不足的图像,以及长时间曝光的参考RGB图像,以及一个用于从损坏的RAW输入中恢复高质量RGB图像的CNN。
单一图像超分辨率(SISR)的目的是使用在低分辨率和高分辨率的RGB图像对上训练的模型来恢复下采样的RGB图像的细节。最初,CNN被证明优于经典的方法[4]。此后,对结构的调整和增加模型的容量[20, 25, 29]导致了逐步的更好的结果。此外,使用更复杂的损失函数而不是均方误差(MSE)[40],以及像生成对抗网络(GANs)[22]那样并行训练一个判别器,都显示出进一步提高了输出质量。
多帧超分辨率 (MFSR) 组合多个输入帧以提高输出分辨率。这种输入与经典处理方法相结合,已经在旗舰手机上使用,以降低放大和低亮度环境中的噪声水平 [35]。对于这项任务,CNN 也显示出可喜的结果 [1]。这些方法的缺点是它们依赖大量的输入帧 (10-20),因此采集时间长才能获得最佳结果。
高动态范围成像(HDR)的目的是产生与输入相比具有更好动态范围的输出,它可以由单一图像[5, 6, 27]或多个镜头[19, 27, 36, 37]组成。这些模型是用一个综合生成的面(低或HDR)来训练的,在多曝光的情况下,必须处理输入帧之间的移动。
感知-失真权衡是一种观察,通常,获得良好数值结果的模型,似乎在感知上(对人类观看者)质量较低[2]。为了在一定程度上弥补这种影响,已经引入了多种指标,最常用的是VGG损失[18],来自VGG图像分类网络[30]和LPIPS[39]。
图2. 输入patch、扭曲的训练ground truth和通过经典去马赛克获得的ground truth的例子
2.1. Paired RAW-RGB Dataset
MAI2021 数据集 [13] 是使用 Sony IMX586 quad Bayer 移动传感器和 Fujifilm GFX100 DSLR 生成的。通过首先使用经典算法将 RAW 图像转换为 RGB,然后使用 PDC-Net [32] 将 RGB 高质量目标变形为去马赛克输入来调整图像。这不仅试图补偿图像采集过程中相机可能的物理未对准,而且还试图补偿改变图像结构特征的不同传感器特性(例如传感器尺寸、焦距)。在图 1b(未处理的 DSLR 输出)和图 1a 之间可以看出差异,其中左侧的分支不在相同高度与窗口边界相交。虽然这种方法通常会带来良好的结果,但图 2a 显示了来自 MAI2021 数据集的选定输入,2b 中显示的经过处理的 RGB 高质量目标显示出严重的扭曲(warp)。图 2c 显示了在输入 RAW 图像上使用经典的 AMAZE 去马赛克方法 [26] 获得的输出,并显示了更高水平的噪声,但没有变形或对齐问题。扭曲(warping)似乎主要发生在包含重复图案或大平面的图像上,可能是由于错误的关键点匹配。
2.2. Baseline
CSANet [10] 是在 MAI2021 挑战赛 [13] 期间推出的,是具有最高 PSNR(比所有其他解决方案高 0.43dB)、最佳 SSIM 和适中运行时间的解决方案,使其在总体上排名第二。原始架构首先通过空间到深度变换分离颜色通道,使用跨步卷积对输入进行下采样,然后使用两个双注意力模块 (DAM) 学习空间和通道依赖性,最后将图像放大到所需的分辨率首先使用转置卷积,然后使用深度到空间的变换。在最低规模上,跳过连接用于提高可训练性。
如图 4a 所示,DAM 受到卷积块注意模块 (CBAM) [34] 的启发,它结合了空间和通道注意,并被证明可以显着改善分类任务的结果。
Channel Attention 首先在每个特征图上使用全局平均池化,然后使用通道数减少的瓶颈卷积层和最终的维数增加层来恢复通道维度,如图 4b 所示。正如 SENet [11] 中介绍的那样,此操作的结果按通道对输入张量进行加权。
空间注意,如图 4c 所示,基于深度 2−dilated 5×5 卷积来增加感受野,而不会像标准卷积(如 CBAM 中使用的那样)那样增加复杂性。此操作的结果与输入张量相乘,突出显示特定区域。
3. Proposed Method
我们以基线为基础,并在接下来的章节中加入所提出的修改意见。网络结构在图3和图4中得到了直观的描述。
图 3. LAN model。 XpY s 表示内核大小为 X 且步幅为 Y 的卷积层。跳过连接通过加法或串联完成,分别用带圆圈的 + 或 C 符号表示。 DAM 块的详细信息如图 4 所示。
图 4. 子模块详细信息。 XpY s 表示内核大小为 X 且步幅为 Y 的卷积层。 C表示通道级联,×表示逐层乘法。
3.1. Learned Demosaicing
在大多数 RAW 到 RGB 映射 CNN 中,通过在 4 个输入通道中堆叠原始图像中的每个 2x2 块来去除 RAW 输入图像中遇到的拜耳马赛克。这确保了每个通道中的平移颜色不变性,并使输入解释偏向于颜色分离。另一方面,生成的 4 通道输入在其通道之间存在空间错位,因为在原始 RAW 输入中,每个像素都携带有关单独空间位置的信息。使用堆叠方法的一个优点是,对于固定的内核大小,第一层的感受野与平坦输入相比增加了一倍,如扩张卷积 [38] 中遇到的那样。
经典的去马赛克方法通常通过对较大区域进行插值 [8],明确使用不同颜色但相邻像素之间亮度信息的相关性。基于这个概念,另一种方法是在输入端不使用堆叠,但第一个卷积与 RAW 图像进行卷积,步幅为 2,以确保网络可以学习颜色。由于步幅将操作数除以 4,因此全尺寸处理不会显着增加计算成本。此外,移除缓慢的空间到深度操作 [31] 进一步减少了使用移动 GPU 推理时的延迟缺陷。
3.2. High-Level Skip Connection
通过使用学习去马赛克,第一次降维后的特征空间的跨度增加了。这允许在一个跳过的连接中使用产生的特征表示,以规避对高频细节的降采样。然而,为了避免将输入的噪声强加到输出中,它是通过串联而不是加法加入的。与CSANet不同,在最低分辨率下的最终跳过连接是通过加法完成的,以补偿高层修改所增加的部分计算复杂性。
3.3. Classical Pre-Training
如第2.1节所述,训练用的RAW输入与单反相机图像的匹配并非易事,而且往往不完美。即使先进的处理方法可以在一定程度上改善结果,内在的物理传感器参数限制了完美的匹配,而且处理过程会引入进一步的伪影,如图2所示。
尽管经典的联合去马赛克和去噪方法已经不能达到最先进的水平,但它们只依赖于输入图像(一般来说,还有一些用户微调)。 这可以用来预训练网络:而不是从随机映射开始,网络首先使用输入的RAW图像和它们的经典去马赛克的RGB等价物进行一定数量的历时训练。在主要的训练步骤中,网络被输入低质量的RAW图像和DSLR RGB图像,理想情况下只需要学习新的色彩空间和去噪步骤。
此外,这种预训练可以以无监督的方式进行,从而可以轻松地扩展整个网络的训练示例数量,这通常会带来更好的性能。
3.4. Loss Function
我们使用下面几段详述的不同损失类别的组合来建立公式(1)中的损失函数。
***像素损失:***均方误差(MSE 或 ℓ2)损失是超分辨率任务中最常见的损失。一种常用的替代方法是平均绝对误差(MAE 或 ℓ1)[40]。或者,Huber 损失对于小误差表现为 ℓ2,对于较大误差表现为 ℓ1,这使得它在理论上对异常值不那么敏感。
***结构损失:***结构相似性指数度量(SSIM)适用于灰度图像,并基于人类视觉系统(HVS)对由像素及其周围环境组成的纹理比绝对值更敏感的假设。 SSIM 的一个扩展,称为多尺度 SSIM (MS-SSIM),它也在输入的下采样版本上计算 SSIM,并被证明可以提供比原始实现更好的结果 [33]。
***感知损失:***基于感知相似性而不是像素空间相似性的感知损失被引入 SRGAN [23],并显示出比其他损失函数更高的意见得分。 SRGAN 基于在预训练 VGG19 [30] 网络中的第 4 个最大池化层之前使用第 5 个卷积产生的特征映射作为到感知空间的转换。然后将重建图像的特征表示与参考图像之间的欧氏距离用作损失函数。最近,引入了学习感知图像块相似性 (LPIPS) 度量 [39],它基于 VGG [30]、AlexNet [21] 和 SqueezeNet [12] 分类网络来产生分数。使用 AlexNet 或 SqueezeNet 等较小的网络可以使损失反向传播在计算上更容易,并允许增加批量大小。
***色彩损失:**前面提到的损失函数一般会将网络推向高的PSNR和SSIM分数,这是评估图像重建最流行的全参考指标。然而,一些获得高分的网络会出现一些颜色偏差,因为即使是RGB空间的微小变化也会导致大的感知颜色差异。为了弥补这一点,DPED[14]提出计算模糊输出和目标图像之间的MSE,以最小化纹理的影响,并使损失更加全面。另外,我们建议首先使用相同的高斯模糊算子对图像进行模糊处理,其方差为σx,y=3,然后使用线性变换从RGB空间映射到Y’UV空间,再计算增强图像和参考图像的UV(色度)通道间的MSE。
将重建图像记为 ,将真值(ground truth)记为 y,我们使用以下损失函数( 对应于 z 的高斯模糊版本的 U 和 V 通道):
这里的 Huber、Color、MS-SSIM 和 LPIPS (学习感知图像patch相似度Learned Perceptual Image Patch Similarity)损失的加权和。对于验证集上的完全训练模型,系数大约将每个项的大小设置为 1
3.5. Activation Functions
对于局域网,我们建议将基线中使用的ReLU激活改为LeakyReLU(泄漏系数为0.2),并使用缩放的tanh(f(x)=0.58tanh(x)+0.5)代替sigmoid激活,如DPED[14]。后者允许网络达到[0, 1]像素值范围的极值,而不需要使用大系数
4. Experiment
训练是在 Nvidia Titan Xp GPU 上进行的,批量大小为 50。使用 Rectified Adam (RAdam) [24] 算法优化了网络参数。当使用预训练时,它进行 200k 次迭代,学习率为 10−4 恒定。之后,网络在 RAW-RGB 对上进行另外 200k 次迭代训练,学习率相同,并在 50k 次迭代的微调步骤中学习率为 10−5
推理是使用 16 位浮点格式完成的,以模仿最常见的 Bayer RAW 传感器的 10 到 14 位深度。在 MediaTek Dimensity 1000+ APU(特别是 ARM Mali-G77 MC9 GPU)上使用网络的 TFLite 模型评估了推理时间,因为与 CPU 或 NNAPI 推理相比,运行时间快了 4 到 10 倍。与 MAI21 挑战赛一样,推理输出分辨率保持为全高清 (1920 × 1088)
4.1. Datase
使用 MAI21 数据集,原始分割由 93k 训练图像对、2.2k 验证图像对和 3.1k 测试图像对组成。
此外,验证对的 RAW 图像也按照第 1 节中的描述进行了去马赛克处理。 2.1,用作对齐的预训练图像,在第 1 节中提出。 3.3.如果 RAW patches是另一个(可能没有 DSLR ground truth)训练拆分的一部分,则此方法的优势可能更为显着
4.2. Ablation Stud
我们通过分析去除不同修改对像素、结构和感知指标的影响来进行消融研究,并将其与原始CSANet模型进行比较。结果在表1中报告。1. 除原始CSANet外,所有变体的结果都是通过使用公式(1)中介绍的损失函数和第4节中描述的训练过程得到的。CSANet模型的训练采用了原始损失函数和训练方法。我们增加了一个经典的预训练版本来分析性能的提高。
所有 LAN 变体都显示出明显更高的 SSIM 分数,表明纹理再现更好,这可能归因于网络开始时过滤器层之间的空间对齐。这对于高频图案尤其明显,例如图 5 中的车库门
添加预训练步骤可显着提高 PSNR,对于 CSANet 和 LAN 架构都是如此。这可能与输入和地面实况之间的理想对齐有关,并且在第二步中,网络只需要调整到 DSLR 图像的色彩空间,学习去除传感器噪声并为高频数据进行插值,而不是立即学习完整的流水线
最后,使用所有建议修改的 LAN 模型显示了最好的数值和视觉结果,这将在下一节中讨论。
表 1. 消融研究的结果。修改:PT:PreTraining; HS:高级跳跃连接。
表 2. 与 MAI21 智能手机 ISP 挑战的最佳结果比较 [13]。延迟值是在 ARM Mali-G77 MC9 GPU 上针对全高清 (1920 × 1088) 图像计算的。
图 5. 学习去马赛克的效果