论文记录 - Single Image Haze Removal Using Dark Channel Prior

2019-05-14 10:11:00 浏览数 (1)

这篇基于暗通道先验的去雾算法,是何恺明大神 2011 年左右的一篇论文。

理论背景

在计算机视觉和图形学中,会用如下公式来描述模糊图片(hazy image):

I 表示为获得的图片或者强度,或者说是待去雾的图片;J 表示场景光辉,或者说是要恢复的无雾的图片;A 表示地球大气中光的成分;t 表示非散射光到达相机部分的介质传输。而去雾的目的就是从 I 中恢复 JAt

暗通道先验

在大多数非天空的图像块中,至少有一个颜色通道具有一些这样的像素:像素的亮度非常低,接近于零。也就是说,在这样的一个块(patch)中,最小的强度接近于零。

下面是数学方面关于暗通道(dark channel)的定义,对于任意的图像 J,其暗通道 Jdark 的公式如下所示:

Jc 表示 J 的其中一个颜色通道;Ω(x) 表示是 x 中的一个局部图像块。暗通道的结果就是两个最小操作:首先求出每个像素 r,g,b 分量中的最小值,存入一副和原始图像大小相同的灰度图中,然后再对这幅灰度图进行最小值滤波,滤波的半径由窗口大小决定。

利用暗通道的概念,观察表明,如果 J 是室外无雾图像,除了天空区域,J 的暗通道强度较低,趋于零:

所以称这个观察发现为暗通道先验

暗通道中的低强度主要来源于三个因素:

  • 阴影。比如,城市景观图像中的汽车,建筑,窗户侧影的阴影,或者图像中树叶,树木,岩石等的侧影;
  • 彩色物体或表面。如任何颜色通道中反射率较低的物体(如绿色的草/树/植物,红色或黄色的花/叶,蓝色的水面),在暗通道中会导致较低的值;
  • 深色物体或表面。如深色树干和石头。由于自然的户外图像通常是彩色的,充满阴影,这些图像的暗通道真的会很暗!

为了证明暗通道先验。作者随机收集了 5000 张室外和城市景观的图片(考虑到雾霾大部分发生在室外),并裁掉了包含天空的部分,然后调整成 500x500 大小,并使用 patch size = 15 来计算其暗通道。

上图是验证的结果,可以说明暗通道先验具有普遍性。

利用暗通道先验去雾

有了暗通道先验的理论知识,下面就是利用该理论来进行去雾处理。

此时,假设 A 是给定的,具体的 A 的取值会在后面说明。接下来对公式 (1) 进行整理转换可以得到:

需要注意的是,该公式是针对每个颜色通道的,所以用 Ic 表示。

然后再假设 Ω(x) 是一个常数,并将 t(x) 用 t̄(x) 来表示。然后在公式 (7) 两边计算计算暗通道,最后两边进行最小值操作:

因为 t̄(x) 是常数,所以可以将其提取出来。

因为 J 为无灰度图像,即待求的图像,根据之前的暗通道理论,J 的暗通道接近于零:

又因为 Ac 总是为正,所以有:

将公式 (10) 代入到 公式 (8),可以得到:

这样就可以根据已知的 I 和给定的 A 来求得 t(x),继而就可以求得 J 了。

In practice, even on clear days the atmosphere is not absolutely free of any particle. So the haze still exists when we look at distant objects. Moreover, the presence of haze is a fundamental cue for human to perceive depth [13], [14]. This phenomenon is called aerial perspective. If we remove the haze thoroughly, the image may seem unnatural and we may lose the feeling of depth.

实际上,即使在晴朗的日子,大气中也并非完全没有任何粒子。所以当我们看远处的物体时,雾气仍然存在。此外,雾气的存在是人类感知深度的基本线索。这种现象被称为空中透视。如果彻底去除雾气,图像反而可能会看起来不自然,而且也会有失去深度的感觉。

所以在公式 (11) 中加入一个范围在 [0, 1] 的因子 ω:

0 人点赞