Learning Raw Image Denoising with Bayer Pattern Unification and Bayer Preserving Augmentation

旷世在NTIRE 2019一项Raw Image Denoising的论文,比赛中取得了第一名,排名如下图。论文:论文链接

Learning Raw Image Denoising with Bayer Pattern Unification and Bayer Preserving Augmentation_第1张图片

 一、背景

图像降噪是计算机视觉低层问题,以前都是用传统的方法比如NLM、BM3D,慢慢又开始基于CNN做降噪比如DNcnn、FFDnet等。从降噪数据来分,大概有raw image降噪,real image降噪,sRGB image降噪等等。其中raw图像的噪声最简单,从raw到RGB会经过一系列处理,比如伽马矫正,白平衡,解码等等,简单的噪声分布在一系列处理中也发生了复杂的变化。近几年,开始有一些raw相关的数据集被拿出来用于比赛。(不扯了,直接看下面内容吧,关于图像降噪相关的知识和近期比较好的论文,我慢慢分享。Bayer patterns介绍。通过每个2x2块中的通道序列表示每个模式,按左上角、右上角、左下角和右下角的顺序排列。通常,有4种可能的格式,即RGGB、BGGR、GRBG和GBRG。论文中使用BGGR作为最终模型的输入格式。

二、主要内容

论文比较简短(八页)主要介绍两个核心的问题:

  1. raw图像是直接从相机sensor获取,是拜耳模式四通道,由于硬件缘故,四个通道的排序有区别,大概有四种:GRBG、BGGR、GBGR、RGGB。因此要解决一个问题,如何统一这四种通道的数据,用一个model去训练。
  2. 深度学习之所以可以在现在表现极其优异,无非两个根本原因:数据量很大,可以支撑复杂网络模型的训练;硬件GPU计算性能提升可以支撑复杂网络模型训练。raw图像降噪问题,groundtruth获取非常麻烦,因此公有的数据集不多,图像也很少,只能采用数据增强方法来扩充数据,但是,raw数据通道很特别,不同于RGB保存的图像,图像随意的裁剪、翻转等数据增强操作会导致像素通道空间排列错乱,和真实图像差别很大。如图2:两种翻转操作,导致拜耳模式改变。
Learning Raw Image Denoising with Bayer Pattern Unification and Bayer Preserving Augmentation_第2张图片 图2

 论文中还提到第三种翻转操作transposition,对于不同的拜耳模式影响不一样,根据对角分量的通道不同,transposition操作对不同的模式有不同的影响。比如对于GRBG 输入, 翻转后可能变成GBRG,但是对于RGGB和BGGR输入模式不会造成拜耳模式改变。

Learning Raw Image Denoising with Bayer Pattern Unification and Bayer Preserving Augmentation_第3张图片

 

Learning Raw Image Denoising with Bayer Pattern Unification and Bayer Preserving Augmentation_第4张图片

上图(a)(b)所示。证明了论文为了解决上面两个问题所提出的(a)拜耳模式统一和(b)拜耳保留增强方法。图中显示在不影响内容的情况下对拜耳原始图像进行统一和增强,而不恰当的预处理或增强会干扰原始图像的空间关系,从而产生伪影。 

对于问题1

论文提出Bayer pattern unification technique(BayerUnify)来统一几种通道排序模式,论文发现通过对行或列裁剪操作可以让其他通道三种排序模式转为BGGR,如下图。(变灰色的行、列为裁剪掉的。)

 

Learning Raw Image Denoising with Bayer Pattern Unification and Bayer Preserving Augmentation_第5张图片

 

 

Learning Raw Image Denoising with Bayer Pattern Unification and Bayer Preserving Augmentation_第6张图片

 

Learning Raw Image Denoising with Bayer Pattern Unification and Bayer Preserving Augmentation_第7张图片

需要注意的是,论文在网络的训练中使用裁剪手段统一拜耳模式,但是在网络测试时采用先padding再裁剪来统一拜耳模式,如下图。

Learning Raw Image Denoising with Bayer Pattern Unification and Bayer Preserving Augmentation_第8张图片 填充以与裁剪相似的方式改变拜耳模式

 在padding方法的选择上,作者使用reflection padding(aka “reflect” for numpy.pad or “BORDER REFLECT 101” for OpenCV)来确保填充的像素来自正确的通道。

对于问题2

论文结合翻转和裁剪来执行数据增强,同时保持图像的拜耳模式。作者称其为Bayer Preserving Augmentation (BayerAug)。翻转图像后,论文使用裁剪来逆转拜耳模式的变化(又恢复到原来的样子)。

Learning Raw Image Denoising with Bayer Pattern Unification and Bayer Preserving Augmentation_第9张图片

最终,论文在Unet模型的基础上加入一些增强技巧得到比赛模型,如下:

Learning Raw Image Denoising with Bayer Pattern Unification and Bayer Preserving Augmentation_第10张图片

三、其他讨论

1、优化方法作者使用AdamW。关于AdamW算法的介绍和推导可以参考:AdamW

2、激活函数使用PReLU,放弃使用BN层。PReLU就是带参数的Relu,简单介绍参考:PReLU

Learning Raw Image Denoising with Bayer Pattern Unification and Bayer Preserving Augmentation_第11张图片

3、讨论了 raw数据预处理和增强中可能出现的一些错误。

Na¨ıveUnify

在原始图像预处理中,一个常见的错误是打乱4通道输入的顺序。如下图,在转换格式的同时,对原始图像中的结构信息进行整理。论文使用这种方法对模型进行了训练和测试与bayerunity相比,该数据预处理方法的性能较低。

Learning Raw Image Denoising with Bayer Pattern Unification and Bayer Preserving Augmentation_第12张图片

Na¨ıveAug

在原始数据增强中,将压缩的4通道图像翻转为3通道RGB图像是可行的。然而,如下图所示,它也对空间信号进行了分解,并生成了与原始数据集非常偏离的图像。论文基于正确统一的数据集(BayerUnify)验证了这种增强方法。如下表所示,该方法没有改进结果,反而降低了结果。 

Learning Raw Image Denoising with Bayer Pattern Unification and Bayer Preserving Augmentation_第13张图片

Learning Raw Image Denoising with Bayer Pattern Unification and Bayer Preserving Augmentation_第14张图片

 

个人疑惑:对通道图做padding操作的具体细节,padding进去行和列的数值怎么确定,也没有源码可读啊!

 

 

 

 

你可能感兴趣的:(图像降噪,图像降噪)