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

【LUT技术专题】3DLUT压缩-CLUT

在这里插入图片描述

3DLUT压缩-CLUT-Net: Learning Adaptively Compressed Representations of 3DLUTs for Lightweight Image Enhancement(2022 ACMMM)

  • 专题介绍
  • 一、研究背景
  • 二、CLUT方法
    • 2.1 3DLUT压缩观察与方法总览
    • 2.2 压缩自适应的变换矩阵
    • 2.3 讨论分析
  • 三、实验结果
  • 四、总结

本文将围绕《CLUT-Net: Learning Adaptively Compressed Representations of 3DLUTs for Lightweight Image Enhancement》展开完整解析。该研究为了解决3DLUT性能和参数量的平衡问题,提出了一个3DLUT的压缩方法,能够在使用更多的基础3DLUT的情况下,大大减小整体方案的参数量,达到了更高效的图像增强效果。参考资料如下:
[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


一、研究背景

基于3DLUT的图像增强方法在性能和耗时、内存方面取得了很好的平衡。回顾3DLUT的实现,我们可以发现当使用更多的基础3DLUT时,效果会更好,但同时会带来更多的参数量(原始论文中最终采用的条数是3),作者用了一个图来说明这个现象。
在这里插入图片描述
可以看到当LUT条数线性增大时,参数量大小也线性增大,PSNR会逐渐增大直至10后饱和,饱和的原因作者认为是较大的参数量反而增大了训练的难度,导致3DLUT性能更差。

为了解决这个问题,作者深入分析了3DLUT的特性,提出了CLUT方法,能够有效对3DLUT进行压缩,在保持3DLUT映射能力的前提下显著减小了参数量。

主要的贡献点如下:

  • 在深入分析3DLUT的特征后,提出了一种3DLUT的压缩方法CLUT,与标准的3DLUT相比,CLUT保持了原始LUT的映射能力,参数减小了几个数量级。
  • 基于CLUT压缩方法构建了一个轻量级的图像增强网络,CLUT-Net,端到端的学习CLUT。
  • 大量的实验表明,在多个广泛使用的图像增强基准测试中,该方案是有效的。

二、CLUT方法

2.1 3DLUT压缩观察与方法总览

作者首先分析了3DLUT的作用以及它的大小。一个常见的3DLUT形式表示如下: ϕ c ∈ R D × D × D \phi ^{c} \in R^{D \times D \times D} ϕcRD×D×D其中 c c c代表 r , g , b r,g,b r,g,b任意一个通道,假设每个通道的bins数为 D D D,整个3DLUT的参数量是 D 3 D^3 D3,当我们存在多条3DLUT时,参数量就变成 N × D 3 N \times D^3 N×D3了。

自然而然的,根据常规的思路如果我们想要去减小这个参数量,只能从2个角度,要么减小 D D D,要么减小 N N N,假设我们去减小 D D D,相当于同时减小 r , g , b r,g,b r,g,b 3个通道的bins个数,这使得3DLUT的映射精度急速减小,从而影响性能;减小 N N N是同理,一样会带来有损的参数削减。

然后作者提出了他的发现,3DLUT映射结果的输出通道只跟1个输入通道强相关,而跟另外2个输入通道弱相关,因此从无损削减参数的角度,就应该不改变强相关的通道bins数,而减小弱相关的通道bins,因此对于3个通道要使用不同的 D D D,此时参数量变化为 N × D r D g D b N \times D_r D_gD_b N×DrDgDb
作者对这个发现进行了实验来验证,分为强相关通道实验和弱相关通道实验。
在这里插入图片描述
强相关实验中, c i n c_{in} cin c o u t c_{out} cout分别是输入输出通道,总共有5条LUT,每条LUT有3个输出,可以看到 c o u t c_{out} cout是随着 c i n c_{in} cin的改变线性变化的,意味着强相关。
在这里插入图片描述
弱相关实验中, x i n x_{in} xin y i n y_{in} yin是弱相关的另外两个通道,可以看到在 c o u t c_{out} cout所在的某个具体的值平面上,存在着各种可能的 x i n x_{in} xin y i n y_{in} yin,可以说明弱相关。

基于此观察,作者提出了它的方法,下面是方法总览:

在这里插入图片描述
整体还是基于3D-LUT的框架,只不过添加了一个压缩自适应的变换矩阵。作者使用的损失函数在3DLUT的基础上额外添加了一个余弦相似度的损失。

2.2 压缩自适应的变换矩阵

前面观察提到了输出只与其中某一个通道强相关,而跟另外两个通道弱相关,基于此,作者提出可以使用两个矩阵,将原始的3DLUT参数变换成2个子矩阵,一个代表强相关,一个代表弱相关,这2个子矩阵通过矩阵变换得到原始的3DLUT参数,这样我们就只需要保存更小的子矩阵即可,公式表示如下: ϕ = f ( ψ , M ) = h ( [ M s ψ r M w , M s ψ g M w , M s ψ b M w ] ) , \boldsymbol{\phi}=f(\boldsymbol{\psi}, \boldsymbol{M})=h\left(\left[\boldsymbol{M}_{s} \boldsymbol{\psi}^{r} \boldsymbol{M}_{w}, \boldsymbol{M}_{s} \boldsymbol{\psi}^{g} \boldsymbol{M}_{w}, \boldsymbol{M}_{s} \boldsymbol{\psi}^{b} \boldsymbol{M}_{w}\right]\right), ϕ=f(ψ,M)=h([MsψrMw,MsψgMw,MsψbMw]),其中, M s \boldsymbol{M}_{s} Ms M w \boldsymbol{M}_{w} Mw是两个变换矩阵,分别代表它们的维度表示为: M = { M s ∈ R D × S , M w ∈ R W × D 2 } \boldsymbol{M}=\left\{\boldsymbol{M}_{s} \in \mathbb{R}^{D \times S}, \boldsymbol{M}_{w} \in \mathbb{R}^{W \times D^{2}}\right\} M={MsRD×S,MwRW×D2}原公式中 h h h代表reshape操作将 ( 3 , D , D 2 ) (3,D,D^2) (3,D,D2)的结果转换为 ( 3 , D , D , D ) (3,D,D,D) (3,D,D,D)的3DLUT。

2.3 讨论分析

  1. 压缩前后的时空复杂度对比:空间复杂度,现在的是 O ( N S W + D S + W D 2 ) O(NSW+DS+WD^2) O(NSW+DS+WD2),原始的3DLUT是 O ( N D 3 ) O(ND^3) O(ND3),那因为 S S S W W W都比较小,所以说这个改动会使得空间复杂度减小较多,作者举了一个例子,当 D D D=33和 N N N=20时,CLUT-Net的参数量跟3DLUT的参数量分别是28k和2156k,前者比后者少了99%。

    时间复杂度分别是 O ( N S W + S D 3 + S W D 2 ) O(NSW+SD^3+SWD^2) O(NSW+SD3+SWD2) O ( N D 3 ) O(ND^3) O(ND3)也是减小的,作者同样举了一个例子,同样的设置下,乘加数分别是872K和2156K,这部分减小了60%。

  2. 压缩方法的选择:作者对比了另外3种不同的压缩方法,结果如下图所示。
    在这里插入图片描述
    其中BL-A是标准压缩使用更小的 D D D,BL-B是基于标准的3DLUT使用PCA方法离线压缩,BL-C是使用不可学习的CLUT压缩矩阵,效果表现很明显,肯定是本文的方案是最优的。

三、实验结果

定量实验如下。
在这里插入图片描述
LUT-3和LUT-20是原始的3DLUT方法,后面的数字是LUT条数,sLUT是另外一个LUT方法,作者的方法就是可以在维持效果的前提下极低的参数量。
在这里插入图片描述
另外一个数据集也是这样,SOTA效果保持极低的参数量。

接下来是定性实验,对比效果图如下:
在这里插入图片描述

上述对比数据中,CLUT与GT在视觉上最为相近。

四、总结

本文通过对3DLUT的固有压缩性进行分析,提出了一种基本无损的缩减策略,并在此基础上构建了一个高效的图像增强网络,在多个数据集上也进行了验证,确实可以在维持SOTA效果的前提下,极大的减小了LUT的尺寸。类似的压缩文章是SPF-LUT,其针对的是空间LUT的压缩,感兴趣的读者可以阅读。

代码部分将会单起一篇进行解读。(未完待续)


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

http://www.lryc.cn/news/579388.html

相关文章:

  • 朝鲜APT组织使用Nim语言恶意软件对macOS发起隐秘Web3与加密货币攻击
  • .net wpf混淆
  • uniapp 使用ffmpeg播放rtsp
  • QT常用类和模块
  • Qt宝藏库:20+实用开源项目合集
  • Java——初始guava(1)
  • 【python】OOP:Object-Oriented Programming
  • Linux基本命令篇 —— tar命令
  • Redis缓存架构实战
  • 微算法科技(NASDAQ MLGO)基于量子图像处理的边缘检测算法:开拓图像分析新视野
  • 中国户外品牌全球竞争力榜单发布:科技突围与文化赋能重塑行业格局
  • 扫地机产品--电池是否存在类似充电宝自燃问题?
  • 【JS笔记】JS 和 noodjs 的常见操作(十)
  • 依赖属性附加属性
  • 从混沌到澄明,AI如何重构我们的决策地图与未来图景
  • CSS `@scope` 实战指南:开启局部样式隔离新时代
  • NVIDIA Spectrum-3 SN4000 系列SN4000 SN4000 系列速度高达 400Gb/秒的现代横向扩展分布式数据中心应用提供支持。
  • React 学习(3)
  • http、SSL、TLS、https、证书
  • KMP(Kotlin Multiplatform)改造(Android/iOS)老项目
  • java8 Collectors.mapping 使用 例子 学习
  • 学习开发之数组和集合的相似与不同
  • Boss:玩家摄像机系统
  • Python干涉仿真
  • 快速搭建大模型web对话环境指南(open-webUI)
  • 12. grafana-Dashboard的Variable(过滤)使用
  • vbox 虚拟共享文件夹 创建以及权限问题
  • 多模态AI Agent技术栈解析:视觉-语言-决策融合的算法原理与实践
  • [特殊字符] 从图片自动生成 Excel:Python 批量 OCR 表格识别实战
  • 高压电缆护层安全的智能防线:TLKS-PLGD 监控设备深度解析