本篇文章的理论部分出自这位博主的文章:非局部均值去噪(NL-means)
这位博主还将文章的文档以及代码发布出来:链接: https://pan.baidu.com/s/1G5cURRSauf_G_0kDFE4srg 提取码: be36
- 由于最近在看自注意力的相关内容,看到了Non local Neural Network这篇论文,论文的主要思路来源于 非局部均值去噪,解决长距离依赖的问题。因为正常情况下,巻积神经网络采用的是局部依赖,小感受野的滑动,得到的是局部信息,而目标整体信息只能通过增加感受野的尺寸或者增加巻积层的深度来增加视野,但是这样增加计算量,因此有人研究了长距离依赖,并将其应用在巻积操作上。长距离依赖之前用于RNN等用于推理语义信息的场景。
- 而非局部均值滤波的主要思想是,滤波输出的像素点的值由原始图像的所有像素点加权平均得到的,而这个权是什么呢?作者采用相似度来确定原图中每个像素点的贡献程度。而采用单个像素点可能会受到噪声的影响,因此方法采用的是两个局部感受野来计算相似度。
- 另外,理论上是在整个图片上进行计算相似度,加权平均,但是计算复杂度有点高。因此,一般采用一个以输出像素点为中心的一个大的搜索框,两个小感受野都在此框内,一个小感受野以输出像素点为中心固定不动,另一个在搜索框内移动,然后计算相似度得到其余像素点对此输出像素点的贡献权重。
- 当然,细节部分就是,相似度的计算有多种;采用高斯计算相似度时,有平滑参数可以调节输出图像的模糊程度。
close all;
clear all;
clc
I=double(imread('lena.tif'));
I=I+10*randn(size(I));
tic
O1=NLmeans(I,2,5,10);
toc
imshow([I,O1],[]);