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改进算法

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

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • JS实现常见数据结构:哈希表[通俗易懂]

    哈希表特点:存储键值对的数据结构,哈希表内部是使用一个hash函数把传入的键转换成一串数字,而这串数字将作为键值对实际的key,通过这个key查询对应的value非常快。哈希表方法:1.add:添加一组键值对。2.remove:删除一组键值对。3.lookup:查找一个键对应的值。

    2022年4月13日
    92
  • Pytest(13)命令行参数–tb的使用

    Pytest(13)命令行参数–tb的使用前言pytest使用命令行执行用例的时候,有些用例执行失败的时候,屏幕上会出现一大堆的报错内容,不方便快速查看是哪些用例失败。–tb=style参数可以设置报错的时候回溯打印内容,可以设置参

    2022年7月30日
    4
  • Linux rootfs_hdfs shell命令

    Linux rootfs_hdfs shell命令本文阐述Linux中的文件系统部分,源代码来自基于IA32的2.4.20内核。总体上说Linux下的文件系统主要可分为三大块:一是上层的文件系统的系统调用,二是虚拟文件系统VFS(VirtualFilesystemSwitch),三是挂载到VFS中的各实际文件系统,例如ext2,jffs等。本文侧重于通过具体的代码分析来解释Linux内核中VFS的内在机制,在这过程

    2022年9月28日
    4
  • int32.parse什么意思_integer.parseint和valueof

    int32.parse什么意思_integer.parseint和valueofnt32.Parse(string)Int32.Parse(stringstr)methodconvertsthestringrepresentationofanumbertoits32-bitsignedintegerequivalent.Ittakesastringandtriestoextractanintegerfromi

    2022年9月16日
    2
  • 机器学习之Python — Sklearn库简介

    机器学习之Python — Sklearn库简介文章目录机器学习之Python—Sklearn库简介1Sklearn简介2Sklearn安装3Sklearndatasets4Sklearn通用学习模式5Sklearn数据预处理–标准化6Sklearn交叉验证7总结参考资料机器学习之Python—Sklearn库简介1Sklearn简介Scikit-learn(sklearn)是机器学习中常用的第三方模块,对常…

    2022年10月11日
    2
  • P2P技术和运用

    P2P技术和运用文章目录1.P2P技术1.1P2P技术优势2.P2P网络结构2.1组建P2P网络要解决的3个基本问题:2.2P2P网络类型:2.3集中式P2P网络2.3.1集中式P2P网络的特点2.3.2集中式P2P优缺点2.3.2.1优点2.3.2.2缺点2.4分布式非结构化P2P网络–Gnutella2.4.1洪泛算法:2.4.2Gnutella:2.4.3PureP2P特点:2.5结构化P2P网络2.5.1DHT的基本概念2.5.1.1DHT的特点2.5.1.2DHT应用举

    2022年6月19日
    20

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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