【论文阅读笔记】Domain Transform for Edge-Aware Image and Video Processing

论文地址:https://www.inf.ufrgs.br/~eslgastal/DomainTransform/Gastal_Oliveira_SIGGRAPH2011_Domain_Transform.pdf

论文简介

  本文提出了一种实时对图像和视频执行高质量边缘保留过滤的方法,主要是通过基于距离的1D卷积核来完成2D卷积的操作,这也是对称卷积中较为常用的加速方式。但这里不同的地方在于,它不是对称卷积,两个1D卷积核都是基于邻间像素距离来实现自适应边缘保留滤波。

  本文的域变换和边缘保留滤波可以实现多种功能,包括边缘保留过滤、景深效果、风格化、重新着色、着色、细节增强和色调映射。

论文介绍

  本文实现了三种边缘保留的一维卷积:基于归一化的卷积,插值卷积和递归方式的卷积。这些滤波器都有非常明显的脉冲响应,使得每一个都有更适合其特定的应用。本文会展示如何使用他们来有效地生成高质量的2D边缘保留滤波器。

  作者认为最好的边缘保留平滑滤波器有如下特征:(1)支持连续尺度;(2)其处理时间与像素数量成线性关系,并且与滤波器参数无关,且允许实时计算;(3)能够正确处理彩色图像;(4)提供对内核形状的控制。为此,作者展示了近高斯和指数响应的示例。

  为了实现边缘感知滤波器的目的,保持像素间的距离是必不可少的。然后用域变换解释2D图像流形上的欧式距离等价于邻居像素之间的L1距离。

  对于多通道输入,可以简单将距离的度衡从3维叠加到1维,然后分别进行计算,从而同样用1维距离进行计算。这是域变换的基础版本 c t ( u ) = ∫ 0 u 1 + ∑ k = 1 c ∣ I k ′ ( x ) ∣   d x (8) ct(u)=\int_0^u1 + \sum_{k=1}^c|I_k'(x)|\ dx \tag{8} ct(u)=0u1+k=1cIk(x) dx(8)

  公式(8) 较为直白,但再其将C+1维降到1维的同时,看起来像是失去了控制其信号和范围的能力(it may seem that we lost the ability to control its support over the signal’s space and range),比如控制双边滤波器 σ s \sigma_s σs σ r \sigma_r σr 参数值。所以,下面作者又扩展了一下,可以在与转换过程中将 σ s \sigma_s σs σ r \sigma_r σr 编码进来。其中, σ s \sigma_s σs表示空间标准差, σ r \sigma_r σr表示为范围标准差。

  经过一系列的变换,得到最终的域变换(demain transform),其中一个单独的 σ r \sigma_r σr就可以应用在所有channel上了。 c t ( u ) = ∫ 0 u 1 + σ s σ r ∑ k = 1 c ∣ I k ′ ( x ) ∣   d x (11) ct(u)=\int_0^u1+\frac{\sigma_s}{\sigma_r}\sum_{k=1}^c|I_k'(x)|\ dx \tag{11} ct(u)=0u1+σrσsk=1cIk(x) dx(11)

  上面公式是域变换的关键公式,它描述了如何将2D图像流形映射到1D实数轴上,并在此基础上进行各向异性边缘保留滤波。具体来说, c t ( u ) ct(u) ct(u)表示域变换后的1D信号,它是原始信号在不同方向上的加权平均。

  下图展示了本文效果的一个流程。(a)表示输入的原始信号 I I I。(b)表示的是一个域变换,是由公式(11)计算而来。(c)表示的是原始信号经过域变换的信号 I w I_w Iw;(d)表示展示了在原图域对域信号 I w I_w Iw进行高斯核处理的结果;(e)表示的是对 G { I w } G\{I_w\} G{Iw}进行逆域变换的结果。可以看出, G w { I } G_w\{I\} Gw{I}消除了小尺度变化并保留了强边缘。
【论文阅读笔记】Domain Transform for Edge-Aware Image and Video Processing_第1张图片

分析

  本文讨论由公式(11)表示的域变换。当 c t ( x ) ct(x) ct(x)应用于1D信号 I I I时,它的域由一个局部缩放: c t ′ ( x ) = 1 + σ s σ r ∣ I ′ ( x ) ∣ (12) ct'(x)=1 + \frac{\sigma_s}{\sigma_r}|I'(x)| \tag{12} ct(x)=1+σrσsI(x)(12)

  由 H H H引入的局部平滑可以表示为 s m o o t h i n g H ( x ) ∝ ( σ H c t ′ ( x ) ) = σ s 1 + σ s σ r ∣ I ′ ( x ) ∣ (13) \mathbb{smoothing}_H(x) \varpropto (\frac{\sigma_H} {ct'(x)})=\frac{\sigma_s}{1 + \frac{\sigma_s}{\sigma_r}|I'(x)|} \tag{13} smoothingH(x)(ct(x)σH)=1+σrσsI(x)σs(13)

  由公式(13)可以看出,滤波器响应的结果,由三个变量 σ r \sigma_r σr/ σ s {\sigma_s} σs/ I ′ ( x ) I'(x) I(x)组成。
  所以,分析滤波器 H H H的响应与参数 σ s \sigma_s σs σ r \sigma_r σr的关系:
lim ⁡ σ r → ∞ s m o o t h i n g H ( x ) = σ s lim ⁡ σ r → 0 s m o o t h i n g H ( x ) = 0 lim ⁡ σ s → ∞ s m o o t h i n g H ( x ) = σ r ∣ I ′ ( x ) ∣ lim ⁡ σ s → 0 s m o o t h i n g H ( x ) = 0 lim ⁡ ∣ I ′ ( x ) ∣ → ∞ s m o o t h i n g H ( x ) = 0 lim ⁡ ∣ I ′ ( x ) ∣ → 0 s m o o t h i n g H ( x ) = σ s \begin{equation*} \begin{split} \lim_{\sigma_r\rightarrow\infty}{\mathbb{smoothing}_H}(x)&=\sigma_s \\ \lim_{\sigma_r\rightarrow 0}{\mathbb{smoothing}_H}(x)&=0 \\ \lim_{\sigma_s\rightarrow \infty}{\mathbb{smoothing}_H}(x)&=\frac{\sigma_r}{|I'(x)|} \\ \lim_{\sigma_s\rightarrow 0}{\mathbb{smoothing}_H}(x)&=0 \\ \lim_{|I'(x)|\rightarrow \infty}{\mathbb{smoothing}_H}(x)&=0 \\ \lim_{|I'(x)|\rightarrow 0}{\mathbb{smoothing}_H}(x)&=\sigma_s \end{split} \end{equation*} σrlimsmoothingH(x)σr0limsmoothingH(x)σslimsmoothingH(x)σs0limsmoothingH(x)I(x)limsmoothingH(x)I(x)0limsmoothingH(x)=σs=0=I(x)σr=0=0=σs

σ r \sigma_r σr的关系

  当 σ r → ∞ \sigma_r \rightarrow \infty σr c t ( x ) = x ct(x)=x ct(x)=x,表示 H H H的响应不再是边缘保留,而是与 σ s \sigma_s σs成比例的平滑响应(趋向于高斯模糊平滑)。当 σ r → 0 \sigma_r \rightarrow 0 σr0,由公式(12)可知 c t ′ ( x ) → ∞ ct'(x) \rightarrow \infty ct(x),并且任何具有压缩支持(compact filter)的滤波器 H H H都会产生与输入相同的过滤信号。

σ s \sigma_s σs的关系

  有趣的是,当 σ s → ∞ \sigma_s \rightarrow \infty σs,H不会在图像中产生无限平滑。当 σ r \sigma_r σr保持不变时,这正是边缘保留滤波器所期望的结果。此外,平滑量与信号的梯度幅度成反比,这是最常用的图像边缘估计量。当 σ s → 0 \sigma_s \rightarrow 0 σs0,不会像预期的那样执行平滑。

与I的关系

  当输入的梯度幅度非常大时,不进行平滑处理。另一方面,在梯度幅度值不明显的区域,以与线性平滑滤波器相同的响应执行平滑。需要注意的是,在这两种情况下,本文的滤波器都表现为边缘保留滤波器。这意思就是,“我”没跑题!!

对2D信号进行滤波

  公式(11)定义了1D信号的域变换。理想情况下,是有潜在的2D变换 c t ( x , y ) ct(x,y) ct(x,y)用于2D信号,直接将原始域中位置 ( x , y ) (x,y) (x,y)上的内容映射到域变换中的位置 ( u , v ) (u,v) (u,v)。但不幸的是,从 R c + 2 → R 2 \mathbb{R}^{c+2}\rightarrow \mathbb{R}^2 Rc+2R2的映射通常不存在[O’Neill 2006]。因为不可能同时满足 R 2 \mathbb{R}^2 R2中的所有距离需求,所以需要使用更高维度的空间,这就意味着额外的计算和内存成本。为了避免这些额外成本,作者选择使用一维变换来执行二维滤波。

  使用一维运算过滤二维信号的最常见方法是沿信号的每个维度执行单独的传递。对于图像,这意味着沿每个图像行执行(水平)传递,并沿每个图像列执行(垂直)传递。这种结构广泛用于标准可分离线性滤波器 [Dougherty 1994] 和各向异性扩散 [Weickert 等人。 1998],也与使用光栅扫描算法计算图像流形上的测地线距离有关 [Criminisi 等人。 2010]。直观来说,只有对称的滤波,比如高斯滤波这种由行和列进行卷积得到的滤波,可以等效地执行离散的两个一维滤波运算

  需要注意的是,使用一维域变换对二维信号进行滤波并不是一项可分离的操作; 否则,这相当于在 2D 中执行 ct(x; y)。 由于边缘保留滤波器不应该跨强边缘传播信息,因此它们不能使用两次一维过滤过程的单次迭代来实现(即,水平通过,然后是垂直通过,反之亦然)。
【论文阅读笔记】Domain Transform for Edge-Aware Image and Video Processing_第2张图片

  如上图(a)所示,像素 p p p q q q应该属于同一区域(在图(a)中以白色表示),因此应该将他们的信息组合起来,进行平滑或者增强;图(b)展示一次水平滤波的效果,从 p p p像素可达的区域;图(c)展示一次完整的迭代效果(假设先进行水平滤波,再进行垂直滤波)。这个效果,从 q q q点出发也是类似的:一次完整的迭代无法到达整个白色区域,此过程可能会引入被视为“条纹”的视觉伪影(由上图(c)的黑色箭头所示);图(d)展示该例子经过一次额外的水平滤波后,可以将 p p p像素的信息传播到整个白色区域,从而消除条纹;图(e)展示更多一次滤波不改变结果。

  确实所需的水平和垂直滤波器数取决于图像内容(几何图形),这是较为困难的。但是作者观察到了重要的两个现象,可以使得滤波器后的图像中伪像不明显:(1)条纹仅出现在最后一个滤波器所在的维度上:水平(垂直)步骤会消除之前垂直(水平)步骤所引入的条纹;(2)条纹的长度与最后一次使用的滤波器的大小成正比
  所以,作者采用交错使用一系列水平和垂直滤波器,使得每次迭代中使用两个一维滤波器(由垂直和水平滤波器组成)的 σ \sigma σ值是前一次迭代使用值的一半。这会逐渐减少伪影的扩展,使他们在视觉上基本看不出来。在实践中,三个迭代通常足以获得良好的结果(第5.1节)。在水平滤波器中,公式(11)中的 I ′ I' I是图像行计算的偏导数;在垂直滤波器中,公式(11)中的 I ′ I' I是图像列计算的偏导数。

  由于方差(不是标准差)加法[Loeve 1977],所以在每次迭代中计算 σ H \sigma_H σH的值时必须小心:需要使用在每一步减半且其平方和与原始所需方差 σ H 2 \sigma_H^2 σH2匹配的标准差。这是通过以下表达式实现的:其中, σ H i \sigma_{H_i} σHi是第i次迭代的核函数使用的标准差, N N N是总共迭代次数, σ H \sigma_H σH是期待的kernel的标准差。 σ H i = σ H ∗ 3 ∗ 2 N − i 4 N − 1 (14) \sigma_{H_i}=\sigma_H*\sqrt{3}*\frac{2^{N-i}}{\sqrt{4^N-1}} \tag{14} σHi=σH3 4N1 2Ni(14)

  每次滤波器组迭代出来的图像是下一次滤波器组迭代的输入。域变换 c t ( x ) ct(x) ct(x)只在最开始时对原始图像计算一次,然后与滤波器 H H H的所有不同尺度(不同的 σ H \sigma_H σH)一起使用。

  上图展示了几次迭代的结果。可以看出,3次滤波迭代后雕像的面部,可以看出小尺度细节已经被平滑,而重要的边缘被保留了下来。尽管文中的滤波器是作为一系列沿行和列的一维操作执行的,但它可以正确处理对角线边缘。下图说明了此属性,该示例包含了多个位于不同斜率的锋利边缘。中间图像显示了仅使用两次一维滤波器的两次迭代获得的过滤结果。原始边缘得到了忠实的保留,同时颜色也得到了适应的过滤。
【论文阅读笔记】Domain Transform for Edge-Aware Image and Video Processing_第3张图片

  将2D边缘保留滤波器分解为一系列1D滤波器操作可以推广到更高维度。但不幸的是,这也导致滤波器不是旋转不变的。然而,这也适用于其他快速边缘保留滤波器[Farbman 2008; Fattal 2009]。

收敛分析

  可以通过增加迭代次数来获得没有伪影的滤波图像。所以,作者对2D滤波过程的收敛性进行了实验。

  对于像素值在 [ 0 , 1 ] [0,1] [0,1]之间的彩色图像, 10 10 10 12 12 12次迭代足以导致后续迭代结果之间的均方误差低于实验定义的阈值 1 0 − 4 10^{-4} 104。所以,作者通过将第 n n n次迭代获得的滤波结果与第 15 15 15次迭代后的结果(处于实际目的,可以视为无伪影)进行比较,来评估第 n n n次迭代后的滤波结果的质量。使用结构相似性(SSIM)来进行图像间的比较,作者认为它的结构特性使其适合检测“条纹”。由于SSIM得到的指标是相似性指标,所以作者使用(1 - SSIM)来作为误差度量。
【论文阅读笔记】Domain Transform for Edge-Aware Image and Video Processing_第4张图片
  上图总结了各种过滤迭代次数测得的误差。这些结果代表了31幅不同内容的自然图像时得到的最大误差。每条曲线对应一个 s i g m a r sigma_r sigmar的固定值。对于 σ r \sigma_r σr曲线上的每个店,作者绘制了 σ s ∈ { 1 , 10 , 20 , 40 , 60 , 80 , 100 , 200 , 500 , 1000 , 3000 } \sigma_s\in\{1,10,20,40,60,80,100,200,500,1000,3000\} σs{1,10,20,40,60,80,100,200,500,1000,3000}所有值中获得的最大误差。该图显示向异性度量的前三次迭代中迅速下降,这定义了滤波质量和计算时间之间的良好权衡。针对自己图像数据和调整出来的 σ s \sigma_s σs,也可以进行相应实验,查看收敛性。

在转换域中滤波

Normalized Convolution (NC)

  Normalized Convolution(NC)是一种基于归一化卷积的滤波方法,主要用于对非均匀采样信号进行滤波处理。其原理可以概括为:将非均匀采样信号转化为等间距采样信号,并在此基础上进行加权平均操作,从而实现对信号的滤波处理
  对 Ω w \varOmega_w Ωw中的非均匀采样信号 I w ( c t ( x ) ) I_w(ct(x)) Iw(ct(x))进行滤波可以被认为是对具有缺失采样的均匀采样信号进行滤波,如下图8左所示。对于原始域 Ω \varOmega Ω的均匀离散化 D ( Ω ) D(\varOmega) D(Ω) N C \mathcal{NC} NC将均匀离散采样 D ( Ω ) D(\varOmega) D(Ω)中的点 p ∈ D ( Ω ) p\in D(\varOmega) pD(Ω) J ( p ) = 1 K p ∑ q ∈ D ( Ω ) I ( q ) H ( t ( p ^ ) , t ( q ^ ) ) (15) J(p)=\frac1{K_p}\sum_{q\in D(\varOmega)}I(q)H(t(\hat{p}), t(\hat{q})) \tag{15} J(p)=Kp1qD(Ω)I(q)H(t(p^),t(q^))(15)
  其中, ∑ q ∈ D ( Ω ) H ( t ( p ^ ) , t ( q ^ ) ) \sum_{q\in D(\varOmega)}H(t(\hat{p}), t(\hat{q})) qD(Ω)H(t(p^),t(q^)) p p p的归一化因子, t ( p ^ ) = c t ( p ) t(\hat{p})=ct(p) t(p^)=ct(p)。对于N个采样和任意kernel H H H,公式(15)的时间复杂度为 O ( N 2 ) O(N^2) O(N2)。但由于 c t ( x ) ct(x) ct(x)是单调递增的(公式(11)),我们可以用一种高效的移动平均方法,即基于BoxFilter的移动平均方法,将 N C \mathcal{NC} NC的时间复杂度优化到 O ( N ) O(N) O(N)。Box Kernel的定义如下: H ( t ( p ^ ) , t ( q ^ ) ) = δ { ∣ t ( p ^ ) − t ( q ^ ) ∣ ≦ r } (16) H(t(\hat{p}),t(\hat{q}))=\delta\{|t(\hat{p})-t(\hat{q})|\leqq r\} \tag{16} H(t(p^),t(q^))=δ{t(p^)t(q^)r}(16)
  其中 r = σ H 3 r=\sigma_H\sqrt{3} r=σH3 ,是滤波器的半径; δ \delta δ是一个布尔函数,如果参数为真返回1,否则返回0。这个Box Kernel在 Ω w \varOmega_w Ωw有恒定的半径,但在 Ω \varOmega Ω中是空间变换和非对称半径的,其大小依据 p p p和它的邻居在图像流形 M 1 M_1 M1中的相似度。如下图8 中的右边,蓝色所示,这可以解释为 p p p的邻居和它属于同一个群体的估计。然后,Box Kernel是总体均值的稳健性估计器,与稳健的各向异性扩散有关。
【论文阅读笔记】Domain Transform for Edge-Aware Image and Video Processing_第5张图片

  使用公式(16)中的Box Kernel对公式(15)进行复杂度评估,其复杂度是与样本数量呈线性关系的。然后使用公式(14)定义的1D滤波器迭代。对于三次迭代,当 σ r = ∞ \sigma_r=\infty σr=时,得到的滤波结果和一个高斯滤波器的结果基本无法区分(PSNR > 40)。下图11 将此结果与使用其他几个滤波器获得的结果进行了比较。
【论文阅读笔记】Domain Transform for Edge-Aware Image and Video Processing_第6张图片

CPU实现

  由于样本在 Ω w \varOmega_w Ωw中的采样间隔是不均匀的,所以当Kernel窗口从一个样本滑动到另一个样本时,Kernel窗口中添加和删除的样本数量不是恒定的。因此,在 Ω w \varOmega_w Ωw中执行滤波时需要更新 K p K_p Kp,加上每个样本的额外内存读取以检查其域坐标。如果只需要 Ω w \varOmega_w Ωw中的一个样本对卷积有效,那么其他位置将不会对(离散)原始域中的滤波图像做出贡献。最后,微分使用向后微分估计。

GPU实现

  本文的域变换是高度并行的:每个线程可以计算一个样本的 c t ′ ( x ) ct'(x) ct(x)的值(公式(12)),然后扫描操作执行积分。对于滤波过程,每个线程计算一个像素的过滤值。为了找到当前1D窗口的第一个和最后一个像素,作者对变换域 Ω w \varOmega_w Ωw坐标执行两次二进制搜索。一旦确定了1D Kernel下的第一个和最后一个像素,便会使用1D求和面积表(每个颜色通道)计算所有贡献像素的颜色总和。这些表格需要在每次水平/垂直滤波前更新。

Interpolated Convolution (IC)

  处理不规则采样数据时的另一种选择是使用插值来逼近原始连续函数。图8(中)显示了图8(左)所示样本的线性插值(在 Ω w \varOmega_w Ωw中)获得的重构信号 L w L_w Lw
【论文阅读笔记】Domain Transform for Edge-Aware Image and Video Processing_第7张图片

  然后就可以使用连续卷积对 L w L_w Lw进行滤波: J ( p ) = ∫ Ω w L w ( x ) H ( t ( p ^ ) , x )   d x (17) J(p)=\int_{\varOmega_w}L_w(x)H(t(\hat{p}), x) \ dx \tag{17} J(p)=ΩwLw(x)H(t(p^),x) dx(17)
  其中, H H H是一个归一化的Kernel。

  插值卷积有一个有趣的解释:作用于信号的线性扩散过程。 图 8(右)显示了对半径为 r 的Box Filter的这种解释,其中Kernel窗口显示为红色。

插值

  对于Box Filter,公式(17)可以讲所有像素在 O ( N ) O(N) O(N)的时间复杂度进行计算。这是通过移动加权平均实现的,归一化box kernel由下面给出: H ( t ( p ^ ) , x ) = δ { ∣ t ( p ^ ) − x ∣ ≦ r } 2 r (18) H(t(\hat{p}),x)=\frac{\delta\{|t(\hat{p}) - x| \leqq r\} }{2r} \tag{18} H(t(p^),x)=2rδ{t(p^)xr}(18)
  其中 r = σ H 3 r=\sigma_H\sqrt{3} r=σH3 ,是滤波器的半径。将公式(18)带入公式(17),有: J ( p ) = 1 2 r ∫ t ( p ^ ) − r t ( p ^ ) + r L w ( x )   d x (19) J(p)=\frac1{2r}\int_{t(\hat{p})-r}^{t(\hat{p})+r}L_w(x)\ dx \tag{19} J(p)=2r1t(p^)rt(p^)+rLw(x) dx(19)

  线性插值信号 Lw 不需要均匀重采样,因为其图形下的面积可以使用梯形法则明确计算。

Recursive Filtering (RF)

  对于离散信号 I [ n ] = I ( x n ) I[n]=I(x_n) I[n]=I(xn),可以用一阶递归滤波器执行非边缘保留滤波: J [ n ] = ( 1 − a ) I [ n ] + a J [ n − 1 ] (20) J[n]=(1-a)I[n]+aJ[n-1] \tag{20} J[n]=(1a)I[n]+aJ[n1](20)
  其中 a ∈ [ 0 , 1 ] a\in [0,1] a[0,1]是一个反馈系数。该滤波器具有指数衰减的无限脉冲响应(IIR):位置 i i i的幅度为 m m m的脉冲会产生 m ( 1 − a ) a j − i , j ≧ i m(1-a)a^{j-i}, j\geqq i m(1a)aji,ji的响应。注意到,在单一采样间隔的前提下, j − i j-i ji可以认为是样本 x i x_i xi x j x_j xj之间的距离。基于这观察,递归边缘保留滤波器可以在变换域中定义为 J [ n ] = ( 1 − a d ) I [ n ] + a d J [ n − 1 ] J[n]=(1-a^d)I[n]+a^dJ[n-1] J[n]=(1ad)I[n]+adJ[n1]
  其中, d = c t ( x n ) − c t ( x n − 1 ) d=ct(x_n)-ct(x_{n-1}) d=ct(xn)ct(xn1),是在变换域 Ω w \varOmega_w Ωw的邻居样本 x n x_n xn x n − 1 x_{n-1} xn1之间的距离。随着 d d d的变大, a d a^d ad趋向于0,就会停止传播链,从而保留边缘。

  公式(21)的脉冲响应是不对称的,因为它仅取决于先前的输入和输出(它是一个因果过滤器)。通过两次应用滤波器实现对称响应:对于一维信号,(21)从左到右(从上到下),然后从右到左(从下到上)执行。

  滤波器的反馈系数由所想要的滤波器方差获得: a = e x p ( − 2 σ H ) a=exp(\frac{-\sqrt{2}}{\sigma_H}) a=exp(σH2 ),详细推到见附录。由于 a ∈ [ 0 , 1 ] a\in [0, 1] a[0,1],所以滤波器是稳定的,可以直观地看出复杂度为 O ( N ) O(N) O(N)

与其他方法的比较

  与之前的工作的比较:brute-force bilateral filter (BF) [Tomasi and Manduchi 1998]; anisotropic diffusion (AD) [Perona and Malik 1990]; edge-avoiding wavelets (EAW) [Fattal 2009]; weighted least squares filter (WLS) [Farbman et al. 2008],WLS当时被证明是可以为色调和细节处理产生最佳结果。permutohedral lattice BF (PLBF) [Adams et al. 2009];constant time BF (CTBF) [Yang et al. 2009],BF被认为是最快的彩色双边滤波器近似,CTBF被认为是最快的灰度双边滤波器近似。

响应速度

  下图展示了本文的三个滤波器(均使用3个迭代执行)的脉冲响应与BF/AD/WLS的脉冲响应比较。NC和IC滤波器具有类似高斯的响应,类似于AD和BF。在存在强边缘的情况下,IC滤波器的行为类似于AD。NC滤波器在强边缘附近有更高的响应值,这直接暗示了它作为稳健均值的解释:边缘附近的像素在同一群体中具有较少的邻居,并且将强烈加权它们的贡献。最后,本文的递归滤波器(RF)具有指数脉冲响应,它被强边缘完全衰减,就像WLS的响应一样。
【论文阅读笔记】Domain Transform for Edge-Aware Image and Video Processing_第8张图片
  NC滤波非常适合风格化和抽象化,因为它可以准确地平滑相似的图像区域,同时保留和锐化相关边缘。对于不需要锐化边缘的应用(例如色调调整和细节处理),IC和RF滤波器产生与最先进技术同等质量的结果。最后,对于边缘感知差值(例如着色和重新着色),RF滤波器由于其无限脉冲响应而产生最佳结果,它会在整个图像点阵中传播信息。后面有说明本文滤波器在应用中的使用。

平滑质量

  下图展示了图1(a)中所示照片的一部分,应用边缘感知平滑的比较。对于少量平滑,双边滤波(b)与本文的NC滤波器©产生视觉上相似的结果。如果进一步平滑,双边滤波可能会错误地混合颜色,如(d)中窗口框架中观察到的那样,颜色都变了。相比之下,本文的NC滤波器(e)在保留强边缘的同时连续平滑图像区域。同时,(e)的效果类似于使用WLS的(f)和各向异性扩散得到的结果(g)。由于EAW的比例不能自由控制,所以该技术对于保边平滑来说并不理想。EAW的参数为:最大分解深度为5,每个细节等级的系数为 0. 6 5 − l e v e l 0.6^{5-level} 0.65level,这样可以保留一些高频细节。

  以前的技术都难以模拟常规平滑滤波器,但本文的方法,如果 σ r \sigma_r σr设为一个较大值,就对弱边缘收敛到一个标准的线性平滑滤波器。本文的NC滤波器, σ r = ∞ \sigma_r=\infty σr=,就能得到下图的结果,可以与高斯模糊相近,而其他的算法难以模拟常规平滑滤波器。
【论文阅读笔记】Domain Transform for Edge-Aware Image and Video Processing_第9张图片

性能评估

  本文的性能验证,配备在8G内存,2.8GHz的CPU core,RTX 280 GPU的PC设备上。

CPU上

  作者使用C++在CPU上实现了NC和RF滤波器。对于IC滤波器,作者有一个MATLAB实现,预计其性能与NC类似。在单个CPU内核上,本文的NC和RF使用 3 3 3次迭代处理一百万像素的彩色图像,其运行时间分别为160ms和60ms。本文的算法性能与图像大小呈线性关系,即处理10兆彩色像素,分别需要1.6s和0.6s。在4核CPU上,作者实现了3.3倍的加速

  在速度上,与EAW, PLBF, CTBF进行对比。PLBF和本文的NC/RF 滤波器都同时处理三个颜色通道,而CTBF只处理灰色尺度。本次度量算法性能都是在单个CPU core上。PLBF和CTBF采用了作者提供的源码。
  PLBF 和 CTBF 的运行时间与 σ r \sigma_r σr 的值成反比。 对于接近零的 σ r \sigma_r σr,它们的运行时间超过 10 秒。而本文的方法独立于参数 σ s \sigma_s σs σ r \sigma_r σr的。根据经验,要使用 σ r < 0.15 \sigma_r < 0.15 σr<0.15的PLBF或CTBF能够得到良好的边缘保留平滑。在这个范围内,本文的方法比PLBF和CTBF要快5到15倍。至于少量平滑,本文可以使用两次滤波器迭代,甚至一次迭代获得良好的结果,如下图所示。减少迭代次数,颜色滤波器的速度比PLBF快25到40倍。依据Fattal [2009]论文,EAW可以在3.0GHZ CPU上,在12ms内平滑一百五像素的灰度图像。由于EAW仅在几个尺度上生成分解,因此它通常不适用于边缘保留平滑。WLS使用快速CPU实现,需要3.5s来求解其稀疏线性系统。
【论文阅读笔记】Domain Transform for Edge-Aware Image and Video Processing_第10张图片

GPU上

  作者使用CUDA在GPU上实现了NC Filter。滤波1兆像素彩色图像所需的总时间是计算域变换的0.7ms加上每个2D滤波器迭代的2ms,一共大约7ms的总运行时间。这比单核CPU实现快了 23 23 23倍。

  与其他算法进行对比。GPU Bilateral Grid,实现速度与本文一样快,但只处理了亮度值,这可能会产生不希望的图像鬼影伪像。他们的方法从下采样中获得效率,这对于小空间和范围内核是不可能的。PLBF的GPU实现可以在0.1s内处理0.5兆图像像素。WLS滤波器只处理灰度尺度,处理1兆像素大概耗时1s。

实时应用

细节处理

  边缘保留滤波器可用于将图像细节分解为多个尺度,这些尺度可以独立操作并重新组合以产生各种效果。假定 J 0 , . . . , J k J_0,...,J_k J0,...,Jk是图像 I = J 0 I=J_0 I=J0的逐渐平滑版本。几个细节层逐渐捕获更粗糙的细节,定义为 D i = J i − J i + 1 D_i=J_i-J_{i+1} Di=JiJi+1
  下图展示了一个应用于花卉图像(a)的精细尺度细节增强示例。(b)中的结果是本文使用IC滤波器( σ s = 20 \sigma_s=20 σs=20 σ r = 0.08 \sigma_r=0.08 σr=0.08)对(a)进行一次应用,然后通过Farbman et al [2008]的方式使用细节层 D 0 D_0 D0通过sigmoid 函数的结果。©展示了EAW滤波器的结果。(b)和©提供了相似的视觉质量效果。但本文可以通过改变参数 σ s \sigma_s σs σ r \sigma_r σr的值来产生连续的平滑图像 J i J_i Ji

色调映射

  边缘感知色调映射避免了光晕和压缩过程中引入的其他伪像。下图展示了使用了本文的RF滤波器的色调映射结果(a)与WLS滤波器的结果对比。这两结果质量相似,但本文的滤波器明显更快,从而产生更快的高质量色调映射解决方案。下图(a)的结果是通过操作HDR图像的对数亮度通道的三个细节层获得的。每一层使用RF滤波器的两次迭代组成,耗时12ms,对于 J 1 J_1 J1 σ s = 20 \sigma_s=20 σs=20 σ r \sigma_r σr=0.33;对于 J 2 J_2 J2 σ s = 50 \sigma_s=50 σs=50 σ r = 0.67 \sigma_r=0.67 σr=0.67;对于 J 3 J_3 J3 σ s = 100 \sigma_s=100 σs=100 σ r = 1.34 \sigma_r=1.34 σr=1.34。压缩的亮度通道 L C L_C LC由以下公式获得: L C = 0.12 + μ + 0.9 ( B − μ ) + 0.3 D 0 + 0.2 D 1 + 0.2 D 2 L_C=0.12+\mu+0.9(B-\mu)+0.3D_0+0.2D1+0.2D_2 LC=0.12+μ+0.9(Bμ)+0.3D0+0.2D1+0.2D2  其中, B B B J 3 J_3 J3线性压缩到 [ 0 , 1 ] [0,1] [0,1]的表示(比如 B = J 3 − min ⁡ ( J 3 ) m a x ( J 3 ) − m i n ( J 3 ) B=\frac{J_3-\min(J_3)}{max(J_3)-min(J_3)} B=max(J3)min(J3)J3min(J3)), μ \mu μ B B B的均值。

风格化

  风格化旨在生成具有各种效果的图像,而不是专注于照片写实主义。边缘感知过滤器是风格化的理想选择,因为它们可以抽象低对比度区域,同时保留或增高高对比度特征。下图展示了本文的NC滤波器用于产生抽象结果的应用。给定一个输入图像(左),过滤图像(右上)的梯度大小叠加到过滤图像本身,以在最显著特征周围产生高对比度边缘。另一个有趣的风格化效果可以通过为每个输出像素分配等式(15)中归一化因子 K p K_p Kp 值的缩放版本来获得。这会产生一个铅笔状的非真实感绘图,如图 1 (f) 所示,将 K p K_p Kp缩放到 0.11 0.11 0.11

联合滤波

  根据一幅图像的边缘信息对另一幅图像的内容进行平滑处理。例如,通过alpha matte的值作为公式(11)的图像倒数,可以模拟景深效果,如图1(g)。这个例子强调了为什么收敛到类似高斯的响应是本文过滤器的重要属性。Alpha matte也可以与其他贴图组合以创建一些局部化或选择性风格化,如下图15所示。

着色

  类似于以前的方法[Levin et al. 2004; Fattal 2009],作者通过对灰度图像 I I I的边缘信息对用户提供的涂鸦进行模糊处理,来传播颜色S,如下图所示。
【论文阅读笔记】Domain Transform for Edge-Aware Image and Video Processing_第11张图片

重新着色

  如图1(e)所示。

你可能感兴趣的:(论文,读书笔记,图像增强,论文阅读,计算机视觉)