ICCV 2023 | 对于极暗场景RAW图像去噪,你是否还在被标定折磨?来试试LED!少量数据、快速部署!
点击下方卡片,关注“CVer”公众号
AI/CV重磅干货,第一时间送达
AI/CV重磅干货,第一时间送达
作者:Srameo | 已授权转载(源:知乎)编辑:CVer
https://zhuanlan.zhihu.com/p/648242095
本文为 [ICCV 2023] Lighting Every Darkness in Two Pairs: A Calibration-Free Pipeline for RAW Denosing 的简要介绍
Github:https://github.com/Srameo/LED
Homepage:https://srameo.github.io/projects/led-iccv23/
Paper:http://arxiv.org/abs/2308.03448
TL; DR;
基于标定的方法在极低光照环境下的 RAW 图像去噪中占主导地位。然而,这些方法存在几个主要缺陷:
噪声参数标定过程费力且耗时,
不同相机的降噪网络难以相互转换,
合成噪声和真实噪声之间的差异被高倍数字增益放大。
为了克服上述缺点,我们提出了一种无需标定的pipeline来照亮 Lighing Every Darkness(LED),无论数字增益或相机传感器的种类。我们的方法无需标定噪声参数和重复训练,只需少量配对数据和快速微调即可适应目标相机。此外,简单的结构变化可以缩小合成噪声和真实噪声之间的domain gap,而无需任何额外的计算成本。在SID[1]上仅需总共 6 对配对数据、和 0.5% 的迭代次数以及0.2%的训练时间,LED便表现出SOTA的性能!
Introduction
使用真实配对数据进行训练
SID[1] 首先提出一套完整的 benchmark 以及 dataset 进行RAW图像低光增强或去噪。为什么要从RAW图像出发进行去噪和低光增强呢?因为其具有更高的上限,具体可以参考 SID[1] 的文章。
那么它具体的做法是什么呢?很简单,如图1左,使用相机拍摄大量配对的真实数据,之后直接堆到网络里进行训练。
但是有一个很重要的问题,不同的传感器,噪声模型以及参数都是不同的。那么按照这种流程,难道我们对每种相机都需要重新收集大量数据并重新训练?是不是有点太繁琐了?
基于噪声模型标定的算法流程
对于上述提到的问题,近期的paper[2] [3] [4] [5]统一告诉我们:是的。现在,大家主要卷的,包括在各种工业场景(手机、边缘设备上),去噪任务都已经开始采用基于标定的手段。
那么什么是标定呢?具体的标定流程大家可以参考
@Wang Hawk
的文章Wang Hawk:60. 数码相机成像时的噪声模型与标定。当然,基于深度学习+噪声模型标定的算法大概就分为如下三步(可以参考图1右):
1. 设计噪声模型,收集标定用数据,
2.使用 1. 中的标定的数据对对噪声模型进行参数估计
3. 使用 2. 中标定好的噪声模型合成配对数据并训练神经网络。
这样,对于不同的相机,我们只需使用不同的标定数据(收集难度相对于大规模配对数据集来讲少了很多),便可以训练出对应该相机的专用去噪网络。
但是,标定算法真的好吗?
标定缺陷以及 LED
那么我们喜欢什么呢?
简化标定[6][7],甚至无需标定,
快速部署到新相机上,
强大的“泛化”能力:很好的泛化到真实场景,克服合成噪声到真实噪声之间的domain gap。
So here comes LED!
无需标定:相比于标定算法需要使用真实相机的噪声参数,我们采用虚拟相机噪声参数进行数据合成,
快速部署:采用 Pretrain-Finetune 的训练策略,对于新相机仅需少量数据对网络部分参数进行微调,
克服 Domain Gap:通过少量真实数据进行 finetune 以获得去除真实噪声的能力。
LED 能做到什么?
Method
LED大概分为一下几步:
预定义噪声模型Φ ,从参数空间中随机采集 N 组 “虚拟相机” 噪声参数,
使用 1. 中的 N 组 “虚拟相机” 噪声参数合成并 Pretrain 神经网络,
使用目标相机收集少量配对数据,
、
使用 3. 中的少量数据 Finetune 2. 中预训练的神经网络。
当然,一个普通的 UNet 并不能很好的完成我们前文说的3个“需要”。因此结构上也需要做少量更改:
首先,我们把 UNet 里所有的 Conv3 配上一组CSA (Camera Specific Alignment),CSA 指一个简单的 channel-wise weight 和一组 channel-wise 的 bias,用于 feature space 上的对齐。
Pretrain 时,对于第 k 个相机合成的数据,我们只训练第 k 个CSA以及 Conv3。
Finetune 时,先将 Pretrain 时的CSA组进行 Average 得到初始化的CSA^T (for target camera),然后先将其训练收敛;之后添加一个额外分枝,继续微调,额外分枝用于学习合成噪声和真实噪声之间的 Domain Gap。
当然,由于CSA以及卷积都是线性操作,所以我们在部署时候可以将他们全部都重参数化到一起,因此最终不会引入任何额外计算量!
Visual Result
下图表现出了 LED 对于 Out-of-model 噪声的去除能力(克服合成噪声与真实噪声之间 Domain Gap 的能力)。
Out-Of-Model Noise 指不被预定义在噪声模型中的噪声,如图8中由镜头所引起的噪声或图9中由 Dark Shading 所引起的噪声
Discussion on “为什么需要两对数据?”
不知道大家记不记得之前埋的一个伏笔:增益和噪声方差之间保持对数线性关系。
线性关系意味着什么呢?两点确定一条直线!也就是说两对数据(每对数据都能提供在某增益下噪声方差的值)就可以确定这个线性关系。但是,由于存在误差[2],所以我们需要增益差距尽可能大的两对数据以完成网络对线性关系的学习。
从图10右也能看出,当我们无论使用增益相同的 1、2、4 对数据,性能并不会有太大的差距。而使用增益差距很大的两对数据(差异很大指 ISO<500 与 ISO>5000)时,性能有巨大提升。这也能验证我们的假设,即两对数据便可以学习到线性关系。
后记:关于开源
我们的训练测试包括对ELD的复现代码都已经开源到 Github 上了,如果大家感兴趣的话可以帮我们点个 star。
当然不仅是代码,我们还一口气开源了 配对数据、ELD、PG(泊松-高斯)噪声模型在多款相机上、不同训练策略、不同阶段(指 LED 的 Pre-train 和 Fine-tune 阶段)的一共15个模型,详见 pretrained-model.md。
此外,由于 RepNR block 目前只在 UNet 上进行了测试,不过我们相信其在别的模型上的潜力。于是,我们提供了快速将 RepNR block 用于别的模型上的代码,仅需一行代码,便可在你自己的网络结构上使用 RepNR block,配合我们的 Noisy-Clean 生成器,可以快速验证 RepNR block 在其他结构上的有效性。相关讲解以及代码可以在 develop.md 中找到。
希望我们的工作可以为更多的开发者提供便利!感谢阅读!
^abcChen, Chen, et al. "Learning to see in the dark." CVPR. 2018.
^abWei, Kaixuan, et al. "Physics-based noise modeling for extreme low-light photography." IEEE TPAMI. 2021.
^Zhang, Yi, et al. "Rethinking noise synthesis and modeling in raw denoising." ICCV. 2021.
^Feng, Hansen, et al. "Learnability enhancement for low-light raw denoising: Where paired real data meets noise modeling." ACMMM. 2022
^Cao, Yue, et al. "Physics-Guided ISO-Dependent Sensor Noise Modeling for Extreme Low-Light Photography." CVPR. 2023.
^Zou, Yunhao, and Ying Fu. “Estimating fine-grained noise model via contrastive learning.” CVPR. 2022.
^Monakhova, Kristina, et al. “Dancing under the stars: video denoising in starlight.” CVPR . 2022.
点击进入—>【去噪和论文投稿】交流群
ICCV / CVPR 2023论文和代码下载
后台回复:CVPR2023,即可下载CVPR 2023论文和代码开源的论文合集
后台回复:ICCV2023,即可下载ICCV 2023论文和代码开源的论文合集
去噪和Transformer交流群成立
扫描下方二维码,或者添加微信:CVer333,即可添加CVer小助手微信,便可申请加入CVer-去噪或者Transformer 微信交流群。另外其他垂直方向已涵盖:目标检测、图像分割、目标跟踪、人脸检测&识别、OCR、姿态估计、超分辨率、SLAM、医疗影像、Re-ID、GAN、NAS、深度估计、自动驾驶、强化学习、车道线检测、模型剪枝&压缩、去噪、去雾、去雨、风格迁移、遥感图像、行为识别、视频理解、图像融合、图像检索、论文投稿&交流、PyTorch、TensorFlow和Transformer等。
一定要备注:研究方向+地点+学校/公司+昵称(如去噪或者Transformer+上海+上交+卡卡),根据格式备注,可更快被通过且邀请进群
▲扫码或加微信号: CVer333,进交流群
CVer计算机视觉(知识星球)来了!想要了解最新最快最好的CV/DL/AI论文速递、优质实战项目、AI行业前沿、从入门到精通学习教程等资料,欢迎扫描下方二维码,加入CVer计算机视觉,已汇集数千人!
▲扫码进星球
▲点击上方卡片,关注CVer公众号
整理不易,请点赞和在看
微信扫码关注该文公众号作者