图像融合亮度一致_重磅干货低光图像处理方案

      点击上方“AIWalker”,选择加“星标”或“置顶”
   重磅干货,第一时间送达

Tips:一点点提示,因内容较多建议先关注,再置顶,最后端杯茶来精心浏览。

背景

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

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

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

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

数据

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

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

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

dataset简介链接
VIP-LowLightEight Natural Images Captured in Very Low-Light Conditions链接
ReNOIRRENOIR - A Dataset for Real Low-Light Image Noise Reduction链接
Raw Image Low-Light Object-链接
SIDLearning to see in the dark链接
ExDARKGetting to Know Low-light Images with The Exclusively Dark Dataset链接
MIT-FivKLearning Photographic Global Tonal Adjustment with a Database of Input / Output Image Pairs链接
LRAICE-DatasetA Learning-to-Rank Approach for Image Color Enhancement-
The 500px DatasetExposure: A White-Box Photo Post-Processing Framework-
DPEDDSLR-quality photos on mobile devices with deep convolutional networks链接
LOLDeep Retinex Decomposition for Low-Light Enhancement链接
VV-链接

方法

时间方法场景
2015LLNet A Deep Autoencoder Approach to Natural Low Light Image Enhancement低光
2017DSLR Quality Photos on Mobile Devices with Deep ConvolutionalNetworks低光
2017MSRNet Low Light Image Enhancement using Deep Convolutional Network低光
2017LLCNN A Convolutional Neural Network for Low light Image Enhancement低光
2017LIME Low light Image Enhancement via Illumination Map Estimation低光
2017Deep Bilateral Learning for Real Time Image Enhancement低光
2018DeepISP Towards Learning an End to End Image Processing Pipeline低光
2018Getting to Know Low Light Images with The Exclusively Dark Dataset低光
2018Deep Retinex Decomposition for Low Light Enhancement低光
2018Learning to see in the dark暗光
2019End to End Denoising of Dark Burst Images using Recurrent Fully Convolutional Networks暗光
2019GLADNet: Low Light Enhancement Network with Global Awareness低光
2019Kindling the Darkness: A Practical Low Light Image Enhancer低光
2019Learning Digital Camera Pipeline for Extreme Low Light Imaging暗光
2019A Pipeline Neural Network for Low Light Image Enhancement低光
2019Underexposed Photo Enhancement using Deep Illumination Estimation低光

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

0. Retinex理论

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

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

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

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

1. GLADNet

project, code

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

f7e4cc7df02b563f55568dadf1109930.png
img

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

  • 全局亮度先验估计

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

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

  • 细节还原

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

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

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

    其中,,这种参数设置可以保证颜色平衡问题,提升网络的鲁棒性。

20f72231631c0e8bbb1f06c5c9640465.png
1558145522602
e465f2325be17684faf2f20e8cb62765.png
1558145694627
5c19ad26ec041fa1377b34a34ab86124.png
1558145733411

2. RetinexNet

RetinexNet, paper, BMVC2018,poster,ppt, code

Retinex是一种有效的低光图像增强方法。它假设观测图像可以被分解为ReflectanceIllumination。现有的基于Retinex的模型需要精心设计人工约束条件与参数用于求解该病态分解问题(这限制了模型在不同场景应用中的泛化性能)。

作者收集了一批低亮度图像对(含低光与正常光图像)并提出一种RetinexNet架构在该数据集上进行训练学习。RetinexNet包含一个DecomNet用于图像分解分解以及一个EnhanceNet用于亮度调整。在训练过程中,DeconmNet并没有关于ReflectanceIllumination的真值。因而,该网络学习了这样的关键约束:图像对的反射一致性与亮度的平滑一致性。基于该分解方案,EnhanceNet用来进行亮度增强,同时需要对Reflectance进行降噪处理。该RetinexNet可以通过端到端的方式进行训练。

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

00579ca5dafabbd20a352e0097b85415.png
1558071668969

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

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

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

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

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

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

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

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

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

损失函数相关

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

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

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

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

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

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

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

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

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

49d7bd7f9a28ad1754f608208f916b51.png
1558083479455
7919e54867a89e4b2a2540f022461125.png
1558083683020

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

arxiv paper

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

8bfd69cac1d88bb5e4cbe612605a164f.png
1558333260322

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

损失函数

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

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

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

反射部分损失定义如下:

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

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

a42be176f6413a52184e4dc7da7dd882.png
1558335769087
eed95990f4d8a2f6a058884ede27d399.png
1558335835940

4. MSRNet Low Light Image Enhancement using Deep Convolutional Networks

arxiv paper

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

11e68ad87cf52333eedbe7fd36e83930.png
1558337147748

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

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

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

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

  • 差分卷积以作为输入,计算同尺寸的输出。公式描述如下:

    表示不同尺度平滑结果,将他们通过Concat方式拼接得到,并执行后续操作:

    类似MSR,的输出计算为。

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

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

a9feb35e7cc6aa2a5d453591c39f7687.png
1558339696355
52ee01c95a8ba48cebd48354ea01bc54.png
1558339747623

5. A Pipeline Neural Network for Low Light Image Enhancement

paper

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

dab431ccb683fe08ccaefbfb6cbfee9f.png
1558344572086

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

107afd6d554b17540e4840c1ebb99ef8.png
1558345076983

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

paper

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

d923bfbb9db98292ed868292b585e15c.png
1558340366047

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

75a5a041a3b9ef916624dfdab6d49206.png
1558340484927

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

a8f9cd71cb936b9a85cf9067c6411d62.png
1558340779020

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

arxiv paper, project, code,

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

cbbf0bb1f681a34c87c22e1830111c76.png
1558341636811

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

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

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

    其中,。该损失函数主要用于评估图像的亮度、对比度以及颜色的差异性而忽略掉纹理与内容的差异。

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

    其中,分别表示生成网络与对抗网络。注:该损失具有平移不变性。

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

  • 全变差损失用于确保生成图像的空域平滑性,定义如下:

8c9166fc6e6a09286acabf3ad6c9ce47.png
1558343372708
edd51cd1b00945b5b94347c5ff4162fe.png
1558343515841

8. Learning to see in the dark

arxiv paper,CVPR2018, code, demo

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

c2fd43f8bafeff5cf90d955a92fd3938.png
1558321555119

数据集

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

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

方法

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

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

711c8ba10cde24492dfa76550e0572ca.png
1558329681018
cdceceb1bf192e4478d9b41c6d888f63.png
1558329750213
95095af25f72b6580a596a97dbb34363.png
1558329792309

9. Learning Digital Camera Pipeline for Extreme Low Light Imaging

arxiv paper

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

1b4c509e8403388505b7a1403b49f310.png
1558316339487

损失函数

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

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

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

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

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

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

网络架构

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

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

  • 在图像还原与分割任务中,它具有极优的性能;
  • 它可以处理任意分辨率图像
  • 跳过连接确保了上下文信息的自适应传递,保留了高分辨率细节信息

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

ef3d4f102846ef87e5024eb64679959c.png
1558320341158
66c95f4e3c5b1936949caa28e594ec3d.png
1558320526072
5732f4fbeab32b62b44cdf75757f630e.png
1558320782864

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

arxiv paper

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

7b414f8c0ec19c3d7feef1e3d73b0b62.png
1558345763871

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

830e538677a49e5ed365644be87863fa.png
1558346307229

损失函数定义如下:

c0a245032bdcd2c32f284176692fe658.png
1558346547017
8f95d82bd14cce52c5b929d8429cd70a.png
1558346491208

11. Deep Burst Noising

arxiv paper, code

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

本文目标有以下几点:

  • 可以处理单帧降噪问题
  • 可以拓展到任意帧
  • 可以对整个序列进行降噪
  • 对运动鲁棒
  • 具有时序相关性
  • 可以推广到其他图像还原任务中

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

  • 构建单应性矩阵解决对齐问题
  • 采用FCN独立的为每帧图像降噪
  • 拓展FCN为并行递归网络,即集成多帧信息降噪

网络架构

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

  • 多帧降噪问题可以视为这样的优化问题:.

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

    940f89ff19be521d7e8e02a8edbd89fc.png
    1558415706790
    2cf9f466e77532b38f020b3203ea79ad.png
    1558416194631
    a71870cb33bc92777a6716f999d0692c.png
    1558416256211

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

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

project, paper

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

74381bc41836a15b03c6562d5fb40f84.png
1558420054895

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

  • Low Level Stage.

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

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

  • High Level Stage

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

  • Output

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

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

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

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

46bcdf764c89b12e2301ae6b646a5eea.png
1558422716983

13. Underexposed Photo Enhancement using Deep Illumination Estimation

paper

这是腾讯优图贾佳亚团队发表于CVPR2019用于低光图像增强的一种基于Retinex的深度网络方法。

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

d671e147835d5c66c1d2544fe7d89c66.png
1558485749732

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

网络架构

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

  • 有效学习

    欠曝光图像增强需要调整局部(对比度、锐化细节、阴影、高光等)与全局(颜色分布、平均亮度与场景类别等)特征。因而,作者考虑从编码网络中提取局部与全局特征,同时设计了一种集成亮度平滑先验、重建损失、颜色损失的损失函数。这些策略有确保网络可以有效的学习到亮度图像S。

  • 高效计算

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

损失函数

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

其中,。

  • 重建损失。

  • 平滑损失.

    注:表示水平与垂直方向的偏导,表示输入图像的对数图像,用于控制图像梯度的敏感度,。该损失函数可以避免过拟合同时提升图像的对比度。

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

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

94571891ac9884d642670788d1e282d4.png
1558489012606

14. Deep Bilateral Learning for Real Time Image Enhancement

project, paper, code

这是一篇``Google Research发表于SIGGRAPH2017` 用于图像增强的方法。

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

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

99dd0324e37f602b2eb2ec8a71d54cef.png
1558495390250

网络架构

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

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

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

  • 低分辨率分支

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

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

    • 局部特征提取分支由全卷积构成,在学习局部特征的同时保持空间分辨率;
    • 全局特征提取分支由卷积与全连接层()构成以学习一个固定尺寸的全局特征。
  • 高分辨率分支

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

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

  • 重建分支

    最终的模型输入可以通过全分辨率特征与仿射参数计算得到:.

938c27133e5dd6237cd7ae0bb975717e.png
1558510947455

评价指标

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

方法公式说明
MSE-
PSNR-
SSIM-
MS-SSIM-
JND--
NIQE-
  1. VMAF 1
  2. VMAF 2

小结

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

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

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

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

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

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

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

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


欢迎关注AIWalker公众号,在这里您将得到独家深度学习经验分享与个人思考。想支持Happy继续写下去就点个赞关注一下吧!b0621b80df1a2a0aafda8c27d4985d60.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/333956.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Adobe PhotoShop(PS) for Mac 如何隐藏切片框?

如何取消显示如下图所示的切片框: 打开『视图』➟ 『显示』,把『切片』前面的勾去掉,如下图所示:

邮宝打印面单尺寸调整_如何打印身份证的实际尺寸?怎样用照片打印身份证复印件...

点击上面 蓝色 文字关注我们,了解选购百科知识,快乐健康不停!怎样打印身份证复印件?可以把身份证的照片导入电脑或者扫描件打印黑白的即可。如何打印身份证的实际尺寸?二代身份证的实际尺寸是:85.6MM X 54M…

取模和求余运算

文章目录背景探究总结被除数 dividend 用 a 表示; 除数 divisor 用 b 表示; 商 quotient 用 q 表示; 余 remainder 用 rem 表示; 模 modulo 用 mod 表示。 背景 最近在一道 Java 习题中,看到这样的一道题:…

图像重建算法_基于深度学习图像重建算法(DLIR)对CT图像质量和剂量优化的研究:体模实验...

编者按:今年Jol Greffier博士等在European Radiology (IF 4.1)上发表了题为《Image quality and dose reduction opportunity of deep learning image reconstruction algorithm for CT: a phantom study》的文章,通过与混合迭代重建算法(IR)对比&#x…

oracle中sp怎么写_校招简历中的实习和项目经历该怎么写?

在2017年和2018年,我针对校招生的简历分别写了两篇文章,一篇是《秋招中的互联网产品、运营岗,该如何准备?》,里面有一部分内容是关于简历的准备;另一篇是《如何用产品思维解决简历问题?七步简历…

自然语言处理领域基本概念笔记

自然语言处理 词向量: 自然语言处理问题要转化为机器学习的问题,首先就要把单词数学化表示,就是用n维实数向量来代表一个单词。 对话系统 对话系统发展历程的三个阶段: 1.基于符号规则和模板的对话系统 2.基于统计机器学习的…

如何理解 inode

一、inode是什么? 理解inode,要从文件储存说起。 文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。 操作系统读取硬盘的时候&#xff0c…

java api 开发_Java开发人员应该知道的前20个库和API

java api 开发优秀且经验丰富的Java开发人员的特征之一是对API的广泛了解,包括JDK和第三方库。 我花了很多时间来学习API,尤其是在阅读了Effective Java 3rd Edition之后 ,Joshua Bloch建议在Java 3rd Edition中使用现有的API进行开发&#x…

Linux 系统的硬链接和软链接详解

文章目录什么是链接链接用来干什么的硬链接和软链接的区别硬链接和软链接的图示总结我们知道文件都有文件名与数据,这在 Linux 上被分成两个部分:用户数据 (user data) 与元数据 (metadata)。用户数据,即文件数据块 (data block),…

okta-spring_通过Okta的单点登录保护Spring Boot Web App的安全

okta-spring“我喜欢编写身份验证和授权代码。” 〜从来没有Java开发人员。 厌倦了一次又一次地建立相同的登录屏幕? 尝试使用Okta API进行托管身份验证,授权和多因素身份验证。 您可以使用SpringBoot和Okta在不到20分钟的时间内启动具有完整用户身份和…

apache poi_将HTML转换为Apache POI的RichTextString

apache poi1.概述 在本教程中,我们将构建一个将HTML作为输入的应用程序,并使用提供HTML的RichText表示形式创建Microsoft Excel工作簿。 为了生成Microsoft Excel工作簿,我们将使用Apache POI 。 为了分析HTML,我们将使用Jericho。…

Windows 下有哪些逆天的软件?

文章目录逆天软件系列1:Everything逆天软件系列2:Total Commander逆天软件系列3:Snipaste逆天软件系列4:Microsoft To-Do逆天软件系列5:ScreenToGIF逆天软件系列6:Geek Uninstaller逆天软件系列7&#xff1…

oracle adf_Fn函数来构建Oracle ADF应用程序

oracle adf在我之前的一篇文章中,我描述了如何创建一个Docker容器作为ADF应用程序的构建器。 在这里,我将展示如何将此容器用作 在FN平台的功能 。 首先,让我们更新容器,使其符合功能要求,这意味着可以将其作为接受某…

Sublime Text 4.0 4102 安装插件的问题

文章目录安装包控件(Package Control)如何安装插件打开 Install Package 面板搜索和安装插件无法打开 Install Package 面板的问题故障排除安装包控件(Package Control) 要安装插件,必须先安装 Package Control&#…

maven安装教程安装教程_Maven教程之春

maven安装教程安装教程1.简介 在这篇文章中,我们将演示如何针对非常特定的用例对Spring使用Maven依赖项。 我们使用的所有库的最新版本都可以在Maven Central上找到。 对于一个有效的构建周期来说,了解Maven依赖项的工作方式以及如何对其进行管理很重要…

C++核心编程笔记

C核心编程1 内存分区模型1.1 程序运行前1.2 程序运行后1.3 new操作符2 引用2.1 引用的基本使用2.2 引用注意事项2.3 引用做函数参数2.4 引用做函数返回值2.5 引用的本质2.6 常量引用3 函数提高3.1 函数默认参数3.2 函数占位参数3.3 函数重载3.3.1 函数重载概述3.3.2 函数重载注…

Sublime Text 如何设置组合快捷键

Sublime 有个功能叫再次缩进(Reindent),我就以这个功能为例讲下如何设置快捷键,这个功能的菜单路径是:Edit ➠ Line ➠ Reindent,有人说这个再次缩进可以格式化代码,扯淡,缩进两下也…

GAN对抗生成网络原始论文理解笔记

文章目录论文:Generative Adversarial Nets符号意义生成器(Generator)判别器(Discriminator)生成器和判别器的关系GAN的训练流程简述论文中的生成模型和判别模型GAN的数学理论最大似然估计转换为最小化KL散度问题定义PGP_GPG​全局最优论文:Generative A…

okta使用_使用Okta的单点登录保护您的Vert.x服务器

okta使用“我喜欢编写身份验证和授权代码。” 〜从来没有Java开发人员。 厌倦了一次又一次地建立相同的登录屏幕? 尝试使用Okta API进行托管身份验证,授权和多因素身份验证。 Vert.x是Spring生态系统中增长最快的元素之一,保护Vert.x服务器可…

java ee打印功能_Java EE 8的前5个新功能

java ee打印功能备受期待的Java Enterprise Edition 8版本具有两个令人兴奋的新API(JSON绑定1.0和Java EE Security 1.0),并且对当前API进行了改进(JAX-RS 2.1,Bean Validation 2.0,JSF 2.3,CDI…