双边滤波原理(Bilateral Filtering)

双边滤波原理(Bilateral Filtering)

基本思路

双边滤波(bilateral filtering)的基本思路是同时考虑将要被滤波的像素点的空域信息(domain)和值域信息(range)。因此是一种 combined 滤波方式,因此叫做 bilateral ,即同时考虑两方面的信息。首先,对于图像滤波来说,一个通常的intuition是:(自然)图像在空间中变化缓慢,因此相邻的像素点会更相近。但是这个假设在图像的边缘处变得不成立。如果在边缘处也用这种思路来进行滤波的话,即认为相邻相近,则得到的结果必然会模糊掉边缘,这是不吼的,因此考虑再利用像素点的值的大小进行补充,因为边缘两侧的点的像素值差别很大,因此会使得其加权的时候权重具有很大的差别,从而使得只考虑自己所属的一边的邻域。可以理解成先根据像素值对要用来进行滤波的邻域做一个分割或分类,再给该点所属的类别相对较高的权重,然后进行邻域加权求和,得到最终结果。

实现原理

在 bilateral filtering 中,两个要素即:closeness 和 similarity ,或者说 domain 和 range ,或者 geometric 和 photometric ,其数学表达方式相近,如下:

其中积分号前面为归一化因子,这里考虑对所有的像素点进行加权,c 和 s 是 closeness 和 similarity 函数,x 代表要求的点,f (x) 代表该点的像素值。f(x) –> h(x) 为滤波前后的image。我们最后的滤波函数为

由于domain component,使得滤波特性较好,由于range component,使得crisp edge 可以保持。

下图示意了有边缘的时候的权重和最后的滤波结果,可以看出权重在边界有很明显的分界,从而几乎只对自己所属的边缘一侧的像素点进行加权。

实现 c 和 s 两个函数的一种方法即 Gaussian 核,决定其性质的为各自的sigma参数,即 σd 和 σr 。

参数讨论

对于空域的 Gaussian 滤波不需要继续解释,对于 Range Filtering ,即不考虑空间只考虑像素点的相似性进行加权的结果,作者进行分析,得到结论,值域滤波只是对待滤波的图像的直方图的一个变换,而对于单峰的(unimodal)的直方图,range filtering 将值域范围向着峰的中间即均值方向压缩。

对于参数的选取,进行如下讨论:

首先,两个 sigma 值为 kernel 的方差,方差越大,说明该项对于权重的影响越大(考虑高斯滤波核函数,sigma越大模糊程度越大,实际上就表示空间一致性对于权重的影响更大),因此表示强调这一因素的影响,反之,则表示更强调另一种因素。因此:

  • 两个方面的某个的 sigma 相对变大 表示这一方面相对较重要,得到强调。如 sigma_d 变大,表示更多采用近邻的值作平滑,说明图像的空间信息更重要,即相近相似。如 sigma_d变小(sigma_r相对更大),表示和自己同一类的条件变得苛刻,从而强调值域的相似性。

其次,sigma_d 表示的是空域的平滑,因此对于没有边缘的,变化慢的部分更适合;sigma_r 表示值域的差别,因此强调这一差别,即增加 sigma_r 可以让像素值的影响更大。

其它

对于彩色图片,由于两种颜色中可能有其他完全不同的颜色,因此不像灰度图那样,仅仅是 blurred ,而是会产生 auras like 的奇怪的晕圈,所以在双边滤波的过程中,将RGB转换到 CIE-Lab 色彩空间,这个空间与人的主管色彩辨识能力相关,因此可以改善这一缺陷。


THE END

2017/12/18 Mon 22:27


reference:
Tomasi C, Manduchi R. Bilateral filtering for gray and color images” ICCV[J]. Iccv, 1998:839 - 846.
编辑于 2023-07-16 16:51・IP 属地北京