加入极市专业CV交流群,与 10000+来自港科大、北大、清华、中科院、CMU、腾讯、百度 等名校名企视觉开发者互动交流!
同时提供每月大咖直播分享、真实项目需求对接、干货资讯汇总,行业技术交流。关注 极市平台 公众号 ,回复 加群,立刻申请入群~
低光图像是夜晚拍照时极为常见的一种现象。不充分的光照会极大的降低图像的视觉质量,细节损失、低对比度不仅导致令人讨厌的主观感受,同时会影响诸多计算机视觉系统的性能(这些系统往往为正常光照图像而设计)。
导致低光图像的原因有很多,如低光环境、低端拍摄设备以及不合理的拍照设备的配置等。为尽可能的恢复图像的细节信息,改善图像质量,我们急需一种有效的低光图像增强方案。
在过去的十年里,许多研究人员对低光图像增强展开了研究并提出了多种技术。如Histogram Equalization(HE)
及其改进;Retinex
理论及其改进等等。
本文主要关注深度学习方法在该领域的一些进展,将简单汇总与介绍近几年相关的深度学习方法以及相应的数据集、相关技术的评价标准等等。
这里汇总了一些公开论文中用到的低光图像数据,供模型训练与测试参考。在低光图像增强领域中,目前最常用的数据集为SID与LOL这两种数据集。这两个数据集分别代表了低光图像增强领域的两个场景。
SID是极暗场景下的数据集,它的输入为未经任何处理的RAW格式数据,未经ISP处理;而LOL则是类似夜景这种有一定光照条件下的低光数据集,它的输入与输出均为PNG格式的数据,即经过了ISP处理。
上表中汇总了最近几年深度学习在低光图像增强领域中的几种方法。下面将分别针对这些方法进行简单的总结与介绍。
经典的Retinex
理论模拟了人眼颜色感知,它假设观测图像可以被分解为两种成分:Reflectance
与Illumination
。假设
表示观测图像,它可以被分解为:
其中, 表示反射图, 表示亮度图, 表示点乘操作。反射图描述了观测目标的固有属性,它可以被视作常量且与光照无关;亮度图表示了目标的不同光照。低光图像存在暗光与不平衡的亮度分布。
在传统方法中,Single Scale Retinex, SSR
通过高斯滤波为亮度图添加平滑性作为最早期的尝试;MSR, MSRCR
通过添加多尺度高斯滤波与颜色还原对SSR
进行了拓展。关于更多相关技术可以参考:Retinex Image Processing,https://dragon.larc.nasa.gov/retinex/.
在深度学习方法中,已有诸多方法尝试将Retinex
理论与深度网络相结合,在降低学习难度的同时提升算法性能,如RetinexNet
。
project,https://daooshee.github.io/fgworkshop18Gladnet/,
code,https://github.com/weichen582/GLADNet)
GLADNet
的核心:(1)为低光输入计算全局亮度估计;(2)基于前述所得与原始输入调整亮度。它将输入图像缩放到特定尺寸并送入到编解码网络中生成关于亮度的全局先验信息,基于全局先验信息与原始输入图像,采用卷积神经网络进行细节还原。在训练过程中,作者采用RAW图像合成的数据进行训练。通过大量实验验证了所提方法的有效性。
上图给出GLADNet
的框架图,从中可以看出,该网络由两部分构成:
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
的编解码架构。
损失函数相关
RetinexNet
用到的损失函数包含三项:重建损失
、不变反射损失
以及亮度平滑损失
。总体损失函数定义如下:
其中, 分别表示用于均衡不变反射损失与亮度平滑损失的系数,作者的参数设置为 。
DecomNet
部分用到的重建损失函数
定义如下:
EnhanceNet
部分用到的重建损失函数
定义如下:
注:上述两种重建损失区别在于:采用 的梯度图对 进行了加权。
用于约束反射一致性的不变反射损失 定义如下:
用于约束亮度平滑的亮度平滑损失
在Total Variation Loss
基础上进行改进得到,定义如下:
其中, 表示梯度操作(包含 ), 表示结构强度平衡系数, 降低了图像梯度剧烈区域的平滑约束性,作者的参数设置: 。
更多关于损失函数的介绍,建议查看论文介绍。
arxiv paper,https://arxiv.org/abs/1905.04161
低光条件下所拍摄的图像存在严重的质量问题。除了低光外,噪声、颜色失真等同样限制了图像的质量。换句话说,简单的调节的暗区的亮度不可避免的放大暗区的噪声和伪影等。受
Retinex
理论启发,作者构建了一种简单有效的网络Kindling the Darkness, KinD网络
,它将图像分解为两部分:亮度部分用于调整图像亮度;反射部分用于移除降质。经过上述处理,原始空间被分解为两个更小的子空间,以期具有更好的泛化性能。需要注意的是:该网络通过不同曝光图像对进行训练,而非真实的反射与亮度信息。通过通过实验验证了所提kinD
架构的优异性能,同时在2080TiGPU
下,可以以不超过50ms
的速度处理VGA分辨率的图像。
从方法流程图来看:KinD
与RetinexNet
如出一辙,两者整体思想基本一致,尽在损失函数设计方面存在差异。故而,这里仅对损失函数进行描述介绍。
损失函数
从上图可以看出,KinD
的损失函数主要由三部分损失构成,它们分别是层分解部分损失、反射重建部分损失以及亮度调整部分损失。
层分解部分损失定义如下:
其中,
表示反射相似性损失(Reflectance Similarity
),即短曝光与长曝光图形的反射图应该是相同的;
表示亮度平滑损失约束(Illumination Smoothness
),它度量了亮度图与输入图像之间的相对结构,边缘区域惩罚较小,平滑区域惩罚较大;
表示相互一致性约束(Mutual Consistency
),它意味着强边缘得以保留,弱边缘被抑制;
表示重建损失(Reconstruction Error
)。
反射部分损失定义如下:
亮度调整部分损失定义如下:
以上简单描述了网络训练过程中的相关损失函数,更多详细信息建议参考原文。
arxiv paper,https://arxiv.org/abs/1711.02488
低光图像存在低对比度问题,导致后续视觉任务的难度提升。基于
Retinex
理论与CNN,作者提出一种低光增强方法。作者表示多尺度Retinex
等价于带有不同高斯卷积核的CNN;首次启发,作者考虑采用端到端的方式学习多尺度CNN(MSRNet
)。不同于已有方法,作者将低光增强视作机器学习问题,该模型的所有参数通过反向传播方式学习得到,而传统方法则需要人工设置相关参数。最后,作者通过大量图像已验证了所提方法的有效性。
上图给出了作者所提MSRNet
,它采用低光图像作为输入,通过监督学习方式训练网络参数。它包含三个部分:多尺度对数变换、差分卷积以及颜色还原。总体过程可以描述为:
。
Concat
方式拼接得到
,并将其送入卷积与
ReLU
,描述如下:
Shrinks
到3通道的卷积变换参数;
表示更进一步提升非线性表达能力的卷积核参数。该模块的功能主要是通过加权组合多尺度对数变换得到更好的初始图像以加速网络收敛。
Concat
方式拼接得到
,并执行后续操作:
MSR
,
的输出计算为
。
网络训练过程中的损失函数定义如下:
paper,https://www.researchgate.net/publication/330299349_A_Pipeline_Neural_Network_For_Low-Light_Image_Enhancement
受多尺度
Retinex
(MSR
)原理启发,基于全卷积网络与离散小波变换(DWT
),作者提出一种端到端的低光图像增强框架。首先,作者说明MSR
可以视为一种CNN架构,集成DWT
可以改进MSR
所生成图像的质量;然后,作者提出具有去噪和增强的框架;最后,醉着在合成数据与公开数据上对所提框架进行了评估。
上图给出作者所提框架在训练与测试阶段的流程图,该网络采用 损失进行参数训练学习,同时去噪与增强模块交替训练学习。鉴于该论文参考意义不大,故略,更多细节见原文。
paper,https://ieeexplore.ieee.org/document/8305143
作者提出采用CNN进行低光图像增强。作者设计了一种特殊的模块处理多尺度特征同时避免了梯度小时问题。为尽可能保留图像的纹理信息,作者采用
SSIM
损失进行模型训练。基于该方法,低光图像的对比度可以自适应增强。作者通过实验验证了所提方法的有效性。
上图给出了作者所设计的网络架构图。为避免梯度消失问题,作者参考Inception, Residual
模块设计了一种新颖的卷积模块,如下图所示。
总而言之,作者所设计的网络架构可以描述为:采用一个卷积预处理图像得到均匀输入,一个卷积用于生成增强图像,其他特殊模块插入到前面两个卷积中间。
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
相机生成
。假设残差卷积网络为
,给定训练数据
,该优化问题可以描述为:
其中, 为本文的关键所在,它是多种损失函数的组合,定义如下:
VGG19
网络的激活特征图进行统计分析,它可以确保图像的语义特征不变,令
表示
VGG19
的第
j
层激活输出,该损失定义如下:
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
形式数据,需要事先将其打包为多通道数据并进行预处理(可参考上图流程)。在全卷积网络架构方面,作者主要参考了CAN
与UNet
,默认架构为UNet
。除了RAW
数据外,另一个输入为参数为放大比例系数,它用于控制输出图像的零度。下图给出了不同放大比例系数的输出结果对比。
在训练过程中,作者采用 损失从头开始训练整个网络,放大系数设置为输入与真值之间的曝光差异比例。下面列出了所提方法在所构建数据集上的部分效果。
arxiv paper,https://arxiv.org/abs/1904.05939
在低光条件下 ,传统的
ISP
处理会导致生成的图像极暗(过少的光子)且高噪(低信噪比)。作者提出一种数据驱动的方法用于学习低曝光与正常曝光之间的一种映射关系,从而极大的提高低光图像的视觉效果。作者提出一种新的损失函数以促进深度网络可以学习短曝光图像到正常曝光图像之间的ISP
流程,即lowRAW->sRGB
这样的一个过程。实验结果表明:相比已有网络中采用的像素级损失,该方法可以取得更优的视觉效果。
损失函数
该文的主要创新点在于损失函数的设计,故而这里对文中所提到的损失函数进行简单汇总分析。文中所设计的多准则损失函数定义如下:
其中, 表示每个独立的损失函数, 分别表示作用于输入与输出的函数,随损失函数的类型变化而变化。 表示像素级的损失函数,如 损失与 损失; 表示更高层的感知损失。
直接在网络输出与真值之间计算误差信息,此时有 ,损失函数定义为:
其中,
用于均衡两种损失,可通过Grid Search
方式在验证集上进行估计得到;
表示尺度数,
用于调整每项损失的相对重要性,在实验过程中所有参数设置为:
。
用于在特征层面衡量两个图像之间的相似性,有助于保持颜色与色彩一致性,此时 ,其中 表示神经网络第 层的激活特征,损失函数定义如下:
作者实验过程中采用在ImageNet
上预训练的VGG16
(注:其他AlexNet, ResNet, GoogLeNet
亦可)提取特征并进行相似性比较。
网络架构
从上图可以看出,作者设计的网络架构包含两个子网络:图像还原子网络与感知损失子网络。
图像还原子网络采用了***带跳过连接的UNet
架构***(更多细节参考原文),它具有以下几个优点:
感知损失子网络采用VGG16
的前两个卷积提取特征,这两个特征可以精确的编码图像的风格与内容感知信息。
arxiv paper,https://arxiv.org/abs/1904.07483
作者提出一种递归全卷积网络(
Recurrent Fully Convolutional Network, RFCN
)用于处理极暗场景下的降噪并提升亮度的问题。该方法以RAW
数据作为输入,直接生成RGB
数据,它可以同时进行降噪、色彩校正以及增强等任务。该方法取得SOTA
性能且具有极好的泛化性能(一种类型相加训练模型不经finetune
仍可很好的处理不同相机得到的图片)。
上图给出了作者提出低光图像降噪增强流程图,它的核心在RFCN
模块,针对单帧降噪与多帧降噪,其处理流程存在些微差异,见下图。
损失函数定义如下:
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数据降噪,其他无甚区别。
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
图像。
ReLU
,另外三个通道则采用残差架构+
tanh
。
High Level Stage
W
。
Output
W
后,将其作用于底层特征记得得到最终的输出。这里的变换公式定义如下:
在训练过程中,损失函数在Lab
域进行计算,在Lab
域三个通道分别计算
损失,尽在亮度通道计算MS-SSIM
损失。整体损失定义如下:
paper,https://jiaya.me/papers/photoenhance_cvpr19.pdf
这是腾讯优图贾佳亚团队发表于
CVPR2019
用于低光图像增强的一种基于Retinex
的深度网络方法。
本文提出一种欠曝光图像增强方法。不用于已有直接学习Image2Image
映射的方法,我们在网络中引入了中间亮度对输入与期望增强结果构建相关性,这种处理方式提升了网络处理复杂图相对的能力。基于该模型,我们构建了一种集成亮度约束与先验的损失函数,同时准备了3000对欠曝光图像用于网络训练。该方法可以为图像重建清晰的细节、明显的对比度以及更为自然地颜色。基于所构建数据集与MIT-Adobe FiveK
数据集的实验证实:该网络可以有效处理不同挑战难度的图像。
该方法基于Retinex
而进行设计,假设反射分量
是正常曝光图像,I为欠曝光图像,S为亮度图像,即
。此时需要采用深度网络估计亮度图像S。作者将亮度图像S视为三通道数据而非单通道数据以提升其在色彩增强方面的能力,尤其对于跨颜色通道的非线性能力。
网络架构
上图给出了作者所涉及的网络架构图,它具有两个优点:亮度图的有效学习与整体网络的高效计算。
Bilateral Grid Upsampling
方式进行上采样。因此该网络的大部分计算量均位于低分辨率区域,进而确保高分辨率图像处理的实时性。
损失函数
作者所设计的损失函数定义如下:
其中, 。
RGB
三维)的角度。
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
仿射系数
。
关于图像质量评价的指标可以参考:参考链接:https://github.com/Netflix/vmaf。这里仅仅列举了几种较为常见的评价指标。
方法公式说明MSE -PSNR -SSIM -MS-SSIM -JND--NIQE-
RGB
层面进行处理;而暗光图像增强则是在
RAW
层面进行处理。
UNet
的架构与基于
Retinex
的架构。
UNet
架构是一种更具通用性的架构,但其存在不可控性因素,最终生成图像无法进行人工调控;
Retinex
架构则是参考了传统图像增强中的
Retinex
理论与深度网络技术而提出的方案,其架构可以赋予人工交互因子,可控性稍高。
推荐阅读:
添加极市小助手微信(ID : cv-mart),备注:研究方向-姓名-学校/公司-城市(如:AI移动应用-小极-北大-深圳),即可申请加入AI移动应用极市技术交流群,更有每月大咖直播分享、真实项目需求对接、求职内推、算法竞赛、干货资讯汇总、行业技术交流,一起来让思想之光照的更远吧~
△长按添加极市小助手
△长按关注极市平台,获取最新CV干货
觉得有用麻烦给个在看啦~