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

  • NTIRE Real Denoising 的冠军 team 的 report

主要解决什么问题

对 Raw 图片做 Unify、 Data Augmentation。

不然一种 model 只能处理数据集里的某一种 Bayer Pattern,只利用到一个 subset。

核心知识点

BayerUnify 是说通过 Crop 来把不同的 Bayer Pattern 给归一化。由于 challenge 在用 SIDD 数据集,它是由很多种相机拍出来的,有 3 种不同的 Bayer Pattern。如果针对某一种 Bayer Pattern 处理的话不能充分利用训练集,测试的时候也需要训练三种 model 交上去。
20190705231321.png

Report 里是选用 BGGR 的形式(按照左上、右上、左下、右下的顺序)当做基准,把其他的几种通过 padding + crop 来变成 BGGR。测试的时候是先做 padding,然后 denoise,最后再把 padding 和多余的部分给 crop 掉就好了。

20190705231332.png

BayerAug 解决的是 RAW 图片做 Data Augmentation 的问题。陈启峰在 Seeing In The Dark 里面是把 Bayer Pattern 给展开成一个 4 channel 的 feature map,大家之后也大多是这么用的。在这个 4 channel 的 map 上直接 flip 的话没办法对应回一个有实际意义的 Bayer Pattern。(比如第四行的图片就有明显的失真)

20190705231340.png

为了解决这个问题,BayerAug 是这么操作的:把 Flip 和 Crop 结合起来,在 Flip 之后适当地 Crop 来保证它 Bayer Pattern 有意义,且不改变——还是 BGGR(我们选的那个基准)

20190705231350.png

other comment

整个 challenge 大家基本上在用 UNet,他们选择的方案也是用 MaxPool+Deconv 搭建的 UNet。读完之后我觉得他们排名比较好还是主要靠的 BayerUnify 和 BayerAug 来进行类似 Data Augmentation 的操作。

20190705231308.png