Practical Deep RawImageDenoising 解读
概要:
近年来在降噪效果上,深度学习方法已经明显由于传统算法如 BM3D 等,然后算力要求太
高进而很难在移动端实现。本文提出一种精简模型在少量样本上训练小模型可以达到不错写
效果。本文特别之处在于以下 2 点:
1, 训练样本是基于特定 sensor 制作的这是不同于一般算法的。
2, 使用了一种称为 K-sigma 的变换,这种变化可以让不同的 ISO 下的图像统一到同一个尺
度进而可以不使用多个 ISO 下的数据进行训练,这样既可以减少样本量又同时可以满足
不同亮度下的降噪要求。
一,特点:
1, 快:可以在手机上运行,晓龙 855 运行时间在 70ms 左右
2, 原:训练和识别都在 raw 域上进行
3, 专:专门为一款 sensor 设计对某个 sensor 来说是最有方案
4, 好:效果达到行业领先水平:下图 1,3 为其他降噪算法 2.4 位本方法。地面纹理下
过更好,天空降噪效果更好。
二,算法:
2.1 简述图像生成原理以及噪声产生的原理
1, 光子打到 sensor 上发生量子效应产生电子
2, 电子在产生电压的同时获得黑噪声
3, 电压净多模拟放大器的处理
4, 电压经过模数转换获得读取及量化噪声
2.2 数学模型:
(1)
带入到(2)中,推到过程
已知:已知就是多年研究已经证实了的东西
现实模型:
(2)
理想模型:∗=∗
∗表示光子数量带*表示是理论理想状态下的
光电量子效应的比率
模拟放大器对信号的增益
∗表示理想中的亮度
=+ +
和是实际模型中的 亮度和光子数
是黑噪声
是读数噪声与量化噪声
~(∗) P 表示泊松分布 (3)
~(0,2)~(0,2)N 表示正态分布 (4)
因为:~(∗)~(0,2)~(0,2)
所以:将(2)中的 u 替换~(∗)+(0,2) +(0,2)
因为:∗=∗
所以:∗=∗ 带入~(∗)+(0,2) +(0,2)
得~ (∗)+(0,2) +(0,2)
括号打开~(∗)+(0,2)+(0,2)
正态分布合并~(∗)+(0,22+2)
另=,2=22+2~(∗)+(0,2) (5)
那么如何得到 k 和2呢
=∗ 表示多张静态图像在相同为是的亮度值的均值,这个等式的物理意
=∗+2 表示方差2是带系数的综合噪声的方差,k 是 ISO 与光效
这样 V 与 E 就构成了一个线性关系 k 是斜率2是截距,而 E 和 V 都是可以通过拍
摄多张灰度图像进行测量和计算的,这样就很容易标定出 k 和2 计算过程如下图所示
义是,可以用多张图像的均值表示理想光强度。底层逻辑还是均值可靠
.这样就得到了 显示亮度 关于理想光子数的分布
2.3 参数标定:
认为(认为就是经过研究可以认为是对的)
效应的综合系数。
22是个常数,尝试在正态分布中可以加到均值上,很好理解如果
2.4 k-Sigma:本文提出的最具创新性的概念,本质上是一种变换
你的分布中有一个常数,那么你的均值一定要加上这个常数。
定义一个变换 =+22 上文中公式(5)~(∗)+(0,2)带入
~(∗)+(0,2)
+22
~(∗)+1(0,2)+22
~(∗)+(0,22)+22
~(∗)+(22,22)
这里 P 泊松分布近似用正态分布提换(∗)≈(∗,∗)
~(∗,∗)+(22,22)
~(∗,∗)+(22,22)
~(∗+22,∗+22)
(6)
带入公式(6)
正态分布合并
~((∗),(∗)) (7)
这个式子的意义是 经过 f 变换后 实际值() 符合 均值为(∗) 方差为(∗)的正态分布,
最后只得注意的是 模型的输出 是 f 必须经过−1反变换才行,这并不是模型的环节属于后
这里没有 k 什么事儿了。也就是说经过 f 这个变换后 ISO 在 100 下拍摄的一组样本与 ISO500
下拍摄的另一组样本(当然两组除了 ISO 不同其他都相同)是等效的。所以就不需要针对不
同 ISO 制作样本训练了,减少了样本量也减少了样本制作的难度,也减小了模型的大小。
处理。