深入理解去噪论文——FFDNet和CBDNet中noise level与噪声方差之间的关系探索

编程入门 行业动态 更新时间:2024-10-09 06:25:27

深入理解去噪论文——FFDNet和CBDNet中noise level与噪声<a href=https://www.elefans.com/category/jswz/34/1742192.html style=方差之间的关系探索"/>

深入理解去噪论文——FFDNet和CBDNet中noise level与噪声方差之间的关系探索

知乎同名账号同步发布。如有错误,欢迎指正。

目录

  • 问题来源
  • 一、基础知识和生成AWGN步骤
  • 二、从MATLAB生成含AWGN的noisy image入手分析
    • 二.0、先放结论
  • 三、小结

问题来源

读这两篇文章的时候,发现文中AWGN(加性高斯白噪声)的方差用σ²表示,noise level用σ表示,符号使用似乎出现了冲突;

又发现作者默认已知噪声模型 N ( 0 , σ 2 ) N(0, \sigma^2) N(0,σ2),生成的含噪声图像的ground-truth的noise level似乎也随之确定,一切都在暗示AWGN的方差和其noise level有千丝万缕的关系。

一、基础知识和生成AWGN步骤

引用这篇文章对matlab生成AWGN的讲解,补充一些基础知识:

awgn(x,snr,’measured’,'linear’)的作用是向x加入信噪比为snr的AWGN。所谓信噪比,公式如下:
s n r = s i g P o w e r / n o i s e P o w e r snr = sigPower/noisePower snr=sigPower/noisePower
即信号的强度/噪声的强度,或者信号功率/噪声功率。

sigPower的计算方法只需要看matlab代码就一目了然:
sigPower = sum(abs(sig(: )).^2)/length(sig(: ))
.^2指的是对矩阵每个元素都求平方,上述分母起到规范化的作用,sig(: )表示信号)

awgn()函数的第一步,就是估计信号x的强度sigPower,然后计算出noisePower:
n o i s e P o w e r = s i g P o w e r / s n r noisePower = sigPower / snr noisePower=sigPower/snr
假如说要生成的噪声的size是[1000, 1],那么最终要添加的噪声信号就是:
sqrt(noisePower) * randn(n, 1)
其中randn生成的是 N ( 0 , 1 ) N(0, 1) N(0,1)的噪声,那么这个噪声信号服从的分布就是:
N ( 0 , n o i s e P o w e r ) N(0, noisePower) N(0,noisePower)
所以网上有篇文章,文中一句话说:

对于高斯噪声,其方差和功率(噪声强度)是一样的

二、从MATLAB生成含AWGN的noisy image入手分析

二.0、先放结论

noisePower就是方差σ²,σ就是paper中的noise level。

取自FFDNet paper:对于clean image x,生成noise level为σ的noisy y:
imnoise(x, ’gaussian’, 0, (σ/255)²)
作用就是向x中加入高斯噪声,这个噪声服从的分布为:
N ( 0 , ( σ / 255 ) 2 ) N(0, (\sigma/255)^2) N(0,(σ/255)2)
当然,分母的255可能是因为将原始图片的像素值缩放到了0-1之间,所以noise level也需要除以255。如果没有这样做,那么显然噪声服从的分布就是:
N ( 0 , σ 2 ) N(0, \sigma^2) N(0,σ2)

那么显然,结合目前搜集到的信息,noisePower就是方差σ²,σ就是paper中的noise level。再看一个FFDNet中的片段佐证这个观点:

To synthesize spatially variant AWGN, we first generate an AWGN image v1 with unit standard deviation and a noise level map M of the same size. Then, element-wise multiplication is applied on v1 and M to produce the spatially variant AWGN, i.e., v = v1 ⊙ M.

上述noise level map M就是由不同位置的noise level σ组合而成的map。先生成v1,它拥有单位标准差,然后让M(M中元素为noise level σ)和它做element-wise的相乘,显然得到的v就拥有方差σ²,而论文称σ为noise level,不就和上面的观点对应上了么。

再看CBDNet中所提到:

For a batch of real images, due to the unavailability of ground-truth noise level map, only Lrec and LT V are considered in training.

对于真实数据,是无法得到ground-truth的noise level map的,我当时很疑惑的点在于:对于合成数据,也没有办法得到ground-truth的noise level map,为什么paper似乎在默认这个是能够得到的?然而实际上,paper中提到了合成数据中噪声服从的分布:
N ( 0 , σ 2 ( L ) ) N(0, \sigma^2(L)) N(0,σ2(L))
其中 σ 2 ( L ) = L ⋅ σ s 2 + σ c 2 \sigma^2(L) = L · \sigma^2_s+\sigma^2_c σ2(L)=L⋅σs2​+σc2​,(L是irradiance image)。
这样,合成数据的ground-truth的noise level map不就直接是 σ ( L ) \sigma(L) σ(L)了么(如果本文之前的推断都没问题的话)。

三、小结

  • 确定的事情:
    对于高斯噪声,方差σ²就是噪声强度noisePower;
    如果已知噪声服从的高斯分布,那么对于根据这个分布+clean image合成的noisy image,可以直接得出其ground-truth的noise level or noise level map。

  • 不太确定的事情:
    另外读到这里你肯定发现了论文中的noise level和本文中的noisePower不是一个东西,网上没有找到两者特别明显的概念区别,所以noise level可能是作者对σ起的专门的称谓,这个称谓是否为图像去噪领域默认叫法,我还不太清楚。

更多推荐

深入理解去噪论文——FFDNet和CBDNet中noise level与噪声方差之间的关系探索

本文发布于:2024-02-27 13:43:34,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1706769.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:方差   噪声   关系   论文   FFDNet

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!