Taming Lookup Tables for Efficient Image Retouching

Abstract

高清屏幕在终端用户相机、智能手机和电视等边缘设备中的广泛使用,刺激了对图像增强的巨大需求。现有的增强模型通常针对高性能进行优化,但不能减少硬件推断时间和功耗,尤其是在计算和存储资源受限的边缘设备上。为此,我们提出了一种图像颜色增强查找表(ICELUT),它采用查找表(LUT)进行非常有效的边缘推断,而不需要任何卷积神经网络(CNN)。在训练过程中,我们利用逐点(1 × 1)卷积提取颜色信息,同时利用分割的完全连接层来合并全局信息。然后,将这两个组件无缝地转换为LUT,以实现与硬件无关的部署。ICELUT实现了接近最先进的性能和极低的功耗。我们观察到,逐点网络结构表现出鲁棒的可扩展性,即使对于大量下采样的32×32输入图像也能保持性能。这使得第一个纯基于LUT的图像增强器ICELUT在GPU上达到了前所未有的0.4ms速度,在CPU上达到了7ms速度,比任何CNN解决方案都快至少一个数量级。有关代码,请访问https://github.com/Stephen0808/ICELUT获取。

1 Introduction

在数码相机成像中,不利的拍摄条件和有限的计算能力会导致图像质量下降。为了满足审美偏好,传统的增强过程涉及使用专家设计的级联模块进行曝光补偿、饱和度调整和色调映射。然而,这些费力且不灵活的调整往往会导致图像不令人满意。为了克服这一点,深度学习方法在自动修饰图像方面越来越受欢迎。

现有的工作可以分为两类:1)图像到图像网络,其直接将输入图像变换为其增强版本,以及2)预测3D查找表(LUT)以映射输入像素(即,RGB值)转换为增强的对应值。在第一类中,应用卷积核来处理整个图像像素。在该流水线中,由于涉及内核内的所有像素,因此计算负担很高。为了克服这一障碍,[23]提出了一种基于3D LUT的方法,该方法将像素预测网络转换为权重预测网络,该权重预测网络被训练来预测用于对一系列基本3D LUT进行加权的权重张量。由于权重对应于图像的亮度、颜色和色调,因此网络仅需要以显著减少的计算来处理下采样图像。这为实现实时图像推理迈出了重要的一步。然而,大多数边缘或便携式设备具有有限的计算或功率预算,使得其需要为每个图像推断执行资源密集型计算。如图1所示,像素预测和权重预测网络由于它们的卷积神经网络(CNN)性质而表现出高浮点运算(FLOP)。相比之下,LUT方法构成了成本有效且硬件友好的数据结构,其仅需要位置索引来直接检索输出。尽管如此,虽然LUT对于推理是有效的,但是在它们的表示能力和存储要求之间存在折衷。具体地,较大的特征向量(用作地址索引)增强了表示,但这导致LUT大小的指数增长,这通常是禁止的。一个很自然的问题出现了:我们是否可以将神经网络转换为大小合理的LUT,以节省FLOP并减少延迟,同时不影响图像质量?幸运的是,这项工作,第一次,提供了一个肯定的答案,纯粹的基于LUT的图像增强器。

由于LUT大小与输入维度呈指数关系[9,12,15],因此我们首先研究了感受野大小(空间)和输入通道数量(深度)对性能的影响。为此,我们发现即使接受野很小,该模型也可以实现高性能,但三个RGB通道的缺失严重阻碍了性能。因此,在训练过程中,我们提出了一个具有全逐点卷积层的网络来进行特征提取,其中感受野大小保持在1 × 1。具有三个通道的每个输入像素可以通过LUT唯一地映射到输出。为了有效地处理8位(INT 8)彩色图像,我们采用两个并行分支来分别处理4个最高有效位(MSB)(表示为IMSB)和4个最低有效位(LSB)(表示为ILSB)。它将LUT地址(即输入索引)从2563减少到2 × 163。此外,全逐点网络的特征输出被池化并输入到全连接(FC)层以集成全局信息。然而,典型的FC输入特征尺寸不可避免地大到实际大小的LUT的地址索引。为了克服这种维数灾难,我们提出了一个分裂的FC层,将其输入功能分成小长度的组,并为每组使用单独的FC层。它将存储器从(V)C减少到L ×(V)K,其中V、C、L和K分别代表可能的输入值、通道数、组长度和组数,C = L×K。将所有输出相加以获得权重向量,该权重向量用于将基础LUT线性组合成3D LUT以用于最终的表查找和内插。在训练之后,我们将这样的CNN+FC骨干转移到LUT中,从而在推理期间仅使用具有最小FLOP的表查找操作。

输入分辨率对于图像处理中的延迟和FLOP至关重要。传统的3D LUT方法将图像降采样到256 × 256,以实现更快的实时推理。通常,较小的分辨率会导致较低的延迟和FLOP。我们提出的架构探讨了输入分辨率和感受野,发现逐点感受野即使在显着下采样图像的情况下也能最大限度地降低性能损失。这使我们的网络能够使用32 × 32下采样输入,同时保持与原始分辨率相似的性能。本文的主要贡献有三个方面:

1.我们发现通道数对于图像修饰是至关重要的,设计一个具有全逐点卷积核的网络有利于LUT转换。

2.我们揭示了一个小的感受野灌输鲁棒性低分辨率输入的训练和推理。我们的网络中使用了前所未有的32×32下采样图像,以实现极高的速度和最小的性能下降。

3.我们的纯LUT方案在GPU(CPU)上实现了惊人的0.4ms(7ms),具有接近最先进的性能,并将功耗降低到与CNN方案相比可以忽略不计的水平。

2 Related works

2.1 Learning-based image enhancement

自从引入了包含输入和专家修改的图像对的大规模数据集MIT-Adobe FiveK [3]以来,已经出现了许多基于学习的增强算法来推动该领域的发展。一般来说,基于学习的方法可以分为两类:图像到图像的转换和基于物理学的建模。

第一类将此任务视为图像到图像的转换,直接学习输入与其增强图像之间的端到端映射,而无需显式建模中间参数。[1]和[11]都使用UNetlike网络来预测增强的结果,而[4]利用双向生成对抗网络(GAN),使用未配对的修饰数据进行训练,以减少专家修饰的数据收集。为了进一步补充特征提取,[19]探索了照明与此任务的联系,并设计了一个基于编码器-解码器的网络用于图像增强。

在第二类中,领域先验知识被用作模型设计的指导信息,因为预测从输入到输出的转换通常比直接预测输出更简单[18]。通过将增强过程视为非线性变换,[1]预测多项式映射函数,而一维RGB曲线在[10,16]中近似。为了进一步加速推理,HDRNet [5]在输入的低分辨率副本上执行大部分推理,并使用神经网络应用双边滤波器,实现1080p分辨率图像的毫秒级处理。然而,通常需要的额外参数(例如,3 × 3卷积)不是专门用于图像增强的,这导致了大量的实现冗余。在这一点上,[6]使用了一个轻量级的主干来进行像素处理,并设计了一个用于全局特征提取和合并的块,这比其他方法小了几个数量级。最近,[17]采用区域映射和人类可理解的过滤参数来实现细粒度增强。

2.2 3D LUT-based image enhancement

第一个基于3D LUT的方法在[23]中提出,它将像素级预测转换为系数预测。受益于正则化LUT,轻量级网络仅预测用于对可训练LUT进行加权的一组系数。3D LUT沿着这条线扩展到其他任务和场景。通过分析通道相干性,CLUT [24]应用变换矩阵来自适应地压缩LUT。[20]将像素类别信息嵌入到多个LUT的组合中,而[22]将单个颜色变换分离为分别实例化为1D和3D LUT的分量独立和分量相关子变换的级联。最近,[14]利用4D LUT来实现内容相关增强。

2.3 Replacing CNN with LUT

虽然基于3D LUT的方法可以实现显著的效率,但与表查找相比,CNN系数预测网络仍然消耗大量的计算资源。最近,一些工作已经深入研究了将神经网络转换为LUT以绕过计算。[9]首先将具有有限感受野的CNN转换为LUT以实现超分辨率。在此范例中,网络接收受限像素(例如,2×2)并在训练过程中预测相应的超分辨率像素。然后,通过遍历感受野中输入值的所有可能组合,将CNN转换为LUT。在推断期间,高分辨率像素通过用作LUT的地址索引的输入像素值来检索。随后的工作[8,12,15]采用串行LUT来扩大感受野,并实现了较大的PSNR改善。为了充分利用空间像素同时避免LUT大小的指数膨胀,这些方法仅为单个输入通道构建独立的LUT,即,一致地处理RGB通道。然而,与侧重于利用空间信息恢复高频细节的超分辨率不同,图像颜色增强由于通道相互作用而需要保留颜色信息。因此,上述信道不可知LUT对于图像增强是不可行的。

3 Method

3.1 3D LUT preliminaries

3D LUT是一种高效的实时图像增强工具,它通过将非线性3D颜色变换稀疏采样到离散化的3D网格中来建模。先前的方法已经尝试设计用于学习图像自适应3D LUT的模型,利用轻量级CNN主干来预测用于融合一系列基础3D LUT的权重以形成图像相关3D晶格V = {(Vr,(i,j,k),Vg,(i,j,k),Vb,(i,j,k))}i,j,k= 0,1,.,M-1,其中M是每个颜色通道中的箱数。每个元素V(i,j,k)定义索引RGB颜色{rI(i,j,k),gI(i,j,k),bI(i,j,k)}和对应的经变换的输出RGB颜色{rO(i,j,k),gO(i,j,k),bO(i,j,k)}。一旦对3D点阵进行采样,输入像素就会根据其颜色查找其最近的索引点,并通过三线性插值计算其映射输出。

然而,CNN中的繁重计算仍然是边缘设备上推理的负担。在这里,我们使用非常轻量级的方法CLUT [24]作为例子。如表1所示,我们观察到CNN前向传递中的35倍延迟和15倍FLOP与随后的3D LUT映射(即插值和表查找)相比,这表明表查找的效率要高得多。问题如下:有没有可能将CNN转换成一个纯粹基于LUT的模型,具有快速的推理速度,成本效益和高性能?理想情况下,增强的图像可以只通过查表生成,而无需任何神经网络计算。

将神经网络中的计算转换为LUT是不平凡的。一方面,完整的LUT必须存储输入像素值的所有可能组合,而输入像素的数量与LUT大小之间的指数关系是明显的。这意味着必须限制输入像素的数量。另一方面,每个输入组合对应于唯一的输出,这意味着网络的感受野大小与LUT的输入维度相等。表2示出了LUT尺寸和存储之间的关系。

为了利用LUT的潜力,我们进行了初步的消融实验,以评估感受野和通道深度的重要性。参考表3,我们观察到,与空间维度的增加相比,通道的扩展导致PSNR的显著改善。这表明,通道的相互依赖的信息是至关重要的图像增强,而附近的像素的贡献是有限的。例如,诸如天空或海滩的平滑区域通常具有空间一致性的相似像素,但是具有不同的信道信息。有鉴于此,我们设计了一个具有两个关键属性的超轻量级网络:1)能够捕获基本图像信息以生成高质量增强图像,2)转换为LUT的效率,从而实现加速推理。

3.2 Training network

所提出的图像颜色增强LUT(ICELUT)网络如图2所示。它在训练期间由两个CNN和一个分离的FC层组成。8位输入像素被分成两个映射,具有4个MSB的IMSB和具有4个LSB的ILSB,并被馈送到两个并行CNN分支中。

CNN backbone

由于输入像素的数量决定了LUT的大小,而通道深度主要影响网络性能,因此我们将卷积核形状限制为非常小的空间大小和完整的通道深度。我们采用六个1 × 1卷积层,然后激活ReLU。卷积核的深度设置为3,用于处理所有RGB通道。由于重复的1 × 1卷积层的感受野(RF)仍然是1 × 1,因此我们使用自适应平均池化层来聚合空间特征并将特征图压缩为1×1。该池化模块在融合全局信息方面发挥了重要作用,补充了前1 × 1卷积层提取的有限局部信息。

Split fully connected layer

简单地通过合并特征图来预测权重导致次优结果。自适应平均池是一个非学习模块,它通过对特征图进行粗压缩来将全局信息融合到特征图中。对于丰富的表示,我们使用FC层来将特征映射到权重。FC层的输入对应于CNN主干的输出信道C的数量.通常,更多的输出通道表示更丰富的表示。然而,LUT大小与通道号C成指数关系:

其中S是LUT的大小,V表示维度中的可能值,并且N是输出维度。当C > 4,V = 64,N = 20时,LUT一般超过1GB。为了避免大量的内存消耗,我们设计了分离全连接(SFC)层。首先,我们将输入张量分成K个组,每个组包含来自通道特征的L个值。然后,我们应用vanilla FC层将每个2D特征映射到长度为N的权重。这些预测的权重在最后被添加,用于对基础LUT进行加权以构建3D加权LUT。当我们设置L = 2和K = C/2时,这种操作将内存从(V)C ×N减少到(C/2)×(V)2 ×N。随后,当C = 10,V = 64和N = 20时,LUT大小等于400 KB,这比vanilla FC层小。

3.3 Transferring to LUT

上述网络设计为向LUT的转换铺平了道路。对于CNN骨干,我们为三个通道构建了一个3D LUT,而由于逐点卷积层,RF大小为1。由于通道LUT的大小非常小,因此我们不再对输出进行缩放。对于SFC层,我们为特征映射构建K个2D LUT,称为权重LUT。输入值用于索引LUT,相应的输出值存储在该地址。注意,通道LUT和权重LUT中存储的输出值的格式分别为FP 32和INT 8。

3.4 Speeding up inference

我们的主要目标是预测一组权重,用于对基础LUT进行加权,以生成最终的3D LUT。CNN权重预测器旨在理解全局上下文,例如图像的亮度,颜色和色调,以输出与内容相关的权重。因此,它只需要在下采样的输入图像上工作,以大大降低计算成本[23]。给定任何分辨率的输入图像,之前的作品简单地使用双线性插值将其下采样至256 x 256以提高效率。然而,随着输入大小的增加,网络的计算工作量或表查找操作也会升级。因此,图像分辨率的降低可以直接加速推断并提供成本节约。随后,我们比较了我们的和现有的方法的性能。所有方法都在256 × 256分辨率下训练,并针对各种下采样尺度进行测试。CLUT的结果如图3所示。

我们观察到,在高分辨率下,不同的模型始终表现良好。然而,随着分辨率的降低,使用大RF的模型(即3D LUT和CLUT)的性能急剧下降,而ICELUT(具有1×1 RF)保持高水平的性能。

为了进一步验证性能下降的原因,我们将CNN骨干的第一层替换为3 × 3,7 × 7和11 × 11卷积核,以扩大RF,并固定其他设置。图4所示的结果清楚地表明,具有较大RF的网络遭受更严重的性能下降。

4 Experiments

4.1 Datasets

我们使用两个公共数据集评估了拟议的ICELUT:MIT-Adobe FiveK [3]和PPR 10 K [13]。MIT-Adobe FiveK数据集是一个著名的照片修饰数据集,包含5,000张RAW图像。我们遵循最近作品[23,24]中建立的常见做法,选择专家C修饰的版本作为基本事实。我们将这个数据集分为4,500个图像对用于训练,500个用于测试。为了加快训练过程,我们将图像缩小到480 p分辨率,其中较短的一面被调整为480像素。PPR 10 K数据集包含11,161张高质量RAW肖像照片的广泛集合。在我们的实验中,我们在三个独立的实验中使用所有三个修饰过的版本作为基础事实。遵循[13]中的官方数据集分割,我们将数据集分为8,875对用于训练,2,286对用于测试。PSNR / dB为了提高效率,并且由于磁盘空间有限,我们使用360 p版本的数据集执行这些实验。请注意,[13]中的性能数据在讨论运行时间和FLOP时并不公平,因为[13]中训练的3D LUT使用了更大的主干ResNet 18 [7](约11 M)。在这一点上,我们已经使用[23]中的原始微小主干重新训练了3D LUT。

5 Conclusion

本文提出了第一个完全基于LUT的图像增强器ICELUT,用于极低成本和高速的图像修图。我们揭示了输入RGB通道对性能至关重要,并采用了有利于训练后后续LUT转换的完全逐点卷积核。设计了一种新颖的分离式全连接层,达到在不折损性能的情况下有效地抑制LUT的大小。在这些新颖设计的共同努力下,我们的纯LUT方案在接近最新性能的GPU(CPU)上实现了显著的0.4ms(7ms),并且与所有其他CNN方案相比将功耗降低到了可以忽略的水平。

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

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

相关文章

信息学奥赛初赛天天练-53-CSP-J2019阅读程序2-模拟算法在数组中典型应用

PDF文档公众号回复关键字:20240802 2019 CSP-J 阅读程序2 1阅读程序(程序输入不超过数组或字符串定义的范围;判断题正确填 √,错误填 。除特殊说明外,判断题 1.5 分,选择题 3 分,共计 40 分) 假设输入的n和m都是正整…

前端Web-JavaScript(上)

要想让网页具备一定的交互效果,具有一定的动作行为,还得通过JavaScript来实现, 这门语言会让我们的页面能够和用户进行交互。 什么是JavaScript JavaScript(简称:JS) 是一门跨平台、面向对象的脚本语言,是…

【C++11】:右值引用移动语义完美转发

目录 前言一,左值引用和右值引用二,左值引用与右值引用比较三,探索引用的底层四,右值引用使用场景和意义4.1 解决返回值问题4.2 STL容器插入接口的改变 五,移动语义六,完美转发6.1 模板中的&& 万能…

产品经理如何快速掌握大模型技术,享受AI红利?

前言 随着人工智能(AI)技术的快速发展,AI产品经理的角色变得越来越重要。尽管AI产品经理并不是一个新鲜的概念,但随着AI技术的迭代升级,这一角色的重要性得到了显著提升。 AI产品经理的演变 早期的AI产品可能并不会…

网络原理的TCP/IP

TCP/IP协议 1)应用层 应用层和应用程序直接相关,与程序员息息相关的一层协议,应用层协议,里面描述的内容,就是写的程序,通过网络具体按照啥样的方式来进行传输,不同的应用程序,就可以用不同的应用层协议,在实际开发的过程中,需要程序员自制应用层协议 应用层协议本质上就是对…

python: 多进程实例

1. 实例一 主进程跟子进程的通过两个队列实现全双工通信;如有需要主进程会提示窗口输入信息传输给子进程;如果子进程收到主进程的消息,会弹窗提示收到的消息;子进程弹窗提示进程即将结束; 详细代码如下 # -*- coding…

独立站+TikTok达人:自主营销与创意内容的完美结合

在全球电商市场迅猛发展的今天,独立站和TikTok达人的结合正在创造一种全新的电商营销模式。独立站作为电商平台,其自主性和灵活性为商家提供了广阔的发展空间;而TikTok达人凭借其独特的内容创作能力和庞大的粉丝基础,成为推动销售…

OpenStack;异构算力网络架构;算力服务与交易技术;服务编排与调度技术

目录 OpenStack 一、OpenStack概述 二、OpenStack的主要组件及功能 三、OpenStack的架构 四、OpenStack的应用场景 异构算力网络架构 算力服务与交易技术 服务编排与调度技术 OpenStack 是一个开源的云计算管理平台项目,由NASA(美国国家航空航天局)和Rackspace合作…

「AI绘画Stable Diffusion 零基础入门 」AI 绘画SD原理与工具介绍,万字详解新手入门必看!

大家好,我是设计师阿威 AI 绘画原理 想要入门 AI 绘画,首先需要了解它的原理是什么样的。 其实很早就已经有人基于深度学习模型展开了对图像生成的研究了,但在那时,生成的图像分辨率和内容都非常抽象。 直到近两年&#xff0c…

C++必修:STL之vector的模拟实现

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:C学习 贝蒂的主页:Betty’s blog 为了让我们更加深入理解vector,接下来我们将模拟实现一个简易版的vect…

二叉树链式结构的实现(递归的暴力美学!!)

前言 Hello,小伙伴们。你们的作者菌又回来了,前些时间我们刚学习完二叉树的顺序结构,今天我们就趁热打铁,继续我们二叉树链式结构的学习。我们上期有提到,二叉树的的底层结构可以选为数组和链表,顺序结构我们选用的数…

将YOLOv8模型从PyTorch的.pt格式转换为OpenVINO支持的IR格式

OpenVINO是Open Visual Inference & Neural Network Optimization工具包的缩写,是一个用于优化和部署AI推理模型的综合工具包。OpenVINO支持CPU、GPU和NPU设备。 OpenVINO的优势: (1).性能:OpenVINO利用英特尔CPU、集成和独立GPU以及FPGA的强大功能提…

PHP学习:PHP基础

以.php作为后缀结尾的文件&#xff0c;由服务器解析和运行的语言。 一、语法 PHP 脚本可以放在文档中的任何位置。 PHP 脚本以 <?php 开始&#xff0c;以 ?> 结束。 <!DOCTYPE html> <html> <body><h1>My first PHP page</h1><?php …

3千米以上音视频键鼠延长解决方案:KVM光纤延长器

KVM光纤延长器​​​​​​​是什么&#xff1f; KVM光纤延长器是一种使用光纤来传输键盘、视频和鼠标&#xff08;KVM&#xff09;信号的设备&#xff0c;由发送端和接收端组成&#xff0c;一般成对使用。它可以让用户在远离电脑的地方如同在本地一样方便快捷的操作电脑。 KV…

mysql数据库基础语法(未完)

数据库的超级用户是root 一、注释 &#xff08;1&#xff09;“-- ”减号减号空格 注意不要省略空格 &#xff08;2&#xff09;“#” 井号 二、数据库操作 1、创建 CREATE DATABASE [IF NOT EXISTS] <数据库名> [CHARACTER SET utf8] 2、删除 DROP DATABASE …

MySQL —— 初始数据库

数据库概念 在学习数据库之前&#xff0c;大家保存数据要么是在程序运行期间&#xff0c;例如&#xff1a;在学习编程语言的时候&#xff0c;大家写过的管理系统&#xff0c;运用一些简单的数据结构&#xff08;例如顺序表&#xff09;来组织数据&#xff0c;可是程序一旦结束…

硬盘数据丢失不再怕,四大恢复工具帮你轻松逆转局面!

硬盘故障、误删文件、病毒攻击等原因导致数据丢失的情况时有发生。面对这种情况&#xff0c;如何高效、快速地进行硬盘数据恢复呢&#xff1f;接下来几款好用的数据恢复软件推荐给大家。 一、福昕数据恢复&#xff1a;全方位恢复&#xff0c;让数据无遗漏 链接&#xff1a;ww…

Windows(Win10、Win11)本地部署开源大模型保姆级教程

目录 前言1.安装ollama2.安装大模型3.安装HyperV4.安装Docker5.安装聊天界面6.总结 点我去AIGIS公众号查看本文 本期教程用到的所有安装包已上传到百度网盘 链接&#xff1a;https://pan.baidu.com/s/1j281UcOF6gnOaumQP5XprA 提取码&#xff1a;wzw7 前言 最近开源大模型可谓闹…

观测器控制仿真案例详解(s-function函数)

目录 一、弹簧-质量-阻尼系统1. 系统状态空间方程2. 观测器状态空间方程 二、仿真(Simulink s-function函数)1. 搭建Simulink仿真模型2. s-function函数代码3. 仿真效果 控制理论–观测器设计 一、弹簧-质量-阻尼系统 系统参数&#xff1a; m 1 , K 1 , B 0.5 m 1\,, K 1…