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

news2024/12/26 12:36:34

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金字塔重构中的上采样。

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

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

相关文章

Linux系统下Nginx的安装步骤

目录 Nginx简介Nginx的作用Nginx的安装方法方法一方法二方法三 本文主要介绍在Linux系统下,三种常见Nginx安装方法。 Nginx简介 Nginx是一个高性能的HTTP和反向代理服务器,也可以作为邮件代理服务器和通用的TCP/UDP代理服务器。它最初由Igor Sysoev创建…

JVM之垃圾回收与算法(四)

垃圾回收与算法 1.如何确定垃圾 1.1. 引用计数法 在 Java 中,引用和对象是有关联的。如果要操作对象则必须用引用进行。因此,很显然一个简单的办法是通过引用计数来判断一个对象是否可以回收。简单说,即一个对象如果没有任何与之关联的引用…

GPIO的使用--点亮外接小灯泡--开关控制

目录 一、确定引脚接线模式 接线时注意以下几点: 二、外接小灯泡引脚连接(以F12引脚为例) 1.正极接GPIOF3.3v电压引脚、负极接F12 2.正极接GPIOF3.3v电压引脚、负极接F12 三、问题检查 一、确定引脚接线模式 小灯泡有两级:正极、负极,…

春秋云镜:CVE-2022-28512

靶标介绍: Fantastic Blog (CMS)是一个绝对出色的博客/文章网络内容管理系统。它使您可以轻松地管理您的网站或博客,它为您提供了广泛的功能来定制您的博客以满足您的需求。它具有强大的功能,您无需接触任何代码即可启动并运行您的博客。 该…

决策树 算法原理

决策树 算法原理 决策树的原理 决策树: 从训练数据中学习得出一个树状结构的模型 决策树属于判别模型 决策树是一种树状结构,通过做出一系列决策 (选择) 来对数据进行划分,这类似于针对一系列问题进行选择。 决策树的决策过程就是从根节点开始&#…

JDK安装太麻烦?一篇文章搞定

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVMJava系统类库)和JAVA工具。 JDK包含的基本组件包括: javac – 编译器&#xf…

资深老鸟整理,高级测试工程师应具备的能力...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、业务熟悉 熟悉…

JVM:双亲委派(未完结)

类加载 定义 一个java文件从编写代码到最终运行,必须要经历编译和类加载的过程,如下图(图源自b站视频up主“跟着Mic学架构”)。 编译就是把.java文件变成.class文件。类加载就是把.class文件加载到JVM内存中,得到一…

Android Framework 电池提醒相关Dialog熄屏消失的问题

记录一下花了三四天干一天就能完成的需求的傻事。 说在前头,这篇文章记录了电池提醒dialog相关,弹出dialog且熄屏再亮屏dialog不会消失的代码,这篇废话比较多,看正常代码直接跳到代码3。 故事背景 需求要求添加非法电池的弹窗&a…

继承 多态 拆箱装箱 128陷阱 枚举类

继承 在java里一个类只能继承一个类,但可以被多个类继承;c里一个类可以继承多个类; 子类可以使用父类的方法; 在java中,Object是所有类的父类; equals方法比较的是对象是否指向同一个地方,这个方…

【VTKWidgetRepresentation】第二期 vtkHandleRepresentation

很高兴在雪易的CSDN遇见你 ,给你糖糖 欢迎大家加入雪易社区-CSDN社区云 前言 本文系统分享vtkHandleRepresentation及其子类,希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞关注,小易会继续努力分享,一起进步&am…

外包干了2个月,技术倒退2年。。。。。

先说一下自己的情况,本科生,20年通过校招进入深圳某软件公司,干了接近4年的功能测试,今年国庆,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…

大家口口声声谈私域,到底是什么?

大家口口声声说的私域到底是什么? 私域不是流量,是留量。 那首先得知道私域和私域留量的概念。 私域是指企业或个人在自有平台上建立的用户群体和资源,如自己的网站、APP、微信公众号、微博账号等。这些用户群体和资源不受外部平台的控制和限…

PyQt6 QListWidget列表控件

​锋哥原创的PyQt6视频教程: 2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~共计35条视频,包括:2024版 PyQt6 Python桌面开发 视频教程(无废话…

不会代码(零基础)学语音开发(跟我一起开始吧)

这款语音开发板,性价比非常高,集成了多种外设,包括180度数码舵机、双直流电机、双继电器、电位器、红外寻迹/接近传感器等等语音开发能用到的外部设备,构建了最为完善的语音开发环境。这样我们通过一个小小的开发板,就…

KNN算法实战-健康医疗

健康医疗 算法建模 knn 算法建模构建微观数据和疾病之间的关系knn 调整超参数,准确率提升数据归一化、标准化,提升更加明显 算法实战 导入包 import numpy as np import pandas as pd from sklearn.neighbors import KNeighborsClassifier from sklea…

Python 潮流周刊#29:Rust 会比 Python 慢?!

△请给“Python猫”加星标 ,以免错过文章推送 你好,我是猫哥。这里每周分享优质的 Python、AI 及通用技术内容,大部分为英文。本周刊开源,欢迎投稿[1]。另有电报频道[2]作为副刊,补充发布更加丰富的资讯。 &#x1f43…

sagment-anything官方代码使用详解

文章目录 一. sagment-anything官方例程说明1. 结果显示函数说明2. SamAutomaticMaskGenerator对象(1) SamAutomaticMaskGenerator初始化参数 3. SamPredictor对象(1) 初始化参数(2) set_image()(3) predict() 二. SamPredictor流程说明1. 导入所需要的库2. 读取图像3. 加载模型…

QT之QString

QT之QString 添加容器 点击栅格布局 添加容器,进行栅格布局 布局总结:每一个模块放在一个Group中,排放完之后,进行栅格布局。多个Group进行并排时,先将各个模块进行栅格布局,然后都选中进行垂直布…

Python实现交易策略评价指标-夏普比率

1.夏普比率的定义 在投资的过程中,仅关注策略的收益率是不够的,同时还需要关注承受的风险,也就是收益风险比。 夏普比率正是这样一个指标,它表示承担单位的风险会产生多少超额收益。用数学公式描述就是: S h a r p R…