BM3D改进算法

BM3D改进算法论文名称:CollaborativeFilteringofCorrelatedNoise:ExactTransform-DomainVarianceforImprovedShrinkageandPatchMatching

大家好,又见面了,我是你们的朋友全栈君。

论文名称: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.pdfBM3D改进算法https://webpages.tuni.fi/foi/papers/Ymir-Collaborative_Filtering_of_Correlated_Noise-TIP.pdfhttps://webpages.tuni.fi/foi/papers/ICIP2019_Ymir.pdfBM3D改进算法https://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是已知的。

BM3D改进算法

几种典型的相关噪声,这些噪声之间还可以进行组合,得到新的相关噪声。

BM3D改进算法

 相关公式和符号

M个d维数据,xt为坐标

BM3D改进算法

对其做d维变换

BM3D改进算法

 对其做d+1维变换,可以认为先做d维变换,再做1维,NL长度的变换

BM3D改进算法

大致过程如下

BM3D改进算法

谱系数方差近似计算

计算d维变换的谱系数

BM3D改进算法

计算d维变换的谱系数的方差

BM3D改进算法

方差和块的位置不相关,且

BM3D改进算法

BM3D改进算法

 则

BM3D改进算法

 计算d+1维变换的谱系数,在d维的基础上,再做1维

BM3D改进算法

 计算d+1维变换的谱系数的方差,其中cov维块间的协方差

BM3D改进算法

 如果相似块间的噪声是不相关的,则协方差为0,假设最后1维变换是正交归一化的,则有d维变换的谱系数的方差和d+1维的相等,且和块的位置不相关,则有式(8)。但这是不现实的,比如块间有相互重叠,则噪声间有相关,或者不重叠,但噪声是相关的。

BM3D改进算法

谱系数方差精确计算

计算d维变换的谱系数

BM3D改进算法

计算d+1维变换的谱系数

BM3D改进算法

写成卷积的方式,δxt,只在xt处有值,其他地方都是0,式(12)和(6)在数值上是等价,但式(12)嵌入了坐标位置信息。(其实这里是有疑问的,g如果是δ函数,那不就是白噪声吗,是其他函数也是一样的结果吗)

BM3D改进算法

 计算d+1维变换的谱系数的方差,和式(5)比,多了BjNL项,会随着块的位置而变化,这个是通用的,没有假设正交归一等。

BM3D改进算法

 近似计算和精确计算对比

图中做了连个1d变换,DCT+Haar。

BM3D改进算法表示式(8)和式(14)的比值,j=1,2,3,4的图表示这个比值,比值为1则相等,不为1则不等。从图可以看出,白噪声,不重叠的情况下比值恒为1,二者相等;白噪声,重叠情况下,比值不为1,二者不相等;相关噪声,不重叠情况下,比值不为1,二者不相等,(列了两种不重叠,有的差异小点,有的差异大);相关噪声,重叠情况下,比值不为1,二者不相等,差异较大。

BM3D改进算法

 BM3D改进算法

 块间匹配

 块间相似性匹配,值域距离(差异)

BM3D改进算法

变换域上的距离

BM3D改进算法

为了减少噪声的影响,用标准差做尺度变换,可以减少哪些特噪声系数的权重

BM3D改进算法

在相关噪声情况下,临近块之间的相关性会影响到匹配结果,所以需要考虑块间方差。 两个块的谱系数差异

BM3D改进算法

随机变量

BM3D改进算法 的均值和方差

BM3D改进算法

则,式(17)的期望

BM3D改进算法

BM3D改进算法

加上偏置的距离

BM3D改进算法

因为噪声的存在,匹配的结果受到影响,块间距离会增大,为0并不是最优的匹配,平均多了2*σ2,这个和NLM是类似,只是转换了域,不在值域。

在BM3D中的使用——patch matching

试验表明,根据式(23)进行块间匹配的结果进行排序,可以改善噪声。实验中γ=3,BM3D中的第一步使用,第二步中不使用,即​​​​​​​第二步中γ=0。和原来的对比,多了后面那一项,这一项可以根据式(14)计算得到。BM3D改进算法

γ取不同值时的降噪效果

BM3D改进算法

 γ取不同值时的匹配情况。原来的匹配结果,和参考块重叠度很高,修正后,和参考块的重叠度就很小了。

BM3D改进算法

在BM3D中的使用-Shrinkage

BM3D改进算法

在BM3D中的使用-Aggregation

BM3D改进算法

快速计算的方法

原来的方法不需要每次计算谱系数方差,现在需要对每个块都做计算式(14),计算量大了很多,通过一下方法减少计算量,近似求解。

1、使用插值的方法对PSD进行下采样,减少计算量

2、利用稀疏性—不知道如何减少计算量

3、利用对称性,计算量减半

4、只计算某些块的方差,比如计算K个块,根据算出的K个块方差,近似计算出其他块的方差,如果K为0,则式(29)和式(8)相等 

BM3D改进算法

 Global Fourier thresholding and refiltering

当噪声和细节很相似时,就很难区分,没法做到降噪的同时不影响细节,要么就细节受损,要么就噪声没去掉,用精确计算公式(14)也是一样的。为了改善这个问题,先GLobal Fourier Thresholding灰度出噪声图像,然后再重新滤波。

BM3D改进算法

 整个BM3D的流程大概如下(感觉计算量增大了很多,又重新算了遍,应该翻倍了)

BM3D改进算法

参数选择

 hard-thresholding中λ参数的确定,和相关核有关,白噪声的小一些

Wiener filtering中的µ2和λ。在BM3D中取µ2=1,可以在一定数据集上,二维参数中遍历,得到最优的参数 另外,

实验中K=4,Nf=32 

BM3D改进算法

BM3D改进算法

试验结果

与最大值差异较小的都标记为粗体了 refilter不仅仅用在BM3D中,在其他算法中也有效。

BM3D改进算法

主观效果对比,感觉有时refltering增加了很多细节,如果有没这一步,噪声虽然滤除了,但细节也丢了不少。

BM3D改进算法

BM3D改进算法

BM3D改进算法

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/137876.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 云服务是免费的吗_云服务器收费

    云服务是免费的吗_云服务器收费近年来,云服务器的普及率快速上升,相当一部分企业从传统服务器转向云服务器,而随着市场的发展,云服务器供应商尤其多,服务器供应商竞争日趋激烈。此时不少服务商表示自己推出永久免费使用的云服务器,面对这样的消息不少企业会感到疑惑,永久免费使用的云服务器究竟是否可信?那么下面就由摩杜云小杜和大家讲一讲有没有永久免费的云服务器。一、首先市场上根本就没有所谓的永久免费使用的云服务器虽然现如今云技术发展快速,但是云资源的成本还是很高的,所以商家为了自己获益,不可能会提供免费的云主机租用服务。但是目前市场上有服务商提供

  • 数字电路实验(01)基本逻辑运算及其电路实现

    数字电路实验(01)基本逻辑运算及其电路实现题目实验要求一、实验目的1.认识逻辑值1、0和逻辑门的输入、输出信号电平之间的关系;2.从逻辑门的输入、输出电平的关系去认识逻辑与(与非)、或、非的运算;3.熟悉基本逻辑门的使用。二、实验

  • linux怎样重启命令,Linux重启命令介绍

    linux怎样重启命令,Linux重启命令介绍下面介绍在Linux操作系统中重启和关闭相关的命令:shutdown、reboot、init、halt、poweroff、systemctl,你可以根据需要来选择适合的Linux命令关闭或重新启动系统。其中shutdown、halt、poweroff、reboot命令是用来停机、重启或切断电源,systemctl命令管理systemd,是Linux系统和服务器的管理程序。使用…

    2022年10月17日
  • 40+个精选的VSCode前端插件,总有一款适合你

    40+个精选的VSCode前端插件,总有一款适合你有句话,事半功倍,其必然是借助了某些思想和工具。VSCode是我们前端开发的武器,本文40+精选插件,让其更加锋利,无坚不摧!!必备的下面这些必备的我就不说了代码段JavaScript\…

  • Struts2中属性驱动与模型驱动

    Struts2中属性驱动与模型驱动

    2021年11月16日
  • Java 入门

    Java 入门

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号