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

【LUT技术专题】针对降噪优化的通道感知轻量级LUT算法:DnLUT

在这里插入图片描述

DnLUT:Ultra-Efficient Color Image Denoising via Channel-Aware Lookup(2025 CVPR)

  • 专题介绍
  • 一、研究背景
  • 二、DnLUT方法
    • 2.1 Pairwise Channel Mixer
    • 2.2 Rotation Non-overlapping Kernel(L型卷积)
  • 三、实验结果
  • 四、总结

本文将从头开始对DnLUT: Ultra-Efficient Color Image Denoising via Channel-Aware Lookup,这篇主攻降噪的通道感知轻量级LUT算法进行讲解。参考资料如下:
[1]. DnLUT论文地址
[2]. DnLUT代码地址


专题介绍

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


一、研究背景

DnLUT想要解决的问题是高效的图像去噪,前面讲了一系列的LUT文章,我们可以知道LUT提升感受野就会使得LUT尺寸变大,且为了尽可能减小查询的维度,我们还需要分离通道和空间,通常是将他们分开查询,也就是说对比CNN网络,只有depthwise conv以及pointwise conv,而不能使用正常的卷积,这很大程度上影响了模型的效果。本文作者鉴于此提出了他的解决方案,包含设计的PCM模块和L型卷积,这两个细节会在后面讲到,论文中使用到的评价指标是CPSNR(color PSNR,通过计算每个通道的MSE值,并结合通道之间的协方差来评估图像质量,CPSNR可以更好的评估图像降噪的效果,噪声是包含色噪声的)。总的来说,本文做出了以下4点贡献:

1)对比CVPR2024 sota文章SPF-LUT在图像去噪任务上的CPSNR指标提升明显。

2)功耗和存储资源消耗小,对比DNN的方法,在手机上只有DNN0.1%的功耗,减小1000倍,存储量只需要500kb。

3)文章设计的PCM模块可以有效提升以往基于LUT方法降低色噪声的能力,普遍提升1dB以上。

4)文章设计的L型卷积,对比其他文章用最小的存储量得到了同样的感受野范围。

下图很形象的体现了我们上面提到的4点贡献,对比SPFLUT明显效果提升,存储量通过圈的大小可知是比较小的,而PCM模块可有效提升每个LUT的能力,最后L型卷积帮助DnLUT在几乎同等加入PCM模块的SPFLUT上存储量更小。
在这里插入图片描述

接着我们还是先讲清楚为何现有的LUT方法用于降噪是有明显局限性的,主要是两点:

  1. 通道深度的处理:有三个点导致现有的方法不好处理。
    • 不做通道间的交互:这在初期的LUT方法(SRLUT,MULUT,RCLUT)中频繁被使用,每个通道单独做处理,最后再合并起来,显然这在降噪任务上不合适。
    • 只做通道上的交互:比如SPFLUT,没有空间交互的情况下CPSNR指标会受到影响。
    • 做完全的通道空间交互:使得存储量太大,LUT是空间换计算的方法,完全的交互需要大量的资源来进行。以一个感受野为2x2,输入通道为3的卷积来说,即使进行4bit的间隔量化也需要TB级别的LUT来存储所有的可能性。

作者借助两个图表生动地阐述了上述三种不恰当的处理方式。左侧图表对比了不同LUT方法在未使用PCM模块与使用PCM模块时的效果差异。从图中可以清晰地看出,未添加PCM模块的方法在处理色噪声时效果不佳,存在明显的残留噪声;而一旦引入PCM模块,处理效果显著提升,色噪声得到了更彻底的消除(读者可以通过放大图片进行更细致的对比观察)。右侧图表则展示了在不同RF(感受野)和Depth(深度)条件下,LUT的尺寸变化情况,进一步说明了相关参数对LUT规模的影响。

.
  1. 多个4DLUT堆叠的存储开销问题:这个问题反复被提到,存储量最好小于设备的L1 cache,这样才可以快速查找,一般是500kb。前面已经提到了LUT的维度越大,尺寸会越大,4D LUT的存储量相比较3DLUT就要大16倍,以往的一些方法是采用串并联4D LUT来提升感受野,因此这个过程会带来大量的LUT尺寸,作者指出SRLUT、MULUT使用的4D LUT会在非中心的区域引入更多的查找位置,这样带来了额外的消耗,DnLUT使用L型的卷积核,就可以减小这部分损失,使用3D LUT达到同样大小的感受野,自然就减小了开销,如下图所示。

在这里插入图片描述
从图中可以观察到,SRLUT的卷积核在旋转后,对中心点采样4次,对4邻域点采样2次,对8邻域点采样1次。相比之下,DnLUT的卷积核仅对中心点以外的每个点采样1次。MuLUT则是将这三种类型的卷积核并联组合,因此也继承了这一特性:中心点以外的点被多次采样。这种重复采样导致了不必要的计算开销增加。

二、DnLUT方法

DnLUT总体流程还是遵循我们一直讲的,训练、转换、测试,而它的网络结构如下图所示:

在这里插入图片描述

有以下3个重点:
1)输入首先会送入到PCM模块中进行空间通道的交互,PCM模块包含3个4DLUT,每个4DLUT会查询2个通道和2个空间位置,详情可以看下面的PCM模块讲解。
2)接着与SRLUT等方法一致,只进行空间的交互,因此这里进行了channel-flatten,使用多个L型的3DLUT来提升感受野,使用concat算子进行多尺度的特征融合(3->1 fusion),最后经过一个L Conv-4,送入新的PCM中,当然送入前需要做channel unfold,将通道调整至原有的位置上,而不是在Batch维度上,最后经过一个L conv-5结束。
3)分析可知,整个结构是比较简洁的,这里可以顺带分析存储大小,2个PCM模块包含6个4D LUT,5个L-conv包含5个3D LUT,1个fusion包含1个3D LUT,总共6个4D和6个3DLUT,根据前文给出的公式可得17 * 17 * 17 * 17 * 6B + 17 * 17 * 17 * 6B=518kb

2.1 Pairwise Channel Mixer

接下来详细讲解PCM模块和L型卷积核。下图展示了3类不同模块的交互过程。
在这里插入图片描述
图中可以发现发展为图(c)的模式是必然的,是一种折中的方式,既不会维度太大,又可以满足通道和空间的交互性。下面是PCM的计算公式:

( V R , V G , V B ) = Cat ⁡ ( L U T R G [ I 0 , 0 , R ] [ I 0 , 1 , R ] [ I 0 , 0 , G ] [ I 0 , 1 , G ] , L U T G B [ I 0 , 0 , G ] [ I 0 , 1 , G ] [ I 0 , 0 , B ] [ I 0 , 1 , B ] , L U T B R [ I 0 , 0 , B ] [ I 0 , 1 , B ] [ I 0 , 0 , R ] [ I 0 , 1 , R ] ) , \begin{aligned} \left(V_{R}, V_{G}, V_{B}\right)=\operatorname{Cat} & \left(L U T_{R G}\left[I_{0,0, R}\right]\left[I_{0,1, R}\right]\left[I_{0,0, G}\right]\left[I_{0,1, G}\right],\right. \\ & L U T_{G B}\left[I_{0,0, G}\right]\left[I_{0,1, G}\right]\left[I_{0,0, B}\right]\left[I_{0,1, B}\right], \\ & \left.L U T_{B R}\left[I_{0,0, B}\right]\left[I_{0,1, B}\right]\left[I_{0,0, R}\right]\left[I_{0,1, R}\right]\right), \end{aligned} (VR,VG,VB)=Cat(LUTRG[I0,0,R][I0,1,R][I0,0,G][I0,1,G],LUTGB[I0,0,G][I0,1,G][I0,0,B][I0,1,B],LUTBR[I0,0,B][I0,1,B][I0,0,R][I0,1,R]),

可以看到与图像中展示的是一致的,3个不同的4DLUT形式,第1个加数是RG的中心位置和右边的位置,第2个是GB的对应空间位置,第3个是BR的,最后将他们concat起来组成了新的3通道图像,完成了通道和空间的交互,同时这个模块可以并行,即可以方便应用时的加速。
从图像中可以看到,这三种不同的4D-LUT形式与描述一致。具体来说:
第一个4D-LUT的加数对应于红色(R)和绿色通道(G)的中心位置以及右侧位置。
第二个4D-LUT的加数对应于绿色(G)和蓝色通道(B)的空间位置。
第三个4D-LUT的加数对应于蓝色(B)和红色通道(R)的空间位置。
最终,将这三个4D-LUT的结果进行拼接(concatenate),从而生成新的三通道图像。这一过程不仅实现了通道之间的交互,还完成了空间维度的融合。此外,该模块支持并行处理,能够有效加速应用时的计算效率。

作者还给出了一个伪代码的实现来讲解。
在这里插入图片描述
可以看到:
1)外层循环总共有4层,分别是旋转、高度、宽度以及通道,这跟自集成策略下的正常卷积是一致的。
2)内部计算时,首先找到4个点p1-p4,这是我们完成查找的索引值,这跟我们前面讲到的也是一致的,RG、GB以及BR,拿到邻域和相邻通道的4个点,由于这4个点是8bit的,前面讲到存储他们需要做量化,因此这里也需要对索引进行量化并对LUT表进行插值查找得到对应的值,最后将这个结果写回结果矩阵O中。
3)将4次旋转的结果加到一起,除以4,这样范围可以重新归一化回来,完成处理。

2.2 Rotation Non-overlapping Kernel(L型卷积)

如下图所示。

.

图中可以看到:
1)左图(b)展示了DnLUT的L型卷积,显然他的感受野范围是3个点,对比(a)SRLUT是4个点。
2)右图展示了实际推理时会使用到的自集成策略,通过搭配旋转和L型卷积核,可以与旋转后的SRLUT一样,覆盖3x3的窗口,只不过访问次数相比较SRLUT来说会少4次,那因为多余的4次会存在overlap,因此也带来了额外的存储压力。

三、实验结果

定量的Gaussian color image denoise实验结果显示:DnLUT在LUT方法中效果是最好的。

在这里插入图片描述

针对于real-world color image denoise定量实验结果也是一样的,逊于DNN,但是在LUT中是最好的,一些传统方法做不过DnLUT,显示了深度学习的优势。

在这里插入图片描述

定性的实验结果显示,结论是一致的,逊于DNN,但是在LUT中是最好的。

在这里插入图片描述

资源消耗实验上,LUT-based方法中比较突出,性价比之选,对比传统方法来说,用一点点存储量做到了更快的计算时间和能量消耗,对比DNN来说,资源消耗的优势巨大。

在这里插入图片描述

接下来作者进行了消融实验
1)通道和空间交互的实验:

在这里插入图片描述

这里可以看到作者这种设计,channel、spatial以及channel-spatial共有的方式效果是最好的,3-1fusion代表着channel级别的,普通的L卷积代表着spatial级别的,PCM模块则是channel-spatial级别的,比较明确直观的结论。

2)对比了L型和S型卷积核的效果和消耗,S型指2x2:

在这里插入图片描述

可以看到L型相比较S型来说,效果上略有劣势,但是LUT size上劣势明显,增大了快一倍,得不偿失。

四、总结

  1. DnLUT相当于把LUT方法的效果和性能做了进一步的优化,设计时也尽可能考虑了硬件的cache大小,完成一些简单的降噪任务。
  2. 效果上对比DNN还是差强人意,目前看起来LUT系列的方法都不能完成比较困难的任务,同时需要搭配合适的查表单元,适合在一些具有查表硬件单元的简单任务如JPEG去压缩、降噪等上面做一些部署。

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


感谢阅读,欢迎留言或私信,一起探讨和交流。

相关文章:

  • AI Agent | Coze 插件使用指南:从功能解析到实操步骤
  • Linux 文件权限 (rwx) 详解
  • AI Agent开发第69课-彻底消除RAG知识库幻觉(3)-手撕“重排序”
  • React Fiber 架构深度解析:时间切片与性能优化的核心引擎
  • windows系统各版本下载
  • Vivado2024.2+Modelsim仿真环境搭建大全(保姆式说明)
  • bitmap/hyperloglog/GEO详解与案例实战
  • 【MySQL进阶】如何在ubuntu下安装MySQL数据库
  • Java—— 异常详解
  • 机器学习中的过拟合及示例
  • 计算机图形学编程(使用OpenGL和C++)(第2版)学习笔记 12.曲面细分
  • MySQL初阶:sql事务和索引
  • 深入解析Spring Boot与Redis集成:高效缓存实践
  • 如何彻底清空docker里面不使用的容器?
  • 面向对象详解和JVM底层内存分析
  • Windows运维工具批处理版
  • 使用Python和`python-docx`库复制Word文档样式
  • mysql中4种扫描方式和聚簇索引非聚簇索引【爽文一篇】
  • BG开发者日志517:demo数据分析与修改方向
  • muduo库TcpConnection模块详解——C++
  • 关税影响下沃尔玛想涨价,特朗普施压:自行承担,别转嫁给顾客
  • 柬埔寨果农:期待柬埔寨榴莲走进中国市场
  • 经济日报:人工智能开启太空经济新格局
  • 美国考虑让移民上真人秀竞逐公民权,制片人称非现实版《饥饿游戏》
  • 以军证实空袭也门多个港口
  • 赡养纠纷个案推动类案监督,检察机关保障特殊群体胜诉权