何凯明大神的代表作之一
论文地址:Guided Image Filtering
导向滤波的一般表达方式
qi=j∑Wij(I)pj
其中q表示输出,p表示输入,I表示导向图。
先验假设
假设在局部范围内,输出图与导向图的关系可以用一个线性模型表示:
qi=akIi+bk,∀i∈ωk
另外输出图是由输入图减去噪声(需要被滤掉的部分)得到
qi=pi−ni
能量函数和求解
我们需要做的就是最小化能量函数
E(ak,bk)=i∈ωk∑((akIi+bk−pi)2+ϵak2)
其中ϵ为正则项,防止系数ak过大。
对ak和bk求导:
∂ak∂E=2i∑N((−pi+akIi+bk)Ii+ϵak)
∂bk∂E=−2i∑N(pi−akIi−bk)
先求取bk,令偏导数为零:
0=i∑N(pi−akIi−bk)⇒Nbk=i∑N(pi−akIi)⇒bk=N1i∑N(pi−akIi)⇒bk=N1i∑Npi−akN1i∑NIi⇒bk=pkˉ−akμk
其中pkˉ为输入图窗口内的平均值,μk为导向图在窗口内的平均值。
同理,再来求ak
0=i∑N((−pi+akIi+bk)Ii+ϵak)⇒0=∑−piIi+∑akIi2+∑bkIi+∑εak⇒∑piIi−∑bkIi=ak∑(Ii2+ϵ)⇒∑piIi−∑(pk−akμk)Ii=ak∑(Ii2+ϵ)⇒ak=∑(Ii2−μkIi+ϵ)∑(piIi−pkIi)⇒ak=∑Ii2−N1∑Ii∑Ii+ϵ∑(piIi)−N1∑pi∑Ii=N1∑Ii2−N1∑IiN1∑Ii+ϵN1∑(piIi)−N1∑piN1∑Ii
根据方差和协方差公式
var(X)=n−1∑i=1n(Xi−Xˉ)2Cov(X,Y)=E[(X−E[X])(Y−E[Y])]Cov(X,Y)=E[XY]−E[X]E[Y]
可以得到
ak=Var(I)+NϵCov(p,I)=σk2+ϵCov(p,I)
当导向图与输入图相同时,导向滤波就变成了以输入图自身为导向的保边滤波。上面表达式就会变成
akbk=σk2+εσk2=(1−ak)μk
- 当遇到边缘区域,方差较大,此时σk2>>ϵ,有q=p
- 反之,当方差较小,σk2<<ϵ,输出均值q=μk
其实更仔细思考一下,这里对“边缘”和“平坦”区域的定义实际上是取决于ϵ的取值,当区域方差远大于ϵ时,则“定义为”这次滤波中的边缘区域,在滤波时会被保留,反之则是平坦区域。
思考
图像滤波与线性回归的关系
线性回归:有一些离散点xi,需要拟合一条直线yi使得ϵ=∑i(yi−(axi+b))2最小。
图像去噪:有一些含有噪声的像素pi,需要拟合一个线性函数找到没有噪声的图像qi,使得ϵ=∑i(pi−qi)2最小。
扩展
简化计算
可以看到按照滤波公式,对于输出的每一个像素,都需要计算输入图和导向图在窗口内的均值,以此得到ak和bk。但是这其中有很多重复计算,此时可以通过计算经过所有覆盖当前像素的窗口的平均ak和bk来计算单个像素的输出
qi=aˉiIi+bˉi
经过这个改变之后可能无法满足最初的∇q=a∇I,但是仍然可以保证在强边缘附近导向图的信息是可以被保留下来的∇q≈aˉ∇I。
滤波核计算
根据最开始的一般表达式,可以知道输出qi是线性依赖于输入pi,所以要求取滤波核只需要使用qi对pi求导就可以。将上面表达式中的bk替换掉,可以得到
qi=∣ω∣1k∈ωi∑(ak(Ii−μk)+pˉk)
∂pj∂qi=∣ω∣1k∈ωi∑(∂pj∂ak(Ii−μk)+∂pj∂pˉk)
其中
∂pj∂pˉk=∣ω∣1δj∈ωk=∣ω∣1δk∈ωj
是一个狄拉克函数,在窗口内部为1,其余地方为0。
在根据ak的表达式对pj求导
∂pj∂ak=σk2+ϵ1(∣ω∣1i∈ωk∑∂pj∂piIi−∂pj∂pˉkμk)=σk2+ϵ1(∣ω∣1Ij−∣ω∣1μk)δk∈ωj
代回原式就得到了滤波核的表达式
∂pj∂qi=∣ω∣21k∈ωi,k∈ωj∑(1+σk2+ϵ(Ii−μk)(Ij−μk))
根据滤波核表达式,当像素i和j都在窗口内部,但处于一个边缘的同侧时(颜色相近),括号内后半部分的计算结果为正,融合权重很高;反之如果处于边缘的异侧,括号内后半部分结果为负,融合权重就会小很多。
高斯导向滤波
由于导向滤波算法采用的是均值滤波,在纹理不那么强或是均匀纹理时,导向滤波会退化成两个均值滤波的串联,多次均值滤波的串联虽然可以近似高斯滤波,但是仅两次均值滤波还是会造成权重在x和y方向附近比其他方向稍大,如图
这是可以在能量函数前面加一个高斯核,让权重可以更加均匀分布
E(ak,bk)=i∈ωk∑wik((akIi+bk−pi)2+ϵak2)
Gradient-preserving
双边滤波会存在一个问题,主要体现在对边缘做滤波的时候,由于边缘像素本身和周围像素在数值上差距较大,会导致由数值差距判断的权重都很小,这时候融合权重就主要取决于高斯核,就可能融合出很多奇怪的效果,例如原本平滑过渡的边缘,会变得更加锐利,或者边缘过渡会变得不平滑,甚至出现梯度反向。经作者实验导向滤波是可以减轻甚至消除这种问题。