块匹配算法

1. 介绍

块匹配是图像去噪,运动估计中常用的一种方法。通过将查询块与相邻的图像块进行匹配,从这些相邻块中找出距离查询块距离最近的 K 个块。所谓的相邻也并不是绝对的位置上的相邻,也由此可以引出局部搜索(local)和全局搜索(non-local)。

块匹配算法_第1张图片

如上图所示: 
Vi  是一个以  i (红色) 为中心的窗(搜索窗),最大的灰色矩阵区域; 
Ni  是以  i  为中心的矩阵邻域(一个图像块,查询块),紫色矩阵区域; 
Nj  是以  j  为中心的矩阵邻域(一个图像块,近邻块),紫色矩阵区域。

如果  Vi  表示整幅图像,那么就是全局搜索,否则成为局部搜索。

2. 基于像素的 Non-local Means

在 Non-local Means 图像去噪中,会使用近似块来估计查询块,以实现去噪的目的,如下式所示:

NL(v)(i)=jIω(i,j)v(j)ω(i,j)[0,1];jIω(i,j)=1

其中权重的计算如下所示:

ω(i,j)=1Z(i)ev(Ni)v(Nj)22h2Z(i)=jIω(i,j)

其中  h  为图像的平滑参数,用于控制平滑噪声的强度,如果  h  比较小的话,幂函数的衰减效果比较显著,细节保留程度比较高,因此会保持图像本身的细节信息。

事实上并不是所有的近邻块都与查询块相似,因此可以只考虑几个权重比较大的块来进行估计,也就是对权重进行排序,选择权重大的作为相似块。这样不仅可以提高去噪效果还可以减少计算量。

另外,Mahmoudi 在文章 《Fast Non Local Means Denoising for 3D MR Images》中也提出了一种新的方法(根据 v(Ni)  和  v(Nj)  的均值和方差来选择相似块)避免许多无用的计算(欧式距离)。

ω(i,j)=1Z(i)ev(Ni)v(Nj)22h2;ifμ1<v(Ni)¯¯¯¯¯¯¯¯¯v(Nj)¯¯¯¯¯¯¯¯¯<μ2andσ21<var(v(Ni))var(v(Nj))0otherwise<σ22

为了避免重复计算,可以提前计算均值和方差。

3. 基于图像块的 Non-local Means

在第 2 部分中所述的都是基于单个像素(每个块的中心位置)的处理,因此导致计算量很大。但实际上我们计算的是图像块的相似度,因此可以扩展为图像块的处理。如下图所示:

块匹配算法_第2张图片

则块匹配的计算变为:

NL(u)(Bik)=BjVikω(Bik,Bj)u(Bj)ω(Bik,Bj)=1Zikeu(Bik)u(Bj)222βδ2|Ni|

优化之后的权重估计变为:

ω(Bik,Bj)=1Zikeu(Bik)u(Bj)222βδ2|Ni|;ifμ1<u(Bik)¯¯¯¯¯¯¯¯¯¯u(Bj)¯¯¯¯¯¯¯¯¯<1μ1andσ21<var(u(Bik))var(u(Bj))0otherwise<1σ21

如下是文献《An Optimized Blockwise NL-means Denoising Filter for 3D Magnetic Resonance Images》中的实验结果:

块匹配算法_第3张图片

其中: 
+ NL-means,原始的non local means方法 
+ Blockwise NL-means,每次重构一个子块,而不是单个像素 
+ Optimized NL-means,针对NL-means,权重的选择进行优化,直选几个最大的权重 
+ Optimized Blockwise NL-means,针对Optimized NL-means,权重选择进行了优化

从上可以看出每次对单个像素处理比每次对一个块处理的效果好,但是计算时间长;而对权重参数进行优化后效果明显改善;另外,优化过的方法中选用了多线程的方法。

4. 参考

  1. Fast image and video denoising via non-local means of similar neighborhoods.
  2. Fast Non Local Means Denoising for 3D MR Images
  3. An Optimized Blockwise NL-means Denoising Filter for 3D Magnetic Resonance Images
  4. 3DWavelet SubbandsMixing for Image Denoising

你可能感兴趣的:(CV)