论文阅读之《Kindling the Darkness: A Practical Low-light Image Enhancer》
目录
摘要
介绍
已有方法回顾
普通方法
基于亮度的方法
基于深度学习的方法
基于图像去噪的方法
提出的方法
2.1 Layer Decomposition Net
2.2 Reflectance Restoration Net
2.3 Illumination Adjustment Net
实验结果
总结
Kindling the Darkness: A Practical Low-light Image Enhancer(KinD)
ACM MM 2019
Yonghua Zhang, Jiawan Zhang, Xiaojie Guo (天津大学)
论文地址:http://cic.tju.edu.cn/faculty/zhangjiawan/Jiawan_Zhang_files/paper/yonghuazhang2019-2.pdf
项目地址:
https://github.com/zhangyhuaee/KinD
摘要
在弱光条件下拍摄的图像通常能见度较差。除了不理想的照明,多种类型的退化,如噪音和颜色失真,由于相机的质量有限,这些退化隐藏在黑暗中。仅提高黑暗区域的亮度将不可避免地放大隐藏的退化。这项工作建立了一个简单而有效的点燃黑暗的网络(表示为kinD),它的灵感来自视retinex理论,将图像分解成两个部分。一个组件(照明)负责光的调节,而另一个组件(反射率)负责退化去除。网络是在不同曝光条件下拍摄的成对图像进行训练的。可以抵抗严重的视觉缺陷,并且用户可以任意调节光线的亮度。
介绍
图1 不同光照条件下的自然图像
第一种情况是极低的光。严重的噪音和颜色失真隐藏在黑暗中。通过简单地放大图像的强度,退化就会显示在右上角。第二张照片是在日落时拍摄的(微弱的环境光),大多数物体都背光。中午对着光源(太阳)成像也很难摆脱像第二种情况那样的问题,尽管周围的光线更强,场景更清晰可见。最后两张照片中那些相对明亮的区域直接放大会导致饱和。
基于深度学习的方法在去噪、超分辨率等数值底层视觉任务中表现优异,但其中大部分都需要训练数据包含地面实况。对于特定问题,比如低光图像增强,虽然可以确定光强的大小顺序,但是不存在ground-truth真实数据。从用户的角度来看,不同的人/需求所喜欢的光照等级可能是多种多样的。
文中总结了低光图像增强的挑战如下:
1.如何从单个图像中有效地估计出光照分量,并灵活地调整光照?
2.如何在照亮黑暗区域后去除之前隐藏在黑暗中的噪声和颜色失真等退化?
3.如何训练一个模型,在没有明确的Ground truth条件下,只看两个/几个不同的例子情况下增强低光图像?
一个理想的弱光图像增强算法应该能够有效的去除隐藏在黑暗中的退化并灵活的调整曝光条件。、
论文主要贡献:
1.受Retinex理论的启发,该网络将图像分解为反射率和照明两部分。
2.该网络使用在不同光/曝光条件下捕获的成对图像进行训练,而不是使用任何地面真实反射率和照明信息。
3.模型提供了一个映射功能,可以根据用户的不同需求灵活地调整光线的等级。可有效地去除通过亮暗区域放大的视觉缺陷。
已有方法回顾
普通方法
1.对于全局光线较弱的图像,可以通过直接放大亮度来增强其可视性。但是噪声和颜色失真会沿着细节显示出来。对于包含明亮区域的图像,很容易导致(部分)饱和/过度曝光。
2.以直方图均衡化及其后续为代表的技术提高图像的对比度。
3.伽马校正(GC):以非线性方式在每个像素上单独执行,可以提高亮度但没考虑相邻像素的关系。
(几乎不考虑真实的光照因素,使增强的结果在视觉上很不稳定与真实场景不一致)
基于亮度的方法
1.基于Retinex理论的SSR,MSR方法,受限于生成最终结果的,方式输出看起来不自然,在某些地方过度增强。
2.NPE:同时增强对比度,保持照度的自然。
3.SRIE加权变分模型:同时进行反射率和光照估计,控制光照形成目标图像。可抑制噪声但处理颜色失真和较大噪声方面不足。
基于深度学习的方法
1.LLNet(Pattern Recognition 2017):构建了一个深度网络,作为同时进行对比度增强和去噪的模块。
2.MSR-net(arXiv 2017):认为多尺度retinex相当于具有不同高斯卷积核的前馈卷积神经网络 构建了卷积神经网络来学习暗图像和亮图像之间的端到端映射。
3.RetinexNet(BMVC2018):它集成了图像分解和光照映射,反射去噪,照明增强。没有考虑噪声对不同光照区域的影响。
4.SID(CVPR2018):基于全卷积网络端到端训练的低光图像处理管道(SID),可以同时处理噪声和颜色失真。然而,这项工作是针对raw格式的数据的,限制了其适用的场景。若修改网络以接受JPEG格式的数据,性能会显著下降。
基于图像去噪的方法
1.基于自然图像的特定先验(局部相似性,分段平滑性,信号稀疏等)BM3D,WNNM。
2.基于DL的去噪:SSDA-堆叠稀疏自编码器,DnCNN-残差学习和批量归一化
(没有考虑到光照增强图像的不同区域承载不同级别的噪声)
提出的方法
KinD Network分为三部分:(1)图像分解网络:Layer Decomposition Net(2)反射分量纠正网络:Reflectance Restoration Net(3)光照分量纠正网络:Illumination Adjustment Net。整个网络架构如下图所示。
以暗光/正常光照图像对作为训练样本,Layer Decomposition Net对其依次进行分解,得到光照分量和反射分量。再通过Reflectance Restoration Net和Illumination Adjustment Net得到�~���和和�~���。
2.1 Layer Decomposition Net
Layer Decomposition Net有两个分支,一个分支用于预测反射分量,另一个分支用于预测光照分量,反射分量分支以五层Unet网络为主要网络结构,后接一个卷积层和Sigmoid层。光照分量分支由三个卷积层构成,其中还利用了反射分量分支中的特征图,具体细节可参考论文。
Layer Decomposition Net:
2.2 Reflectance Restoration Net
低光照图像的反射分量有更多的退化分量,所以这里使用高光照图反射分量作为真值约束训练;同时反射分量的分布和光照分量也有关系,所以这里将光照分量的信息也嵌入到该网络里。网络预测得到的纠正后反射分量为;Reflectance Restoration Net的Loss为:
2.3 Illumination Adjustment Net
网络比较轻量化,由三个卷积层组成。光照分量的纠正与反射分量纠正类似,这里同样使用高光照图光照分量作为真值约束训练,网络预测得到的纠正后反射分量;Illumination Adjustment Net的Loss为:
实验结果
总结
基于深度学习的图像暗光增强就是以Retinex理论为基础,用卷积神经网络去分解图像S,得到光照分量I和反射分量R,这也是相当于在深度学习中融入了图像增强的先验知识。最近一些更新的,效果更好的论文大多也都是围绕如何更好的分解图像,生成质量更好的光照分量和反射分量来进行。也有一些人通过GAN直接以图像生成的方式来进行图像增强。
相关文章:

论文阅读之《Kindling the Darkness: A Practical Low-light Image Enhancer》
目录 摘要 介绍 已有方法回顾 普通方法 基于亮度的方法 基于深度学习的方法 基于图像去噪的方法 提出的方法 2.1 Layer Decomposition Net 2.2 Reflectance Restoration Net 2.3 Illumination Adjustment Net 实验结果 总结 Kindling the Darkness: A Practical L…...

性能测试基础知识及性能指标
前言:最近公司接了个项目,领导开会突然来了句,让我出一份性能测试方案,后面性能测试工作交给我!我心里想之前面试没要求会这个啊(最少得加钱才能做吧~,没办法既然下达了指令,那就只能…...

ArcGIS笔记10_如何创建渔网?
本文目录 前言Step 1 确定渔网的精度单位Step 2 有底图时创建渔网的操作 前言 ArcGIS中的渔网是一个很好用的工具,它可以创建出规规整整的小格子,每个小格子都对应一个标注点,可以将原本散乱的数据规整化,如下图: Ste…...

Jmeter安装(快速入门)
大家好我是苏麟今天简单聊一下Jmeter . Jmeter Jmeter官网 : Apache JMeter - Download Apache JMeter 安装Jmeter Jmeter依赖于JDK,所以必须确保当前计算机上已经安装了JDK,并且配置了环境变量。 下载 : 官网下载 : 网盘自取 : 链接:…...
一个react前端项目中的配置文件作用解析
前端框架中用到的配置文件 .editorconfig, .gitignore, .npmrc, .prettierignore, .prettierrc, .umirc.local.ts, .umirc.ts, package-lock.json, package.json, README.md, tsconfig.json, typings.d.ts, webpack.config.js.editorconfig:用于定义代码编辑器的配…...
MAC 配置 Maven
Maven 是一个流行的 Java 项目管理和构建工具,它可以帮助我们管理项目依赖、构建和发布等过程。本文将指导您在 MAC 上配置 Maven 的详细步骤。 1、下载 Maven 首先,从 Maven 官方网站下载最新版本的 Maven 安装包。下载完成后,将其解压到您…...

vue3.0 + element plus upload图片 上传
直接上图吧: 记录一下,方便后续遇到啥问题...
Leetcode 18:四数之和
给你一个由 n 个整数组成的数组 nums ,和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] (若两个四元组元素一一对应,则认为两个四元组重复)。 解题思路:…...

word误删除的文件怎么恢复?恢复办法分享
在日常工作和学习中,我们常常会使用到Word来撰写文章、毕业论文、方案等。然而,我们可能会遇到Word误删文件的情况,令我们陷入恐慌,特别是这个文件很重要时。幸运的是,有办法找回。下面一起来看下word误删除的文件怎么…...
提高Qt开发软件运算性能提升
编译器minGW32,release版本,大部分操作在线程循环里面更容易体现出来 1、网上有说opencv像素处理使用直接获取Mat对象的像素块的数据指针,例如 for (int row 0; row < h; row) { uchar* uc_pixel image.data row * image.step; for (int col …...

WordPress SMTP邮件发送插件 Easy WP SMTP
Easy WP SMTP是一款 WordPress 邮件发送插件,WordPress 中经常用到邮件发送,包括新注册用户的邮件通知、找回密码通知、评论回复通知等。因为云服务器默认不启用 SMTP功能,所以需要安装 SMTP插件来解决这个问题。 SMTP 主机:smtp.…...

大咖云集,智慧碰撞|第 18 届 CLK 大会完整议程揭晓(内附报名通道)
自 2006 年以来,在国内 Linux 技术爱好者和行业公司的鼎力支持下,中国 Linux 内核开发者大会已走过 17个年头,是中国 Linux 内核领域最具影响力的峰会之一。今年的中国内核开发者大会依然秉承历届理念,以“自由、协作、创新”为理…...

springweb+vue前后端分离开发,集成部署
背景: 在自己做测试的时候,由于需要项目和项目的前端页面使用同样接口访问,所以需要将前端代码部署到后端项目下。前端采用vue,后端采用springboot。 首先时建立一个vue项目,这个可以参照网上的案例,创建方…...

美芯片禁令再次扩大,波及英伟达、AMD以及intel等科技公司 | 百能云芯
拜登政府17日宣布,计划停止英伟达(Nvidia)、超微半导体以及英特尔等科技公司设计的先进AI芯片输出中国大陆,英伟达(Nvidia)昨日股价重挫4.68%至每股439.38美元;天风国际证券分析师郭明錤表示&am…...

Docker入门到精通教程
Docker是什么 Docker是一个开源的应用容器引擎,它基于Go语言并遵从Apache2.0协议开源。容器技术是和我们的宿主机共享硬件资源及操作系统,实现资源的动态分配,在资源受到隔离的进程中运行应用程序及其依赖关系。 Docker可帮助更快地打包、测…...

Java 对象是什么样子的?
Java 对象是什么样子的? class Student{ int age; String name; }Student s new Student(18, “zhangsan”); 这里的 s 变量,就是我们常说的引用,这里是强引用。指向对象中的 Java对象。 很多人可能认为,堆中存储了 age 18, na…...

自动驾驶的法律和伦理问题
随着自动驾驶技术的不断发展,出现了一系列与法律和伦理有关的问题。这些问题涵盖了自动驾驶的法律框架、道路规则以及伦理挑战。本文将探讨这些问题,并分析自动驾驶所带来的法律和伦理挑战。 自动驾驶的法律框架 自动驾驶的法律框架是制定和管理自动驾…...
Uniapp 增加百度统计代码
参考:https://blog.csdn.net/qq_37860634/article/details/131383304...

pyflink 环境测试以及测试案例
1. py 的 环境以来采用Anaconda环境包 安装版本:https://www.anaconda.com/distribution/#download-section Python3.8.8版本:Anaconda3-2021.05-Linux-x86_64.sh 下载地址 https://repo.anaconda.com/archive/ 2. 安装 bash Anaconda3-2021.05-Linux-x…...

EtherNet/IP转Modbus TCP协议网关的接口
远创智控的YC-EIPM-TCP网关产品,它有什么作用呢?一起来了解一下吧! 远创智控YC-EIPM-TCP网关产品可以通过各种数据接口和工业领域的仪表、PLC、计量设备等产品连接,实时采集这些设备中的运行数据、状态数据等信息,并把…...
conda相比python好处
Conda 作为 Python 的环境和包管理工具,相比原生 Python 生态(如 pip 虚拟环境)有许多独特优势,尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处: 一、一站式环境管理:…...

日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻
在如今就业市场竞争日益激烈的背景下,越来越多的求职者将目光投向了日本及中日双语岗位。但是,一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧?面对生疏的日语交流环境,即便提前恶补了…...

基于ASP.NET+ SQL Server实现(Web)医院信息管理系统
医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上,开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识,在 vs 2017 平台上,进行 ASP.NET 应用程序和简易网站的开发;初步熟悉开发一…...

DAY 47
三、通道注意力 3.1 通道注意力的定义 # 新增:通道注意力模块(SE模块) class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...

[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?
论文网址:pdf 英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误,若有发现欢迎评论指正!文章偏向于笔记,谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...
linux 错误码总结
1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...
【Go】3、Go语言进阶与依赖管理
前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课,做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程,它的核心机制是 Goroutine 协程、Channel 通道,并基于CSP(Communicating Sequential Processes࿰…...
【python异步多线程】异步多线程爬虫代码示例
claude生成的python多线程、异步代码示例,模拟20个网页的爬取,每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程:允许程序同时执行多个任务,提高IO密集型任务(如网络请求)的效率…...

莫兰迪高级灰总结计划简约商务通用PPT模版
莫兰迪高级灰总结计划简约商务通用PPT模版,莫兰迪调色板清新简约工作汇报PPT模版,莫兰迪时尚风极简设计PPT模版,大学生毕业论文答辩PPT模版,莫兰迪配色总结计划简约商务通用PPT模版,莫兰迪商务汇报PPT模版,…...

手机平板能效生态设计指令EU 2023/1670标准解读
手机平板能效生态设计指令EU 2023/1670标准解读 以下是针对欧盟《手机和平板电脑生态设计法规》(EU) 2023/1670 的核心解读,综合法规核心要求、最新修正及企业合规要点: 一、法规背景与目标 生效与强制时间 发布于2023年8月31日(OJ公报&…...