Guided image filtering(引导滤波)

摘要

  本文提出了一种新的显式图像滤波引导滤波器。引导滤波器从局部线性模型中导出,通过考虑引导图像的内容(可以是输入图像本身,也可以是另一个不同的图像)来生成滤波输出图像。那个引导滤波器可以像流行的双边滤波器一样作为边缘保持平滑算子[1],但是在边缘附近有更好的表现。它还与消光拉普拉斯矩阵[2]有理论联系,因此是一个比平滑算子更通用的概念,可以更好地利用制导图像中的结构。此外,引导滤波器具有快速的非线性时间算法,其计算复杂度与滤波核的大小无关。我们证明了引导滤波器在各种计算机视觉和计算机图形学应用中都是有效的,包括降噪、细节平滑/增强、HDR压缩、图像消光/羽化、去雾和联合上采样

1 引言

  计算机视觉和计算机图形学的大多数应用都涉及图像滤波的概念,以减少噪声或提取有用的图像结构。简单的显式线性平移不变量(LTI)滤波器,如高斯滤波器、拉普拉斯滤波器和Sobel滤波器广泛应用于图像模糊/锐化、边缘检测和特征提取[3]。LTI滤波还包括求解泊松方程的过程,例如在高动态范围(HDR)压缩[4]、图像拼接[5]和图像抠图[6]中,其中滤波核由齐次拉普拉斯矩阵的逆隐式定义。
  LTI滤波器的核在空间上是不变的,并且与任何图像内容无关。但在许多情况下,我们可能希望在滤波过程中从给定的制导图像中加入附加信息。例如,在着色[7]中,输出色度通道应具有与给定亮度通道一致的边缘;在图像光处理[2]中,输出α蒙版应捕捉图像中的头发等薄结构。实现这一目的的一种方法是优化一个二次函数,该函数通过考虑引导图像对未知输出直接施加一些约束图像。然后通过求解一个用引导图像信息编码的稀疏矩阵得到解。这种非齐次矩阵隐含地定义了一个转换变量过滤核。这种方法被广泛应用于许多领域,如着色[7]、图像抠图[2]、多尺度分解[8]和去雾[9]。虽然这种基于优化的方法通常会产生最先进的质量,但它也会带来较长的计算时间。
  另一种方法是使用引导图像显式地构建滤波器核。双边滤波器,在[10]中提出,在[1]中流行,后来在[11]中被推广,可能是这类滤波器中最流行的一种。它在一个像素处的输出是邻近像素的加权平均值,其中权重取决于引导图像中的强度/颜色相似性。引导图像可以是滤波器输入本身[1]或另一个图像[11]。双边滤波器可以平滑小的波动和保留边缘。虽然该滤波器在许多情况下是有效的,但它可能在边缘附近有不需要的梯度反转伪影[12,13,8](进一步见第3.4节)。它的快速实施也是一个挑战问题。最近技术[14,15,16,17]依赖量化方法来加速,但可能会牺牲精度。
  本文提出了一种新的显式图像滤波器,称为引导滤波器。滤波输出是引导图像的局部线性变换。这个滤波器具有与双边滤波一样的边缘保持平滑特性,但不受梯度反转效应的影响。它还与消光拉普拉斯矩阵[2]有关,因此是一个更一般的概念,适用于“平滑”范围之外的其他应用。此外,对于灰度图像和彩色图像,引导滤波器具有O(N)时间(以像素数N为单位)的精确算法。实验表明,该导频滤波器在降噪、细节平滑/增强、HDR压缩、图像消噪/羽化、去雾和联合上采样等多种应用中都具有良好的质量和效率。

2 相关工作

2.1 双边滤波器

  双边滤波器将像素处的滤波器输出计算为相邻像素的加权平均值。它在保持边缘的同时平滑图像。由于这种优良特性,它被广泛应用于降噪[18]、HDR压缩[12]、多尺度细节分解[19]和图像抽象[20]。文[11]将其推广到联合双边滤波器中,其中权重是根据另一个引导图像而不是滤波器输入来计算的。当滤波器输入不能可靠地提供边缘信息时,例如,当它非常噪声或是中间结果时,联合双边滤波器特别受青睐。联合双边滤波器适用于flash/no-flash去噪[11]、图像上串[21]和图像反褶积[22]。
  然而,[12,13,8]已经注意到双边滤波器在细节分解和HDR压缩中可能具有梯度反转伪影。原因是当一个像素(通常在边缘)周围几乎没有类似的像素时,高斯加权平均值是不稳定的。另一个问题是它的双边过滤效率。暴力实现是在O(Nr2)时间内实现的,当内核半径r较大时,这个时间非常高。在文献[14]中,我们在离散的空间彩色网格中得到了近似解。最近,基于直方图的O(N)时间算法[15,16]得到了发展。亚当斯等[17] 提出了一种快速的彩色图像处理算法。所有这些方法都需要很高的量化程度才能达到令人满意的速度,但以质量下降为代价。

2.2 基于优化的图像滤波

  用一系列方法优化二次代价函数和求解线性系统,相当于用逆矩阵隐式滤波图像。在图像分割[23]和彩色化[7]中,该矩阵的亲和力是颜色相似性的高斯函数。在图像抠图中,一个抠图拉普拉斯矩阵[2]被设计用来加强作为图像颜色局部线性变换的alpha抠图。该矩阵也适用于[9]去雾。[8]中的加权最小二乘(WLS)滤波器根据图像梯度调整矩阵亲和力,并对输入图像进行无晕分解。虽然这些基于优化的方法通常产生高质量的结果,解决相应的线性系统是耗时的。
  研究发现,基于优化的滤波器与显式滤波器密切相关。在[24]Elad中,双边滤波器在求解高斯亲和矩阵时是一种雅可比迭代。在[25]中,Fattal定义了避免边缘的小波来近似WLS滤波器。这些显式过滤器通常比基于优化的过滤器更简单和更快。

3 引导滤波器

  首先定义了一种一般的线性平移变滤波过程,该过程包括引导图像I、输入图像p和输出图像q,根据应用预先给出I和p,它们可以是相同的。在像素i处的滤波输出用加权平均表示:
在这里插入图片描述
其中i和j为像素索引。滤波核Wij是引导图像I的函数,与p无关。该滤波器相对于p是线性的。
  这种滤波器的一个具体例子是联合双边滤波器[11]。双边滤波核Wbf为:
在这里插入图片描述
其中x是像素坐标, K i K_i Ki是归一化参数以确保 Σ j W i j b f = 1 Σ_jW^{bf}_{ij}= 1 ΣjWijbf=1。参数 σ s σ_s σs σ r σ_r σr分别调整空间相似性和范围(强度/颜色)相似性。当I和p相同时,联合双边滤波器退化为原始双边滤波器[1]

3.1 定义

  现在我们定义引导滤波器和它的内核。引导滤波器的关键假设是引导图像I和吕滤波输出q之间的局部线性模型。我们假设q是I在以像素k为中心的窗口ωk的一个线性变换:
在这里插入图片描述
其中 ( a k , b k ) (a_k,b_k) (ak,bk)是一组假定在 w k w_k wk为常数的线性系数。我们使用半径为r的方形窗口,这个局部线性模型确保只有当I有一条边缘时q才有一条边缘,因为∇q = a∇I。该模型在图像抠图[2]、图像超分辨率[26]和去除雾霾[9]中被证明是有用的。
  为了确定线性系数,我们寻求使q和滤波器输入p之间的差最小的解(3)。具体来说,我们在窗口中最小化以下代价函数:
在这里插入图片描述
这里ε是正则化参数以防止ak太大。我们将在3.2节中探讨其意义。(4)的解可以通过线性回归[27]得到:
在这里插入图片描述
这里, μ k μ_k μk σ k 2 σ^2_k σk2是I在 w k w_k wk的均值和方差, ∣ w ∣ |w| w w k w_k wk内的像素数, p k _ p_k^\_ pk_是p在 w k w_k wk的均值。
  接下来,我们将线性模型应用到整个图像中的所有局部窗口。然而,一个像素i参与所有包含i的窗口ωk,所以在不同的窗口qi的值(3)计算时是不一样的。一个简单的策略是平均所有可能的qi值。所以在计算(ak, bk)图像中所有补丁ωk,我们计算滤波器的输出:
在这里插入图片描述
其中, a i − a_i^- ai b i − b_i^- bi是ak、bk在wk的均值
  通过这个修改,∇q不再是∇I的缩放,因为线性系数(¯ai,¯bi)在空间上是变化的。但是由于(¯ai,¯bi)是一个平均滤波器的输出,所以它们在强边附近的梯度应该比I的梯度小得多。在这种情况下,仍然可以有∇q≈¯a∇I,表示I的突变强度变化大部分可以在q中保持。
  我们指出I,p和q的关系如(5),(6)和(8)确实在图像滤波的形式(1)。事实上,(5)中的 a k a_k ak可以重写成一个p的加权和: a k = Σ j A k j ( I ) p j a_k=Σ_jA_{kj}(I)p_j ak=ΣjAkj(I)pj, A i j A_{ij} Aij是只依赖于I的权重。同样的道理,我们也有 b k = Σ j B k j ( I ) p j b_k=Σ_jB_{kj}(I)p_j bk=ΣjBkj(I)pj(6)和 q i = Σ j W i j ( I ) p j q_i=Σ_jW_{ij}(I)p_j qi=ΣjWij(I)pj(8)。它可以证明(见补充材料),内核权重可以明确表达的:
在这里插入图片描述
进一步的计算表明, Σ j W i j ( I ) = 1 Σ_jW_{ij}(I)=1 ΣjWij(I)=1。不需要额外的努力来使权重正常化。

3.2 边缘保留滤波

图1(上)显示了具有不同参数集的引导滤波器示例。我们可以看到它具有保持边缘平滑的特性。这可以直观地解释如下。考虑这样一种情况,I= p。显然,如果ε=0,那么(4)的解是 a k = 1 a_k=1 ak=1 b k = 0 b_k=0 bk=0。如果ε>0时,我们可以考虑两种情况:
  案例1:“Flat patch”。如果图像I在ωk是常数,(4)的解为ak = 0和bk =¯pk;
  案例2:“High variance”。如果图像I在ωk变化很多,然后ak变得接近于1,bk接近0。
  当ak和bk的平均¯ai和¯bi按(8)结合得到输出,我们有,如果一个像素是一个“高方差”区域中,那么它的值是不变的,而如果是在“平坦的区域”的中间区域,其值就变成附近的像素的平均值。
  更具体地说,”flat patch”或”high variance”的标准是ε参数给出的。patch的方差(σ2)远小于ε就是的平滑,而那些方差远远大于ε的被保留。引导滤波器的效果类似于方差σ2 r范围双边滤波器(2)。这两个参数决定“什么样的边缘/高方差的补丁应该保存”。图1为双边滤波结果对比图。
在这里插入图片描述

3.3 滤波器核

  保留边的平滑特性也可以通过研究滤波器核(9)来理解。以1-D信号的理想阶跃边为例(图2)。当 I i I_i Ii I j I_j Ij在边缘的同一侧时, I i − μ k I_i−μ_k Iiμk I j − μ k I_j−μ_k Ijμk具有相同的正负号(+/-),而当两个像素在不同的一侧时,它们具有相反的正负号。所以(9)中的式子 1 + ( I i − μ k ) ( I j − μ k ) σ 2 + ε 1+{(I_i-μ_k)(I_j-μ_k)\over σ^2+ε} 1+σ2+ε(Iiμk)(Ijμk)对于两个像素在不同的边,比在相同的边小很多,(接近0)。这意味着一个边缘上的像素几乎没有平均到一起。我们也可以理解ε的平滑作用(9)。当 σ k 2 < < ε σ^2_k<<ε σk2<<ε(flat patch),核变成 W i j ( I ) = 1 ∣ w ∣ 2 Σ k : ( i , j ) ∈ w k 1 W_{ij}(I)={1\over |w|^2}Σ_{k:(i,j)∈w_k}1 Wij(I)=w21Σk:(i,j)wk1,这是一个低通滤波器,不偏向任何一侧边缘。
在这里插入图片描述
  图3显示了真实图像中核形状的两个示例。在最上面一行是靠近阶跃边缘的核。和双边核一样,引导滤波器的核给边缘的另一边的像素赋的权值几乎为零。在最下面一行是小尺度纹理补丁中的内核。这两个过滤器几乎平均所有附近的像素在一起,并出现低通滤波器。
在这里插入图片描述

3.4 保持梯度滤波

虽然引导滤波器与双边滤波器一样是一种保留边缘的平滑滤波器,但它避免了在细节增强和HDR压缩中可能出现的梯度反转伪影。图4显示了细节增强的一维示例。给定输入信号(黑色),其保持边缘的平滑输出被用作基层(红色)。输入信号和基层之间的差异是细节层(蓝色)。它被放大以增加细节。增强信号(绿色)是增强细节层和基础层的结合。在[12]中可以找到对这种方法的详细描述。
在这里插入图片描述

3.5 与Matting拉普拉斯矩阵的关系

引导滤波器不仅可以用作平滑算子。它还与matting Laplacian矩阵[2]密切相关。这为引导过滤器注入了新的见解,并激发了一些新的应用。
  在[2]的封闭解中,由局部线性模型导出消光拉普拉斯矩阵。不像引导滤波器为每个窗口计算局部最优,封闭形式的解寻求一个全局最优。为了求解未知的alpha matte,该方法最小化以下成本函数:
在这里插入图片描述
其中α为未知的alpha matte,以矩阵形式表示,β是约束(例如三维映射),L是一个N*N的消光拉普拉斯矩阵,Λ是对角矩阵编码的权重限制。这个优化问题的解是通过求解一个线性系统:(L +Λ)α=Λβ得到的。
matting Laplacian矩阵的元素为:
在这里插入图片描述
其中, δ i j δ_{ij} δij表示克罗内克符号。对比(11)和(9),我们发现matting Laplacian矩阵的元素可以通过引导滤波器核权值直接给出:
在这里插入图片描述
按照[24]中的策略,我们可以进一步证明(详见补充资料),在优化(10)时,引导滤波器的输出是一次雅可比迭代。如果β是一个相当好的无光的猜测,我们可以运行一个雅可比一步,通过引导滤波过程: α i ≈ Σ j W i j ( I ) β j α_i≈Σ_jW_{ij}(I)β_j αiΣjWij(I)βj得到一个近似解(10)。在第4节中,我们将这个属性应用到图像的贴图羽化和雾霾去除。

3.6 O(N)时间精确算法

  与双边滤波相比,引导滤波的另一个优点是它自动具有O(N)时间精确算法。O(N)时间意味着时间复杂度与窗口半径r无关,因此我们可以在应用程序中自由使用任意大小的内核。
  (1)中的滤波过程是平移-变卷积。当内核变大时,它的计算复杂度增加。我们不是直接进行卷积,而是根据滤波器的定义(5)(6)(8)计算滤波器的输出。所有这些和这些方框滤波器( Σ i ∈ ω k f i Σ_{i∈ω_k}f_i Σiωkfi)。我们应用O(N)时间积分图像技术[28]来计算一个盒滤波器的输出。因此,在O(N)时间内可以计算引导滤波器。
  该算法可以很容易地扩展到RGB彩色引导图像中。当图像的边缘或细节在任何单一通道中都不能识别时,使用彩色引导图像进行滤波是必要的。为了推广到彩色制导图像,我们将局部线性模型(3)重写为:
在这里插入图片描述
其中Ii为3×1的颜色向量,ak为3×1的系数向量,qi和bk为标量。彩色引导图像的引导滤波器为:~
在这里插入图片描述
其中 Σ k Σ_k Σk是I在wk内的3×3协方差矩阵,U是3×3单位矩阵。求和仍然是盒形滤波器,可以在O(N)时间内计算~
  我们在一台2.0Hz Intel Core 2 Duo CPU的笔记本电脑上进行了运行时间的实验。对于灰度引导滤波器,处理100万像素的图像需要80ms。相比之下,[15]中O(N)时间双边滤波使用32个bin的直方图需要42ms,使用64个bin的直方图需要85ms。注意,引导滤波算法是非近似的,适用于高位深数据,而O(N)时间双边滤波器可能有明显的量化伪影(见图5)。[16]中的算法使用8个箱子(使用作者网站上的公开代码)需要1.2秒每百万像素。对于RGB引导图像,引导滤波器处理100万像素的图像大约需要0.3秒。[16]的高维双边滤波算法处理每百万像素的RGB图像平均需要10秒左右。
在这里插入图片描述

4 应用与实验结果

  在本节中,我们将引导滤波器应用到各种计算机视觉和图形应用中。
细节增强和HDR压缩。 细节增强的方法在第3.4节中描述。对于HDR压缩,我们压缩基本层而不是放大细节层。图6显示了用于细节增强的示例,图7显示了用于HDR压缩的示例。并给出了采用双边滤波的结果。如放大补丁所示,双边滤波导致梯度反转伪影。
在这里插入图片描述
在这里插入图片描述
Flash /No-Flash去噪 在[11]中,提出了在flash版本的引导下对无flash图像去噪。图8为使用联合双边滤波和引导滤波的对比图。在联合双边滤波结果中,局部边缘处存在明显的梯度反演伪影。
在这里插入图片描述
Matting/Guided特征提取 我们应用引导滤波器作为引导特征提取:二进制掩膜是精制附近出现一个α冰铜对象边界(图9)。二进制掩模可以从graph-cut或其他分割方法获得,并作为滤波器的输入p使用。I是彩色图像的引导。商业软件AdobePhotoshopCS4中也有类似的功能“Refine Edge”。我们也可以用封闭解[2]来计算精确的曲面。在图9中,我们将我们的结果与Photoshop的精炼边缘和封闭形式的解决方案进行了比较。我们的结果在视觉上是可比的封闭形式的解决这个短头发的情况。我们的方法和Photoshop都为这幅6百万像素的图像提供了快速反馈,而封闭形式的解决方案只需要2分钟就能解决一个巨大的线性系统。
在这里插入图片描述

去除单一图像的雾霾 在[9]中,利用暗信道先验粗略估计霾透射图,并通过求解matting Laplacian矩阵进行细化。相反,我们只是在模糊图像的引导下对原始透射图进行滤波。结果在视觉上相似(图10)。引导滤波器处理这幅600×400彩色图像的时间约为0.1s,而[9]报道的运行时间超过10秒。
在这里插入图片描述
联合上采样 联合上采样[21]是在另一幅图像的指导下对一幅图像进行上采样。以彩色化[7]的应用为例。通过优化过程对灰度亮度图像进行着色。为了减少运行时间,在全分辨率亮度图像的引导下,采用联合双侧[21]滤波器对色度通道进行粗分辨率上采样并进行求解。这个上采样过程也可以通过引导滤波器来完成。结果在视觉上具有可比性(图11)。
在这里插入图片描述

5 讨论和总结

  本文提出了一种广泛应用于计算机视觉和图形学的新型滤波器。与最近加速双边滤波的趋势不同[14,15,16,17],我们定义了一种新型的滤波器,它具有保持边缘平滑的良好特性,但可以有效而准确地计算。我们的过滤器更通用,可以处理一些超出“平滑”概念的应用程序。由于局部线性模型(3)可以看作是一个简单的学习案例,其他先进的模型/特征可以被应用来获得新的滤波器。
  作为一种基于局部的运算符,引导滤波器不能直接应用于像笔画这样的稀疏输入。它也有一个其他显式过滤器的共同限制-它可能在一些边缘有光晕。事实上,用一个低级别和局部操作来确定哪条边应该平滑,哪条边应该保留是不明确的。不适当地平滑边缘会导致其附近出现晕。然而,我们相信导引滤波器的简单和效率仍然使它在许多情况下有益~

伪代码

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/chenaxin/article/details/108478362