当前位置: 首页 > news >正文

论文阅读之《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]] (若两个四元组元素一一对应,则认为两个四元组重复)。 解题思路&#xff1a…...

word误删除的文件怎么恢复?恢复办法分享

在日常工作和学习中,我们常常会使用到Word来撰写文章、毕业论文、方案等。然而,我们可能会遇到Word误删文件的情况,令我们陷入恐慌,特别是这个文件很重要时。幸运的是,有办法找回。下面一起来看下word误删除的文件怎么…...

提高Qt开发软件运算性能提升

编译器minGW32&#xff0c;release版本&#xff0c;大部分操作在线程循环里面更容易体现出来 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 邮件发送插件&#xff0c;WordPress 中经常用到邮件发送&#xff0c;包括新注册用户的邮件通知、找回密码通知、评论回复通知等。因为云服务器默认不启用 SMTP功能&#xff0c;所以需要安装 SMTP插件来解决这个问题。 SMTP 主机&#xff1a;smtp.…...

大咖云集,智慧碰撞|第 18 届 CLK 大会完整议程揭晓(内附报名通道)

自 2006 年以来&#xff0c;在国内 Linux 技术爱好者和行业公司的鼎力支持下&#xff0c;中国 Linux 内核开发者大会已走过 17个年头&#xff0c;是中国 Linux 内核领域最具影响力的峰会之一。今年的中国内核开发者大会依然秉承历届理念&#xff0c;以“自由、协作、创新”为理…...

springweb+vue前后端分离开发,集成部署

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

美芯片禁令再次扩大,波及英伟达、AMD以及intel等科技公司 | 百能云芯

拜登政府17日宣布&#xff0c;计划停止英伟达&#xff08;Nvidia&#xff09;、超微半导体以及英特尔等科技公司设计的先进AI芯片输出中国大陆&#xff0c;英伟达&#xff08;Nvidia&#xff09;昨日股价重挫4.68%至每股439.38美元&#xff1b;天风国际证券分析师郭明錤表示&am…...

Docker入门到精通教程

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

Java 对象是什么样子的?

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

自动驾驶的法律和伦理问题

随着自动驾驶技术的不断发展&#xff0c;出现了一系列与法律和伦理有关的问题。这些问题涵盖了自动驾驶的法律框架、道路规则以及伦理挑战。本文将探讨这些问题&#xff0c;并分析自动驾驶所带来的法律和伦理挑战。 自动驾驶的法律框架 自动驾驶的法律框架是制定和管理自动驾…...

Uniapp 增加百度统计代码

参考&#xff1a;https://blog.csdn.net/qq_37860634/article/details/131383304...

pyflink 环境测试以及测试案例

1. py 的 环境以来采用Anaconda环境包 安装版本&#xff1a;https://www.anaconda.com/distribution/#download-section Python3.8.8版本&#xff1a;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网关产品&#xff0c;它有什么作用呢&#xff1f;一起来了解一下吧&#xff01; 远创智控YC-EIPM-TCP网关产品可以通过各种数据接口和工业领域的仪表、PLC、计量设备等产品连接&#xff0c;实时采集这些设备中的运行数据、状态数据等信息&#xff0c;并把…...

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…...

Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器

第一章 引言&#xff1a;语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域&#xff0c;文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量&#xff0c;支撑着搜索引擎、推荐系统、…...

IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)

文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...

html-<abbr> 缩写或首字母缩略词

定义与作用 <abbr> 标签用于表示缩写或首字母缩略词&#xff0c;它可以帮助用户更好地理解缩写的含义&#xff0c;尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时&#xff0c;会显示一个提示框。 示例&#x…...

代理篇12|深入理解 Vite中的Proxy接口代理配置

在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...

AI,如何重构理解、匹配与决策?

AI 时代&#xff0c;我们如何理解消费&#xff1f; 作者&#xff5c;王彬 封面&#xff5c;Unplash 人们通过信息理解世界。 曾几何时&#xff0c;PC 与移动互联网重塑了人们的购物路径&#xff1a;信息变得唾手可得&#xff0c;商品决策变得高度依赖内容。 但 AI 时代的来…...

Java + Spring Boot + Mybatis 实现批量插入

在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法&#xff1a;使用 MyBatis 的 <foreach> 标签和批处理模式&#xff08;ExecutorType.BATCH&#xff09;。 方法一&#xff1a;使用 XML 的 <foreach> 标签&#xff…...

人工智能(大型语言模型 LLMs)对不同学科的影响以及由此产生的新学习方式

今天是关于AI如何在教学中增强学生的学习体验&#xff0c;我把重要信息标红了。人文学科的价值被低估了 ⬇️ 转型与必要性 人工智能正在深刻地改变教育&#xff0c;这并非炒作&#xff0c;而是已经发生的巨大变革。教育机构和教育者不能忽视它&#xff0c;试图简单地禁止学生使…...

Linux nano命令的基本使用

参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时&#xff0c;显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...

rknn toolkit2搭建和推理

安装Miniconda Miniconda - Anaconda Miniconda 选择一个 新的 版本 &#xff0c;不用和RKNN的python版本保持一致 使用 ./xxx.sh进行安装 下面配置一下载源 # 清华大学源&#xff08;最常用&#xff09; conda config --add channels https://mirrors.tuna.tsinghua.edu.cn…...