万字长文总结低光图像处理方案

背景

低光图像是夜晚拍照时极为常见的一种现象。不充分的光照会极大的降低图像的视觉质量,细节损失、低对比度不仅导致令人讨厌的主观感受,同时会影响诸多计算机视觉系统的性能(这些系统往往为正常光照图像而设计)。

导致低光图像的原因有很多,如低光环境、低端拍摄设备以及不合理的拍照设备的配置等。为尽可能的恢复图像的细节信息,改善图像质量,我们急需一种有效的低光图像增强方案。

在过去的十年里,许多研究人员对低光图像增强展开了研究并提出了多种技术。如 Histogram Equalization(HE) 及其改进; Retinex 理论及其改进等等。

本文主要关注深度学习方法在该领域的一些进展,将简单汇总与介绍近几年相关的深度学习方法以及相应的数据集、相关技术的评价标准等等。

数据

这里汇总了一些公开论文中用到的低光图像数据,供模型训练与测试参考。在低光图像增强领域中,目前最常用的数据集为SID与LOL这两种数据集。这两个数据集分别代表了低光图像增强领域的两个场景。

SID是极暗场景下的数据集,它的输入为未经任何处理的RAW格式数据,未经ISP处理;而LOL则是类似夜景这种有一定光照条件下的低光数据集,它的输入与输出均为PNG格式的数据,即经过了ISP处理。

Table.1 与低光图像增强相关的数据集

方法

上表中汇总了最近几年深度学习在低光图像增强领域中的几种方法。下面将分别针对这些方法进行简单的总结与介绍。

0. Retinex理论

经典的 Retinex 理论模拟了人眼颜色感知,它假设观测图像可以被分解为两种成分: ReflectanceIllumination 。假设表示观测图像,它可以被分解为:

其中,表示反射图,表示亮度图, 表示点乘操作。反射图描述了观测目标的固有属性,它可以被视作常量且与光照无关;亮度图表示了目标的不同光照。低光图像存在暗光与不平衡的亮度分布。

在传统方法中, Single Scale Retinex, SSR 通过高斯滤波为亮度图添加平滑性作为最早期的尝试; MSR, MSRCR 通过添加多尺度高斯滤波与颜色还原对 SSR 进行了拓展。关于更多相关技术可以参考: Retinex Image Processing,https://dragon.larc.nasa.gov/retinex/ .

在深度学习方法中,已有诸多方法尝试将 Retinex 理论与深度网络相结合,在降低学习难度的同时提升算法性能,如 RetinexNet

1. GLADNet

project,https://daooshee.github.io/fgworkshop18Gladnet/,

code,https://github.com/weichen582/GLADNet)

GLADNet 的核心:(1)为低光输入计算全局亮度估计;(2)基于前述所得与原始输入调整亮度。它将输入图像缩放到特定尺寸并送入到编解码网络中生成关于亮度的全局先验信息,基于全局先验信息与原始输入图像,采用卷积神经网络进行细节还原。在训练过程中,作者采用RAW图像合成的数据进行训练。通过大量实验验证了所提方法的有效性。

上图给出 GLADNet 的框架图,从中可以看出,该网络由两部分构成:

  • 全局亮度先验估计

    在该部分中,作者采用了一个编解码网络架构用于估计全局亮度信息。注:为估计亮度信息,它需要将输入图像下采样到固定尺寸,这样可以保证该架构的底层感受野可以包含整个图像。

    该子网络包含三个步骤:(1) 缩放输入特征到特定分辨率;(2) 采用编解码架构估计全局亮度信息;(3)缩放到原始分辨率。

  • 细节还原

    全局亮度估计过程中由于尺度缩放问题会导致细节损失,为弥补该问题,作者设计了该细节还原子网络。

    相比编解码网络输出,原始输入图像应当包含更多的细节信息,因而可以为细节还原提供更多信息。该子网络以全局亮度信息+原始输入图像作为输入(这样可以保证了原始信息与亮度估计互补并传递到后续网络),该子网络另外包含三个卷积操作。

  • 作者在训练过程中采用RAW图像进行训练数据的合成,采用加权损失函数进行训练。加权损失函数定义如下:

2. RetinexNet

RetinexNet,https://daooshee.github.io/BMVC2018website/

paper,https://arxiv.org/abs/1808.04560

BMVC2018,https://github.com/daooshee/BMVC2018website/blob/master/chen_bmvc18.pdf

poster,https://github.com/daooshee/BMVC2018website/blob/master/Chen_BMVC18Poster.pdf

ppt,https://www.icst.pku.edu.cn/struct/Seminar/Talk_BMVC18_Chenwei/index.html

code,https://github.com/weichen582/RetinexNet

Retinex
是一种有效的低光图像增强方法。它假设观测图像可以被分解为
Reflectance

Illumination
。现有的基于
Retinex

的模型需要精心设计人工约束条件与参数用于求解该病态分解问题(这限制了模型在不同场景应用中的泛化性能)。

作者收集了一批低亮度图像对(含低光与正常光图像)并提出一种


RetinexNet
架构在该数据集上进行训练学习。
RetinexNet
包含一个
DecomNet
用于图像分解分解以及一个
EnhanceNet
用于亮度调整。在训练过程中,
DeconmNet
并没有关于
Reflectance

Illumination
的真值。因而,该网络学习了这样的关键约束: 图像对的反射一致性与亮度的平滑一致性 。基于该分解方案,
EnhanceNet
用来进行亮度增强,同时需要对
Reflectance
进行降噪处理。该
RetinexNet

可以通过端到端的方式进行训练。

大量实验表明:


RetinexNet
不仅取得极好的视觉效果,同时可以提供一种良好的图像分解表达。

RetinexNet 是一种数据驱动的 Retinex 分解方法,它集成图像分解与增强操作于一体。

  • 首先,子网络 DecomNet 用于将观测图像划分为亮度独立的反射图与结构平滑的亮度图;

    DecomNet 网络存在两个约束条件:(1) 低光与正常光具有相同的反射图;(2) 亮度图应该是平滑的且保留有主要结构(可通过结构相关的全变差损失约束学习)。

    在训练过程中,它以成对图像作为输入(用于 约束反射一致性 );在测试阶段仅需要输入低光图像。

  • 然后,子网络 EnhanceNet 通过多尺度 Concat 操作调整亮度图以保证(1)在大范围内保持一致;(2)小范围内进行裁剪局部分布。

    它主要作用是 提升亮度图的亮度 ,它是一种类似 UNet 的编解码架构。

    由于噪声往往存在于暗区,且易被增强过程放大,因而采用在反射图上进行降噪。

  • 最后,在重建阶段通过组合调整后的亮度图与反射图计算输出图像。

  • 注:为训练这样一个网络,作者利用RAW数据集构建了一个包含真实与合成图像的低光数据集。

损失函数相关

RetinexNet 用到的损失函数包含三项:重建损失、不变反射损失以及亮度平滑损失。总体损失函数定义如下:

其中,分别表示用于均衡不变反射损失与亮度平滑损失的系数,作者的参数设置为。

DecomNet 部分用到的重建损失函数定义如下:

EnhanceNet 部分用到的重建损失函数定义如下:

注:上述两种重建损失区别在于:采用的梯度图对进行了加权。

用于约束反射一致性的不变反射损失定义如下:

用于约束亮度平滑的亮度平滑损失在 Total Variation Loss 基础上进行改进得到,定义如下:

其中,表示梯度操作(包含),表示结构强度平衡系数,降低了图像梯度剧烈区域的平滑约束性,作者的参数设置:。

更多关于损失函数的介绍,建议查看论文介绍。

3. Kindling the Darkness: A Practical Low Light Image Enhancer

arxiv paper,https://arxiv.org/abs/1905.04161

低光条件下所拍摄的图像存在严重的质量问题。除了低光外,噪声、颜色失真等同样限制了图像的质量。换句话说,简单的调节的暗区的亮度不可避免的放大暗区的噪声和伪影等。受 Retinex 理论启发,作者构建了一种简单有效的网络 Kindling the Darkness, KinD网络 ,它将图像分解为两部分:亮度部分用于调整图像亮度;反射部分用于移除降质。经过上述处理,原始空间被分解为两个更小的子空间,以期具有更好的泛化性能。需要注意的是:该网络通过不同曝光图像对进行训练,而非真实的反射与亮度信息。通过通过实验验证了所提 kinD 架构的优异性能,同时在 2080TiGPU 下,可以以不超过 50ms 的速度处理VGA分辨率的图像。

从方法流程图来看: KinDRetinexNet 如出一辙,两者整体思想基本一致,尽在损失函数设计方面存在差异。故而,这里仅对损失函数进行描述介绍。

损失函数

从上图可以看出, KinD 的损失函数主要由三部分损失构成,它们分别是 层分解部分 损失、 反射重建部分 损失以及 亮度调整部分 损失。

层分解部分损失定义如下:

其中,表示反射相似性损失( Reflectance Similarity ),即短曝光与长曝光图形的反射图应该是相同的;表示亮度平滑损失约束( Illumination Smoothness ),它度量了亮度图与输入图像之间的相对结构,边缘区域惩罚较小,平滑区域惩罚较大;表示相互一致性约束( Mutual Consistency ),它意味着强边缘得以保留,弱边缘被抑制;表示重建损失( Reconstruction Error )。

反射部分损失定义如下:

亮度调整部分损失定义如下:

以上简单描述了网络训练过程中的相关损失函数,更多详细信息建议参考原文。

4. MSRNet Low Light Image Enhancement using Deep Convolutional Networks

arxiv paper,https://arxiv.org/abs/1711.02488

低光图像存在低对比度问题,导致后续视觉任务的难度提升。基于 Retinex 理论与CNN,作者提出一种低光增强方法。作者表示多尺度 Retinex 等价于带有不同高斯卷积核的CNN;首次启发,作者考虑采用端到端的方式学习多尺度CNN( MSRNet )。不同于已有方法,作者将低光增强视作机器学习问题,该模型的所有参数通过反向传播方式学习得到,而传统方法则需要人工设置相关参数。最后,作者通过大量图像已验证了所提方法的有效性。

上图给出了作者所提 MSRNet ,它采用低光图像作为输入,通过监督学习方式训练网络参数。它包含三个部分:多尺度对数变换、差分卷积以及颜色还原。总体过程可以描述为:。

  • 多尺度对数变换以低光图像作为输入,得到相同尺寸的输出。低光图像通过几个不同的对数变化进行增强,公式描述为:

    其中,表示对数基下的不同尺度的输出,n表示对数变换数。下一步则将多尺度输出结果通过 Concat 方式拼接得到,并将其送入卷积与 ReLU ,描述如下:

    这里,表示将输入 Shrinks 到3通道的卷积变换参数;表示更进一步提升非线性表达能力的卷积核参数。该模块的功能主要是通过加权组合多尺度对数变换得到更好的初始图像以加速网络收敛。

  • 差分卷积以作为输入,计算同尺寸的输出。公式描述如下:  H_1, H_2, \cdots, H_K$表示不同尺度平滑结果,将他们通过 Concat 方式拼接得到,并执行后续操作:

    类似 MSR ,的输出计算为。

  • 颜色还原以作为输入,通过卷积执行色彩还原:.

网络训练过程中的损失函数定义如下:

5. A Pipeline Neural Network for Low Light Image Enhancement

paper,https://www.researchgate.net/publication/330299349_A_Pipeline_Neural_Network_For_Low-Light_Image_Enhancement

受多尺度 Retinex ( MSR )原理启发,基于全卷积网络与离散小波变换( DWT ),作者提出一种端到端的低光图像增强框架。首先,作者说明 MSR 可以视为一种CNN架构,集成 DWT 可以改进 MSR 所生成图像的质量;然后,作者提出具有去噪和增强的框架;最后,醉着在合成数据与公开数据上对所提框架进行了评估。

上图给出作者所提框架在训练与测试阶段的流程图,该网络采用损失进行参数训练学习,同时去噪与增强模块交替训练学习。鉴于该论文参考意义不大,故略,更多细节见原文。

6. LLCNN A Convolutional Neural Network for Low Light Image Enhancement

paper,https://ieeexplore.ieee.org/document/8305143

作者提出采用CNN进行低光图像增强。作者设计了一种特殊的模块处理多尺度特征同时避免了梯度小时问题。为尽可能保留图像的纹理信息,作者采用 SSIM 损失进行模型训练。基于该方法,低光图像的对比度可以自适应增强。作者通过实验验证了所提方法的有效性。

上图给出了作者所设计的网络架构图。为避免梯度消失问题,作者参考 Inception, Residual 模块设计了一种新颖的卷积模块,如下图所示。

总而言之,作者所设计的网络架构可以描述为:采用一个卷积预处理图像得到均匀输入,一个卷积用于生成增强图像,其他特殊模块插入到前面两个卷积中间。

7. DSLR Quality Photos on Mobile Devices with Deep Convolutional Networks

arxiv paper,https://arxiv.org/pdf/1704.02470.pdf

project,https://people.ee.ethz.ch/~ihnatova/%23title

code,https://github.com/aiff22/DPED

尽管智能手机内置相机具有越来越好的拍照效果,但是物理约束(如传感器大小、镜头以及特定硬件的缺失)仍阻碍更高质量图像的获取。作者提出一种端到端的方式将普通光照图像变换为高质量视觉效果图像。作者采用残差卷积网络,它可以提升图像的颜色与细节锐利度。由于标准的 MSE 损失并不适合度量图像的感知质量,作者引入一种混合损失函数(组合纹理、颜色以及上下文)。作者同时构建了一个 DPED 数据集,通过该数据集进行网络训练并验证了所提方法的有效性。

给定低质图像,该增强人物的目标是通过 DSLR 相机生成。假设残差卷积网络为,给定训练数据,该优化问题可以描述为:

其中,为本文的关键所在,它是多种损失函数的组合,定义如下:

  • 颜色损失用于度量增强图像与目标图像之间的颜色差异性(注,为避免高频细节影响,在计算之前进行高斯模糊),定义如下:

  • 纹理损失用于度量图像之间的视觉相似性,通过GAN方式训练调整生成图像的纹理质量,定义如下:

  • 内容损失基于预训练
    VGG19 网络的激活特征图进行统计分析,它可以确保图像的语义特征不变,令表示
    VGG19 的第
    j 层激活输出,该损失定义如下:
  • 全变差损失用于确保生成图像的空域平滑性,定义如下:

8. Learning to see in the dark

arxiv paper,https://arxiv.org/abs/1805.01934

CVPR2018,https://cchen156.web.engr.illinois.edu/paper/18CVPR_SID.pdf

code,https://github.com/cchen156/Learning-to-See-in-the-Dark

demo,https://www.youtube.com/watch%3Fv%3DqWKUFK7MWvg%26feature%3Dyoutu.be

由于低光子、低 SNR 等原因导致低光成像极具挑战。短曝光图像存在高噪声,长曝光会引入模糊不切实际。为解决低光成像存在的问题,作者构建了一个低曝光+长曝光 RAW 数据集并开发一个端到端的全卷积低光图像处理框架。该框架直接以 RAW 数据作为输入,经全卷积操作后输出 RGB 图像。

数据集

作者收集一个新的低光RAW数据集,它包含5094对短曝光-长曝光图像对,同时包含室内与室外两种不同的场景。室外场景的亮度变化范围,室内场景的亮度变化范围,短曝光时长为,对应的长曝光时长为。

作者采用了索尼与富士胶片分别采集数据,它们具有不同的传感器类型。索引传感器类型为 Bayer 模式,图像分辨率;富士胶片传感器类型为 APS-C X-Trans 传感器,图像分辨率。更多关注的描述可以参考原文。

方法

作者提出采用全卷积网络直接采用 RAW 数据作为输入,经卷积计算后直接输出 RGB 结果。对于 Bayer 形式数据,需要事先将其打包为多通道数据并进行预处理(可参考上图流程)。在全卷积网络架构方面,作者主要参考了 CANUNet ,默认架构为 UNet 。除了 RAW 数据外,另一个输入为参数为放大比例系数,它用于控制输出图像的零度。下图给出了不同放大比例系数的输出结果对比。

在训练过程中,作者采用损失从头开始训练整个网络,放大系数设置为输入与真值之间的曝光差异比例。下面列出了所提方法在所构建数据集上的部分效果。

9. Learning Digital Camera Pipeline for Extreme Low Light Imaging

arxiv paper,https://arxiv.org/abs/1904.05939

在低光条件下 ,传统的 ISP 处理会导致生成的图像极暗(过少的光子)且高噪(低信噪比)。作者提出一种数据驱动的方法用于学习低曝光与正常曝光之间的一种映射关系,从而极大的提高低光图像的视觉效果。作者提出一种新的损失函数以促进深度网络可以学习短曝光图像到正常曝光图像之间的 ISP 流程,即 lowRAW->sRGB 这样的一个过程。实验结果表明:相比已有网络中采用的像素级损失,该方法可以取得更优的视觉效果。

损失函数

该文的主要创新点在于损失函数的设计,故而这里对文中所提到的损失函数进行简单汇总分析。文中所设计的多准则损失函数定义如下:

其中,表示每个独立的损失函数,分别表示作用于输入与输出的函数,随损失函数的类型变化而变化。表示像素级的损失函数,如损失与损失;表示更高层的感知损失。

直接在网络输出与真值之间计算误差信息,此时有,损失函数定义为:

其中,用于均衡两种损失,可通过 Grid Search 方式在验证集上进行估计得到; 表示尺度数,用于调整每项损失的相对重要性,在实验过程中所有参数设置为:。

用于在特征层面衡量两个图像之间的相似性,有助于保持颜色与色彩一致性,此时,其中表示神经网络第层的激活特征,损失函数定义如下:

作者实验过程中采用在 ImageNet 上预训练的 VGG16 (注:其他 AlexNet, ResNet, GoogLeNet 亦可)提取特征并进行相似性比较。

网络架构

从上图可以看出,作者设计的网络架构包含两个子网络: 图像还原 子网络与 感知损失 子网络。

图像还原子网络采用了***带跳过连接的 UNet 架构***(更多细节参考原文),它具有以下几个优点:

  • 在图像还原与分割任务中,它具有极优的性能;

  • 它可以处理任意分辨率图像

  • 跳过连接确保了上下文信息的自适应传递,保留了高分辨率细节信息

感知损失子网络采用 VGG16 的前两个卷积提取特征,这两个特征可以精确的编码图像的风格与内容感知信息。

10. End to End Denoising of Dark Burst Images using Recurrent Fully Convolutionaly Networks

arxiv paper,https://arxiv.org/abs/1904.07483

作者提出一种递归全卷积网络( Recurrent Fully Convolutional Network, RFCN )用于处理极暗场景下的降噪并提升亮度的问题。该方法以 RAW 数据作为输入,直接生成 RGB 数据,它可以同时进行降噪、色彩校正以及增强等任务。该方法取得 SOTA 性能且具有极好的泛化性能(一种类型相加训练模型不经 finetune 仍可很好的处理不同相机得到的图片)。

上图给出了作者提出低光图像降噪增强流程图,它的核心在 RFCN 模块,针对单帧降噪与多帧降噪,其处理流程存在些微差异,见下图。

损失函数定义如下:

11. Deep Burst Noising

arxiv paper,https://arxiv.org/abs/1712.05790

code,https://github.com/Ourshanabi/Burst-denoising

噪声在低光图像采集过程中不可避免的(由于手机设备有限的孔径、较小的传感器,这类问题会进一步恶化)。一种减缓低光场景噪声的方法是提升曝光时间,但是这会导致两个问题:(1) 亮区会超出传感器范围;(2)会相机或场景运动导致模糊。另一种方法是一次获取多帧短曝光图像协同降噪。本文基于后一种方案,采用 RFCN 架构处理低光降噪问题。该架构可以处理任意长度序列降噪并取得了 SOTA 性能。

本文目标有以下几点:

  • 可以处理单帧降噪问题

  • 可以拓展到任意帧

  • 可以对整个序列进行降噪

  • 对运动鲁棒

  • 具有时序相关性

  • 可以推广到其他图像还原任务中

本文所涉及方案流程如下:

  • 构建单应性矩阵解决对齐问题

  • 采用
    FCN 独立的为每帧图像降噪
  • 拓展
    FCN 为并行递归网络,即集成多帧信息降噪

网络架构

  • 单帧降噪问题可以视为这样的优化问题:。这里采用
    FCN 构建映射函数,它包含个含通道输出,卷积核为的卷积层。
  • 多帧降噪问题可以视为这样的优化问题:.

    对于多帧问题,作者采用 RNN+FCN 架构进行处理。下图给出了作者所提出的多帧降噪架构。

Note: 10 与11两种方法基本相同,区别仅在于处理数据的类型, 10用于处理RAW数据降噪,11用于处理RGB数据降噪,其他无甚区别。

12. DeepISP Toward Learning an End to End Image Processing Pipeline

project,https://link.zhihu.com/?target=https%3A//elischwartz.github.io/DeepISP/

paper,https://arxiv.org/pdf/1801.06724.pdf

作者提出一种端到端的用于模拟 ISP 流程的深度神经网络 DeepISP 。它学习了从低光 RAW 到最终视觉效果良好 RGB 的映射,集成去马赛克、降噪以及颜色校正、图像调整等功能。在专用数据集(由三星S7只能手机采集的低光 RAW 与正常光 RGB 数据对)上对所提框架进行了训练与测试。所提方法在联合去马赛克降噪方面取得了 SOTA 性能。相比传统 ISP 方案,该方案具有更优的视觉效果。

上图给出了 DeepISP 架构图,它包含两个部分:底层特征处理(局部修正)与高层特征处理(全局校正)。

  • Low Level Stage .

    该部分包含个模块,每个模块执行的卷积操作,它的输入与输出均为。注:输入到网络中的为去马赛克后并进行双线性插值的 RGB 图像。

    在这64个通道中,其中61个通道为标准的前向卷积+ ReLU ,另外三个通道则采用残差架构+ tanh

  • High Level Stage

    该部分包含个卷积层(),它可以获得更大的感受野降低计算损失。这些卷积后接全局均值池化得到一个特征向量并通过全连接层得到变换参数
    W
  • Output

    在得到变换矩阵 W 后,将其作用于底层特征记得得到最终的输出。这里的变换公式定义如下:

    其中, ,表示上三角矩阵向量化操作。经此操作即可得到每个像素的输出。

    采用这种处理的原因:(1)线性回归不适用于两者之间的变换;(2)具有更好的视觉效果。

在训练过程中,损失函数在 Lab 域进行计算,在 Lab 域三个通道分别计算损失,尽在亮度通道计算 MS-SSIM 损失。整体损失定义如下:

13. Underexposed Photo Enhancement using Deep Illumination Estimation

paper,https://jiaya.me/papers/photoenhance_cvpr19.pdf

这是腾讯优图贾佳亚团队发表于
CVPR2019
用于低光图像增强的一种基于
Retinex

的深度网络方法。

本文提出一种欠曝光图像增强方法。不用于已有直接学习


Image2Image
映射的方法,我们在网络中引入了中间亮度对输入与期望增强结果构建相关性,这种处理方式提升了网络处理复杂图相对的能力。基于该模型,我们构建了一种集成亮度约束与先验的损失函数,同时准备了3000对欠曝光图像用于网络训练。该方法可以为图像重建清晰的细节、明显的对比度以及更为自然地颜色。基于所构建数据集与
MIT-Adobe FiveK
数据集的实验证实:该网络可以有效处理不同挑战难度的图像。

该方法基于 Retinex 而进行设计,假设反射分量是正常曝光图像,I为欠曝光图像,S为亮度图像,即。此时需要采用深度网络估计亮度图像S。作者将亮度图像S视为三通道数据而非单通道数据以提升其在色彩增强方面的能力,尤其对于跨颜色通道的非线性能力。

网络架构

上图给出了作者所涉及的网络架构图,它具有两个优点:亮度图的有效学习与整体网络的高效计算。

  • 有效学习

  • 高效计算

    为计算计算,作者采用低分辨率局部与全局特征学习亮度图像,然后采用 Bilateral Grid Upsampling 方式进行上采样。因此该网络的大部分计算量均位于低分辨率区域,进而确保高分辨率图像处理的实时性。

损失函数

作者所设计的损失函数定义如下:

其中,。

  • 重建损失。

  • 平滑损失.

  • 颜色损失。用于计算两个颜色向量( RGB 三维)的角度。

    使用该损失而非的原因:(1) 重建损失已明确度量颜色差异;(2)只能度量颜色差异而无法颜色向量具有相同方向,进而容易导致明显的颜色偏差。

14. Deep Bilateral Learning for Real Time Image Enhancement

project,https://groups.csail.mit.edu/graphics/hdrnet/

paper,https://arxiv.org/abs/1707.02880

code,https://github.com/google/hdrnet

这是一篇“Google Research
发表于

SIGGRAPH2017` 用于图像增强的方法。

基于双边网络处理与局部颜色仿射变换,作者提出一种新的深度网路架构用于图像增强。采用图像对训练深度网路学习双边空间下的局部仿射系数,该架构可以学习局部、全局以及内容相关的决策参数以生成期望的图像变换。

在运行时,该网络在低分辨空间学习双边空间内相关仿射参数,然后将这些参数采用保边形式上采样,最后将这些参数作用于全分辨率输入图像得到最终期望的输出。最终该算法可以在手机端以毫秒级处理高分辨率图像,对于


1080p
分辨率图像可以做到实时处理。

网络架构

该网络的大部分推理均在低分辨率上执行,该部分用于预测类似 Bilateral Grid 的局部仿射变换。图像增强不仅依赖于局部特征,同时还依赖于全局特征。因而低分辨率流进一步划分为两个分支,最后融合两个分支的结果得到最终的仿射变换系数。

在高分辨率分支在全分辨率图像上执行,它占据较少的计算,但对于获取高频信息、保边有很重要作用。为此,作者一如了 Slicing 节点以参考图为例采用查找表方式构建最终的放射系数图。

最后,将所得到的高分辨率仿射系数作用于原始输入图像即可得到期望的增强图像。

  • 低分辨率分支

    低分辨率输入具有固定的尺寸,后接一些列卷积操作以提取底层特征并降低分辨率,然后将所得特征送入非对称分支中:局部特征提取分支与全局特征提取分支。

    • 局部特征提取分支由全卷积构成,在学习局部特征的同时保持空间分辨率;

    • 全局特征提取分支由卷积与全连接层()构成以学习一个固定尺寸的全局特征。

全局特征与局部特征融合为特征,最终通过 Pointwise Linear Layer 生成最终的 Bilateral Grid 仿射系数。

  • 高分辨率分支

    为尽可能的降低整体的计算复杂度,高分辨率分会应当简单且易于并行。对于全分辨率输入,提取特征。它有两个作用:(1) 生成参考图;(2)局部仿射模型的回归变量。

    定义为全分辨率图像的线性仿射变换,。其中,表示的颜色放射矩阵,更多参数见原文。

  • 重建分支

评价指标

关于图像质量评价的指标可以参考: 参考链接:https://github.com/Netflix/vmaf 。这里仅仅列举了几种较为常见的评价指标。

方法公式说明MSE-PSNR-SSIM-MS-SSIM-JND–NIQE-

  1. VMAF 1:https:////mp.weixin.qq.com/s/nLM4_skm8XhakRwdVAtOHg

  2. VMAF 2:https://blog.csdn.net/vn9PLgZvnPs1522s82g/article/details/79145145

小结

  • 从数据层面可以划分为:低光图像与暗光图像。

    低光图像增强则更多是在 RGB 层面进行处理;而暗光图像增强则是在 RAW 层面进行处理。

  • 从网络架构方面可以划分为:基于 UNet 的架构与基于 Retinex 的架构。

    UNet 架构是一种更具通用性的架构,但其存在不可控性因素,最终生成图像无法进行人工调控;

    Retinex 架构则是参考了传统图像增强中的 Retinex 理论与深度网络技术而提出的方案,其架构可以赋予人工交互因子,可控性稍高。

  • 从损失函数方面可以划分为:单一损失函数(等损失)与组合损失函数(+ 感知损失等)。

    单一损失函数(如)往往会导致生成图像的模糊、颜色失真等现象;

    组合损失函数可以在一定程度避免上述现象,但有可能出现纹理失真现象。