LLIE_denoise


⚡ AISP之超感光降噪与暗光增强 ⚡

本文主要介绍超感光降噪技术 Unprocessing 与最新的SOTA暗光增强模型 Retinexformer。

Unprocessing 降噪

Retinexformer增强


[TOC]

1️⃣ 低照度中高斯噪声

在ISP系统中,图像从CMOS产生后经过一系列的线性以及非线性的处理,噪声形态会发生变化,变得难以去除。因此,在靠前的位置对图像进行恢复时,有较好的效果,此时的噪声模型符合一定的统计规律。

噪声一般分为加性噪声和乘性噪声,加性噪声和图像信号强度是不相关的;而乘性噪声和图像信号是相关的,往往随图像信号的变化而变化。G=f+n为加性噪声表现形式,G=f+fn为乘性噪声表现形式,f为无噪声图像,n为噪声。理想情况下,可利用G-f得到无噪声的图像,利用统计方法计算噪声的概率密度函数,即可得到噪声的分类。

常见的噪声类型有:

  • 高斯噪声

  • 脉冲噪声

  • 瑞利噪声

  • 伽马噪声

  • 指数噪声

  • 均匀噪声

  • 泊松噪声

本文主要介绍低照度下产生的高斯噪声。高斯噪声是所有噪声中使用最为广泛的,传感器在低照明度或者高温的条件下产生的噪声就属于高斯噪声,电子电路中产生的噪声也属于高斯噪声

原图 高斯噪声

2️⃣ 基于AI降噪技术

1 数据集

使用深度学习做降噪,训练的过程最好可以使用包含真实噪声的数据库。为了训练深度模型,数据库需要提供“无噪声”的图像作为Ground Truth (GT),获得GT的方法主要有两种,一种是使用低ISO长曝光的图像作为GT,另外一种是融合多张高ISO短曝光的图像作为GT。不管使用哪种方法,噪声图像与GT之间还是会存在对齐不准、颜色不匹配的情况,因此还需要做后处理才能得到更准确的训练图像对。

  • 准备大量低照度图像,包括傍晚、月光、星光、超微光等数据集
    • 一种是传统ISP拍摄的噪声图像,作为输入
    • 一种是去噪的的去噪图像,作为GT

2 降噪模型

2019年google团队提出Unprocessing Images for Learned Raw Denoising

主要讲了两个事,一个是他们的“unprocess”模型,另一个就是网络的训练。

2.1 构造去噪数据集

  • 先说unprocess模型。相机传感器接收光子,获得的原始数据叫raw data, 一般是拜耳结构,两个绿色像素一个蓝色一个红色,然后经过一系列的处理,才能变成我们看到的一张张图片,这个一系列process的过程叫做Raw Image Pipeline。
  • 那么他们为什么要研究这个呢,是为了制作网络的数据集,一般来讲去噪的数据集都是拿信噪比高的照片,然后加上一个高斯噪声这样模拟出来的,但是这样的模拟太简单,训练出的网络效果不好。另一种获取数据集的方式就是用相机拍,先用长曝光时间拍一张信噪比高的图,再用短曝光时间拍同样的内容,获得一个低信噪比的图,这样两张照片组成一组,用于训练。这种方式时间成本太高,费时费力,也不好。所以他们建立了这么一个模型,用于产生数据集
  • 处理的过程,就是先看Raw Image Pipeline,就是看raw data是怎么变成image的,主要有以下几个步骤:
    • 1 shot noise & read noise,中文应该是随机噪声(光子到达传感器的随机性,泊松分布)和读出噪声(读出电路的不精确,高斯分布)。
    • 2 Demosaicing,去马赛克,一般就是用双线性插值。
    • 3 Digital Gain,增益。
    • 4 White Balance白平衡。光照因素。
    • 5 Color Correction颜色校正。
    • 6 Gamma Compression伽马校正,对比度。
    • 7 Tone Mapping色调映射。
  • 文章的主要贡献就是提出了这些步骤的逆变换,也就是说他们可以根据这个逆变换,把一副图像变成raw data,这个过程就是“unprocess”
  • 有了这个unprocess以后就好办了,可以根据图像生成原始数据,然后用于网络的训练,文章中是用了别人做的图片数据集。

2.2 训练去噪神经网络

  • 第二部分是卷积神经网络,需要注意的是他们训练的不是传统的图像,而是图像的raw data,这样更接近真实的情况
  • 他们先通过unprocess获得了很多图像的raw data,然后将raw data 和 加噪声的raw data作为一组数据进行训练

  • 然后网络的架构看图,主要是用了U-net的架构,然后加了残差网络。

2.3 实验结果

  • 信噪比至少翻倍,2X,图像质量明显提高

3️⃣ 低照度图像增强模型

基于AI的降噪技术可以显著降低低照度图像中的噪声,从而提高了成像质量,为下一阶段的暗光增强模型降低了很多噪声。本文简单介绍2023年最新的SOTA暗光增强模型 Retinexformer: One-stage Retinex-based Transformer for Low-light Image Enhancement

1. 暗光增强简介

暗光增强的主要任务是增强低光图像的能见度和对比度,同时修复隐藏在黑暗中或由于提升亮度而引入的噪声、伪影、颜色畸变等复杂的退化模式。

暗光增强任务示意图

当前的暗光增强算法大体上可以分为三类:朴素方法、传统感知方法、深度学习方法

  • 朴素方法一般会直接在全局范围内增强整张图像的亮度和对比度。经典的算法有直方图均衡化(histogram equalization )和伽马矫正(Gama Correction)。然而这类算法没有考虑到光照因素,使得增强后的图像与真实光照图像严重不符。
  • 传统感知算法大都基于视网膜理论(Retinex Theory),将一张自然图像解耦为照度图(Illumination)和反射图(Reflectance),并将反射图作为暗光增强后的图像。然而这类算法有两个缺陷。一是假定暗光图像都是干净的,不存在噪声伪影等。然而由于成像设备的缺陷,暗光图像常常带有噪声。二是这类算法依赖于手工设计的图像先验,常常需要调参且表征能力很弱。
  • 现有的深度学习方法大多基于卷积神经网络,不擅长于捕获长程依赖关系,不利于图像的修复。有部分深度学习算法与视网膜分解理论相结合。然而这类算法大都需要一个冗长的流程,采取一个多阶段的训练方案,分别训练多个不同的 CNN 来做不同的任务,如解耦彩色图像、给反射图去噪、调整照度图等。然后将这些训好的 CNN 连接起来进行微调。整个训练过程繁琐复杂,费时费力。

为了解决上述难题,本文:

【1】我们提出了首个与视网膜理论相结合的 Transformer 算法,名为 Retinexformer,以用于暗光增强。

【2】我们推导了一个单阶段视网膜理论框架,名为 ORF(One-stage Retinex-based Framework),不需要繁复的训练和微调流程,只需要一个阶段端到端的训练即可。

【3】我们设计了一种由光照引导的新型多头自注意机制,名为 IG-MSA(Illumination-Guided Multi-head Self-Attention,IG-MSA),将光照信息作为关键线索来引导长程依赖关系的捕获。

【4】我们的算法在十三个暗光增强榜单上达到了更好的定量和定性效果,同时在用户研究和黑夜目标检测任务上验证了我们算法的实用价值。

2. 本文方法

本文方法的整体框架

  • 在图 (a) 中,Retinexformer 采用我们设计的 ORF。而 ORF 又由两部分构成: (i) 光照估计器(illumination estimator)和 (ii) 退化修复器(corruption restorer)。
  • 在图 (b) 中,我们设计一个光照引导的 Transformer IGT(Illumination-Guided Transformer)来作为退化修复器。IGT 的基本单元是光照引导的注意力块 IGAB (Illumination-Guided Attention Block)。
  • IGAB 由两个层归一化 LN(Layer Normalization),一个 IG-MSA 和一个前馈网络 FFN(Feed-Forward Network)组成,其细节如图 (c) 所示。

2.1 单阶段视网膜理论框架

根据视网膜理论,一个低光图像 I 可以分解为一个反射图 R 和一个照度图 L 的点乘:

然而这个视网膜模型并没有考虑噪声伪影等退化因素。因此,我们将这条公式重写为:

分别在反射图和照度图上加入了扰动项。那么在提升低光图像亮度时,上边等式两边会同时点乘一个亮度图:

等式右边第三项便表示隐藏在黑暗中的噪声伪影,并在提升亮度过程中被进一步放大。第二项表示点亮过程造成的失曝,过曝和颜色畸变。可将(3)式进一步简化为:

其中的 C 表示整体的退化项。基于(4)式,可将ORF推导为如下:

低光图像和照度先验图先经过光照估计器后的输出作为退化修复器的输入。

2.2 光照引导的Transformer

IGT采用一个 encoder-bottleneck-decoder 的 U-型结构。其中最重要的组成部件便是 IG-MSA,光照估计器输出的增亮特征图输入到每一个 IG-MSA 当中。在 IG-MSA 当中,输入的特征图首先被变形为 token,然后被分成 k 个 heads:

对每个heads,分别将其线性投影为 Q,K,V:

同时也将增亮特征图形变成 token:

然后在每一个 head 计算自相似时,用光照信息作为引导:

我们的 IG-MSA 的计算复杂度为:

同比全局的MSA的计算复杂度:

我们 IG-MSA 计算复杂度与输入尺寸成线性而全局MSA的计算复杂度与输入成二次相关。我们的计算复杂度明显更低。

3. 实验结果

实验结果如表1、2所示:

表2

一些暗光增强辅助夜间目标检测的例子如图所示(第二列为暗光增强结果,明显检测目标增多了):

4️⃣ 结论

  • 利用RAW和Image的可逆变换,可以构造降噪数据对,相比在高PSNR图像上加噪构造的噪声分布更加接近真实的噪声分布,在数据集上不仅更加便利,而且构造的高质量样本提高了模型的性能上限
  • 通过AI降低RAW噪声,显著提升了图像质量,同时为暗光增强模型提供了便利条件
  • 通过暗光增强模型,不仅提高了夜视暗光的可见度和对比度,还辅助增强了目标检测的夜视性能
  • 总之,原理类似,落地要靠模型压缩量化,才能最终部署到AI-ISP芯片上,加速AISP的迭代。

🤝 Thank you

❤️ 每周分享CV&AIGC相关最新资讯,感兴趣可以关注,喜欢动动小手点个赞,谢谢支持!

Thank you


文章作者: Lee Jet
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Lee Jet !
评论
  目录