Java教程

BM3D改进算法

本文主要是介绍BM3D改进算法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

论文名称: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效果的改善,主要就是计算谱系数的方差,可以根据这个来调整一些参数。

目录

文章主要贡献点:

相关噪声

 相关公式和符号

谱系数方差近似计算

谱系数方差精确计算

 近似计算和精确计算对比

 块间匹配

在BM3D中的使用——patch matching

在BM3D中的使用-Shrinkage

在BM3D中的使用-Aggregation

快速计算的方法

 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增加了很多细节,如果有没这一步,噪声虽然滤除了,但细节也丢了不少。

文章公式较多,有的地方可能理解不对,欢迎指出,一起探讨学习!

这篇关于BM3D改进算法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!