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

4K-Resolution Photo Exposure Correction at 125 FPS with ~8K Parameters

MSLTNet开源 | 4K分辨率+125FPS+8K的参数量,怎养才可以拒绝这样的模型呢?

错误的曝光照片的校正已经被广泛使用深度卷积神经网络或Transformer进行广泛修正。尽管这些方法具有令人鼓舞的表现,但它们通常在高分辨率照片上具有大量的参数数量和沉重的计算浮点运算(FLOPs)。

在本文中,作者提出了一个极轻量级(仅有约8K参数)的多尺度线性变换(MSLT)网络,该网络采用多层感知架构,可以在125帧每秒(FPS)的速度下,使用泰坦RTX GPU处理4K分辨率sRGB图像。

具体来说,提出的MSLT网络首先使用拉普拉斯金字塔技术将输入图像分解为高和低频层,然后依次通过像素自适应线性变换来纠正不同层,这种实现方式是通过高效的双边网格学习或1×1卷积来实现的。在两个基准数据集上的实验表明,作者的MSLT在照片曝光校正方面与最先进的水平相比具有高效性。大量的消融实验验证了作者的贡献的有效性。

代码:https://github.com/Zhou-Yijie/MSLTNet

1 Introduction

智能手机摄像头的普及使人们像摄影师一样捕捉日常生活场景。然而,快门速度、焦距光圈比和/或ISO值设置不准确可能导致捕捉到的照片曝光不正确,视觉质量下降。为了以视觉上可取的方式正确调整照片曝光,对于边缘设备开发高效的曝光校正方法至关重要。

在过去的几十年里,提出了低光增强方法和过曝校正方法来分别调整欠曝和过曝图像的亮度。然而,低光增强方法在矫正过曝图像时几乎无法实现,而过曝校正方法在矫正欠曝图像时则无法正常工作。

高动态范围(HDR)调色映射方法也可以在一定程度上调整内容的不正确曝光,但主要是通过在曝光不正确区域的局部细节增强以及动态范围减少来实现。最后,所有这些方法都不适合曝光校正,因为曝光校正需要在图像中的不正确曝光进行全局调整。

近年来,基于卷积神经网络(CNN)或Transformer的曝光校正方法或也出现了几种。例如,多尺度曝光校正(MSEC)使用拉普拉斯金字塔技术和UNet架构进行层次曝光校正。后来,[48]的工作利用局部颜色分布先验(LCDP)来定位和增强不正确曝光区域。

基于注意力的照明自适应Transformer(IAT)在Transformer架构下估计与图像信号处理器(ISP)相关的参数。尽管这些曝光校正的卷积神经网络或Transformer具有令人鼓舞的表现,但它们通常受到大量参数数量和计算成本的限制。

为了在提高模型效率的同时产生视觉上令人满意的结果,本文提出了一种极轻量级的多尺度线性变换(MSLT)网络,用于高分辨率图像曝光校正。具体来说,作者首先通过拉普拉斯金字塔技术将输入图像分解为高频和低频层,以实现从粗到细的曝光校正。然后作者设计简单的线性变换网络逐步校正这些层,消耗较少的参数数量和计算成本。对于低频层,作者采用双边网格学习(BGL)框架,在不良曝光和正确曝光图像对之间学习像素级仿射变换。

为了在BGL中学习上下文感知的变换系数,作者提出了一种无参数的上下文感知特征分解(CFD)模块,并将其扩展为多尺度仿射变换。对于高频层,作者通过两个通道的1×1卷积层简单地学习像素级校正Mask。

得益于使用多层感知(MLP)进行从粗到细的曝光校正,作者的最大网络MSLT++有8098个参数,只需要0.14G和3.67ms来处理一个的图像,使用RTX GPU。

作为比较,基于CNN的MSEC、LCDP和基于Transformer的IAT的参数数量分别为约7015K、约282K和约86.9K,对应的FLOPs/速度分别为73.35G/240.46ms、17.33G/507.67ms和22.96G/153.96ms。在两个基准数据集上的实验表明,作者的MSLTs在定量和定性方面都优于最先进的曝光校正方法。如图1所示,在ME数据集上的性能比较结果。

作者主要的贡献可以总结如下:

1. 开发了具有最多8098个参数的多尺度线性变换网络,在运行4K分辨率(3840X2160X3)图像时,最多可达到125 FPS,并具有有效的曝光校正性能。

2.为了加速多尺度分解,设计了一个双边网格网络(BGN)来像素级校正低频层的曝光。

3.通过使用通道级MLP而不是CNN或Transformer来实现BGN,以赋予作者的MSLTs较小的参数数量和计算成本。

4.提出了一种上下文感知特征分解(CFD)模块,用于在作者的BGN中学习层次变换系数,以实现有效的曝光校正。

2 Related Work

Image Exposure Correction Methods

曝光校正任务类似于低光图像增强、过曝校正和HDR调色映射等任务,但又有不同。据作者所知,MSEC是第一个基于深度学习的曝光校正方法。该方法将图像分解为高频和低频部分,并逐步校正曝光错误。然而,MSEC有超过700万个参数,在高分辨率图像上的效率不足。

Local Color Distributions Prior(LCDP)利用局部颜色分布来统一处理欠曝和过曝,大约有282K个参数,需要巨大的计算成本,17.33G FLOPs,处理一个1024X1024X3X3的图像。基于Transformer的照明自适应Transformer(IAT)有大约86.9K个参数,但在高分辨率图像上存在巨大的计算成本和缓慢的推理速度。

在本文中,作者提出了一种轻量级和高效的Multi-Scale Linear Transformation(MSLT)网络,其参数数量最多为8098个,并且可以在125 FPS的速度下运行,用于校正不正确的4K分辨率图像曝光。

Image Processing MLPs

在卷积神经网络(CNNs)和Transformer的繁荣之前,多层感知(MLPs)在视觉任务中起着重要的作用。MLP为基础的网络再次引起了研究人员注意,因为它们具有简单性。MLP-Mixer是一种纯粹基于MLP的网络,没有卷积或自注意力。后来,ResMLP被提出,它只使用线性层和GELU非线性。gMLP的工作利用具有gating的MLP来实现与Transformer在图像分类上相似的结果。Ding等人提出了一种再参数化技术来提高MLP在图像分类上的能力。最近开发的MAXIM是一种多轴MLP为基础的网络,用于通用图像处理任务。

在本文中,作者开发了一种非常高效的曝光校正网络,该网络主要利用通道MLPs(而不是空间MLPs)来全局感知图像的曝光信息。

Light-weight Image Enhancement Networks

为了追求轻量级和高效的模型,一种简单的方法是将模型应用于低分辨率输入,然后将输出放大到高分辨率。但高频细节会丢失。为此,Laplacian Pyramid分解被用来保留高频信息。另一种方法是学习一个近似算子,并将其应用于下采样输入,然后将这个算子应用于原始图像。这样的近似算子通常简单且高效。后来,这个近似洞察也被研究了,用于加速图像处理方法在图像增强、图像去雾和立体匹配等任务上的应用。

在本文中,作者设计了使用拉普拉斯金字塔技术和双边网格学习框架的轻量级和高效的图像曝光校正网络。与CNN和Transformer不同,作者的双边网格网络纯粹由通道MLP实现,消耗的参数和计算成本比CNN和Transformer少得多。

3 Proposed Method

Network Overview

Low-Frequency Layer Correction

照明信息主要存在于低频中,因此作者更关注低频层的有效曝光校正。受到在高效图像处理上的成功启发,作者采用双边网格学习来校正低频层的曝光。

如图2所示,作者的双边网格网络包含三个部分:

  1. 学习引导图;

  2. 估计仿射系数的双边网格;

  3. 系数变换。

如图3(a)所示,上下文感知特征是通过将原始特征通道乘以全局平均池化和全局标准池化计算的平均值和标准差得到的。作者将CFD扩展为一个层次化的特征分解(HFD)模块,通过将三个共享参数的CFD和SFE模块堆叠在一起,如图3(c)所示。

目标是学习一个16x16x72的仿射系数3D双边网格,其中每个12个通道表示一个3x4仿射矩阵。作者通过通道级的1x1卷积来实现层次化的特征分解(HFD)模块,以进行空间一致性和像素自适应亮度调整。在ReLU之前,三个共享参数的1x1卷积(如图3(c)所示),具有较少的参数数量和计算成本。

如图4所示的校正强度热图与输入图像 I 的上下文密切相关。这表明作者的MSLT确实实现了像素自适应的曝光校正。

 

 

 

在SICE上,作者的MSLTs与MSECs具有可比性能,但比IAT和FECNet稍逊一筹。然而,作者的MSLTs在效率方面优于所有比较方法,如表3所示。

在图6中,作者提供了ME数据集中的"Manor"和SICE数据集中的"Mountain"的校正图像,分别由比较方法生成。更多视觉比较结果可参见补充文件。

在过曝的"Manor"图像上,可以看出Zero-DCE,SCI,LPTN和Channel-MLP很难减弱曝光。作者的MSLTs在云、墙壁和草坪的细节上比LCDP和IAT更好。校正后的MSEC图像对比度过高,不够真实。在欠曝的"Mountain"图像上,作者的MSLTs在整体亮度和绿叶细节方面都优于其他方法。

 

 

 

在作者的MSLT+和MSLT++中,作者引入可学习3X3的卷积核,步长为2用于Laplacian金字塔分解中的下采样,以及步长为1的3X3卷积核 followed by 双线性插值用于Laplacian金字塔重构中的上采样。

相关文章:

4K-Resolution Photo Exposure Correction at 125 FPS with ~8K Parameters

MSLTNet开源 | 4K分辨率125FPS8K的参数量,怎养才可以拒绝这样的模型呢? 错误的曝光照片的校正已经被广泛使用深度卷积神经网络或Transformer进行广泛修正。尽管这些方法具有令人鼓舞的表现,但它们通常在高分辨率照片上具有大量的参数数量和沉…...

网络初识:局域网广域网网络通信基础

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、局域网LAN是什么?二、广域网是什么:三. IP地址四.端口号五.认识协议5.1五元组 总结 前言 一、局域网LAN是什么? 局域网…...

JVM之jps虚拟机进程状态工具

jps虚拟机进程状态工具 1、jps jps:(JVM Process Status Tool),虚拟机进程状态工具,可以列出正在运行的虚拟机进程,并显示虚拟机执 行主类(Main Class,main()函数所在的类)的名称&#xff0c…...

C++实现顺序栈的基本操作(扩展)

#include <stdio.h> typedef char ElemType; #define StackSize 100 /*顺序栈的初始分配空间*/ typedef struct { ElemType data[StackSize]; /*保存栈中元素*/int top; /*栈顶指针*/ } SqStack; void InitStack(SqStack &st) {st.top-1; } …...

用python写一个简单的爬虫

爬虫是一种自动化程序&#xff0c;用于从互联网上获取数据。它能够模拟人类浏览网页的行为&#xff0c;访问网页并提取所需的信息。爬虫在很多领域都有广泛的应用&#xff0c;例如数据采集、信息监控、搜索引擎索引等。 下面是一个使用Python编写的简单爬虫示例&#xff1a; …...

分布式追踪

目录 文章目录 目录自定义指标1.删除标签2.添加指标3.禁用指标 分布式追踪上下文传递Jaeger 关于我最后最后 自定义指标 除了 Istio 自带的指标外&#xff0c;我们还可以自定义指标&#xff0c;要自定指标需要用到 Istio 提供的 Telemetry API&#xff0c;该 API 能够灵活地配…...

make -c VS make -f

make 是一个用于构建&#xff08;编译&#xff09;项目的工具&#xff0c;它通过读取一个名为 Makefile 的文件来执行构建任务。make 命令有很多选项和参数&#xff0c;其中包括 -c 和 -f。 make -c&#xff1a; 作用&#xff1a;指定进入指定的目录并执行相应的 Makefile。 示…...

Unity 代码控制Color无变化

Unity中&#xff0c;我们给Color的赋值比较常用的方法是&#xff1a; 1、使用预定义颜色常量&#xff1a; Color color Color.white; //白色 Color color Color.black; //黑色 Color color Color.red; //红色 Color color Color.green; //绿色 Color color Color.blue; …...

【Erlang进阶学习】2、匿名函数

受到其它一些函数式编程开发语言的影响&#xff0c;在Erlang语言中&#xff0c;将函数作为一个对象&#xff0c;赋予其“变量”的属性&#xff0c;即为我们的匿名函数 或 简称 fun&#xff0c;它具有以下特性&#xff1a; &#xff08;匿名函数&#xff1a;不是定义在Erlang模…...

肖sir__mysql之视图__009

mysql之视图 一、什么是视图 视图是一个虚拟表&#xff08;逻辑表&#xff09;&#xff0c;它不在数据库中以存储形式保存&#xff08;本身包含数据&#xff09;&#xff0c;是在使用视图的时候动态生成。 二、视图作用 1、查询数据库中的非常复的数据 例如&#xff1a;多表&a…...

FPGA falsh相关知识总结

1.存储容量是128M/8 Mb16MB 2.有256个sector扇区*每个扇区64KB16MB 3.一页256Byte 4.页编程地址0256 5&#xff1a;在调试SPI时序的时候一定注意&#xff0c;miso和mosi两个管脚只要没发送数据就一定要悬空&#xff08;处于高组态&#xff09;&#xff0c;不然指令会通过两…...

升辉清洁IPO:广东清洁服务“一哥”还需要讲好全国化的故事

近日&#xff0c;广东物业清洁服务“一哥”升辉清洁第四次冲击IPO成功&#xff0c;拟于12月5日在香港主板挂牌上市。自2021年4月第一次递交招股书&#xff0c;时隔两年半&#xff0c;升辉清洁终于拿到了上市的门票。 天眼查显示&#xff0c;升辉清洁成立于2000年&#xff0c;主…...

Python自动化办公:PDF文件的分割与合并

我们平时办公中&#xff0c;可能需要对pdf进行合并或者分割&#xff0c;但奈何没有可以白嫖的工具&#xff0c;此时python就是一个万能工具库。 其中PyPDF2是一个用于处理PDF文件的Python库&#xff0c;它提供了分割和合并PDF文件的功能。 在本篇博客中&#xff0c;我们将详细…...

破解app思路

1.会看smali代码逻辑 一.快速定位关键代码 1.分析流程 搜索特征字符串 搜索关键 api 通过方法名来判断方法的功能 2.快速定位关键代码 反编译 APK 程序 AndroidManifest.xml>包名/系统版本/组件 程序的主 activity(程序入口界面) 每个 Android 程序…...

背景特效插件:Background Effects

...

36.位运算符

一.什么是位运算符 按照二进制位来进行运算的运算符叫做位运算符&#xff0c;所以要先将操作数转换成二进制&#xff08;补码&#xff09;的形式在运算。C语言的中的位运算符有&#xff1a; 运算符作用举例结果& 按位与&#xff08;and&#xff09; 0&00; 0&10; …...

C#异常处理-throw语句

throw语句是我们手动引发异常的一个语句。 在程序执行过程中&#xff0c;当某些条件不符合我们的要求时&#xff0c;那么我们就可以使用throw语句手动抛出异常&#xff0c;那么就可以在异常发生的地方终止当前代码块的执行&#xff0c;此时我们就可以把控制权传递给调用堆栈中…...

PlantUML语法(全)及使用教程-时序图

目录 1. 参与者1.1、参与者说明1.2、背景色1.3、参与者顺序 2. 消息和箭头2.1、 文本对其方式2.2、响应信息显示在箭头下面2.3、箭头设置2.4、修改箭头颜色2.5、对消息排序 3. 页面标题、眉角、页脚4. 分割页面5. 生命线6. 填充区设置7. 注释8. 移除脚注9. 组合信息9.1、alt/el…...

231204 刷题日报

21. 合并两个有序链表 单调栈没看懂&#xff0c;晚上回家再说吧 380. O(1) 时间插入、删除和获取随机元素 今天被接雨水钉在耻辱柱&#xff0c;找时间再看吧...

PTA 7-229 sdut-C语言实验- 排序

给你N(N<100)个数,请你按照从小到大的顺序输出。 输入格式: 输入数据第一行是一个正整数N,第二行有N个整数。 输出格式: 输出一行&#xff0c;从小到大输出这N个数&#xff0c;中间用空格隔开。 输入样例: 5 1 4 3 2 5输出样例: 1 2 3 4 5 #include <stdio.h>…...

内存分配函数malloc kmalloc vmalloc

内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...

Prompt Tuning、P-Tuning、Prefix Tuning的区别

一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...

centos 7 部署awstats 网站访问检测

一、基础环境准备&#xff08;两种安装方式都要做&#xff09; bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats&#xff0…...

dedecms 织梦自定义表单留言增加ajax验证码功能

增加ajax功能模块&#xff0c;用户不点击提交按钮&#xff0c;只要输入框失去焦点&#xff0c;就会提前提示验证码是否正确。 一&#xff0c;模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...

【2025年】解决Burpsuite抓不到https包的问题

环境&#xff1a;windows11 burpsuite:2025.5 在抓取https网站时&#xff0c;burpsuite抓取不到https数据包&#xff0c;只显示&#xff1a; 解决该问题只需如下三个步骤&#xff1a; 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...

SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现

摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序&#xff0c;以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务&#xff0c;提供稳定高效的数据处理与业务逻辑支持&#xff1b;利用 uniapp 实现跨平台前…...

新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案

随着新能源汽车的快速普及&#xff0c;充电桩作为核心配套设施&#xff0c;其安全性与可靠性备受关注。然而&#xff0c;在高温、高负荷运行环境下&#xff0c;充电桩的散热问题与消防安全隐患日益凸显&#xff0c;成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...

【配置 YOLOX 用于按目录分类的图片数据集】

现在的图标点选越来越多&#xff0c;如何一步解决&#xff0c;采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集&#xff08;每个目录代表一个类别&#xff0c;目录下是该类别的所有图片&#xff09;&#xff0c;你需要进行以下配置步骤&#x…...

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

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

UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)

UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中&#xff0c;UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化&#xf…...