暗光增强论文“Kindling the Darkness: A Practical Low-light Image Enhancer”

article/2025/11/11 9:49:00

暗光增强论文“Kindling the Darkness:A Practical Low-light Image Enhancer”

还是retinex-based的思想,将图像调节分解为2个部分:一个部分是负责光照的调节,一份部分是负责退化的去除。在这样的方法下,最原始的空间是被分成两个类似的子空间,以便更好的正则化或者学习。值得注意的是,论文网络训练所需的图像对是用不同曝光条件下拍摄的图像,而不是使用真实的反射图像和光照信息。(无illumination和reflectance的GT)
论文的所提出的KinD网络能达到较快的处理速度,同时也能达到较好的处理效果。

Introduction

如何在低光照下获取高质量的图片?在使用相机的时候,可以设置较高的ISO,长曝光时间,以及使用闪光灯,但是多少都会有一些副作用。
https://github.com/google/night-sight介绍的更为清楚,这里重复一下:
比如使用高ISO的时候,感光度增加的同时噪声也被放大了,会导致较低的信噪比。一般来说许多自动曝光的算法也是在调整曝光时间和ISO的时候优先调节曝光时间。
使用长时间的曝光,需要场景是静止不动的,否则输出的图片是模糊的图像。
使用闪光灯的话,打光会带来一些不自然的光线。

如下 图所示,暗光下的图片几乎无法看清图片的细节。
在这里插入图片描述
对于用户而言,每个用户所认为的well-exposed的是不同的,因此没有很好的ground truth。
暗光增强的三个不同的挑战也因此被提出来了:
1.如何有效的从单张图像中估计出光照图成分;
2.如何在变亮图像的同时去除噪声和颜色失调;
3.如何在没有明确定义GT的情况下进行模型训练。
本文对应的贡献点如下几点:
1.提出的网络将图像分成两个部分,即反射部分和光照部分。
2.网络没有使用reflectance 和 illumination图的GT,只是使用一对不同光照程度的图像。
3.设计的模型可以提供灵活映射的模型,可根据使用者进行调节,用户喜欢什么样的光照条件是可以调节的。
4.图像提出一个模块可以有效去除暗区放大的噪声。
5.实验效果在LOL [21], LIME [11], NPE [9], and MEF [30]等数据集上自称达到sota的效果。
网络结构图
在这里插入图片描述
Data Usage & Priors
感觉这里作者的想法很巧妙。
由于缺乏光照条件的well-defined的ground truth,也缺乏反射图和光照图的ground truth。因此这种图层分解的问题本质上是一个不确定解的问题,因此需要先验知识或者正则化。假设图片没有退化效果,对于某个场景获得的反射图(reflectance map)应该是相同的。而光照图则是可以是多种多样的,简单而具有相互一致的结构性。在实际情况中,暗光条件下的退化结果是要比在亮一点的图像中要强的,而这种退化效果被转移到反射图reflectance component了。
因此作者提出了一个假设:
在使用暗光——正常光的图片对进行训练的时候,正常光的图片中的反射图(reflectance map)可以用来作为暗光图复原后的ground truth!!
在正常光图片中的reflectance map和暗光图中的reflectance map是不同的!!
不使用合成的数据的原因是作者认为这种退化作用是比较复杂的,使用不同的相机效果也是不一样的。
因此作者提出Illumination Guided Reflectance RestorationArbitrary Illumination Manipulation两个不同的模块,前者用于恢复噪声部分(pollution component),后者用于获得或者操作一个Illumination Manipulation。
Illumination Guided Reflectance Restoration
作者通过公式
I = R ∘ L + E = R ~ ∘ L = ( R + E ~ ) ∘ L = R ∘ L + E ~ ∘ L \mathbf{I} =\mathbf{R} \circ \mathbf{L}+\mathbf{E}=\mathbf{\tilde{R}}\circ\mathbf{L}=(\mathbf{R}+\mathbf{\tilde{E}})\circ\mathbf{L}=\mathbf{R} \circ \mathbf{L}+\mathbf{\tilde{E}}\circ \mathbf{L} I=RL+E=R~L=(R+E~)L=RL+E~L
认为,即使是使用最简单的高斯白噪声 E ∼ N ( 0 , σ 2 ) \mathbf{E}\sim\mathcal{N}(0,\sigma^2) EN(0,σ2),最后 E ~ \mathbf{\tilde{E}} E~由于光照图 L \mathbf{L} L的存在会导致reflectance restoration无法独立成为一个新任务,而需要通过照明图来作为一个guider。由于 L \mathbf{L} L一直在改变,我们无法获得用于去噪的合适的reference。
Arbitrary Illumination Manipulation
对于不同的用户和设备而言,最佳的照明图是不一样的。因此,一个实际上可用的系统需要提供一个接口用于任意的照明图的操作。作者认为传统的fusion、light level appointment和gamma correction都无法有效的获得照明图,因此本文实际上从真实数据中学到了一个灵活的mapping function,用户可以使用任何等级的光照条件和曝光度。

在这里插入图片描述
在这里插入图片描述
(这个curve通过KinD网络学习得到,比传统的gamma校正效果更好,可以更灵活的调整light levels)
Layer Decomposition Net
主要的重点是损失函数的设计:
L L D : = L r e c L D + 0.01 L r s L D + 0.08 L i s L D + 0.1 L m c L D \mathcal{L}^{LD}:=\mathcal{L}_{rec}^{LD}+ 0.01\mathcal{L}_{rs}^{LD}+0.08\mathcal{L}_{is}^{LD}+0.1\mathcal{L}_{mc}^{LD} LLD:=LrecLD+0.01LrsLD+0.08LisLD+0.1LmcLD
这里输入是一对不同曝光度的图像[ I h I_h Ih, I l I_l Il],这里目标是首先让获得的反射分量[ R l R_l Rl, R h R_h Rh]尽可能接近,其次,光照图[ L l L_l Ll, L h L_h Lh]也应该是区域平滑和相互一致的。
所以这里有Loss
L r s L D : = ∣ ∣ R l − R h ∣ ∣ 2 2 L_{rs}^{LD}:=||R_l-R_h||_2^2 LrsLD:=RlRh22,用于使反射分量尽可能一致。
L i s L D = ∣ ∣ ∇ L l m a x ( ∣ ∇ I l ∣ , ϵ ) ∣ ∣ 1 + ∣ ∣ ∇ L h m a x ( ∣ ∇ I h ∣ , ϵ ) ∣ ∣ 1 L_{is}^{LD} = ||\frac{\nabla L_l}{max(|\nabla I_l|,\epsilon)}||_1+||\frac{\nabla L_h}{max(|\nabla I_h|,\epsilon)}||_1 LisLD=max(Il,ϵ)Ll1+max(Ih,ϵ)Lh1,这一项对于平滑区域的惩罚比较大。
L m c L D = ∣ ∣ M ⋅ e x p ( − c ⋅ M ) ∣ ∣ L_{mc}^{LD} = ||M \cdot exp(-c \cdot M)|| LmcLD=Mexp(cM),其中 M = ∣ ∇ L l ∣ + ∣ ∇ L h ∣ M=|\nabla L_l|+|\nabla L_h| M=Ll+Lh,表示相互间有强关联的边缘应当被保留,弱的被放弃。(mutual consistency)
最后产生的输出应当还可以再产生输入即 L r e s L D = ∣ ∣ I l − R l ⋅ L l ∣ ∣ 1 + ∣ ∣ I h − R h ⋅ I h ∣ ∣ 1 L_{res}^{LD} = ||I_l - R_l \cdot L_l||_1+||I_h - R_h \cdot I_h||_1 LresLD=IlRlLl1+IhRhIh1。最后将这几部分Loss组合起来,作为这部分的总的Loss。

Reflectance Restoration Net
   低光照图像的反射图有更多的降质成分,所以这里使用高光照图反射图作为GT;同时反射图的分布和光照图也有关系,所以这里将光照图的信息也嵌入到该网络里。网络的Loss为:
   L R R : = ∣ ∣ R ^ − R h ∣ ∣ 2 2 − S S I M ( R ^ , R h ) + ∣ ∣ ∇ R ^ − ∇ R h ∣ ∣ 2 2 \mathcal{L}^{RR}:=||\hat{R}-R_h||_2^2-SSIM(\hat{R},R_h)+||\nabla \hat{R}-\nabla R_h||_2^2 LRR:=R^Rh22SSIM(R^,Rh)+R^Rh22
R ^ \hat{R} R^代表着恢复后的reflectance图。最后一项使得纹理细节信息等保持一致。

Illumination Adjustment Net
   最后需要一种机制可以灵活的将一个光照条件转换成另一种光照条件。这里通过调整 a l p h a alpha alpha g a m m a gamma gamma两个参数来实现。其中 a l p h a alpha alpha L t / L s L_t/L_s Lt/Ls的均值。从而可以将源图像 L s L_s Ls转换成目标图像 L t L_t Lt。其中该参数还可以被手动调节,其实这里 a l p h a alpha alpha被扩展成了一个该网络输入的特征图,Illumination Adjustment Net这一部分的Loss为:
   L I A : = ∣ ∣ L ^ − L t ∣ ∣ 2 2 + ∣ ∣ ∣ ∇ L ^ ∣ − ∣ ∇ L t ∣ ∣ ∣ 2 2 \mathcal{L}^{IA}:=||\hat{L}-L_t||_2^2+|||\nabla\hat{L}|-|\nabla L_t| ||_2^2 LIA:=L^Lt22+L^Lt22

这里 L t L_t Lt可以是 L s L_s Ls或者 L h L_h Lh
   g a m m a gamma gamma表示为 g a m m a = ∣ ∣ l o g ( L ^ ) ∣ ∣ 1 ∣ ∣ l o g ( L s ) ∣ ∣ 1 gamma = \frac{||log(\hat{L})||_1}{||log(L_s)||_1} gamma=log(Ls)1log(L^)1。通过S和H选择可以进行亮度提升或者下降。例如对于亮度提升,这里的效果是,可以在低光照区域增加少量光照,同时在明亮区域增加更多的光照。
   作者认为本文的映射方式是优于gamma correction的。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

实验结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在LOL Dataset上的评测指标如下。在这里插入图片描述
其他数据集上不知道为什么只用了NIQE这个指标。在这里插入图片描述


http://chatgpt.dhexx.cn/article/HWVjS8H2.shtml

相关文章

NFC学习笔记(2)——NFC基础知识

书接上文 在等待PN532板子到货的同时,需要了解一些NFC的知识。 NFC卡分为5类 * I 型卡(不支持防冲突) * II 型卡 Mifare Ultralight卡 * III 型卡 Sony FeliCa卡 * IV 型卡 NXP DESFire卡 * V 型卡 NXP Mifare Classic卡 平时最常使…

Low-Light Image Enhancement with Normalizing Flow

基础理论知识点: 李宏毅flow-model: 参考博客、flow-model视频 Flow-model参考博客 3 Methodology 在本节中,首先介绍以往基于像素级重建损失的微光增强方法的局限性。然后,介绍了图2中我们的框架的总体范式。最后,我们提出的框架…

Ultra Edit使用技巧

Ultra Edit使用技巧 1.去掉横向滚动条(自动换行) 在菜单栏选择“高级->配置”,进入如下界面。然后在“编辑器”选项的“自动换行”界面里,选择“默认为每个文件启用自动换行”。 2.列编辑模式 按“ALT c”组合键可进入列编辑模式,可以按…

HighlightingSystem插件使用(边缘发光)

插件链接: http://pan.baidu.com/s/1dFwkaTr 密码: nw2c 导入Unity里面可能会报错,不过没关系,直接注释掉就可以了,我用的是Unity5.1的版本 可以看到如下文件夹,HighlighingSystemDemo是一些实例,可以看一下&#xff0…

HighlightPlus物体自发光

只介绍常用的几个参数与使用:

Deep Retinex Decomposition for Low-Light Enhancement

参考 Deep Retinex Decomposition for Low-Light Enhancement - 云社区 - 腾讯云 目录 摘要 1、简介 2、弱光增强的视黄素网 2.1、数据驱动的图像分解 2.2、支持结构平滑损失 2.3、多尺度照明调整 2.4、反射上的去噪 3、数据集 3.1、真实场景中捕获的数据集 3.2、从…

霓虹灯(light)

【题目描述】 小石家旁边有一个大型商场,晚上会有不停变换的霓虹灯,各种各样的颜色非 常漂亮,小石每天晚上都喜欢站在窗口看不停变换的霓虹灯。这个商场的霓虹灯 在每个时刻都是同一种颜色。小石每天晚上会在商场开始亮灯时就站在窗口观看。 …

ultralight搭建/运行/打包

0、ultralight的github更新 截至2023年3月17日,ultralight的github仓库最近的提交时间为2022年12月10日。 1、ultralight ultralight是使用C或C语言和HTML/JS构建界面,基于WebKit的HTML渲染器。 支持系统:Windows(7、x64)、macOS(Sierra或…

rpi4 实现 qiuqiu - Ultralight-SimplePose

qiuqiu Ultralight-SimplePose:https://github.com/dog-qiuqiu/Ultralight-SimplePose 💻​ OS Linux raspberrypi 5.10.60-v8 #1448 SMP PREEMPT Sat Aug 21 10:48:18 BST 2021 aarch64 GNU/Linux⚡️ 安装 protobuf sudo apt-get install autoconf au…

射频识别技术漫谈(16)——Mifare UltraLight

【转自】http://blog.sina.com.cn/s/blog_9ed067ad01010t8k.html Mifare UltraLight又称为MF0,从UltraLight(超轻的)这个名字就可以看出来,它是一个低成本、小容量的卡片。低成本,是指它是目前市场中价格最低的遵守ISO14443A协议的芯片之一&a…

low-light系列:Lightening Network for Low-light Image Enhancement

前言 文章下载链接在后面 这是一篇顶刊TIP2020的文章,重点在于: 文章将暗光增强任务视为一个求residual(残差)的任务LBP模块的提出,借用了SR(超分辨率)任务中的back-projection思想可调亮度的…

Low-light images enhancement系列:EnlightenGAN:Deep Light Enhancement without Paired Supervision

众所周知,在暗光增强任务中,要获取到适合的成对的暗光/正常曝光训练图像是非常困难的,甚至是不存在唯一的定义良好的正常曝光ground truth图片。如果用正常曝光的图像去合成带噪点的暗光图像作为训练集,很可能导致最终应用在真实世…

RC522读取NFC Forum Type2 Tag流程及代码解析——Mifare Ultralight卡片读取(采用PHY6212平台,可移植)

RC522作为一款NFC读写芯片,性价比还是很高的,因为在项目里需要采用NFC OOB配对,所以需要读取配对方模拟的NFC卡片信息 读取对象采用NRF52832,使用其NFC功能模拟type2 tag,但是读取方式和M1卡不一样,踩了不…

Lighting - 光的亮度衰减

一些零零碎碎的笔记归档; 光的亮度衰减: 在物理正确的情况下,光的衰减遵循反比例平方衰减;因为光在传播过程中如下图: 随着距离的增加,单位平面上所接受的光照强度与距离的计算关系; 公式可简单…

PFLD+GhostNet+MobileOne=PFLD_GhostOne,重参数化让PFLD重生,精度提升超过4%,速度提升超过55%,代码已开源

在两年前,我曾经分享过利用GhostNet对PFLD进行优化的文章——《人脸关键点检测算法PFLD的优化实战记录》,那里面介绍了经过各种奇技淫巧,GhostNet确实能够提升PFLD的速度和精度,暂且称呼这个方法为PFLD-GhostNet,而且分…

LightGBM -- Light Gradient Boosting Machine

LightGBM 是微软开源的一个基于决策树和XGBoost的机器学习算法。具有分布式和高效处理大量数据的特点。 更快的训练速度,比XGBoost的准确性更高更低的内存使用率,通过使用直方图算法将连续特征提取为离散特征,实现了惊人的快速训练速度和较低…

Mifare UltraLight

Mifare UltraLight又称为MF0,从UltraLight(超轻的)这个名字就可以看出来,它是一个低成本、小容量的卡片。低成本,是指它是目前市场中价格最低的遵守ISO14443A协议的芯片之一;小容量,是指其存储容量只有512bit(Mifare S…

Low-light images enhancement/暗光/低光/微光增强系列:Attention-guided Low-light Image Enhancement(详解)

以下文字为博主翻译并添加了自己的理解,斜体为博主自己的想法,若有出错请指出。 摘要 暗光图像增强需要同时有效地处理颜色、亮度、对比度、伪影和噪声等多种因素。本文提出了一种新颖的注意力引导增强方案,并在此基础上构建了 端到端多分支…

STM32+PN532写UltraLight标签

第一次写博客记录下日常开发,最近公司一个项目需要用到NFC模块,所以开始了解NFC相关的一些知识,并在此MARK一下。 1、项目背景: 需要一个NFC模块为一个Mifare UltraLight的NFC标签写入一个蓝牙MAC地址,让手持设备接触…

零基础CSS入门教程(30)–CSS布局实例

点此查看 所有教程、项目、源码导航 本文目录 1. 前言2. 本章任务3. 开发过程3.1 设定全局样式3.2 头部标题栏样式3.3 导航栏样式3.4 内容区域3.5 底部版权区域 4. 小结 1. 前言 本篇是JavaWeb学习之路,CSS部分的最后一章。 从第24章初识CSS,到第53章C…