大家好,又见面了,我是你们的朋友全栈君。
论文名称:Collaborative Filtering of Correlated Noise:Exact Transform-Domain Variance for Improved Shrinkage and Patch Matching
Exact Transform-Domain Noise Variance for Collaborative Filtering of Stationary Correlated Noise
两篇论文类似。
论文链接:
https://webpages.tuni.fi/foi/papers/Ymir-Collaborative_Filtering_of_Correlated_Noise-TIP.pdfhttps://webpages.tuni.fi/foi/papers/Ymir-Collaborative_Filtering_of_Correlated_Noise-TIP.pdfhttps://webpages.tuni.fi/foi/papers/ICIP2019_Ymir.pdfhttps://webpages.tuni.fi/foi/papers/ICIP2019_Ymir.pdf
文章重点讲的是对相关噪声去噪,卷积神经网络可以很好的对高斯噪声进行降噪,但是分噪声类型的,对不同类型的噪声,需要重新训练才行,深度学习在相关噪声方面的研究还比较少。而论文提的方法可以降相关噪声,实际上白噪声也能降,结合BM3D,可以做到降各种噪声,而不用像深度学习那样重新学习才行。对BM3D效果的改善,主要就是计算谱系数的方差,可以根据这个来调整一些参数。
目录
Global Fourier thresholding and refiltering
文章主要贡献点:
一、介绍了精确计算转换域谱系数方差的方法,不管多少维度都支持,且介绍了近似结果的快速计算方法。
二、把方差计算的方法在BM3D算法中使用,主要包括块匹配,patch matching,shrinkage和 aggregation 。
三、讨论了相关噪声协同滤波的固有限制,使用global Fourier thresholding和refltering的方法改善了滤波效果
四、该方法在BM3D算法中,效果得到显著的提升, refiltering在BM3D和其他算法中都能改善降噪效果
相关噪声
如果g是δ函数,则为白噪声,否则为相关噪声。在整个计算中,功率谱密度PSD是已知的。
几种典型的相关噪声,这些噪声之间还可以进行组合,得到新的相关噪声。
相关公式和符号
M个d维数据,xt为坐标
对其做d维变换
对其做d+1维变换,可以认为先做d维变换,再做1维,NL长度的变换
大致过程如下
谱系数方差近似计算
计算d维变换的谱系数
计算d维变换的谱系数的方差
方差和块的位置不相关,且
令
则
计算d+1维变换的谱系数,在d维的基础上,再做1维
计算d+1维变换的谱系数的方差,其中cov维块间的协方差
如果相似块间的噪声是不相关的,则协方差为0,假设最后1维变换是正交归一化的,则有d维变换的谱系数的方差和d+1维的相等,且和块的位置不相关,则有式(8)。但这是不现实的,比如块间有相互重叠,则噪声间有相关,或者不重叠,但噪声是相关的。
谱系数方差精确计算
计算d维变换的谱系数
计算d+1维变换的谱系数
写成卷积的方式,δxt,只在xt处有值,其他地方都是0,式(12)和(6)在数值上是等价,但式(12)嵌入了坐标位置信息。(其实这里是有疑问的,g如果是δ函数,那不就是白噪声吗,是其他函数也是一样的结果吗)
计算d+1维变换的谱系数的方差,和式(5)比,多了BjNL项,会随着块的位置而变化,这个是通用的,没有假设正交归一等。
近似计算和精确计算对比
图中做了连个1d变换,DCT+Haar。
表示式(8)和式(14)的比值,j=1,2,3,4的图表示这个比值,比值为1则相等,不为1则不等。从图可以看出,白噪声,不重叠的情况下比值恒为1,二者相等;白噪声,重叠情况下,比值不为1,二者不相等;相关噪声,不重叠情况下,比值不为1,二者不相等,(列了两种不重叠,有的差异小点,有的差异大);相关噪声,重叠情况下,比值不为1,二者不相等,差异较大。
块间匹配
块间相似性匹配,值域距离(差异)
变换域上的距离
为了减少噪声的影响,用标准差做尺度变换,可以减少哪些特噪声系数的权重
在相关噪声情况下,临近块之间的相关性会影响到匹配结果,所以需要考虑块间方差。 两个块的谱系数差异
随机变量
的均值和方差
则,式(17)的期望
加上偏置的距离
因为噪声的存在,匹配的结果受到影响,块间距离会增大,为0并不是最优的匹配,平均多了2*σ2,这个和NLM是类似,只是转换了域,不在值域。
在BM3D中的使用——patch matching
试验表明,根据式(23)进行块间匹配的结果进行排序,可以改善噪声。实验中γ=3,BM3D中的第一步使用,第二步中不使用,即第二步中γ=0。和原来的对比,多了后面那一项,这一项可以根据式(14)计算得到。
γ取不同值时的降噪效果
γ取不同值时的匹配情况。原来的匹配结果,和参考块重叠度很高,修正后,和参考块的重叠度就很小了。
在BM3D中的使用-Shrinkage
在BM3D中的使用-Aggregation
快速计算的方法
原来的方法不需要每次计算谱系数方差,现在需要对每个块都做计算式(14),计算量大了很多,通过一下方法减少计算量,近似求解。
1、使用插值的方法对PSD进行下采样,减少计算量
2、利用稀疏性—不知道如何减少计算量
3、利用对称性,计算量减半
4、只计算某些块的方差,比如计算K个块,根据算出的K个块方差,近似计算出其他块的方差,如果K为0,则式(29)和式(8)相等
Global Fourier thresholding and refiltering
当噪声和细节很相似时,就很难区分,没法做到降噪的同时不影响细节,要么就细节受损,要么就噪声没去掉,用精确计算公式(14)也是一样的。为了改善这个问题,先GLobal Fourier Thresholding灰度出噪声图像,然后再重新滤波。
整个BM3D的流程大概如下(感觉计算量增大了很多,又重新算了遍,应该翻倍了)
参数选择
hard-thresholding中λ参数的确定,和相关核有关,白噪声的小一些
Wiener filtering中的µ2和λ。在BM3D中取µ2=1,可以在一定数据集上,二维参数中遍历,得到最优的参数 另外,
实验中K=4,Nf=32
试验结果
与最大值差异较小的都标记为粗体了 refilter不仅仅用在BM3D中,在其他算法中也有效。
主观效果对比,感觉有时refltering增加了很多细节,如果有没这一步,噪声虽然滤除了,但细节也丢了不少。
文章公式较多,有的地方可能理解不对,欢迎指出,一起探讨学习!
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/137876.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...