paper: Guided Image Filtering
简介
导向滤波是何恺明2013年的杰作,相比于常见的滤波器,例如双边滤波(BF),PS的表面模糊,拥有更好的保边效果和性能优势。导向滤波除了能做保边滤波,在图像去雾,图像抠图均有应用
初步定义
-
将引导滤波定义为一个线性滤波
-
输入图像 q q q, 引导图像 I I I, 滤波后输出图像 q q q
-
数学模型
-
q i = ∑ j W i j ( I ) p j q_i=sum_{j}{W_{ij}(I)p_j} qi=j∑Wij(I)pj
-
其中 i i i 和 j j j分别表示像素下标, W i j W{ij} Wij是与引导图像 I I I 相关的滤波核函数,滤波输出一个加权平均值
-
-
重要假设
-
假设一:导向滤波的一个重要假设是输出图像 q q q和引导图像 I I I在滤波窗口 w k w_k wk上存在局部线性关系:
-
q i = a k I i + b k , ∀ i ∈ w k q_i=a_kI_i+b_k,∀i∈w_k qi=akIi+bk,∀i∈wk
-
对于一个以 k k k为边长的方形窗口 w k w_k wk, a k a_k ak和 b k b_k bk是根据窗口的某些特征求得的常量系数,对这个公式两边求导,得到$ ∇ q = a ∇ I , 两 边 的 梯 度 呈 线 性 关 系 , 该 特 性 保 证 了 输 出 图 像 ,两边的梯度呈线性关系,该特性保证了输出图像 ,两边的梯度呈线性关系,该特性保证了输出图像q$的一个特性,即可以在图像边缘处保持引导图像的梯度特征。
-
从公式中可知,求得 a k a_k ak和 b k b_k bk两个常量,即可得到输出图像 q i q_i qi
-
-
假设二:输入图像的非边缘区域中不平滑的区域,视为是有噪声的。
-
该假设是为了求解 a k a_k ak和 b k b_k bk而设立的
-
因此提出数学模型
-
q i = p i − n i q_i=p_i-ni qi=pi−ni
-
其中 q i q_i qi为输出像素, p i p_i pi为输入像素, n i n_i ni为噪声
-
-
现在要把噪声最小化
-
建立数学模型:
-
最小二乘法可以表示为:
-
a r g m i n ∑ w k ( a k I i + b k − p i ) 2 argminsum_{w_k}(a_kI_i+b_k−p_i)^2 argminwk∑(akIi+bk−pi)2
-
为了不让 a k a_k ak过大,因此设置一个正则化参数 ϵ epsilon ϵ,建立滤波窗口内的损失函数:
- E ( a k , b k ) = ∑ i ϵ w k ( ( a k I i + b k − p i ) 2 + ϵ a k 2 ) . E(a_k,b_k)=sum_{iepsilon w_k}((a_kI_i+b_k−p_i)^2+ϵa_k^2). E(ak,bk)=iϵwk∑((akIi+bk−pi)2+ϵak2).
-
-
-
求最优解
-
对 a k a_k ak, b k b_k bk求偏导
- ∂ E a k = ∑ i ϵ w k ( 2 ( a k I i + b k − p i ) I i + 2 ϵ a k ) = 0 ∂ E b k = ∑ i ϵ w k ( 2 ( a k I i + b k − p i ) ) = 0 frac{partial E}{a_k}=sum_{i epsilon w_k}(2(a_kI_i+b_k-p_i)I_i+2epsilon a_k)=0 \ frac{partial E}{b_k}=sum_{i epsilon w_k}(2(a_kI_i+b_k-p_i))=0 ak∂E=iϵwk∑(2(akIi+bk−pi)Ii+2ϵak)=0bk∂E=iϵwk∑(2(akIi+bk−pi))=0
-
根据偏导,求 b k b_k bk
-
b k = 1 w ∑ i ϵ w k ( p i − a k I i ) b_k=frac{1}{w}sum_{iepsilon w_k}(p_i-a_kI_i) bk=w1iϵwk∑(pi−akIi)
-
为了简化表达,把 1 w ∑ i ϵ w k p i frac{1}{w}sum_{iepsilon w_k}p_i w1∑iϵwkpi表示为$bar{p_k} , , ,frac{1}{w}sum_{iepsilon w_k}I_i 表 示 为 表示为 表示为bar{I_k} $
-
b k = p k ˉ − a k I k ˉ b_k=bar{p_k}-a_kbar{I_k} bk=pkˉ−akIkˉ
-
-
根据偏导,求 a k a_k ak
-
∑ i ϵ w k ( 2 ( a k I i + b k − p i ) I i + 2 ϵ a k ) = 0 sum_{i epsilon w_k}(2(a_kI_i+b_k-p_i)I_i+2epsilon a_k)=0 iϵwk∑(2(akIi+bk−pi)Ii+2ϵak)=0
-
==>
- ∑ i ϵ w k ( a k I i 2 + b k I i − p i I i + ϵ a k ) = 0 sum_{i epsilon w_k}(a_kI_i^2+b_kI_i-p_iI_i+epsilon a_k)=0 iϵwk∑(akIi2+bkIi−piIi+ϵak)=0
-
把 b k b_k bk代入式子==>
- ∑ i ϵ w k ( a k I i 2 + ( p k ˉ − a k I k ˉ ) I i − p i I i + ϵ a k ) = 0 sum_{i epsilon w_k}(a_kI_i^2+(bar{p_k}-a_kbar{I_k})I_i-p_iI_i+epsilon a_k)=0 iϵwk∑(akIi2+(pkˉ−akIkˉ)Ii−piIi+ϵak)=0
-
把常量系数 a k a_k ak提取出来==>
- a k ∑ i ϵ w k ( I i − I k ˉ ) I i + ϵ ) = ∑ i ϵ w k ( p i I i − p k ˉ I i ) a_ksum_{i epsilon w_k}(I_i-bar{I_k})I_i+epsilon)=sum_{i epsilon w_k}(p_iI_i-bar{p_k}I_i) akiϵwk∑(Ii−Ikˉ)Ii+ϵ)=iϵwk∑(piIi−pkˉIi)
-
==>
-
a k = ∑ i ϵ w k ( p i I i − p k ˉ I i ) ∑ i ϵ w k ( I i 2 − I k ˉ I i + ϵ ) a_k=frac{sum_{i epsilon w_k}(p_iI_i-bar{p_k}I_i)}{sum_{i epsilon w_k}(I_i^2-bar{I_k}I_i+epsilon)} ak=∑iϵwk(Ii2−IkˉIi+ϵ)∑iϵwk(piIi−pkˉIi)
-
根据方差的原理和推导公式,这里把 I i 2 − I k ˉ I i I_i^2-bar{I_k}I_i Ii2−IkˉIi进似看成方差 σ 2 sigma^2 σ2
-
a k = ∑ i ϵ w k ( p i I i − p k ˉ I i ) ∑ i ϵ w k ( σ 2 + ϵ ) a_k=frac{sum_{i epsilon w_k}(p_iI_i-bar{p_k}I_i)}{sum_{i epsilon w_k}(sigma ^2+epsilon)} ak=∑iϵwk(σ2+ϵ)∑iϵwk(piIi−pkˉIi)
-
进一步化简
-
a k = p i I i ˉ − p k ˉ I i ˉ σ 2 + ϵ a_k=frac{bar{p_iI_i}-bar{p_k}bar{I_i}}{sigma ^2+epsilon} ak=σ2+ϵpiIiˉ−pkˉIiˉ
-
-
得出结论
-
b k = p k ˉ − a k I k ˉ a k = p i I i ˉ − p k ˉ I i ˉ σ 2 + ϵ b_k=bar{p_k}-a_kbar{I_k} \ a_k=frac{bar{p_iI_i}-bar{p_k}bar{I_i}}{sigma ^2+epsilon} bk=pkˉ−akIkˉak=σ2+ϵpiIiˉ−pkˉIiˉ
-
结论: q i = a k I i + b k q_i=a_kI_i+b_k qi=akIi+bk
-
公式推导结束
-
优化结果
-
原因:由于 a k , b k a_k,b_k ak,bk是根据某一个窗口求得的值,但是对于一个像素,是有多个窗口进行重叠了,所以要求得一个像素的 a k , b k a_k,b_k ak,bk值,需要考虑与该像素有关的所有重叠窗口。
-
优化策略:
- 对与中心像素有关的重叠窗口求得的 a k , b k a_k,b_k ak,bk值进行加权平均,具体操作是使用均值滤波器。
-
优化后公式
- q i = 1 w ∑ k ϵ w k a k I i + b i q_i=frac{1}{w}sum_{kepsilon w_k}a_kI_i+b_i qi=w1kϵwk∑akIi+bi
算法流程
调参调节
对于该算法,当 I = p I=p I=p时,即输入图像和引导图像是同一副图像时,该算法即成为一个边缘保持滤波器。同时,方程的解也可作如下表示
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mtnORW3Q-1657358757822)(C:UsersEDYDesktop美颜与滤镜images引导滤波image-20220709163344084.png)]
- ϵ epsilon ϵ相当于界定平滑预取和边缘区域的阈值
- 情况一: 对于平坦区域,是低方差区域,方差远小于 ϵ epsilon ϵ。从而$a_kapprox 0 , , ,b_kapprox bar{p_k}$,相当于在该区域做了均值滤波
- 情况二: 对于边缘区域,是高方差区域,方差远小于 ϵ epsilon ϵ。从而$a_kapprox 1 , , ,b_kapprox 0$,相当于在该区域保持了原有梯度
-
与双边滤波对比
-
1.双边滤波有梯度反转现象,而导向滤波可以完好的保留图像原有的梯度
-
从图中可以观察到,双边滤波梯度反转现象可以很明显的看到,即在边缘区域,图像原本的斜线上升梯度在进行双边滤波后,图像的梯度不再是原有的斜线,而是出现了梯度波动,图像没有良好的保持原有梯度
-
而对图像进行导向滤波后,滤波后的图像的梯度还能保持良好
-
2.速度上的优势,双边滤波的时间复杂度为 O ( n k 2 ) O(nk^2) O(nk2),而导向滤波的时间复杂度 O ( n ) O(n) O(n),n表示图像像素数量,k表示滤波核的尺寸。
- 导向滤波在均值滤波时候也是涉及到滤波核的尺寸,为什么时间复杂度为
O
(
n
)
O(n)
O(n)?
- 均值滤波器可以被优化为O(n)
- 导向滤波在均值滤波时候也是涉及到滤波核的尺寸,为什么时间复杂度为
O
(
n
)
O(n)
O(n)?
-



