raw数据噪声模型和标定

上图是一个简单的ISP流程图。噪声产生的位置就是上图中绿色框的区域。噪声在ISP中去得越早越好,因为噪声在最开始成像的过程中就引入了,之后只会不断放大。

下图可以更加清楚地看到噪声是在何处产生,何处被放大。图片来源https://www.ecva.net/papers/eccv_2020/papers_ECCV/papers/123510001.pdf

第一步是光电效应,光子以一个量子效率转换为电子。除了光子转换带来电子,受温度影响电路本身也会产生热/暗噪声。然后经过模拟增益,还有读出和量化噪声。

商汤文章:Rethinking Noise Synthesis and Modeling in Raw Denoising用公式噪声,和上图应该是匹配的:

K_a,K_q分别表示模拟和数字增益。N_p,N_q分别表示与信号相关的shot noise和量化过程的噪声。N_1,N_2 分别表示两次增益之前的其他噪声。

不管什么噪声,他们的分布一般都可以使用泊松分布或者高斯分布描述。

1.泊松分布

泊松分布适合于描述单位时间内随机事件发生的次数的概率分布。

泊松分布从二项分布中推导出来。因为二项分布只有0,1两种取值,所以需要将所关心的时间段切片,在子窗内看作是二项分布。化整为零到极限就是:

利用二项分布的期望公式,可以求得p的表达:

E(x)=np=\mu, p=\frac{\mu}{n}

最后代入,化简,得到该段时间内k个取1的概率:

在泊松分布中,把\mu称为事件比率 (event rate),使用\lambda表示。只需要知道”比率“,不用知道划分次数n和概率p。

1. 在工程应用中,当n>20,并且p≤0.05(发生概率5%,稀有事件)时,就可以用泊松分布近似表示二项分布。

2.泊松分布的均值和方差都是\lambda,均值越大方差越大,分布也就越分散,越接近高斯分布。

3. 每个时间单元的事件平均发生比率是常数时,才可以使用泊松分布。这意味着时间单元不能太短

4. 不同时间单元应该互相独立,互不影响

1.1散粒噪声

在拍摄的时候光线进入sensor,光的波粒二象性,就可以看作是离散的粒子散落在sensor上,所以每个像素得到的光线是不同的,就有泊松噪声。

 泊松分布的关键参数就是lambda。

泊松分布本质是n重伯努利分布,从推导可以看出,k!来自于排列组合A->C的计算公式,\lambda ^k来自于p^k=(\frac{\lambda}{n})^k,先表示二项分布p,然后发生k次以指数的形式表示。

泊松分布的特点就是均值和方差相等,

所以曝光时间越长,lambda就越大,方差就越大,图像噪声越大。

1.2热/暗噪声

除了光电效应会释放电子,温度升高也会释放更多的电子。暗噪声也服从泊松分布。

温度每增加6度,噪声水平升高一倍。暗噪声和曝光时间正线性相关。

天文望远镜中,为了避免暗噪声,会降低温度,减少曝光时间,或者提前标定,到时候减去暗噪声。

1.3 合并

散粒噪声和暗噪声都是泊松分布,且在ISP中处于相同的位置,所以二者可以合并为一个新的泊松噪声L:参数是t \cdot (a\cdot \Phi +D)

因为散粒噪声和暗噪声都和时间相关,所以把时间t可以提出来,D表示温度相关,\alpha\Phi的乘积表示光子平均数。

2.高斯分布

高斯分布,又称“正态分布(normal distribution)”,是概率统计中最常见的连续概率分布之一。它以著名数学家卡尔·弗里德里希·高斯的名字命名。

高斯分布在自然界和社会现象中无处不在,它反映了数据分布的一般规律。它的基本原理可以归纳为最小二乘法和中心极限定理。

2.1读出噪声(Readout Noise,RN)

光电子要经过放大器、ADC之后才会形成数字信号,而由于放大器与ADC不是理想的(存在电磁干扰、本身具有热效应等),转换的过程会产生一定的误差,这个误差被称为读出噪声。

2.2 ADC噪声

ADC,Analog-to-Digital Converter的缩写,指模/数转换器或者模数转换器 。ADC噪声主要指量化噪声:

上述图像源于1948年贝尔实验室的W. R. Bennett发表的经典论文。

3.仿射噪声模型

1.3中合并的泊松噪声会经过gain放大。此部分为和信号相关的噪声。

高斯噪声和信号无关,但是部分读出噪声会被放大,ADC噪声不会。

所以仿射噪声模型整体分为:信号相关的噪声*g+信号无关的噪声。

I=L\cdot g+n_{read}\cdot g+n_{ADC}=L\cdot g+n_{add}

对应图示:

因为泊松噪声均值和方差的特点,可以看到图像方差是图像均值关于g的线性函数

\sigma(I)^2 =E(I)\cdot g+\sigma _{add}^2

4. 信噪比

光子噪声和信号强度有关。高斯噪声和信号无关。所以信号越强,光子噪声占主导,信号弱时高斯噪声占主导。

场景亮时

亮度高的时候,高斯忽略不计。虽然信号强的时候光子噪声也强,但是还是信号更强,因为算信噪比的时候信号会平方,t平方,而噪声部分只与增益平方,所以信噪比还是会增大的。

场景暗时

亮度低的时候,光子噪声忽略不计。如果图像亮度保持不变(即SNR的分子不变时),ISO越大,增益g越大,SNR越低。

5. 标定

5.1信号相关噪声标定

方法是线性拟合。当暗噪声被减去后,图像方差仍然是图像均值的线性函数。

\sigma(I)^2 =E(I)\cdot g+\sigma _{add}^2

可以看到方差和图像亮度和增益g都成线性关系。在同一个曝光组合下拍摄不同灰度色卡(可以使用ISO12233解析度分辨率卡),计数不同灰度下的方差,使用Stats.linregress( )对色卡均值和方差做线性回归,横坐标为灰度,纵坐标为方差,可以得到斜率和截距。斜率是增益g,截距是高斯加性噪声。

关于斜率。这里的ISO指的是a gain*d gain。很明显增益g和ISO成正相关,得到不同ISO下的斜率,可以考虑使用直线拟合斜率和ISO的关系。

关于截距。注意这里的截距指高斯加性噪声,包含了读出噪声和ADC噪声:

\sigma_{add} =\sigma_{read}\cdot g+\sigma_{ADC}

5.2 信号无关噪声标定

正如刚才估计截距时所说的,加性噪声分为两部分:

加性噪声是和信号无关的,但是有一部分(读出噪声)是和增益有关的。乘一个系数,对应方差变为系数的平方倍,而增益系数与ISO是线性的,所以方差和ISO的关系可以使用二次函数表示,曲线形式为开口向上的二次曲线。使用np.polyfit最小二乘法进行多项式拟合,会标定得到三个数,分别是二次项系数,一次项系数,常数项。

通常使用黑帧的方法也可以得到加性噪声,使得信号为0,得到的数据自然就是信号无关的噪声。


reference:

图像算法原理与实践——图像复原之 噪声模型 - 知乎

https://zhuanlan.zhihu.com/p/397873289

http://graphics.cs.cmu.edu/courses/15-463/2020_fall/lectures/lecture7.pdf

  • 26
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值