极低照明度下,传统增加亮度的方法会放大噪点和色彩失真。而最近 UIUC 和英特尔的研究者通过全卷积网络处理这一类黑黑的照明度图像,并在抑噪和保真的条件下将它们恢复到正常亮度。这种端到端的方法将为机器赋予强大的夜视能力,且还不需要额外的硬件。
噪声或噪点在成像系统中普遍存在,它会使弱光环境下的成像十分困难。提高 ISO 值可以增加亮度,但同时也会放大噪点。我们虽然可以用缩放或直方图拉伸等后期处理方式来降低前述影响,但这并不能解决光子数低导致的低信噪比(SNR)问题。有一些物理手段可以提高弱光环境的信噪比,比如增大光圈、延长曝光时间和使用闪光灯等,但是每一种方法都有其缺点。例如,增加曝光时间在不采用三脚架的条件下会导致(成像)模糊。
弱光环境快速成像在计算摄影界是众所周知的难,但相关研究仍在进行。研究人员已经提出了图像去噪、去模糊和增强低照度图像的技术 [34,16,42]。这些技术通常假定图像是在略微昏暗的环境中捕捉,并且噪声不大。相比之下,我们对光照严重受限(如月光)和短时间曝光(甚至是视频速率)等极低照度环境成像更感兴趣。在这些场景中,传统的相机处理流程完全没用,图像必须通过原始传感器数据进行重建。
图 1 说明了我们的环境配置。环境非常暗:相机处照度低于 0.1 勒克斯。曝光时间设定为 1/30 秒。光圈为 f / 5.6。在 ISO 为 8000(一般情况下被认为是一个较高的值)时,尽管使用具有高感光度的全画幅索尼传感器,相机仍会产生基本上为黑色的图像。ISO 为 409600 时(大部分相机达不到这个水平),场景内容可辨,但图像暗淡、噪声多且色彩失真。即使是最先进的去噪技术 [32] 也不能消除这种噪声或解决色偏问题。一种解决办法是使用一组连拍图像 [24,14] 合成,但在极低照度的情况下,连拍对齐算法也很容易会失败,并且连拍流程不能用于视频捕捉。
图 1:使用卷积网络得到的低照度图像(昏暗的室内环境,相机的照度(illuminance)<0.1 勒克斯,索尼 α7SII 传感器曝光 1/30 秒)。(a)ISO 为 8000 的相机得到的图像。(b)ISO 为 409600 的相机得到的图像。图像受到了噪音和颜色偏差的影响。(c)基于(a)中原始传感器数据,并经过我们提供的卷积网络处理得到的图像。
我们提出了一种新的图像处理流程,即通过数据驱动的方式解决极低照度环境摄像问题。具体来说,我们通过训练深度神经网络得到一个处理低光度原始数据的图像处理流程,包括颜色转换、去除马赛克、降噪和图像增强。端到端的训练流程可以避免噪声放大和误差累积,这也是传统相机处理流程的特点。
大多数现有处理低照度图像的方法都是在合成数据或无效的低照度图像上进行评估的。就我们所知,还没有合适的、能用于训练或测试处理快速低照度图像技术的数据集。因此,我们收集了一些在低照度条件下快速曝光拍摄的原始图像作为新数据集。每个低照度图像都具有对应的长曝光高质量参考图像。我们在新数据集上取得了良好的成果:低照度图像被放大了 300 倍的同时,其噪声也得到了有效的抑制且颜色转换正确。
表 1:SID 数据集包含 5094 个原始短时曝光图像,每个图像都有一个长时间曝光图像作为对应参考。图像由两台相机收集(顶部和底部)。从左到右分别是:输入图像和参考图像的曝光时间比、滤波器阵列、输入图像的曝光时间以及每种情况的图像数量。
图 2:SID 数据集中的示例图像。前两排是户外图像,下面是室内图像。长时间曝光的参考图像(有效)在前面显示,短时曝光的输入 图像(基本黑色)在有效图像后面显示。室外相机处照度一般在 0.2 到 5 勒克斯之间,室内为 0.03 到 0.3 勒克斯之间。
方法
从成像传感器获取原始数据后,传统的图像处理流程会用一系列模块(如白平衡、去马赛克、去噪、锐化、色彩空间转换、伽马校正等)对其进行处理。这些模块通常会根据相机的不同进行微调。Jiang 等人 [18] 提出使用大量经过学习的局部线性(L3)滤波器来模仿常见成像系统里的复杂非线性流程,然而传统流程和 L3 流程都无法很好地处理快速低照度成像,因为它们无法处理极低的信噪比。Hasinoff 等人 [14] 提出了适用于手机相机的连拍成像流程。该方法通过对齐混合多个图像得到良好的结果,但同时会增加其复杂度(例如对应密度估计),且可能难以将其应用于视频捕获。
图 3:不同图像处理流程的结构。(a)从上到下分别是:传统的图像处理流程、L3 流程 [18] 和连拍成像流程 [14]。(b)我们的流程。
建议使用端到端学习来实现快速低照度图像的直接单图像处理。具体来说,训练一个全卷积网络(FCN)[22,25] 来执行整个图像处理流程。近期的成果表明,纯 FCN 可以有效地承载很多图像处理算法 [40,5],因此我们尝试将这种方法应用到极低照度成像中。我们不使用传统相机处理流程生成的 sRGB 图像,而是使用 RAW 格式的原始传感器数据。
图 3(b)给出了我们流程的结构。对于贝叶斯阵列(Bayer arrays),我们将输入数据馈送到四个通道中,并相应地将每个维度上的空间分辨率降低两倍。对于 X-Trans 阵列(未在图中显示),原始数据被放在 6×6 的矩阵中,并通过交换相邻元素将它合并为 9 个通道而非 36 个通道。我们减去黑阶亮度并按照所需比例(例如 100 倍或 300 倍)缩放数据,数据在合并放大之后输入全卷积网络。输出是一个空间分辨率为之前一半的 12 通道图像,它通过一个子像素层的处理恢复原始分辨率 [37]。
初步研究之后,重点关注全卷积网络中多次出现的两个结构:多尺度上下文聚合网络(Context Aggregation Network,CAN)[5] 和 U-net[35]。其他研究已经研究了残差连接 [20,34,41],但是这些没什么用,可能是因为输入和输出所在颜色空间不同。影响结构选择的另一因素是内存消耗:我们选择了可以在 GPU 内存中处理全分辨率图像(例如分辨率为 4240×2832 或 6000×4000)的结构。因此我们得以避免使用需要处理小图像块并重新组装它们的全连接层 [26]。默认架构是 U-net [35]。
图 4:放大系数作用于 SID 数据集(Sony x100 子集)中室内图像的效果。放大系数作为外部输入提供给我们的参数,类似于相机中的 ISO 设置。更高的放大倍数可以产生更明亮的图像。这张图显示了具有不同的放大系数的输出图像。
放大率决定了输出亮度,类似于相机中的 ISO 设置。图 4 显示了不同放大率的效果。用户可以通过设置不同的放大系数来调节输出图像的亮度。测试时,流程并不会抑制噪声、转换颜色,网络直接在 sRGB 空间输出处理后的图像。
图 5:(a)富士 X-T2 相机在夜间拍摄的图像(ISO 为 800,光圈为 f / 7.1,曝光 1/30 秒)。相机照度约为 1 勒克斯。(b)传统方法不能有效处理原始数据中的噪声和颜色偏差。(c)我们的结果(使用相同的原始数据)。
图 7:Sony x300 拍得的图像。(a)经过传统图像处理流程和线性缩放处理的低照度输入图像。(b)经过传统图像处理流程和线性缩放处理且用 BM3D 去噪后得到的图像。(c)我们的结果。
论文:Learning to See in the Dark
论文链接:https://arxiv.org/abs/1805.01934
摘要:由于低光子数和低信噪比,弱光环境成像十分困难。短时曝光的图像会受到噪声影响,而长时间曝光会导致图像模糊。之前提出的各种去噪、去模糊和增强技术极端条件下效果十分有限(例如晚上的视频速率成像)。为了推进基于学习的低照度图像处理研究,我们引入了原始 RAW 格式的短曝光低照度图像数据集以及相应的长曝光参考图像。使用这个数据集,我们开发了一个基于端到端训练的全卷积网络进行低照度图像处理。这个网络直接处理原始传感器数据,并且基本不使用传统图像处理流程方法。