这篇基于暗通道先验的去雾算法,是何恺明大神 2011 年左右的一篇论文。
论文地址:http://kaiminghe.com/publications/cvpr09.pdf
理论背景
在计算机视觉和图形学中,会用如下公式来描述模糊图片(haze image):
![](https://img.haomeiwen.com/i2759738/5d06464ee682b171.png)
I
表示为获得的图片或者强度,或者说是待去雾的图片;J
表示场景光辉,或者说是要恢复的无雾的图片;A
表示地球大气中光的成分;t
表示非散射光到达相机部分的介质传输。而去雾的目的就是从 I
中恢复 J
,A
和 t
,这样就会存在多个解的问题。
暗通道先验
在大多数非天空的图像块中,至少有一个颜色通道具有一些这样的像素:像素的亮度非常低,接近于零。也就是说,在这样的一个块(patch)中,最小的强度接近于零。
下面是数学方面关于暗通道(dark channel)的定义,对于任意的图像 J,其暗通道 Jdark 的公式如下所示:
![](https://img.haomeiwen.com/i2759738/03af218f8b920a30.png)
Jc 表示 J 的其中一个颜色通道;Ω(x) 表示是 x 中的一个局部图像块。暗通道的结果就是两个最小操作:首先求出每个像素 r,g,b 分量中的最小值,存入一副和原始图像大小相同的灰度图中,然后再对这幅灰度图进行最小值滤波,滤波的半径由窗口大小决定。
![](https://img.haomeiwen.com/i2759738/afedbc5e9c9f571f.png)
利用暗通道的概念,观察表明,如果 J 是室外无雾图像,除了天空区域,J 的暗通道强度较低,趋于零:
![](https://img.haomeiwen.com/i2759738/a50f59c48dc26045.png)
所以称这个观察发现为暗通道先验。
暗通道中的低强度主要来源于三个因素:
- 阴影。比如,城市景观图像中的汽车,建筑,窗户侧影的阴影,或者图像中树叶,树木,岩石等的侧影;
- 彩色物体或表面。如任何颜色通道中反射率较低的物体(如绿色的草/树/植物,红色或黄色的花/叶,蓝色的水面),在暗通道中会导致较低的值;
- 深色物体或表面。如深色树干和石头。由于自然的户外图像通常是彩色的,充满阴影,这些图像的暗通道真的会很暗!
为了证明暗通道先验。作者随机收集了 5000 张室外和城市景观的图片(考虑到雾霾大部分发生在室外),并裁掉了包含天空的部分,然后调整成 500x500 大小,并使用 patch size = 15 来计算其暗通道。
![](https://img.haomeiwen.com/i2759738/2865c616d81a5af8.png)
上图是验证的结果,可以说明暗通道先验具有普遍性。
利用暗通道先验去雾
有了暗通道先验的理论知识,下面就是利用该理论来进行去雾处理。
![](https://img.haomeiwen.com/i2759738/5d06464ee682b171.png)
此时,假设 A
是给定的,具体的 A
的取值会在后面说明。接下来对公式 (1) 进行整理转换可以得到:
![](https://img.haomeiwen.com/i2759738/df9b5288e578ec48.png)
需要注意的是,该公式是针对每个颜色通道的,所以用 Ic 表示。
然后再假设 Ω(x) 是一个常数,并将 t(x) 用 t̄(x) 来表示。然后在公式 (7) 两边计算暗通道,最后两边进行最小值操作:
![](https://img.haomeiwen.com/i2759738/7c2e8f97878ad5fe.png)
因为 t̄(x) 是常数,所以可以将其提取出来。
因为 J 为无灰度图像,即待求的图像,根据之前的暗通道理论,J 的暗通道接近于零:
![](https://img.haomeiwen.com/i2759738/bfb4c7844f57f4c9.png)
又因为 Ac 总是为正,所以有:
![](https://img.haomeiwen.com/i2759738/b31e12a3879d4b78.png)
将公式 (10) 代入到 公式 (8),可以得到:
![](https://img.haomeiwen.com/i2759738/000715bde53a9609.png)
这样就可以根据已知的 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] 的因子 ω:
![](https://img.haomeiwen.com/i2759738/67878b27b2798a3f.png)
在论文的后半部分,也讨论了关于 A
的取值问题,因为上面假定了 A
是给定的。作者认为先前的工作,很少将注意力放在 most haze-opaque 区域,即最模糊不透明的地方。在一篇论文中,提出将亮度值最大的像素认为是最模糊不透明的区域,但这只在天气为阴天,阳光可以忽略的情况下成立。但是,在实际中我们不能忽略阳光。
之后,作者提出使用暗通道来检测最模糊不透明的区域来提升 A
值的评估。方法如下:
- 从暗通道中取亮度值为前 0.1% 的像素;
- 基于这些像素,在原始图像中寻找其对应的具有最高亮度的像素值作为
A
的值。
最后,利用公式 (1) 恢复 J
的时候,当 t(x)
趋近于 0 的时候,会导致 J
值异常大,会易于产生噪音。因此,对 t(x)
加入一个下边界 t0
,最后的恢复公式如下所示:
![](https://img.haomeiwen.com/i2759738/96a733e4870a70ae.png)
t0
的取值常为 0.1。
关于暗通道的相关应用实践:暗通道算法优化雾气图像和夜间图像
网友评论