基于照明光分离的用于航海监督的单帧图像去雾

基于照明光分离的用于航海监督的单帧图像去雾
Single Image Defogging Based on Illumination Decomposition for Visual Maritime Surveillance

文献引文信息: Hu, H. M., et al. (2019). “Single Image Defogging Based on Illumination Decomposition for Visual Maritime Surveillance.” IEEE Trans Image Process.

文献来源:https://ieeexplore.ieee.org/document/8607026

1. 摘要

  本文提出了一种用于海上视觉监视的单图像去雾方法。首先,本文提出一种综合的散射模型对雾图环境光照明进行建模。然后提出一种照明分解算法来消除环境光的发光效应并复原雾层,在恢复的雾层中,无穷远的场景将具有统一的照明强度。第二,基于非局部霾线先验估计场景透射率。最后,提出照明补偿算法来保证去雾图像具备自然照明光源的信息。

2. 引言

  户外拍摄的图像质量与天气条件息息相关,特别是与雾和霾的天气相关,比如浑浊空气中的悬浮颗粒就会降低对比度和模糊纹理。雾经常出现在航行视觉监视应用中,航行视觉监视对于沿海国家来说是法律力量和环境保护的重要组成部分。因此,设计一个应用于航行监视的单帧去雾算法是具有挑战性的。
  最近,人们提出了很多单帧去雾或去霾的方法,这些方法主要可以被分为两大类。一类是对比度增强方法,包括强度拉伸,同态滤波,对比度拉伸等等。尽管退化图像的对比度被增强,但这些方法没有考虑到雾图的对比度下降与场景的距离的关系。这个忽视会造成雾图过度增强的问题。
  另一类是光学深度估计模型(透射率估计)。提出多种基于对比度和色度信息的先验假设来获取透射率,比如对比度最大化,暗通道,图像特征融合,彩色线,色彩衰减线性模型,多尺度距离融合,CNN去雾网络和线性回归模型等等。唐等人假设无雾图像相比于有雾图像具有更高的对比度。受清晰图像统计特性的启发,何凯明等人假设在局部范围内,暗通道的数值近似等于零。Fattal假设子块中的像素在RGB空间中形成一条彩色线。然后结合色度属性和对比度属性,提出了一种估计散射模型中相关系数的学习模型。朱等人假设每个像素的色彩饱和度和亮度提供场景深度的指示。另外,为了消除光晕和伪影,许多去雾方法使用上下文约束来保持图像边缘的不连续性。wang和Fan利用拉普拉斯马尔科夫场融合多尺度距离图。Meng等人利用边界约束来保留透射率的边界。这些最新的方法对于正常雾图实现了较好的性能。
  然而,目前的去雾算法主要集中在地面拍摄的图像而忽视了不同天气条件之间的散射效应差异性。这些方法对于航海监视的雾图不能直接得到合适的结果。比如图1展示的结果,大多数去雾算法无法避免细节丢失和色彩失真的问题。
在这里插入图片描述
  具体来说,去雾结果不理想主要有两个原因。首先,忽略了不同天气条件下的大气气溶胶的差异,它们产生不同的散射效应。相比于霾,雾中的粒子具有更大的半径、散射系数β和前向散射参量q。同时,海洋场景的图像距离往往比陆地的大,这加重了环境光在海洋雾图中的多层散射效应。然而,在目前大量使用的散射模型中没有考虑多层散射效应这一影响,它们都预先假设环境光照明是均匀的。为了验证所提的原因,我们展示了两幅海洋雾图的多层散射效应。
在这里插入图片描述
这两幅图清楚地显示,接近天空顶部的光强大于接近地平线区域的光强。而且天空和水区域的梯度轮廓线大致呈同心圆,近似由点光源所引起。在本文中,这种由多层散射效应引起的环境光不均匀分布现象称为“glow-shaped illumination”。相比于传统的散射模型(图3a),图3b展示了这个现象的多层散射原理。
  因此,对于发光型照明的雾图,即使选择最大值作为无穷远点的大气光值,照明的差异性也会引起错误的透射率估计。目前基于亮度信息的透射率估计方法在各区域之间会产生很大的透射率差异。这种情况引起显著的伪影,色彩变换等问题。
  第二,海洋场景的物理特征与陆地不同。海洋场景的反射率可能会过于光滑,这将使得图像的梯度很稀疏。由此基于梯度的去雾模型不能很好地用于海洋监视。
  因此,通过充分考虑雾的散射属性和海洋场景的物理特性,本文提出了基于发光型照明分解的用于航行监视的单帧去雾模型。首先,我们提出一个综合的散射模型对发光型环境照明进行建模。这个模型是场景辐照度和天空光辐照度的函数,其中天空光是有光源多次散射生成的。然后,基于所提出的散射模型,本文提出一种照明分解算法来消除发光效应并恢复雾层(即具有均匀照明的情况)。其次,利用非局部雾线先验的透射图估计算法对全局图像上具有相似反射率的像素进行聚类。由于海面、天空和目标物具有不同的反射率,因此它们会被分到不同的类别中。因此,相应的透射率图可以不受梯度稀疏的影响。
  此外,当我们去除这样均匀的雾之后,透射率会被约束在一个合理的范围,并且图像纹理具有更多细节。最后我们介绍一个照明补偿算法来提高去雾结果的自然性和亮度。
在这里插入图片描述

图3 传统大气散射模型和所提的散射模型

  这个去雾模型使得去雾图保持高对比度和自然照明信息。另外,本文构建了一个用于视觉航海监视的雾图数据集。这个数据集包括500张雾图和无雾图,以及20个视频。在这个数据集上的测试结果证明了所提的去雾方法可以有效地去除雾并保持自然的复杂场景和光照条件。这个结果也表明所提出的方法从客观和主观上都胜过最优的几种去雾算法。
  本文的结构如下:首先分析散射属性和航海环境的雾图统计性质;其次提出基于散射特性的综合大气散射模型和去雾算法;之后是对比实验结果并进一步讨论;最后总结。

3. 航海监视雾图的分析与相关工作

  为了解决上一节提到的去雾问题,本节主要分析航海监视图像的散射特性和图像统计特性。本节主要聚焦四个方面:照明的大气粒子效应、海洋图像的梯度稀疏属性、照明分解算法和非局部雾线先验。

3.1 照明的大气粒子效应

  与阴天天气是均匀照明的假设不同,我们注意到粒子模型会显著地影响大气散射特性和场景的照明分布。我们通过分析不同的粒子的散射特性来证明我们的假设。
  粒子的散射光辐照函数由粒子散射函数 G ( θ ) G(\theta ) G(θ)所决定。 G ( θ ) G(\theta ) G(θ)描述了光在空间中被粒子散射的角分布,它可以写成: G ( θ ) = 1 − q 2 ( 1 − 2 ⋅ q ⋅ c o s ( θ ) + q 2 ) 3 / 2 G(\theta ) = \frac{ {1 - {q^2}}}{ { { {(1 - 2 \cdot q \cdot cos(\theta ) + {q^2})}^{3/2}}}} G(θ)=(12qcos(θ)+q2)3/21q2其中 θ \theta θ定义为与入射光之间的夹角,q为前向散射参量。
在这里插入图片描述
  如图4所示,雾中的粒子尺寸越大,散射光越接近于完全前向光。不同的 G ( θ ) G(\theta ) G(θ)将在大气中产生不同的散射光分布。光会在粒子之间散射多次,从多个方向到达观察者。在半径为T,与观察者方向夹角为 φ \varphi φ的情况下,多次散射的强度可以表示为:
I s ( T , φ ) = g ( T , q ) f ( φ ) I i {I_s}(T,\varphi ) = g(T,q)f(\varphi ){I_i} Is(T,φ)=g(T,q)f(φ)Ii其中 I i , I s I_i,I_s Ii,Is定义为入射光和散射光,T为实际距离R与散射系数ß的乘积, g ( T , q ) g(T,q) g(T,q)定义为散射光的衰减函数, f ( φ ) f(\varphi ) f(φ)表示亮度的角扩散函数。由散射光生成的光强取决于q和T。
  图5a展示了当相机固定不动时,不同的q参量会有不同的衰减角分布。在雾天气中,q值较大的散射光强度在不同方向上相对于观测者的方向衰减更明显。
在这里插入图片描述
  我们假设太阳光是同一方向照射到雾中,那么很自然的它将在雾图中产生一个窄的发光型照明(如图5b)。同时,气象学的相关研究也表明,相比于陆地雾,扩散在海中的雾具有更大的厚度和更多的颗粒物。因为海雾的大散射系数增大了T的差异性并加重了天空入射光的通量损失,所以海洋场景的光强衰减更加明显,比如图5b的昏暗区域。
  在本文中,我们称这种空间变化的多层散射照明为发光型照明现象。根据以上分析,因为海洋场景的雾图通常满足发光型照明,所以在文中我们聚焦视觉航海监视的雾图去雾。

3.2 航海环境的雾图特点

  我们可以观察到,海洋场景的清晰图像和陆地场景的清晰图像的统计特性是不一样的,在纹理信息和光谱信息上都不相同。为了说明这一问题,本文分别分析了500海图和500陆地图,部分样本如图6a所示。图6c表明了海洋场景的梯度更稀疏。
在这里插入图片描述
  最近人们发现很多去雾算法的先验在海洋场景中失效了,特别是浓雾或者有大片光滑区域的地方,像水面和不毛之地。同时,传统的散射模型也无法适用于海洋场景。因此,人们也尝试了通过融合和增强的方法来去除海雾。比如Ma等人的[8]方法融合了高升压图像和线性拉伸图像,对输入的海洋雾天图像进行增强。然而,忽略了雾的物理属性可能导致了恢复结果不自然和有残留雾的问题。
  为了解决海洋图像中的雾去除问题,考虑到海洋雾和海洋场景的特点,在接下来的章节中,我们提出了一种基于模型的方法,其中涉及到一些步骤中的增强方法。

3.3 发光型照明的分解方法

  一些工作[27][28]已经研究了雾图中空间变化的照明问题。Ju等人假设大气光值是雾图照明区域的最大值。然而,这个假设忽略了像素的光强不仅被照明影响,也受物体的反射率影响。Li和Tan[28]提出了一种夜间雾霾模型,用于建立有主动光源的夜间雾霾图像。模型中的发光项定义为主动光源产生的散射光。这个算法忽略了环境辐照度的发光影响,它会在白天造成不准确的透射率估计。
  为了准确地估计去雾过程中发光型照明的影响,雾层应该从输入图像中分离出来。基于正常视网膜的光照估计方法[29]假设图像是光照和反射层的乘积。然而分解方程不适合噪声雾图。如图7,由Elad等人估计的光照层(图7(a))保持了退化图像中光照的相对顺序。因为照明层是不足够光滑的,多层分解会扩展反射层中的噪声和轮廓,这将使得去雾图片存在噪声放大和色彩伪影的问题,如图7c。
在这里插入图片描述
  Wang等人[31-32]提出了图像是由反射亮度和环境光照组成。这两层可以独立地分析,因此该方法不仅可以增强反射层的细节,也可以保留照明层的自然性(图7d)。受该工作的启发,我们提出一种变分函数来恢复雾层(图7f)。这个分解过程将在下一节中详细介绍。

3.4 非局部雾线先验的透射率估计

  通用的雾图像模型可以转换为: I ( x ) − A = t ( x ) ⋅ [ J ( x ) − A ] I(x) - A = t(x) \cdot [J(x) - A] I(x)A=t(x)[J(x)A],其中I是观察到的雾图,J是无雾图像,t是场景的投射率,A是大气光值。
  在J中有相同强度的像素由于透射率的不同,在I上表现出强度不同,但它们具有相同的色调值。因此这些散射在整张图像中的像素可以在RGB空间组成一条线,而这些像素点的透射率可以通过其在线上的位置来计算。这个假设称为非局部霾线先验。
  这个非局部霾线先验的优势在于它不受雾图局部结构的影响,贯穿整幅图组成霾线的像素由色调性质来聚类,而不是局部区域的相应值。因此,该先验可以用于估计航海监视中的浓雾图像(梯度稀疏并且信噪比低)。
  然而,霾线先验在一些特定应用中也有限制。这个先验假设了在霾线上的像素在清晰图像上具有近似的照明,并且所有霾线都通过RGB空间的一个常数A点。这个假设会在雾图是空间变化的时候失效。因此直接使用改先验会造成错误的估计。如图8b所示的天空、水和目标区域被认为是同一霾线,尽管它们具有不同照明强度。窗口中的灰色像素的透射率被错误估计,导致这些像素在图c中丢失了细节。如图8c所示,由于照明具有空间变化性,因此天空区域的透射率差异被放大。
在这里插入图片描述

4. 单帧图像去雾

本文的去雾方法主要包含3个步骤:输入图像的照明分解、分离雾图的去雾、去雾图像的照明补偿;
在这里插入图片描述

图9 所提方法的概述

4.1 非均匀照明的散射模型

为了介绍大气散射模型对最终光强的影响,本文提出散射模型为:
I ( x , y ) = J ( x , y ) e − β d ( x , y ) + ∫ 0 d ( x , y ) I s ( x , y ) β e − β l d l I(x,y) = J(x,y){e^{ - \beta d(x,y)}} + \int_0^{d(x,y)} { {I_s}(x,y)\beta } {e^{ - \beta l}}dl I(x,y)=J(x,y)eβd(x,y)+0d(x,y)Is(x,y)βeβldl其中x,y表示像素位置,l表示大气光源到相机的距离,d(x,y)表示像素所表示的场景深度。
  此处,大气光Is(x,y)并非传统的常数,而是一个可变量,它定义了发光型照明的强度。因此,上式第一项表示场景信号,第二项表示粒子散射产生的环境光。
  引入常数大气光值L和残差量V,其中V由Is(x,y)-L所得,上式可变为:
在这里插入图片描述
  在第一个红框中,它表示传统的大气散射方程,而第二个红框则表示由于照明不均匀而引起的照明项(本文解释为多层散射光引起的)。

4.2 通过分解算法求取均匀雾层分布

上式可以写成简式:
I ( x ) = F ( x ) + G ( x ) I(x) = F(x) + G(x) I(x)=F(x)+G(x)本节的任务就是分离出F和G。
  在阴天情况下,光源位置和光学厚度未知,无法从单幅图像中求得Is(x,y)。为了分离G和F,我们提出了以下约束:

  • 在海洋场景中,F的梯度是稀疏的;
  • 雾场景中散射光的强度分布呈“带状”分布,因此假设照明是空间上光滑的,即G是空间光滑的;
  • F的梯度和亮度应该被用于估计G;

基于以上约束,可构建罚函数:
在这里插入图片描述其中∇是拉普拉斯梯度操作,雾层假设是无色彩信息的,即三通道的值相等。
为了求解该罚函数,引入辅助变量w,并将G替换为I-F,可将罚函数转化为:
P ( F , G ) = ∥ w ∥ 1 + λ ∥ ∇ F − w ∥ 2 2 + α ∥ ∇ ( I − F ) ∥ 2 2 + β ∥ F ∗ f 1 ∥ 2 2 , P(F,G) = {\left\| w \right\|_1} + \lambda \left\| {\nabla F - w} \right\|_2^2 + \alpha \left\| {\nabla (I - F)} \right\|_2^2 + \beta \left\| {F * {f_1}} \right\|_2^2, P(F,G)=w1+λFw22+α(IF)22+βFf122,利用交替迭代更新算法优化上述方程,对于第k次迭代:在这里插入图片描述在这里插入图片描述最终可求得函数值随迭代步数的变化情况:迭代4~5次时结果基本稳定,本文以变化量小于1%为结束条件。
在这里插入图片描述
在这里插入图片描述

图11 获得的分解结果
  图a表示输入图像。图b表示分解后的雾图,其中红色像素表示选取的强度值最大的1%像素。图c是分解后的发光型照明层。图d是图c的强度等高线。

4.3 通过雾线先验去雾

在论文Berman, D., et al. (2016). Non-Local Image Dehazing. 2016 Ieee Conference on Computer Vision and Pattern Recognition. New York, Ieee: 1674-1682.中,关于雾线先验的说明如图:
在这里插入图片描述
  在无雾的清晰图中,可以对全局像素进行聚类,可得到非局部分布的像素群,它们聚集在RGB空间中的某点附近。当成像过程受到雾气的影响时,每个像素强度将被线性变化,因此它们在雾图的RGB空间中将呈直线分布,向量的模则对应透射率,其表达式为。
在这里插入图片描述获得透射率的估计后,场景的强度可有下述公式计算:
在这里插入图片描述
对F图使用雾线先验去雾算法的结果:在这里插入图片描述

图12 基于霾线先验的去雾结果

4.4 去雾结果的照明补偿

  在经过前面的照明分解步骤之后,图像的强度普遍偏暗,所以本节提出照明补偿方法。G表示输入雾图的照明信息。J包含复原的纹理信息。利用J和G的融合来同时复原照明信息和对比度。J可由一下公式进行照明补偿:
在这里插入图片描述
为了避免模糊J,这里需要对G进行调整:
在这里插入图片描述其中 g ( x ) = 1 − G ( x ) 2 g(x) = 1 - G{(x)^2} g(x)=1G(x)2。照明补偿之后的结果如图13所示:
在这里插入图片描述
总体的算法流程可总结如下:
在这里插入图片描述

5. 实验结果

在这里插入图片描述
如图14,针对雾图具有光照不均匀的问题,传统的图像处理都存在较为严重的伪影和色彩失真问题。图h则是本文所提方法的处理结果,其具有更加自然和更高对比度的优点。
在这里插入图片描述
如图h,论文中的方法具有最清晰的码头图像。

6. 对所提的模型进行讨论

  本文可主要分为三个部分:光照分解、雾线先验除雾和光照补偿。其中本文工作关键是:

  • 解决了照明不均匀问题;
  • 补偿除雾的照明。

7. 本文对自己的帮助

  从最开始粗略理解本文思路时,以为是将多层散射模型引入去雾中,看完之后感觉本文只是介绍了雾具有多层散射的现象,但最终分离“散射效应”是从一些约束着手的,与之前的设想不一样。从散射模型的角度来说帮助不大。
  文中使用的最优化的思路是值得借鉴的,包括利用交替迭代来优化损失函数,导引滤波和多种tips最终提升去雾性能。

おすすめ

転載: blog.csdn.net/qq_34917728/article/details/118784453