跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI算法

低光图像重构与去噪新视角:通用架构与超越

总结了 CVPR 2025 论文《Rethinking Reconstruction and Denoising in the Dark》,提出了一种基于 RAW 域的低光照图像重构与去噪新范式。文章对比了 RAW 与 RGB 的区别,分析了现有单任务与多任务方法的局限性。核心架构采用骨干网络加轻量化任务头的设计,包含全局色度感知器(GCP)和纹理细节提取器(RDE),并通过交叉注意力机制(CANS++)增强任务间交互。实验表明该方法在低光条件下能有效保留细节并减少噪声,为低级视觉任务提供了新的设计思路。

BigDataPan发布于 2026/4/5更新于 2026/9/988 浏览
低光图像重构与去噪新视角:通用架构与超越

论文总结:Rethinking Reconstruction and Denoising in the Dark

CVPR 2025 文章

一、研究背景

1.1 RAW 和 RGB 的区别

RAW 图像是传感器直接捕获的原始数据,通常以 Bayer 阵列形式存储,未经任何 ISP 处理。每个像素仅记录单一颜色通道的强度值,保留了最原始的感光信息。

本文指出,相比于 RGB 域,RAW 域的处理在低光条件下具有显著优势:

  1. 保留未压缩的传感器数据:RAW 数据避免了 ISP 流水线中的不可逆失真,为重建与去噪提供了更丰富、更真实的信号基础。
  2. 避免噪声放大与伪影:RGB 图像在 ISP 过程中可能引入噪声放大、色彩失真与压缩伪影,而 RAW 数据则保持噪声的自然分布,便于建模与去除。
  3. 支持端到端优化:在 RAW 域中,去噪与重建可以在统一的信号空间中进行联合优化,避免任务间的信息断层与误差累积。
  4. 更适合深度学习模型:RAW 数据的线性特性与完整信息使得深度学习模型能够更有效地学习噪声分布、色彩映射与细节恢复之间的复杂关系。

[图片]

1.2 相关研究

目前解决 RAW 处理的有三种范式:

  1. 传统方法:直接通过 ISP 通道,纯数学计算,无法根据照片调整。在低光图像上会出现大量的噪点以及失真。这样生成的 RGB 图像再进行低照度处理,会固有地遭受图像信号处理 (ISP) 管道引起的不可逆失真,例如噪声放大和压缩伪影,这给学习和优化带来了额外的挑战。
  2. D or R 单任务方法:把去噪和重建当作两个不同的任务,但是该方法无法同时实现去噪和重建,往往忽略了这些任务之间的相互作用,从而产生残留噪声、颜色不正确等固有问题。
  3. D for R 多任务方法:把去噪当作重建的前提操作。这会出现一个问题:噪点去掉有利于颜色恢复,颜色信息也能帮助区分什么是噪点,它们的内部应该是相通的,忽略掉这种关系会导致训练结果不是最优,并且导致两个功能无法区分。经典的方法如 MCR 和 DNF。
  • MCR:在近乎全黑的环境下,颜色信息已经极其微弱且不可信,不应执着于从一开始就采集有瑕疵的彩色信号。它首先提出一个算法将原始的、带拜耳滤镜的 RAW 数据,模拟重构成仿佛由一个没有拜耳滤镜的单色(灰度)传感器所捕获的数据用来获取结构信息,然后拿着学习到的结构信息注入到重建里面。

[图片]

  • DNF:创新在于它显式地将重建任务分解为两个子问题,并让它们相互作用。它将网络分为两部分:去噪和重建。去噪是作为辅助网络,去噪模块生成了一个噪声分布先验,然后注入重建网络,整体实现的是用去噪指导重建。

[图片]

1.3 论文的创新方式

D for R 多任务策略。它整体有点像上边提到的 DNF,不过 DNF 更像一种总分总的结构,CANS 更像一种分总分的结构。它首先设计了一个类似知识库的模块,在这里面添加了色彩感知和纹理感知模块,用来学习图片中的色彩和纹理信息,然后把这些信息分到两个轻量的头上:去噪头和重建头,它们从知识库学习提取到的色彩信息和纹理信息进行处理。

二、模型架构

2.1 色彩和感知模块架构

[图片]

2.1.1 GCP 全局色度感知器

如图,它由归一化和 GCPA 组成,下面主要讲解一下 GCPA:

它首先经过 1x1 的卷积融合通道信息和 3x3 的深度卷积融合周围信息,并生成 Q、K、V。其中 Q、K 进行 pooling 池化,将 [C, H, W] 的特征图池化为 [C, H/s, W/s],降低了计算的复杂度的同时,聚合了色彩的信息,然后进行矩阵的乘法和 softmax 计算注意力权重,再与 V 相乘计算出来全局色彩上下文调制后的特征。他和普通的注意力计算不一样,就是图片最右侧 O((HW)^2) 降至 O(HW * (HW/s^2))。

为什么 GCP 能够实现只提取色彩特征而不提取纹理特征:

  1. 数据的输入:在 RAW 中,色彩与空间信息是'解耦'的:每个像素点只记录一种颜色(红、绿或蓝)的亮度。相邻像素记录的是不同颜色的信息。这种结构使得'颜色'信息天然分布在通道维度上,而'纹理'需要组合多个相邻的不同颜色像素才能形成。
  • 池化的存在:池化会破坏纹理信息,让一块部分直接融合,所以就不会有纹理信息,但又能保存色彩信息。
  • 损失函数:总损失 L_total = L_denoise + L_reconstruct。当提取色彩特征的时候会获得更好的提升,所以模型会将整个模块往色彩方面训练。
  • 2.1.2 RDE 纹理细节提取器

    它首先使用一个 7x7 的空洞卷积,获取全局感受野并且获得提取细节纹理,然后进行归一化,然后连接一个门控函数。门控函数进去之后把特征送入两条路线,一条线性变换一条非线性变换,最后提升重要部分。

    7x7 深度可分离大核空洞卷积:

    • 大核:提供了宽广的感受野,能够捕捉更大范围的上下文,这对于判断一个点是孤立噪声还是连续边缘的一部分至关重要。
    • 空洞:在扩大感受野的同时,不增加参数量或丢失分辨率,保持了计算效率。
    • 深度可分离:将空间滤波与通道混合分离,极大减少计算量。这一步初步聚合了跨区域的细节信息。

    [图片]

    2.2 全局结构

    论文中并没有提到全局架构,只提了一下是由 U 形网络构成,然后根据代码把全局结构画了一下。

    [图片]

    U 形网络部分被称为 Backbone(骨干网络),它就相当于是专家库,另外两个任务头就从这里面获取相关知识进行学习处理。之所以要有这个专家库,是因为专家库里面有色彩信息和纹理信息,它对两个任务都有好处。

    2.3 学习目标(损失计算)

    [图片]

    (1) 参数结构

    • θ_b(主干参数):模型绝大部分的'大脑',负责从 RAW 输入 x 中提取统一特征空间。它是所有计算的核心。
    • θ_m(重建头参数) 与 θ_n(去噪头参数):两个轻量的'专业工具'。它们以 θ_b 的输出作为输入。

    (2) 优化目标

    优化器同时最小化去噪损失(L_den)和重建损失(L_rec)。这是一个多目标优化问题。网络无法使两个损失都达到单独训练时的最小值,但可以通过调整 (θ_b, θ_m, θ_n) 来寻找一个最优解——即在此点上,降低任何一个损失都会导致另一个损失上升。

    (3) '动态分配资源'的机制

    资源分配不是由一个外部控制器完成的,而是通过反向传播的梯度流自动、隐式实现的。在反向传播时,L_den 和 L_rec 产生的梯度会汇聚到共享主干 θ_b。

    • 如果当前批次数据噪声特别严重,L_den 的梯度会更强,迫使 θ_b 更侧重于学习有利于噪声分离的特征。
    • 如果当前批次数据色彩失真严重,L_rec 的梯度会占主导,引导 θ_b 强化色彩感知能力。
    2.4 CANS++

    CANS++ 相当于在原来的 CANS 上两任务头之间用交叉注意力建立连接。它实际上就是拿骨干网络生成 K、V,再拿两个任务头生成他们独特的 Q,然后进行注意力计算,最后训练出两个任务头。它的设计主要是每一次循环练完的参数会更新骨干网络,骨干网络又能生成 KV 和他们再次联系,从而就能使两个任务头能够进行互相的联系,这个任务头能从骨干获取上一轮另一个任务头产生的信息。

    论文中没有给出完整流程图,根据代码绘制的一份。

    [图片]

    它实际上就是比普通的 CANS 加了一个交叉联系。

    三、模型结果

    [图片]

    [图片]

    [图片]

    [图片]

    四、个人总结以及想法

    这篇论文主要是提出了一个新范式,就是骨干 + 轻量化任务头。在最开始我一直不理解它跟端到端模型有什么区别,因为它一直在提自己比单任务串联好,后来参考了相关资料,说这个论文本质上是一个新思想,它依赖的是设计来提升模型,而之前的 Retinexformer 和 Restormer 更像是依赖一个模型然后黑箱计算,直接得到结果。

    这篇论文本质上还是在主要训练 Backbone,无论是 CANS 还是 CANS++,它本质上就是训练出来一个更聪明、只是更全面的专家来帮助后边任务完成结果。所以当在论文中有提到去掉某一个任务头只执行单任务也可以得到很好的结果,因为骨干网络被训练的很好很完善。

    对于这篇论文,我的想法有把 Restormer 里面直接用通道计算注意力会不会整体计算量更小,再结合该模型每个任务头可拆卸这一特点,有没有可能出来一个更轻量化的模型。同时 Retinex 里面把图片分为光照分量和反射分量,有点类似于我在上边提到的 MCR,不过我想训练好一个 Retinex 分离光照分量和反射分量,然后让后模型直接从反射分量学习模型结构,色彩感知 GCP 和光照分量结合,不过这样感觉整个网络计算量会很大很复杂。

    同时我认为论文提出这个骨干网络和多任务的交叉注意力是个很好的地方,我们可以训练出一个足够全能的专家网络,让他进行一些更多更全面的任务,这在高级视觉任务里面挺常见,如目标检测分割,所以我认为这一类高级视觉任务的某些思想应该在低级视觉任务中会有很好的效果,不过目前没啥想法,或许以后会有。

    目录

    1. 论文总结:Rethinking Reconstruction and Denoising in the Dark
    2. 一、研究背景
    3. 1.1 RAW 和 RGB 的区别
    4. 1.2 相关研究
    5. 1.3 论文的创新方式
    6. 二、模型架构
    7. 2.1 色彩和感知模块架构
    8. 2.1.1 GCP 全局色度感知器
    9. 2.1.2 RDE 纹理细节提取器
    10. 2.2 全局结构
    11. 2.3 学习目标(损失计算)
    12. 2.4 CANS++
    13. 三、模型结果
    14. 四、个人总结以及想法

    更多推荐文章

    查看全部
    • Copilot 与 Codeium 核心技术解析:AI 代码助手原理与实践
    • 大模型技术演进与未来办公形态变革分析
    • 本地电脑使用 Ollama 部署大模型及 Chatbox 客户端
    • AI 时代普通人如何脱颖而出:商业认知与行动策略
    • AI 时代脱颖而出的关键:商业认知与行动指南
    • AIClient-2-API 使用指南:快速接入 AI 模型
    • NVIDIA DGX Spark 部署 Stable Diffusion 3.5 与 ComfyUI 实战指南
    • C++ 多线程进阶:互斥锁与竞态条件解析
    • 用 Leaflet 和百度天气接口展示湖南省空气质量
    • Python 读取图片 EXIF 信息解析拍摄地理位置与时间
    • AI 产品经理必懂:数据标注流程与模型评估
    • C++ 红黑树:原理、旋转与完整实现
    • 从语法纠错到项目重构:Python+Copilot 的全流程开发效率提升指南
    • Java HashMap 从链表到红黑树的进化之路
    • 开源 IP 地址管理工具 phpIPAM 安装与使用指南
    • 机器人重力补偿技术:MuJoCo 实现解析与原理分析
    • InfiniteTalk V2:音频驱动图片生成逼真说话唱歌视频,支持 ComfyUI 与 WebUI
    • 基于 Three.js 渲染三维无人机模型(WebGL / Vue / React)
    • Git 基础:将本地代码上传至 Gitee 的完整流程
    • C++ 测试与调试:确保代码质量与稳定性

    相关免费在线工具

    • 加密/解密文本

      使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

    • RSA密钥对生成器

      生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

    • Mermaid 预览与可视化编辑

      基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

    • 随机西班牙地址生成器

      随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

    • Gemini 图片去水印

      基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

    • curl 转代码

      解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online