文章主页: http://kaiminghe.com/eccv10/

导向滤波背景

在图像处理的历史中, 最常用的是LTI (Linear translation-invariant) filters,(包括 mean, Gaussian, Laplacian 和 sobel算子等一些滤波算子)。这类filters的特点是空间不变性及与图像内容无关。但是有时候,我们会想到从guide image上获取先验信息, 从而进行保边滤波或者细节增强等操作。

导向滤波思想

主要核心:. 假设滤波后的图像是导向图像的线性变换。
导向滤波在一方面可以达到双边滤波(bilteral filter)的效果,但是不会有biateral filter的 gradient reversal artifacts。另一方面可以使得输出结构化,不至于过于smooth。

复杂度: 导向滤波的复杂度是O(N), 而双边滤波在kernel radius为r的时候,复杂度是O(Nr^2)。

关于双边滤波及导向滤波区别

【图像处理】导向滤波Guided Image Filtering
双边滤波如右边所示,根据range kernel和spatial kernel实现出一个保边的kernel。导向滤波则先假设输出是导向图的线性变换, 同时也是输入图去噪的结果。

Guided Filter 推导

Guide Filter是一种局部线性模型(Local Linear Model)。给定引导图II, 输出图为qq, 那么在像素k为中心的window(wkw_k),中,qq的边缘即是II的边缘, 所以可得
q=I+bk \nabla q = \nabla I + b_k
进一步推导, 对两边进行积分:
【图像处理】导向滤波Guided Image Filtering

为了求解系数a和b,因此需要对输入进行约束, 我们假设滤波输出是输入减去一些噪声成分,给定输入pp, 我们对模型输出进行建模为:
在这里插入图片描述
【图像处理】导向滤波Guided Image Filtering
那么对公式4和公式5进行合并,按照最小二乘法 即为:
【图像处理】导向滤波Guided Image Filtering
其中ϵ\epsilon为正则系数, 按照解析解即可得系数a, b:
【图像处理】导向滤波Guided Image Filtering
其中μ\muσ\sigma引导图II在window k中的均值及方差, w|w|为在窗口window中的像素个数。 pkp_k输入图pp在窗口win中的均值。
注意:由于Guide Filter是局部窗口的线性变换,因此对于像素来说,同一个像素存在于不同的窗口中,因此需要对包含这个像素的所有窗口的线性变换系数进行求均值和方差。
因此对于输出图来说:可以表示为:
【图像处理】导向滤波Guided Image Filtering
其中ai=1waka_i = \frac{1}{w} \sum a_k, bi=1wbkb_i = \frac{1}{w} \sum b_k

算法流程

【图像处理】导向滤波Guided Image Filtering

保边滤波

考虑特殊情况, 引导图为输入图,即自己引导自己。
那么按照公式7和公式8, 则为:

ak=σk2/(σk2+ϵ)a_k = \sigma^{2}_{k} / (\sigma^{2}_{k} + \epsilon)

bk=(1ak)μkb_k = (1-a_k)\mu_k

那么当ϵ=1\epsilon=1, 则无滤波效果。
考虑ϵ>0\epsilon>0,

  1. case 1: “High variance 方差区域”, 那么σk2>>ϵ\sigma^{2}_{k} >> \epsilon, 那么a->1, b->0, 则趋向保边
  2. case 2:“Flat patch 平坦区域”, 那么 σk2<<ϵ\sigma^{2}_{k} << \epsilon, 那么ak -> 0, b->μ\mu, 则进行滤波。

更一般的情况, 引导图非输入图:
ϵ\epsilon越大, 则越平滑, ϵ\epsilon越小, 则保边效果越好。

调整参数滤波效果

【图像处理】导向滤波Guided Image Filtering

相关文章:

  • 2021-07-30
  • 2022-12-23
  • 2022-02-07
  • 2021-10-28
  • 2021-08-13
  • 2021-04-20
猜你喜欢
  • 2021-04-03
  • 2021-09-23
  • 2021-07-31
  • 2021-04-14
  • 2022-01-11
  • 2021-06-26
相关资源
相似解决方案