Implicit Neural Representation for Cooperative Low-light Image Enhancement

GitHub - Ysz2022/NeRCo: [ICCV 2023] Implicit Neural Representation for Cooperative Low-light Image Enhancement

参考:ICCV2023 | 将隐式神经表征用于“低光增强”,北大张健团队提出NeRCo (qq.com)

以下三个因素限制了现有低光图像增强方法的应用:不可预测的亮度退化和噪声、度量友好和视觉友好版本之间固有的差距,以及有限的配对训练数据。为了解决这些限制,我们提出了一种用于合作式低光图像增强的隐式神经表示方法,名为NeRCo。它以无监督的方式稳健地恢复感知友好的结果。具体而言,NeRCo通过可控的拟合函数统一了现实场景的多样化退化因素,从而提高了稳健性。此外,对于输出结果,我们引入了从预训练视觉-语言模型中得出的语义导向监督。它不仅仅是跟随参考图像,而是鼓励结果符合主观期望,找到更符合视觉习惯的解决方案。此外,为了减少对配对数据的依赖并减少解决方案空间,我们开发了一个双闭环约束增强模块。它以自我监督的方式与其他相关模块合作进行训练。最后,大量实验证明了我们提出的NeRCo方法的稳健性和优越效果。

1. Introduction

由于低光图像中物体被覆盖并降低对比度,导致亮度降低,低光图像严重影响了随后的高级计算机视觉任务(例如,目标检测 [23] 和语义分割 [15] 等)。因此,解决亮度退化对于协助探索复杂黑暗环境具有实际重要性。近年来,低光图像增强引起了广泛关注,旨在恢复退化区域中所需内容的图像增强方法 [31, 9, 10, 12, 24, 11, 16, 46]。

在过去几年中,已经提出了大量算法来解决这个经典的不适定问题,大致可分为两类:传统基于模型的方法(例如,直方图均衡化 [31],伽马校正 [29],Retinex模型 [30] 和锐化掩模算法 [7])以及最近的基于深度学习的方法 [22, 51, 16, 44]。前者将退化视为物理模型,并将增强视为估计模型参数的问题,但在表征多样化的低光因素方面存在局限,并需要大量手工先验知识。后者详细说明了各种模型来调整色调和对比度,能够自动从大量数据中学习。基本上,它们被训练来学习从输入到输出领域的映射关系。然而,在现实场景中,许多样本远离了输入域的特征空间,导致训练好的模型缺乏稳定的效果。我们提出在增强之前对退化进行标准化,以使这些样本更接近输入域。此外,现有的监督方法高度依赖配对训练数据,并且主要试图产生度量友好的结果,即与真实数据相似。但有限的监督数据集和度量导向与视觉友好版本之间固有的差距必然影响它们的有效性。

我们制定了一个自我监督的培训策略来解决这个问题。如图1所示,我们对仅包含低光图像而没有常规光参考的LIME [12]数据集进行评估。可以看到,即使是最近提出的表现最佳的算法也存在严重的色彩偏差。

具体来说,我们的关键见解包括: i) 使用可控的拟合函数对输入进行标准化,以减少现实场景中不可预测的退化特征。我们采用神经表示来再现增强操作之前的退化场景。通过操纵位置编码,我们有选择性地避免再现极端退化,客观上实现了标准化,从而降低了增强的难度。 ii) 通过不同的模态监督输出,实现度量友好和感知导向的增强。我们采用多模态学习,从文本和图像两个角度进行监督。与图像监督相比,设计的提示的特征空间更稳定准确地描述亮度,在不同样本之间具有更一致的亮度。在训练过程中,我们的结果不仅被鼓励与参考图像相似,还被强制与它们的相关提示匹配。通过这种方式,我们弥合了度量友好版本和感知友好版本之间的差距。 iii) 开发了一种无监督的训练策略,减少对配对数据的依赖。我们建议使用双闭环协作对抗约束程序对增强模块进行训练,以无监督的方式学习。还提出了更多相关的损失函数,进一步减少解决方案空间。受益于这些策略,我们恢复了更真实的色调和更好的对比度(见图1)。总体而言,我们的贡献如下:

• 我们是第一个在低光图像增强中利用神经表示的可控拟合能力。它标准化了亮度退化并消除了自然噪声,而无需任何额外操作,为未来的工作提供了新的思路。

• 我们首次将多模态学习引入低光图像增强。借助其高效的视觉-语言先验知识,我们的方法学习了多样的特征,导致了感知上更好的结果。

• 我们开发了一种无监督的协作对抗学习策略,减少了对配对训练数据的依赖。其中基于外观的判别确保了从颜色和细节层面的真实性,提高了恢复结果的质量。

• 我们在代表性基准数据集上进行了大量实验,展示了我们的NeRCo相对于一系列最先进算法的优越性。特别是,它甚至超越了一些监督方法。

2. Related Work
2.1. Low-light Image Enhancement

为了提高低光图像的可见性,首先广泛采用了基于模型的方法。Retinex理论[40]将观察结果分解为照明和反射(即清晰的预测),但往往会使外观过度曝光。各种手工先验被进一步引入模型作为正则化项。Fu等人[10]开发了一个加权变分模型来同时估计反射和照明层。Cai等人[2]提出了一个保边平滑算法来建模亮度。Guo等人[12]通过采用相对总变分[45]来预测照明。然而,这些定义的先验知识需要大量人工工作,并且在面向现实场景的泛化性能方面表现不佳。

由于这些限制,研究人员利用深度学习以数据驱动的方式进行恢复[47, 24, 3, 11, 22, 51, 46, 44],从大量数据中自动获取先验知识。例如,Guo等人[11]将光增强定式为利用轻量级深度模型进行图像特定曲线估计的任务。Jiang等人[16]引入了对抗训练来学习来自不配对监督的知识。Wei等人[43]设计了一个端到端可训练的RetinexNet,但仍然受到严重噪声的困扰。为了缓解这种问题,Zhang等人[49]调整了模型结构并开发了去噪训练损失。Zhang等人[48]提出了一种分解型架构来对反射施加约束。Liu等人[22]采用了架构搜索并构建了一个展开网络。尽管这些精心设计的模型实现了令人印象深刻的有效性,但在现实世界的应用中并不稳定。为了提高稳健性,在增强过程之前,我们使用神经表示将退化预调至统一水平。

2.2. Neural Representation for Images

最近,神经表示法已被广泛应用于描述图像。Chen等人[5]首次利用隐式图像表示进行连续图像超分辨率。然而,多层感知器(MLP)倾向于扭曲高频分量。为解决这个问题,Lee等人[20]开发了一个主导频率估计器,用于预测自然图像的局部纹理。Lee等人[19]进一步利用隐式神经表示将图像扭曲成连续形状。Dupont等人[8]尝试通过操纵隐藏层的潜在编码来用一个MLP生成不同的对象。Saragadam等人[37]采用多个MLP以多尺度方式表示单个图像。Sun等人[38]基于捕获的层析特征预测连续信息。Tancik等人[39]引入元学习来初始化MLP的参数以加速训练。

Reed等人[35]采用神经表示和参数化运动场来预测器官的形状和位置。此外,一些研究人员采用神经表示来压缩视频[1, 4, 50]。然而,现有的神经表示主要应用于图像压缩、去噪和描述连续信息等领域。我们是第一个将其可控拟合能力应用于低光图像增强的研究者。

2.3. Multi-modal Learning

近年来,跨视觉和语言模态的学习引起了广泛关注。出现了各种视觉-语言模型。Radford等人[32]提出了从语言监督中学习视觉模型的方法,称为CLIP。在训练了4亿张图文配对数据后,它可以用自然语言描述任何视觉概念,并且无需特定训练即可迁移到其他任务。此外,Zhou等人[52]开发了软提示来取代手工设计的提示,使用可学习的向量来建模上下文词汇,并获得与任务相关的语境。为了进一步将提示细化到实例级别,Rao等人[34]设计了上下文感知提示,将提示与视觉特征相结合。Cho等人[6]通过将统一框架更新为七个多模态任务的共同目标来在不同任务之间共享先验知识。Ju等人[17]采用了预训练的CLIP模型进行视频理解。

现有的方法主要集中在高级计算机视觉任务上,如图像分类。我们首次将预先训练的视觉语言模型的先验应用于微光图像增强,开发了面向语义的引导,并实现了更好的性能.

3. Our Method
3.1. Framework Architecture 

  • 作者先将待增强的暗光图及其对应的空间坐标用全连接层进行编码,并输出一张图片,鼓励输出结果尽可能地与输入的暗光图相似。

  • 然后,利用增强模块(ResNet)将其恢复成亮光结果。在此过程中还引入注意力模块以针对性地增强不同暗光区域。增强后的结果会喂给TAD鉴别其真伪。作者鼓励非成对的亮光自然图像被TAD鉴别为真,鼓励恢复的亮光结果为伪,以此训练增强模块。

  • 文本驱动的外观鉴别器 该鉴别器由3条支路构成。输入的亮光图像(增强结果or数据集)会分别从颜色维度,高频分量和语义空间三个角度被监督

  • 中间的紫色支路是一个普通鉴别器,判断输入图像在像素级别上与真实亮光图之间的差异。下方支路是由Sobel算子和鉴别器组成的高频分量鉴别器。Sobel算子先提取图像的高频分量,再由鉴别器判断其与真实图片的分布差异。

  • 上方是作者引入的CLIP先验指导的文本监督,通过对其图像特征和文本特征,引导模型向与文本更匹配的方向优化。实验证明引入文本监督后的模型,其增强结果更符合文本语义特征的分布,甚至比Ground Truth更符合

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

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

相关文章

workbench导入sql脚本文件

这里面有个Data Import 点击start Import 刷新一下导入完成

C++多态(详解)

一、多态的概念 1.1、多态的概念 多态:多种形态,具体点就是去完成某个行为,当不同的对象去完成时会产生出不同的状态。 举个例子:比如买票这个行为,当普通人买票时,是全价买票;学生买票时&am…

故宫博物院与周大福珠宝集团 战略合作签约仪式在京举行

12月5日上午,故宫博物院与周大福珠宝集团战略合作签约仪式在故宫博物院故宫文化资产数字化应用研究所举行。文化和旅游部党组成员、故宫博物院院长王旭东,国际儒学联合会常务副会长、原文化部副部长丁伟,国际儒学联合会特别顾问、中国国际友好…

深入了解Java Duration类,对时间的精细操作

阅读建议 嗨,伙计!刷到这篇文章咱们就是有缘人,在阅读这篇文章前我有一些建议: 本篇文章大概6000多字,预计阅读时间长需要5分钟。本篇文章的实战性、理论性较强,是一篇质量分数较高的技术干货文章&#x…

12.Java程序设计-基于Springboot框架的Android学习生活交流APP设计与实现

摘要 移动应用在日常生活中扮演着越来越重要的角色,为用户提供了方便的学习和生活交流渠道。本研究旨在设计并实现一款基于Spring Boot框架的Android学习生活交流App,以促进用户之间的信息分享、学术交流和社交互动。 在需求分析阶段,我们明…

如何使用HadSky搭配内网穿透工具搭建个人论坛并发布至公网随时随地可访问

文章目录 前言1. 网站搭建1.1 网页下载和安装1.2 网页测试1.3 cpolar的安装和注册 2. 本地网页发布2.1 Cpolar临时数据隧道2.2 Cpolar稳定隧道(云端设置)2.3 Cpolar稳定隧道(本地设置)2.4 公网访问测试 总结 前言 经过多年的基础…

【微服务】springboot整合quartz使用详解

目录 一、前言 二、quartz介绍 2.1 quartz概述 2.2 quartz优缺点 2.3 quartz核心概念 2.3.1 Scheduler 2.3.2 Trigger 2.3.3 Job 2.3.4 JobDetail 2.4 Quartz作业存储类型 2.5 适用场景 三、Cron表达式 3.1 Cron表达式语法 3.2 Cron表达式各元素说明 3.3 Cron表达…

浅谈https

1.网络传输的安全性 http 协议:不安全,未加密https 协议:安全,对请求报文和响应报文做加密 2.对称加密与非对称加密 2.1 对称加密 特点: 加解密使用 相同 秘钥 高效,适用于大量数据的加密场景 算法公开&a…

C++STL的string类(一)

文章目录 前言C语言的字符串 stringstring类的常用接口string类的常见构造string (const string& str);string (const string& str, size_t pos, size_t len npos); capacitysize和lengthreserveresizeresize可以删除数据 modify尾插插入字符插入字符串 inserterasere…

7.3 Windows驱动开发:内核监视LoadImage映像回调

在笔者上一篇文章《内核注册并监控对象回调》介绍了如何运用ObRegisterCallbacks注册进程与线程回调,并通过该回调实现了拦截指定进行运行的效果,本章LyShark将带大家继续探索一个新的回调注册函数,PsSetLoadImageNotifyRoutine常用于注册Loa…

学习IO的第五天

作业 &#xff1a;使用两个线程完成文件的拷贝写入&#xff0c;分线程1写入前半段&#xff0c;分线程2写入后半段&#xff0c;主线程用来回收资源 #include <head.h>void *sork(void *arg); void *sork2(void *arg);int file_copy(int start,int len) //拷贝的函数 {i…

Linux_vi/vim编辑器

3.VI 与 VIM 3.1概述 vi编辑器&#xff1a;是Linux和Unix上最基本的文本编辑器&#xff0c;工作在字符模式下。由于不需要图形界面&#xff0c;vi是效率很高的文本编辑器。 vim是&#xff1a;vi的增强版&#xff0c;比vi更容易使用。vi的命令几乎全部都可以在vim上使用。 3…

Qt图形设计

#include "mywidget.h"MyWidget::MyWidget(QWidget *parent): QWidget(parent) {//窗口相关设置//设置窗口标题this->setWindowTitle("王者荣耀");//设置窗口图标this->setWindowIcon(QIcon("C:\\Users\\28033\\Pictures\\Saved Pictures\\pict…

ESP32单片机案例

工具&#xff1a;VScode PlatformIO IDE 注&#xff1a;B站视频学习笔记。 1、继电器 1&#xff09;硬件电路 2&#xff09;程序 #include <Arduino.h> #define RELAY_PIN 15//初始化定时器 hw_timer_t *timer NULL;void timer_interrupt(){ //将引脚传入的电平信号…

公众号word文档

在数字化时代&#xff0c;信息的快速获取和高效整理变得尤为重要。微信公众号作为信息传播的重要平台&#xff0c;其内容经常需要被转换成更易于编辑和存档的格式&#xff0c;如Word文档。这里&#xff0c;我们将介绍如何利用“微附件”小程序实现这一过程&#xff0c;并分享一…

第二十一章

网络通信这一章 基本分为三个部分 网络基础概念和TCP,UDP这三个部分主要如下&#xff1a; 计算机网络实现了堕胎计算机间的互联&#xff0c;使得它们彼此之间能够进行数据交流。网络应用程序就是再已连接的不同计算机上运行的程序&#xff0c;这些程序借助于网络协议&#xf…

mixamo根动画导入UE5问题:滑铲

最近想做一个跑酷游戏&#xff0c;从mixamo下载滑铲动作后&#xff0c;出了很多动画的问题。花了两周时间&#xff0c;终于是把所有的问题基本上都解决了。 常见问题&#xff1a; 1.【动画序列】人物不移动。 2.【动画序列】人物移动朝向错误。 3.【蒙太奇】人物移动后会被拉回…

谈谈 .NET8 平台中对 LiteDB 的 CRUD 操作

哪个啥&#xff01;纯 C# 编写的 LiteDB 你还不会操作&#xff1f; LiteDB 简介LiteDB 安装1、同步版 LiteDB2、异步版 LiteDB.Async LiteDB StudioLiteDB CRUD 操作举例1、.net cli 命令创建项目2、项目添加相关 nuget 包3、改造项目结构4、改造项目代码 LiteDB vs SQLite 对比…

MySQl int(1)、int(20) 的区别到底在哪里

MySQl int(1)、int(20) 的区别到底在哪里 常思一二&#xff0c;便得自然… int(1)数据类型介绍 在MySQL中&#xff0c;INT(1) 是一种定义整数类型的数据字段&#xff0c;其中的数字表示显示宽度而不是存储范围。具体说&#xff0c;INT(1) 中的数字 1 表示显示宽度&#xff0…

高级搜索——ST表,离线RMQ问题

文章目录 前言可重复贡献问题ST表的定义ST表的存储结构ST表的预处理预处理的实现 ST表的区间查询对于k的获取区间查询的实现 OJ链接 前言 对于查询区间最值的方法&#xff0c;我们常用的就是线段树&#xff0c;树状数组&#xff0c;单调队列&#xff0c;而树状数组更适合用于快…