双边滤波器和各向异性扩散的比较

信息处理 图像处理 过滤器 噪音 各向异性扩散 保边滤波器
2022-01-13 11:59:52

双边滤波器和各向异性扩散降噪的优缺点是什么?

编辑:更具体地说 - 在质量、速度或灵活性方面的实际差异是什么?我应该如何选择是使用AD还是BF进行降噪?

2个回答

你的问题有点苛刻,因为它有点模糊。我给你几点,也许会有所帮助。

有什么相同的?

双边滤波和各向异性扩散背后的直觉是相同的:

  • 平均可以很好地消除随机噪声;
  • 平均应该只关注属于同一区域的像素(从某种意义上说,它们是给定对象的给定颜色的像素):
    1. 避免区域之间边界处的伪影(最明显的是模糊)
    2. 提高去噪效率(内部没有异常值,平均效率更高)。

有什么不同?

双边滤波和各向异性扩散将因它们如何实现这两个目标而有所不同(在图像分割不可用的约束下)。

通常,各向异性扩散变分框架中表示,其中一些图像泛函被最小化。这些泛函通常包含一个取决于要降噪图像的梯度的项,因为该项允许触发各向异性属性。这些问题的解决方案通常通过一些梯度下降迭代获得,但并非总是如此(在图像形态学启发的框架中,例如平均曲率运动,图像水平线根据它们的曲率移动)。
基本上,这些泛函的解对应于均匀区域内的各向同性扩散,并且跨图像边缘的扩散由取决于图像梯度的权重停止。

双边滤波是一种基于像素的方法。对于给定的像素,其去噪对应物是通过其邻居的加权平均值获得的,其中权重由取决于它们的颜色相似性和图像距离的某个函数给出。与那时的各向异性扩散不同,该问题不是在图像上全局解决,而是在每个像素周围的每个邻域上解决。此外,在给定像素上没有明确的基于梯度的障碍:这种效果或多或少会因视觉距离函数中的衰减值而显着。

请注意,当像素的双边邻域变为无限时,您有一个称为nonlocal mean的新算法。

现在..速度

在质量方面,我认为这两种方法都很好。各向异性扩散有一些警告:

  • 因为它通常被实现为一些梯度下降或 PDE 求解器,所以快速而肮脏的实现可能会遇到数值问题;
  • 在我看来,在双边滤波中调整距离函数的衰减比在各向异性扩散泛函中调整数据项更容易。

保持速度...这部分很大程度上取决于实际的实现。

当双边邻域大小变大(OpenCV 声称大大于 5 像素)时,双边过滤会变慢。您可以使用一些技巧(由框近似的高斯,预选标准......)来加速代码。事实上,甚至有很大一部分关于双边滤波的文献都致力于加速它。

对于各向异性扩散,它取决于为解决问题而实施的数值方案。有些比其他更好(更快,更稳定):通常,现在使用 Chambolle 的投影仪(快速)或 Nesterov 的加速(参见FISTA - 更快)实现 TV 正则化约束。此外,这些方案非常适合大幅减少计算时间的大规模并行实现(GPGPU,数据并行多线程)。

按照@sansuiso 的直观回答,记住这两种方法的参数以及它们产生的过滤类型很重要:

BF: (空间)、(强度范围)(几何解释测地线距离,待设置)通常是固定作为梯度函数。σsσrσsσr

NLmeans: NL-means 算法将像素的邻域的所有像素值的平均值,从而解决了找到一个好的内核大小的问题。xx

AD:非局部扩散常数和扩散的时间常数/停止标准。c

对于某些条件,BF 的单次迭代会产生各种加权滤波器和变分方案的多次迭代,前提是惩罚函数的选择很好。

这份报告很好地概述了不同的变分滤波器、惩罚函数、迭代阈值方法(如FISTA