CycleISP: Real Image Restoration via Improved Data Synthesis通过改进数据合成实现真实图像恢复

摘要

大规模数据集的可用性极大释放了深度卷积神经网络(CNN)的潜力。然而,针对单图像去噪问题,获取真实数据集成本高昂且流程繁琐。因此,图像去噪算法主要基于合成数据开发与评估,这些数据通常通过广泛假设的加性高斯白噪声(AWGN)生成。尽管CNN在合成数据集上表现优异,但在真实相机图像中效果不佳,如近期基准数据集所示。这主要因为AWGN不足以建模真实相机噪声——其具有信号依赖性且受相机成像流程(ISP)深度变换。本文提出一种框架,对相机成像流程进行正反向建模,使其能在RAW和sRGB空间生成任意数量的真实图像对用于去噪。通过在真实合成数据上训练新去噪网络,我们在真实相机基准数据集上实现了最先进性能。模型的参数量比此前RAW去噪最优方法减少约5倍。此外,我们证明该框架可泛化至图像去噪之外的任务(如立体电影色彩匹配)。源代码与预训练模型已开源:https://github.com/swz30/CycleISP


一、引言

  1. 计算机视觉任务的发展
    以图像分类、目标检测和分割为代表的高层视觉任务受益于深度卷积神经网络(CNNs)。大规模数据集(如ImageNet)的可用性是关键推动力。技术瓶颈:低层视觉任务(去噪、超分、去模糊等)的数据采集成本极高,需在同一场景拍摄多张噪声图像进行像素级对齐和平均生成干净图像,易受光照变化和运动模糊干扰。

  2. 合成数据局限性
    现有方法通过在sRGB图像中添加AWGN(加性高斯白噪声)生成训练数据,但真实相机噪声具有信号依赖性和ISP非线性变换特性,导致模型在真实数据上泛化性能差。核心问题:相机ISP流程(如去马赛克、色彩校正)会改变RAW域噪声的时空-色度相关性,使其分布偏离高斯。

图1:DND数据集真实相机图像去噪效果


CycleISP框架创新

1. 核心贡献
  • 设备无关的RAW-sRGB双向转换
    提出无需相机ISP参数的CycleISP模型,通过RGB→RAW→RGB循环学习实现数据合成与噪声建模:

    • RGB2RAW模块:将sRGB逆转换为RAW数据,无需依赖白平衡增益等相机参数
    • RAW2RGB模块:通过颜色注意力单元自适应不同相机色彩特性,重建sRGB图像
  • 真实噪声合成器
    在RAW域注入物理噪声模型:

    • 包含光子散粒噪声(光照依赖)、读出噪声(电路精度相关)、固定模式噪声(传感器缺陷)
    • 支持动态参数校准,适配不同ISO和量子效率的传感器
  • 轻量双重注意力机制
    去噪网络参数量仅2.6M(对比UPI的11.8M),通过:

    • 通道注意力:抑制噪声传播
    • 空间注意力:增强纹理重建

2. 技术优势
指标DND数据集SIDD数据集
RAW域PSNR40.44 dB-
sRGB域PSNR36.16 dB39.52 dB
SSIM0.9560.953
参数量2.6M对比UPI ↓78%

实验验证:如图1所示,相比N3NET和UPI,CycleISP能有效抑制低频色度噪声和坏像素噪声。


扩展应用

  1. 立体电影色彩匹配
    通过CycleISP转换源视图与目标视图的色彩空间,在3D电影中实现跨视角色彩一致性,PSNR提升至36.60 dB。

  2. 跨传感器泛化
    DRL-ISP方法结合强化学习优化ISP参数,在目标检测任务中将mAP@0.50从33.8%提升至36.5%。


技术局限与改进方向

  1. 实时性挑战
    完整模型参数量达470万,需通过知识蒸馏压缩至1MB以内,移动端延迟仍需优化。

  2. 动态退化处理
    当前对运动模糊修复有限,未来计划集成光流估计模块


二、相关工作​(翻译与核心研究进展解析)

图像噪声的存在不可避免,无论是通过何种成像方式获取图像——在当今智能手机摄像头主导的时代(传感器尺寸小但分辨率高),这一问题尤为突出。单图像去噪是计算机视觉与图像处理领域广泛研究的课题,其早期研究可追溯至1960年代。经典去噪方法主要基于以下两大原则:

  1. 变换域系数修正:利用离散余弦变换(DCT)、小波变换等技术对频域系数进行调整。
  2. 邻域像素值平均:包括各向同性的高斯滤波、基于像素相似性的邻域平均(如双边滤波)及沿图像轮廓的滤波。

尽管上述方法在图像保真度与视觉质量上表现良好,但Buades等人提出的非局部均值(NLM)算法标志着去噪领域的重大突破。NLM通过挖掘自然图像中固有的冗余性与自相似性,显著提升了去噪效果。此后,基于图像块的方法(如BM3D)持续推动理论极限的探索。

近年来,深度学习技术逐渐成为主流。Burger等人首次通过大规模合成噪声数据训练简单的多层感知机(MLP),其性能超越传统复杂算法。随后,基于深度卷积神经网络(CNN)的方法(如DnCNN、FFDNet、CBDNet)在去噪任务中展现出显著优势。

RAW与sRGB空间的去噪挑战

尽管去噪算法可应用于RAW或sRGB数据,但真实噪声数据采集成本高且流程复杂,导致研究多依赖合成数据。传统方法常假设噪声为加性高斯白噪声(AWGN)​,然而真实相机噪声包含:

  • 信号依赖性噪声:光子散粒噪声(泊松分布)
  • 信号无关噪声:读取噪声(高斯分布)

相机成像管线(ISP)会将RAW传感器噪声转化为时空-色度相关且非高斯分布的复杂形式。因此,在sRGB空间中建模噪声需综合考虑ISP的影响。本文提出的框架通过合成真实噪声数据,支持CNN在RAW与sRGB空间中高效去噪。


技术要点与引用来源

  1. 经典方法:小波变换、双边滤波
  2. 非局部均值(NLM)​:利用自相似性提升去噪效果
  3. 深度学习突破:MLP与CNN模型(DnCNN、FFDNet)
  4. 真实噪声建模:泊松-高斯分布与ISP影响
  5. RAW域去噪:ELD模型与CBDNet的噪声参数校准

图2:CycleISP框架的双向ISP建模

CycleISP模型的双向相机成像管线建模包含两大核心分支:

  1. RGB2RAW分支:将sRGB图像逆向还原为RAW数据,模拟相机ISP的逆过程。
  2. RAW2RGB分支:将RAW数据正向转换为sRGB图像,结合辅助颜色校正分支实现色彩精确恢复。
    技术亮点

3. CycleISP框架

核心目标

构建双向ISP建模系统,实现sRGB与RAW域的无损转换,为真实噪声数据合成奠定基础。系统包含两大核心网络分支:

  1. RGB2RAW网络:逆向还原相机ISP流程,将sRGB图像逆推至RAW域
  2. RAW2RGB网络:正向模拟相机ISP流程,从RAW数据重建sRGB图像

3.1 RGB2RAW网络分支

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

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

相关文章

《Python星球日记》 第70天:Seq2Seq 与Transformer Decoder

名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 一、Seq2Seq模型基础1. 什么是Seq2Seq模型?2. Encoder-Decoder架构详解1️⃣编码器(Encoder)2️⃣解码器(Decoder)3. 传统Seq2Seq模型的局限性…

Android 性能优化入门(二)—— 内存优化

1、概述 1.1 Java 对象的生命周期 各状态含义: 创建:分配内存空间并调用构造方法应用:使用中,处于被强引用持有(至少一个)的状态不可见:不被强引用持有,应用程序已经不再使用该对象…

GCC 版本与C++ 标准对应关系

GCC 版本 与支持的 C 标准(C11、C14、C17、C20、C23) 的对应关系 GCC 版本与 C 标准支持对照表 GCC 版本默认 C 标准C11C14C17C20C23GCC 4.8C98✅ (部分支持)❌❌❌❌GCC 4.9C98✅ (完整支持)❌❌❌❌GCC 5.1C98✅✅ (完整支持)❌❌❌GCC 6.1C14✅✅✅ …

5、事务和limit补充

一、事务【都是重点】 1、了解 一个事务其实就是一个完整的业务逻辑。 要么同时发生,要么同时结束。 是一个最小的工作单元。 不可再分。 看这个视频,黑马的,4分钟多点就能理解到 可以理解成: 开始事务-----如果中间抛出异常…

一套基于 Bootstrap 和 .NET Blazor 的开源企业级组件库

前言 今天大姚给大家分享一套基于 Bootstrap 和 .NET Blazor 的开源企业级组件库:Bootstrap Blazor。 项目介绍 BootstrapBlazor 是一套基于 Bootstrap 和 Blazor 的开源(Apache License)、企业级组件库,无缝整合了 Bootstrap …

mac-M系列芯片安装软件报错:***已损坏,无法打开。推出磁盘问题

因为你安装的软件在Intel 或arm芯片的mac上没有签名导致。 首先打开任何来源操作 在系统设置中配置,如下图: 2. 然后打开终端,输入: sudo spctl --master-disable然后输入电脑锁屏密码 打开了任何来源,还遇到已损坏…

RK3568-鸿蒙5.1与原生固件-扇区对比分析

编译生成的固件目录地址 ../openharmony/out/rk3568/packages/phone/images鸿蒙OS RK3568固件分析 通过查看提供的信息,分析RK3568开发板固件的各个组件及其用途: 主要固件组件 根据终端输出的文件列表,RK3568固件包含以下关键组件&#x…

Java正则表达式:从基础到高级应用全解析

Java正则表达式应用与知识点详解 一、正则表达式基础概念 正则表达式(Regular Expression)是通过特定语法规则描述字符串模式的工具,常用于: 数据格式验证文本搜索与替换字符串分割模式匹配提取 Java通过java.util.regex包提供支持,核心类…

进程间通信--信号量【Linux操作系统】

文章目录 并发编程相关基础概念信号量深刻理解信号量使用共享资源的方式分块使用共享资源的方式会出现的问题举例子理解信号量的第二个特性---预定信号量要成为计数器面临的问题 信号量相关操作接口--POSIX库函数:sem_init库函数:sem_destroy库函数&…

谢赛宁团队提出 BLIP3-o:融合自回归与扩散模型的统一多模态架构,开创CLIP特征驱动的图像理解与生成新范式

BLIP3-o 是一个统一的多模态模型,它将自回归模型的推理和指令遵循优势与扩散模型的生成能力相结合。与之前扩散 VAE 特征或原始像素的研究不同,BLIP3-o 扩散了语义丰富的CLIP 图像特征,从而为图像理解和生成构建了强大而高效的架构。 此外还…

HarmonyOs开发之——— ArkWeb 实战指南

HarmonyOs开发之——— ArkWeb 实战指南 谢谢关注!! 前言:上一篇文章主要介绍HarmonyOs开发之———合理使用动画与转场:CSDN 博客链接 一、ArkWeb 组件基础与生命周期管理 1.1 Web 组件核心能力概述 ArkWeb 的Web组件支持加载本地或在线网页,提供完整的生命周期回调体…

黑马程序员C++2024版笔记 第0章 C++入门

1.C代码的基础结构 以hello_world代码为例&#xff1a; 预处理指令 #include<iostream> using namespace std; 代码前2行是预处理指令&#xff0c;即代码编译前的准备工作。&#xff08;编译是将源代码转化为可执行程序.exe文件的过程&#xff09; 主函数 主函数是…

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(22):复习

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(22):复习 1、前言(1)情况说明(2)工程师的信仰2、知识点(1)复习(2)復習3、单词(1)日语(2)日语片假名单词4、对话练习5、单词辨析记录6、总结1、前言 (1)情况说明 自己在今年,在日本留学中,目前在语言学校,…

Docker配置SRS服务器 ,ffmpeg使用rtmp协议推流+vlc拉流

目录 演示视频 前期配置 Docker配置 ffmpeg配置 vlc配置 下载并运行 SRS 服务 推拉流流程实现 演示视频 2025-05-18 21-48-01 前期配置 Docker配置 运行 SRS 建议使用 Docker 配置 Docker 请移步&#xff1a; 一篇就够&#xff01;Windows上Docker Desktop安装 汉化完整指…

Redis——缓存雪崩、击穿、穿透

缓存雪崩 大量缓存数据在同一时间过期或者Redis故障宕机时&#xff0c;若此时有大量请求&#xff0c;都会直接访问到数据库&#xff0c;导致数据库压力倍增甚至宕机。 大量数据同时过期解决方案&#xff1a; 1、均匀设置过期时间&#xff1a; 设置过期时间的时候可以追加一…

开源GPU架构RISC-V VCIX的深度学习潜力测试:从RTL仿真到MNIST实战

点击 “AladdinEdu&#xff0c;同学们用得起的【H卡】算力平台”&#xff0c;H卡级别算力&#xff0c;按量计费&#xff0c;灵活弹性&#xff0c;顶级配置&#xff0c;学生专属优惠。 一、开篇&#xff1a;AI芯片架构演变的三重挑战 &#xff08;引述TPUv4采用RISC-V的行业案…

字符串相乘(43)

43. 字符串相乘 - 力扣&#xff08;LeetCode&#xff09; 解法&#xff1a; class Solution { public:string multiply(string num1, string num2) {string res "0";for (int i 0; i < num2.size(); i) {string str multiplyOneNum(num1, num2[num2.size() -…

mathematics-2024《Graph Convolutional Network for Image Restoration: A Survey》

推荐深蓝学院的《深度神经网络加速&#xff1a;cuDNN 与 TensorRT》&#xff0c;课程面向就业&#xff0c;细致讲解CUDA运算的理论支撑与实践&#xff0c;学完可以系统化掌握CUDA基础编程知识以及TensorRT实战&#xff0c;并且能够利用GPU开发高性能、高并发的软件系统&#xf…

[LevelDB]LevelDB版本管理的黑魔法-为什么能在不锁表的情况下管理数据?

文章摘要 LevelDB的日志管理系统是怎么通过双链表来进行数据管理为什么LevelDB能够在不锁表的情况下进行日志新增 适用人群: 对版本管理机制有开发诉求&#xff0c;并且希望参考LevelDB的版本开发机制。数据库相关从业者的专业人士。计算机狂热爱好者&#xff0c;对计算机的…

【C++进阶篇】C++容器完全指南:掌握set和map的使用,提升编码效率

C容器的实践与应用&#xff1a;轻松掌握set、map与multimap的区别与用法 一. 序列式容器与关联式容器1.1 序列式容器 (Sequential Containers)1.2 关联式容器 (Associative Containers) 二. set系列使用2.1 set的构造和迭代器2.2 set的增删查2.2.1 插入2.2.2 查找2.2.3 删除 2.…