2.4.1 应用于图像增强
“Learning to see in the dark”(LSID)[8]一文发表于CVPR 2018,旨在将单张输入低光图像恢复为正常图像。这项任务在将8位JPEG图像作为输入时几乎不可能,因为JPEG图像遭受了量化与压缩损失,而这些损失在图像绝对亮度较小,即低光图像中尤为明显,场景的信息几乎已经损失殆尽,完全不可分辨。例如,图2-22为LSID深度学习方法进行低光图像恢复的结果,所展示的低光JPEG图像绝大多数像素值都为0,不包含任何信息。因此可以预想到的是,即使某个算法真的从这种图像中恢复出了正常图像,这张图像的大部分内容应该都是算法根据此前见过的数据“猜”出来的,与输入图像对应的场景本身没有关联。
图2-22 LSID深度学习方法进行低光图像恢复的结果(基于参考文献[8]的插图重新绘制)
然而,若以色彩深度更高(通常为10~16位)、未压缩的原始图像作为输入,低光恢复是可能的。JPEG图像中不可见的场景信息此时未经量化与压缩损失,仍完整储存在原始图像中,但是值非常小。简单将图像乘以一个合适的放大系数(例如300),并使用传统ISP进行处理后即可得到一张肉眼可观察的图像。虽然这样的图像存在严重的噪声以及色偏,质量较低(见图2-22),但这表明以低光原始图像作为输入来恢复正常图像是一条可行的途径(同时也说明原始图像非常有用)。
参考文献[8]使用一个深度神经网络代替传统的ISP,以增益后的原始图像作为输入,恢复出非线性sRGB图像。所有的白平衡、去马赛克和去噪等功能均在网络内隐式实现。LSID方法的具体流程如图2-23所示。先将输入的H×W单通道马赛克图像每2×2像素“打包”为一个多通道像素,则图像大小变为原本的一半,但通道数变为4(各通道分别存储RGBG颜色信息)。这是在使用深度学习处理原始图像时的常用技巧,虽然图像尺寸变小了,但是去除了马赛克效应,更适合神经网络处理,同时也不需要复杂且耗时的去马赛克算法。减去黑电平(black level)并乘以目标增益系数后,将图像输入到一个深度神经网络中进行图像间转换(image-to-image translation),输出同样大小、但通道数扩展为12(相当于进行了去马赛克)且进行了正确白平衡、去噪、色彩空间转换与伽马编码后的图像。最后再将该图像每个像素展开为2×2大小RGB通道像素,得到与输入原始图像同样大小的最终结果。在选择具体深度神经网络时,U-Net[12]由于能够良好地保留图像细节,最终被用作了该方法的核心网络。
在确定了方法之后,还需要数据集对网络进行训练。数据集应包括网络的输入图像,即低光原始图像,以及对应的期望输出,即正常亮度的JPEG图像。该文建立的SID数据集包括5094对图像对,每一对包含一张低光原始图像与一张对应的正常原始图像(可以用ISP处理后得到参考JPEG图像)。这些图像对均是同一场景使用短曝光(如0.1s)与长曝光(如10s)设置分别进行拍摄得到,使用的相机包括Sonyα7S II与Fujifilm X-T2。图2-24展示了SID数据集中的部分图像对,以及增益后的低曝光图像作为参考。在使用该数据集对网络进行训练后得到一个低光恢复网络,能够在一般图像上达到如图2-22所示的结果,该方法在较好地去噪的同时去除了色偏。
图2-23 LSID方法的具体流程(基于参考文献[8]的插图重新绘制)
图2-24 SID数据集[8]中的部分图像对(图像选自该数据集)
拓展阅读:U-Net
U-Net神经网络架构是由Ronneberger等人发表于MICCAI 2015的论文[12]中被提出,使用若干下采样层将输入图像收缩为神经表征(neural rep-resentation)后,接上同样数量的上采样层变为与输入同样大小的输出图像(但通道数可能不同),形成如图2-25所示的U型结构,它也由此得名。它最显著的特点是额外使用跳跃连接(skip connection)将低层特征图与高层特征图直接连接起来,因此能够很好地保留像素级的细节,实现保留细节的图像间转换(如语义分割、本征图像分解)等。因此,U-Net架构被大量用在各类图像间转换任务的核心网络中。
图2-25 U-Net神经网络架构(基于论文[12]的插图重新绘制)