噪声在ISP中去得越早越好,因为噪声在最开始成像的过程中就引入了,之后只会不断放大。具体而言,噪声产生的位置就是上图中绿色框的区域。
下图可以更加清楚地看到噪声是在何处产生,何处被放大。图片来源https://www.ecva.net/papers/eccv_2020/papers_ECCV/papers/123510001.pdf
商汤文章:Rethinking Noise Synthesis and Modeling in Raw Denoising用公式噪声,和上图应该是匹配的:
手机镜头,噪声建模,ISP,ISO与analog gain-CSDN博客
泊松分布
从二项分布中推导出来,描述一段时间内的次数,只需要知道”比率“,不用知道次数n和概率p。
散粒噪声
在拍摄的时候光线进入sensor,光的波粒二象性,就可以看作是离散的粒子散落在sensor上,所以每个像素得到的光线是不同的,就有泊松噪声。
泊松分布的特点就是均值和方差相等,均值越大方差越大,分布也就越分散。
所以曝光时间越长,almbda就越大,方差就越大,图像噪声越小。
热/暗噪声
除了光电效应会释放电子,温度升高也会释放更多的电子。温度每增加6度,噪声水平升高一倍。
暗噪声也服从泊松分布。
天文望远镜中,为了避免暗噪声,会降低温度,减少曝光时间,后者提前标定到时候减去暗噪声。
高斯分布
高斯。。。
读出噪声
从传感器读取的过程引入噪声。量尺寸也会有读取噪声。
ADC噪声
ADC噪声包括了量化噪声
仿射噪声模型
两个泊松噪声可以组合在一起,ADC高斯加性噪声在增益之后,所以可以看作是仿射变换。
泊松噪声部分的参数是,因为散粒噪声和暗噪声都和时间相关。这个参数是泊松噪声的均值也是方差。
因为泊松噪声均值和方差的特点,可以看到图像方差是图像均值关于g的线性函数:
光子噪声和信号强度有关。高斯噪声和信号无关。所以信号越强,光子噪声占主导,信号弱时高斯噪声占主导。
亮度高的时候,高斯忽略不计。虽然信号强的时候光子噪声也强,但是还是信号更强,因为算信噪比的时候信号会平方,t平方,而噪声部分只与增益平方,所以信噪比还是会增大的。
亮度低的时候,光子噪声忽略不计。ISO越大,增益g越大,SNR越低。
标定
信号相关噪声标定
方法是线性拟合。当暗噪声被减去后,图像方差仍然是图像均值的线性函数。
增益和ISO强相关。这里的ISO指的是a gain*d gain。固定ISO,测得不同灰度色卡下的噪声方差,将这些离散点画出来,横坐标为灰度,纵坐标为方差,图像方差随图像亮度均值的线性曲线。拟合这一曲线,斜率是增益g,截距是高斯加性噪声。
注意这里的高斯加性噪声是读出噪声和ADC噪声:
使用Stats.linregress( )对色卡均值和方差做线性回归,返回得到斜率和截距。
斜率表示增益g。每个ISO下得到的截距是不同的,斜率也是不同的。斜率k与ISO呈线性关系。对计算出的斜率再和iso线性拟合,得到ISO与k的关系。
信号无关噪声标定
加性噪声是和信号无关的,但是和增益有关。乘一个系数,对应方差变为系数的平方倍,而增益系数与ISO是线性的,所以方差和ISO的关系可以使用二次函数表示,曲线形式为开口向上的二次曲线。标定得到三个数,分别是二次项系数,一次项系数,常数项。
为了得到加性噪声,要使得信号为0,通常使用黑帧的方法。
np.polyfit使用的是最小二乘法进行多项式拟合
lambda
信号相关噪声其实就是散粒噪声,而关键参数就是lambda。lambda和辐射通量,时间,系数a成正比。
在标定高斯加性噪声时,斜率就是g,g=光电转换效率*again,当从干净图像模拟生成泊松噪声时,图像像素值除以g就是lambda。
标定的过程是将ISO和k联系在一起的过程,他们的关系是线性的。每个ISO下得到一个k值,k=k1*ISO+b。
标定blc
黑帧求平均。不同颜色通道的黑电平值是不同的,所以要将raw数据重组为3通道数据,对每个通道求均值,然后再求不同帧之间的均值。