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

【LUT技术专题】SVDLUT: 基于SVD优化的3DLUT

在这里插入图片描述

SVDLUT: 基于SVD优化的3DLUT(2025 ICCV)

  • 专题介绍
  • 一、研究背景
  • 二、SVDLUT方法
    • 2.1 3DLUT的低维分解
    • 2.2 奇异值分解(SVD)降参
    • 2.3 缓存高效的空间特征融合
    • 2.4 损失函数
  • 三、实验结果
  • 四、总结

本文将围绕《SVDLUT: Lightweight and Fast Real-time Image Enhancement via Decomposition of the Spatial-aware Lookup Tables》展开完整解析。本文提出一种名为SVDLUT的轻量级快速实时图像增强方法,针对现有 3D 查找表(3D LUT)方法缺乏空间信息、空间感知 3D LUT 方法参数多且高分辨率图像推理时间长的问题,通过将 3D LUT 分解为低维 2D LUT 的线性组合并结合奇异值分解(SVD) ,实现参数数量减少 88%;同时设计缓存高效的空间特征融合结构,减少高分辨率图像推理时的内存数据交换,在 FiveK 和 PPR10K 等基准数据集上验证,该方法在保持空间感知能力和增强性能(如 FiveK 数据集 480p 分辨率下 PSNR 达 25.76dB)的同时,模型尺寸仅 160.5K(约为 SABLUT 的 1/3、SA-3DLUT 的 1/28),4K 分辨率推理时间仅 1.38ms,优于现有主流方法。参考资料如下:
[1]. 论文地址
[2]. 代码地址


专题介绍

Look-Up Table(查找表,LUT)是一种数据结构(也可以理解为字典),通过输入的key来查找到对应的value。其优势在于无需计算过程,不依赖于GPU、NPU等特殊硬件,本质就是一种内存换算力的思想。LUT在图像处理中是比较常见的操作,如Gamma映射,3D CLUT等。

近些年,LUT技术已被用于深度学习领域,由SR-LUT启发性地提出了模型训练+LUT推理的新范式。
本专题旨在跟进和解读LUT技术的发展趋势,为读者分享最全最新的LUT方法,欢迎一起探讨交流,对该专题感兴趣的读者可以订阅本专栏第一时间看到更新。

系列文章如下:
【1】SR-LUT
【2】Mu-LUT
【3】SP-LUT
【4】RC-LUT
【5】EC-LUT
【6】SPF-LUT
【7】Dn-LUT
【8】Tiny-LUT
【9】3D-LUT
【10】4D-LUT
【11】AdaInt-LUT
【12】Sep-LUT
【13】CLUT
【14】ICELUT
【15】AutoLUT
【16】SA-3DLUT
【17】SABLUT


一、研究背景

该篇文章优化的是SABLUT,SABLUT为了补充空间信息,增加了大量的3DLUT查找过程,引入大量额外参数,导致高分辨率图像推理时间显著增加(如 SABLUT 处理 4K 图像需 3.64ms),形成 “性能 - 效率” 权衡难题。本文是为了进一步对效率问题进行优化。

二、SVDLUT方法

SVDLUT最大的创新点在于其将3DLUT的查找过程使用SVD转换为了2DLUT的多次查找求和,减小了参数量和计算量。流程如图所示:
在这里插入图片描述
类比SABLUT方法上是相似的,都存在双边grid的插值和颜色的LUT插值操作,不过因为查找维度变小了,因此作者额外引入了GridweightsGrid \ weightsGrid weights以及LUTweightsLUT \ weightsLUT weights用于对多个2DLUT的插值结果进行加权求和,从而完成与3DLUT相似的功能。

接下来本文将详细描述其如何完成3D到2D的转换,并实现类似的功能。

2.1 3DLUT的低维分解

现有 3D LUT / 双边网格存在严重参数冗余,作者通过实验验证这一现象。
在这里插入图片描述
作者在2个数据集上进行了LUT利用率和顶点访问频率统计,有以下两个结论:

  1. 顶点利用率实验:定义 “利用率 = 实际引用顶点数 / 生成顶点总数 ×100%”,结果显示,3D LUT 利用率 < 10%(图a):大量顶点未被访问,参数浪费严重,1D LUT 利用率 100%:但存在 “通道关联缺失” 问题(无法捕捉红 - 绿、红 - 蓝等跨通道关联),性能饱和。
  2. 顶点访问频率统计:可视化 3D LUT 顶点的访问次数(图 c),发现高频访问集中在对角线顶点,非对角线顶点访问极少,进一步证明 3D 结构的冗余性 —— 仅需保留核心维度(2D)即可覆盖主要信息。

由上,可以明白作者为何要进行降维。具体降维的方法,针对 3D LUT 与 3D 双边网格,分别提出 2D 分解策略,核心是 “用 3 个 2D 组件的线性组合替代 1 个 3D 组件”,并引入权重与偏置调节表达能力。针对于两类不同的LUT:

  1. 颜色的3DLUT:使用2D LUT的线性组合。公式如下所示:
    trgbc→wrgc⋅trgc+wrbc⋅trbc+wgbc⋅tgbc+bct_{rgb}^{c} \to w_{rg}^{c} \cdot t_{rg}^{c} + w_{rb}^{c} \cdot t_{rb}^{c} + w_{gb}^{c} \cdot t_{gb}^{c} + b^{c} trgbcwrgctrgc+wrbctrbc+wgbctgbc+bc
    其中,trgbct_{rgb}^{c}trgbc代表输出通道ccc对应的3D LUT,维度为RDt×Dt×Dt\mathbb{R}^{D_t \times D_t \times D_t}RDt×Dt×DtDtD_tDt为每轴顶点数),c∈{r,g,b}c \in \{r, g, b\}c{r,g,b}(红、绿、蓝通道),trgc,trbc,tgbct_{rg}^{c}, t_{rb}^{c}, t_{gb}^{c}trgc,trbc,tgbc代表输出通道ccc对应的2D LUT,分别对应红-绿、红-蓝、绿-蓝轴,维度均为RDt×Dt\mathbb{R}^{D_t \times D_t}RDt×Dtwrgc,wrbc,wgbcw_{rg}^{c}, w_{rb}^{c}, w_{gb}^{c}wrgc,wrbc,wgbc代表2D LUT的线性组合权重(可学习参数),用于调节各2D LUT对3D LUT的贡献度,bcb^{c}bc代表线性组合的偏置项(可学习参数),用于补偿2D LUT组合后的偏移。
    对应于具体的插值公式为:
    Y(c,x,y)=wrgc⋅Ibi(X‾(x,y),trgc)+wrbc⋅Ibi(X‾(x,y),trbc)+wgbc⋅Ibi(X‾(x,y),tgbc)+bc\begin{aligned} Y_{(c, x, y)} &= w_{rg}^{c} \cdot I_{bi}\left(\overline{X}_{(x, y)}, t_{rg}^{c}\right) + \\ &\quad w_{rb}^{c} \cdot I_{bi}\left(\overline{X}_{(x, y)}, t_{rb}^{c}\right) + \\ &\quad w_{gb}^{c} \cdot I_{bi}\left(\overline{X}_{(x, y)}, t_{gb}^{c}\right) + b^{c} \end{aligned} Y(c,x,y)=wrgcIbi(X(x,y),trgc)+wrbcIbi(X(x,y),trbc)+wgbcIbi(X(x,y),tgbc)+bc
    其中,Y(c,x,y)Y_{(c, x, y)}Y(c,x,y)代表增强后图像在通道ccc、空间坐标(x,y)(x, y)(x,y)处的像素值,取值范围为[0,1][0, 1][0,1]Ibi(⋅)I_{bi}(\cdot)Ibi()代表双线性插值函数,输入为“插值点(像素值)+ 2D LUT”,输出为插值后的增强像素值,X‾(x,y)\overline{X}_{(x, y)}X(x,y):预处理后输入图像在坐标(x,y)(x, y)(x,y)处的像素值(含空间特征融合后的信息),其他符号与上同理。
  2. 空间的3D双边网格:使用2D双边网格线性组合,与上面基本一致,只不过此时空间有2维,因此组合的项数会更多。公式表示如下:gxyck′ck′→wxyck′⋅gxyck′+wxck′ck′⋅gxck′ck′+wyck′ck′⋅gyck′ck′+bck′g_{xyc_{k}'}^{c_{k}'} \to w_{xy}^{c_{k}'} \cdot g_{xy}^{c_{k}'} + w_{xc_{k}'}^{c_{k}'} \cdot g_{xc_{k}'}^{c_{k}'} + w_{yc_{k}'}^{c_{k}'} \cdot g_{yc_{k}'}^{c_{k}'} + b^{c_{k}'}gxyckckwxyckgxyck+wxckckgxckck+wyckckgyckck+bck其中,gxyck′ck′g_{xyc_{k}'}^{c_{k}'}gxyckck代表3D双边网格,维度为RW×H×C\mathbb{R}^{W \times H \times C}RW×H×CW,HW, HW,H为图像宽高,CCC为通道数),用于提供空间感知信息,kkk代表双边网格的索引(表示第kkk个双边网格),k′=mod(k,3)k' = \mod(k, 3)k=mod(k,3)(通道循环映射,确保与RGB通道匹配),gxyck′,gxck′ck′,gyck′ck′g_{xy}^{c_{k}'}, g_{xc_{k}'}^{c_{k}'}, g_{yc_{k}'}^{c_{k}'}gxyck,gxckck,gyckck代表2D双边网格,分别对应“空间-空间(x-y)”、“空间-颜色(x-ck′c_{k}'ck)”、“空间-颜色(y-ck′c_{k}'ck)”轴,维度均为RDs×Ds\mathbb{R}^{D_s \times D_s}RDs×DsDsD_sDs为网格顶点数),wxyck′,wxck′ck′,wyck′ck′w_{xy}^{c_{k}'}, w_{xc_{k}'}^{c_{k}'}, w_{yc_{k}'}^{c_{k}'}wxyck,wxckck,wyckck代表2D双边网格的线性组合权重(可学习参数),bck′b^{c_{k}'}bck代表2D双边网格组合的偏置项(可学习参数)。
    对应于具体的插值公式为:fs(ck′,x,y)=wxyck′⋅Ibi(X(ck′,x,y),gxyck′)+wxck′ck′⋅Ibi(X(ck′,x,y),gxck′ck′)+wyck′ck′⋅Ibi(X(ck′,x,y),gyck′ck′)+bck′\begin{aligned} f_{s\left(c_{k}', x, y\right)} &= w_{xy}^{c_{k}'} \cdot I_{bi}\left(X_{\left(c_{k}', x, y\right)}, g_{xy}^{c_{k}'}\right) + \\ &\quad w_{xc_{k}'}^{c_{k}'} \cdot I_{bi}\left(X_{\left(c_{k}', x, y\right)}, g_{xc_{k}'}^{c_{k}'}\right) + \\ &\quad w_{yc_{k}'}^{c_{k}'} \cdot I_{bi}\left(X_{\left(c_{k}', x, y\right)}, g_{yc_{k}'}^{c_{k}'}\right) + b^{c_{k}'} \end{aligned}fs(ck,x,y)=wxyckIbi(X(ck,x,y),gxyck)+wxckckIbi(X(ck,x,y),gxckck)+wyckckIbi(X(ck,x,y),gyckck)+bck其中,fs(ck′,x,y)f_{s\left(c_{k}', x, y\right)}fs(ck,x,y)代表空间感知图在通道ck′c_{k}'ck、坐标(x,y)(x, y)(x,y)处的值,维度为RK×W×H\mathbb{R}^{K \times W \times H}RK×W×HKKK为双边网格总数),X(ck′,x,y)X_{\left(c_{k}', x, y\right)}X(ck,x,y)代表原始输入图像在通道ck′c_{k}'ck、坐标(x,y)(x, y)(x,y)处的像素值(未预处理的原始值),Ibi(⋅)I_{bi}(\cdot)Ibi()代表双线性插值函数,用于从2D双边网格中插值得到空间感知值,其他符号含义如上。

从上面可以看到这里我们选择双边网络的数目肯定不能小于3,否则无法循环访问到所有的颜色通道。
作者直接对这个改进进行了测试,发现效果不会发生下降,但参数量能有效减小80%以上,如下所示:
在这里插入图片描述
3D LUT+3D 网格的 PSNR 为 25.68dB,2D LUT+2D 网格的 PSNR 为 25.68dB,性能完全持平;3D 组合的模型尺寸为 1.3M,2D 组合仅为 205.3K,参数减少 84%(1.3M→205.3K),这一结果证明:低维分解可在不损失性能的前提下,大幅降低模型尺寸,解决参数冗余问题。

2.2 奇异值分解(SVD)降参

2D LUT / 网格虽已减少参数,但仍存在冗余 ——2D 结构的矩阵中部分奇异值对应的信息对增强性能影响极小,可通过 SVD 进一步移除冗余参数。作者做了一个实验来验证它,对预训练的 2D LUT / 网格进行 SVD 分解,逐步减少奇异值数量,重构后测试 PSNR,结论如下:

  1. 2D LUT:保留 8 个奇异值时,PSNR 无明显下降(与全奇异值相比差异 < 0.1dB)。
  2. 2D 双边网格:即使保留少量奇异值,PSNR 也快速下降(空间信息对冗余更敏感)。

如下图所示:
在这里插入图片描述
然后作者尝试用网络去模拟SVD过程,结果与上面一致,LUT 的 SVD 分解有效(8 个奇异值足够),网格的 SVD 分解性能损失大。如下图所示:
在这里插入图片描述
基于实验结论,仅对 2D LUT 应用 SVD,利用如下的分解公式进行分解:
T2D=U⋅S⋅VT,S,U,VT=Ht(ρ)T^{2D} = U \cdot S \cdot V^{T}, \quad S, U, V^{T} = H_{t}(\rho)T2D=USVT,S,U,VT=Ht(ρ)
其中,T2DT^{2D}T2D代表2D LUT集合,包含trgc,trbc,tgbct_{rg}^{c}, t_{rb}^{c}, t_{gb}^{c}trgc,trbc,tgbcc∈{r,g,b}c \in \{r, g, b\}c{r,g,b}),UUU代表左奇异矩阵,维度为RDt×Ns\mathbb{R}^{D_t \times N_s}RDt×NsDtD_tDt为LUT顶点数,Ns=8N_s=8Ns=8为保留的奇异值数量),SSS代表奇异值矩阵,为对角矩阵,维度为RNs×Ns\mathbb{R}^{N_s \times N_s}RNs×Ns,对角线元素为按降序排列的奇异值,VTV^{T}VT代表右奇异矩阵VVV的转置,维度为RNs×Dt\mathbb{R}^{N_s \times D_t}RNs×DtHt(⋅)H_{t}(\cdot)Ht()代表LUT组件生成器,输入为上下文特征ρ\rhoρ,输出为SVD分解后的组件U,S,VTU, S, V^{T}U,S,VTρ\rhoρ代表图像上下文特征。

最后作者只在LUT上用了SVD分解,在Grid上没有使用,因为性能下降明显。

2.3 缓存高效的空间特征融合

传统空间感知 LUT 方法(如 SABLUT、SA-3DLUT)在高分辨率图像(如 4K)上推理慢,核心原因是内存层级数据交换频繁:中间输出需在 “高速内存(如 GPU 缓存)” 与 “低速内存(如显存)” 间频繁交换,占总推理时间的 60% 以上,如下图所示。
在这里插入图片描述
可以看到Cache-effective的结构相对来说耗时基本不变。这个缓存高效结构设计包含以下几步:

  1. 合并切片与 LUT 变换:传统流程中切片与LUT变换是独立步骤,需分别读取高分辨率输入,优化后将二者合并,复用 LUT 索引等中间计算结果,避免重复读取,减少内存访问次数。
  2. 移除冗余 1×1 卷积:传统流程用 1×1 卷积融合空间特征和输入,优化后去除这部分因为2D LUT / 网格的加权和已具备 “图像自适应融合” 能力,可直接替代 1×1 卷积,既减少计算量,又避免生成预处理图中间输出。

优化后公式表示如下:
Y(c,x,y)=Transform2Dc(X(c,x,y),T2D)+∑k=0K/3−1Slicing2Dcc+3k′(X(c,x,y),G2D)\begin{aligned} Y_{(c, x, y)} &= Transform_{2D}^{c}\left(X_{(c, x, y)}, T^{2D}\right) + \\ &\quad \sum_{k=0}^{K/3 - 1} Slicing_{2D}^{c_{c+3k}'}\left(X_{(c, x, y)}, G^{2D}\right) \end{aligned}Y(c,x,y)=Transform2Dc(X(c,x,y),T2D)+k=0K/31Slicing2Dcc+3k(X(c,x,y),G2D)
其中,Transform2Dc(⋅)Transform_{2D}^{c}(\cdot)Transform2Dc()代表2D LUT变换操作,输入为原始像素值X(c,x,y)X_{(c, x, y)}X(c,x,y)与2D LUT集合T2DT^{2D}T2D,输出为LUT增强后的像素值,Slicing2Dcc+3k′(⋅)Slicing_{2D}^{c_{c+3k}'}(\cdot)Slicing2Dcc+3k()代表2D双边网格切片操作,输入为原始像素值X(c,x,y)X_{(c, x, y)}X(c,x,y)与2D双边网格集合G2DG^{2D}G2D,输出为空间特征贡献值,G2DG^{2D}G2D代表2D双边网格集合,包含gxyck′,gxck′ck′,gyck′ck′g_{xy}^{c_{k}'}, g_{xc_{k}'}^{c_{k}'}, g_{yc_{k}'}^{c_{k}'}gxyck,gxckck,gyckck∑k=0K/3−1\sum_{k=0}^{K/3 - 1}k=0K/31代表求和操作,遍历所有双边网格(KKK为网格总数,按3个一组分配到RGB通道,X(c,x,y)X_{(c, x, y)}X(c,x,y)代表原始输入图像在通道ccc、坐标(x,y)(x, y)(x,y)处的像素值(未预处理),Y(c,x,y)Y_{(c, x, y)}Y(c,x,y)代表最终增强后的像素值。

2.4 损失函数

如下所示:L=Lmse+λc⋅Lc+λp⋅Lp\mathcal{L} = \mathcal{L}_{mse} + \lambda_{c} \cdot \mathcal{L}_{c} + \lambda_{p} \cdot \mathcal{L}_{p}L=Lmse+λcLc+λpLp其中,L\mathcal{L}L为总损失,Lmse\mathcal{L}_{mse}Lmse为均方误差损失,计算增强后图像YYY与Ground Truth的像素级MSE,确保图像保真度,Lc\mathcal{L}_{c}Lc为CIE94 LAB颜色空间色差损失,计算YYY与Ground Truth在LAB空间的距离,确保颜色准确性,Lp\mathcal{L}_{p}Lp为LPIPS感知损失,基于预训练AlexNet计算特征级差异,确保增强图像的感知质量,λc=0.005\lambda_{c} = 0.005λc=0.005Lc\mathcal{L}_{c}Lc的权重超参数,λp=0.05\lambda_{p} = 0.05λp=0.05Lp\mathcal{L}_{p}Lp的权重超参数。

三、实验结果

首先讲一下消融实验。实验结果如下图所示,结论如下:
在这里插入图片描述

  1. 单独使用网格(仅 Grid)或 LUT(仅 LUT)时,PSNR 分别为 25.21dB、25.49dB;二者组合(含 1×1 卷积)后 PSNR 提升至 25.68dB,完整 SVDLUT(移除 1×1 卷积)达 25.76dB,证明空间信息(网格)与颜色转换(LUT)需协同才能发挥最佳性能;
  2. 1×1 卷积冗余且影响效率:含 1×1 卷积的配置虽参数与完整 SVDLUT 接近(160.5K vs 160.478K),但 PSNR 低 0.08dB、FLOPs 高 9.33M,证明 2D 组件的加权和已能替代卷积的融合作用,且更高效;
  3. 参数匹配不代表性能最优:“仅 Grid+”(参数匹配完整模型)的 PSNR(25.41dB)低于完整 SVDLUT,证明参数数量并非性能关键,合理的结构设计(分解 + 缓存优化)更重要。

接着是定量实验
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

结论:性能最优,效率领先,高分辨率优势显著,在多专家标注下均表现优异。

然后是定性实验
在这里插入图片描述
整体颜色还原更精准,局部增强能力更强,HDR 动态范围保留更好。

最后做了资源消耗的实验。
在这里插入图片描述
CPU 上效率合理,满足实时性,低成本 GPU 上优势明显,对比其他高效方法更优。

四、总结

SVDLUT 通过 “3D→2D 分解 + SVD 降参 + 缓存高效融合” 的三层优化,在保持空间感知能力与图像增强性能的同时,实现模型轻量化与推理加速,解决了现有空间感知 3D LUT 方法的参数冗余与高分辨率推理慢问题,在多个基准数据集与任务中表现优于主流方法,相较SABLUT来说又进一步的优化了,在CPU和GPU上均可以实时推理,效果也比传统的3DLUT好,因此实用性较高。


感谢阅读,欢迎留言或私信,一起探讨和交流,如果对你有帮助的话,也希望可以给博主点一个关注,谢谢。

http://www.dtcms.com/a/557245.html

相关文章:

  • 阿里云企业邮箱怎么申请宿迁网站建设SEO优化营销
  • Linux文件搜索完全指南:find、locate和通配符使用详解
  • PyTorch:AI时代的深度学习利器
  • Linux:探究HTTP协议
  • linux实现设备驱动-字符型设备驱动
  • 门户网站排版有引导的网站
  • Linux USB 子系统深度解析
  • Linux time function in C/C++【2】
  • 人工智能学习中深度学习之python基础之迭代器、生成器、文件处理和模块等
  • wordpress显示评论数福建企业seo推广
  • 12.C++:模版进阶
  • 大模型训练评估中的交叉验证详解
  • 变更股东怎样在工商网站做公示做网站的收费标准
  • (142页PPT)立白MES解决方案1Wonderware运营管理平台(附下载方式)
  • 机器学习日报10
  • Linux 2.6.10 调度器负载均衡机制深度解析:从理论到实现
  • 访链家网网站开发嘉定房地产网站建设
  • 多商户商城APP源码开发的未来方向:云原生、电商中台与智能客服
  • Liunx线程安全
  • 基于数据增强与对抗学习的门诊电子病历(EMR)文本分类python编程
  • 企业网站seo推广技巧建设视频网站设计意义
  • VSCode的插件配置同步到gitee
  • 短剧广告联盟 APP 用户画像:基于观看行为的广告精准投放模型
  • 找快照网站查询网站建设博采
  • [论文阅读] AI+ | AI如何重塑审计行业?从“手工筛查”到“智能决策”:AI审计的核心逻辑与未来路径
  • 论文精读:A review on multi-view learning(多视图学习综述)
  • 长宁制作网站网站建设属于会计哪个科目
  • 波动率建模(三)Heston模型及其Python实现
  • 左侧 导航 网站泰安信誉好的网络推广公司
  • python 初学2