基于超像素和暗通道先验的图像去雾复原方法*
2020-09-17谭一博刘博文王国宇
徐 浩,谭一博,刘博文,王国宇
(中共海洋大学信息科学与工程学院,山东 青岛 266100)
图像去雾处理方法是当前计算机视觉和图像处理领域的研究热点之一。散射介质(包括雾天和水下)成像退化的原因来自介质对光的吸收和散射效应。相比于吸收效应,影响成像质量的主要因素是散射效应,按照对成像的影响分为前向散射和后向散射。前向散射发生在目标光在向传感器传输的过程中,即目标点的成像光线由于前向散射而发生偏移,导致目标点模糊,一般可以用成像系统的点扩散函数来描述;后向散射发生光源在照射目标时,照明光在介质中传输时产生的后向散射光被传感器接收,形成一种“雾化”背景,降低了图像对比度。在雾天和水下成像中,影响观测的主要障碍是后向散射导致的图像对比度下降。图像去雾处理的目的就是消除后向散射从而提高图像对比度并还原颜色信息。
目前已有大量关于图像去雾处理方法的研究,包括基于非物理模型的图像增强方法和基于物理模型的图像复原方法以及基于深度学习的方法[1-3]。其中基于物理模型的图像复原方法因其物理有效性已成为图像去雾研究的热点。此类方法是从散射介质成像退化模型出发,根据观测图像估计模型中的相关参数,反演获得无雾条件下的场景清晰图像[4-11]。最常用的雾天图像退化模型是Nayer和Narasimhan所提出的散射介质成像模型(1)。
I(x)=Jt(x)+A(1-t(x))。
(1)
其中:I是观察图像强度;J是场景辐射强度;A是大气光强度;t为透射率。上述模型中包含了RGB三个通道。
对于单幅图像去雾问题,基于模型(1)的图像复原本质上是一个病态问题,所以需要先验信息或附加约束求解。其中比较有代表性的也是应用最广泛的就是基于暗通道先验(Dark Channel Prior,DCP)的去雾算法[10-11]。He等通过观察大量无雾图像得出统计规律,即图像场景中大部分像素的RGB三个通道中存在一个暗通道,其亮度值等于或接近零,据此由散射成像模型估计出透射率图,并使用软抠图(Soft Matting)算法对透射率进行细化,从而恢复出无雾场景图像。后来He等[11]又提出引导滤波(Guided Filter)代替软抠图来细化透射率,提高了算法效率。该算法简单有效且适应性较强,因而得到广泛应用。
在暗通道算法实现中,暗通道的提取是在固定大小的窗口内进行的,一个窗口中可能覆盖远近不同的多个物体,存在深度不连续的窗口像素的透射率变得不确定,这会导致局部透射率的错误估计,导致透射率图存在“块”效应,复原图像的物体边缘处也可能产生伪影问题,因而需要对透射率图进行细化。He提出了软抠图算法和导向滤波算法对初始估计的透射率图进行细化,虽然算法获得了良好的去雾效果,但是其对透射率图的滤波处理是以改善视觉效果为前提的,本质上仍属于图像增强的手段,如典型的导向滤波算法中以输入图像作为透射率图的引导图像,但实际上透射率仅与景深相关,与场景的亮度并不相关,所以依此对透射率图进行细化仍欠缺物理有效性的解释。
本文提出了一种基于图像分割和暗通道先验的透射率优化估计方法,该方法的主要思想是:首先,应用超像素提取算法对输入图像进行分割,用分割后的不规则区域替代传统的暗通道算法中的固定窗口。由于分割区域内的像素在亮度、色相和饱和度属性上具有一致性,可以认为它们在景深以及透射率上也具有一致性,因此在对这些局部区域提取暗通道时,可以获得鲁棒性和精确性更好的透射率估计,避免了景深不连续时的错误估计,也降低了噪声干扰。实验证实,在无需进行滤波细化等增强手段的情况下,直接用超像素透射率估计得到的去雾复原效果优于传统的暗通道算法。同时,由于不再需要基于增强的滤波细化步骤,保持了基于暗通道先验的图像去雾处理的物理有效性解释。
1 超像素分割简介
超像素概念在2003年由Ren 等[12]首先提出,主要用于图像分割上。超像素是指具有相似纹理、颜色、亮度等特征的相邻像素构成的有一定视觉意义的不规则像素块。该技术利用像素之间的相似性将像素分组,用少量的超像素代替大量的像素来表达图片特征,很大程度上降低了图像后处理的复杂度,所以通常作为分割算法的预处理步骤。超像素分割的主要优点包括:(1) 超像素块可以作为支持特征向量区域,在表述图像局部特征上超像素块远远优于固定的矩形窗口划分,超像素块只属于一种目标,而固定窗口可能覆盖多种;(2) 超像素分割可以保证边界的完整性。物体边缘是超像素边缘的子集;(3) 超像素可以大幅提高计算效率。超像素分割技术已被广泛应用于计算机视觉领域[13-15]。
超像素分割算法主要有基于图论的算法和基于梯度下降的算法[16-20]。其中,SLIC算法是一种基于颜色相似度和空间距离关系的局部迭代聚类算法,相比于其他分割算法,SLIC 算法具有较好的边缘贴合度和可控的超像素紧密度,并且运算时间较短,因此本文应用SLIC 算法来对输入图像进行超像素分割,其实现步骤包括:
(1) 初始化聚类中心。CIELAB 彩色空间中定义5维特征向量Ci=[li,ai,bi,xi,yi]T,其中{l,a,b}是CIELAB空间中的3维颜色特征,{x,y}是图像平面中的位置,{i}为聚类中心编号。初始化k个聚类中心,即在间隔S个像素的均匀网格上进行采样,寻找每一个采样点的3×3邻域中梯度最低的点,将其设为聚类中心,并计算特征向量。这样可以避免将超像素的中心点定位到图像中物体的边缘上,同时减少噪声点的影响。
(2) 像素聚类。图像中每一个像素都会被赋予与其距离最近的聚类中心标签,为了提高计算效率,算法将搜索范围限定在聚类中心的邻域范围内,使得计算复杂度与超像素(聚类中心)数量k无关。
(3) 更新聚类中心。当每一个像素都与其距离最近的聚类中心关联后,算法进行聚类中心的更新,新的聚类中心位于该聚类中心所属像素的平均值位置。当聚类中心更新完毕后,算法重新进行像素聚类。反复迭代直至聚类中心位置的改变量小于预先设定的阈值,迭代停止。
(4) 后处理。当算法停止迭代后,可能出现具有相同标签号的像素之间并不邻接,即出现了两个或多个具有相同标签号的超像素。算法采用简单的近邻合并策略将出现相同标签号的超像素与各自相邻的面积最大的超像素合并。因此 SLIC 算法实际生成的超像素数量一般会略小于用户的设定值k。
将上述超像素分割算法应用于雾天图像,其结果如图1所示。
2 基于超像素和暗通道先验的透射率估计
对输入图像进行超像素提取后,分割后的不规则区域在亮度、色相和饱和度属性上具有一致性,可以认为它们在景深以及透射率上也具有一致性。在对输入图像求取暗通道时,我们用分割后的区域替代传统的暗通道算法中的固定窗口,然后应用暗通道先验来估计超像素块的透射率。
首先将式(1)表示为如下归一化形式:
(2)
公式(2)对应了每一个独立的通道c(r,g,b)。在暗通道算法中,对公式(2)两边进行局部区域为(x)的最小值滤波,并且假定在此局部区域内的透射率为常量,得到
(3)
由暗通道先验可知
(4)
((a) 超像素数=300 Number of superpixels is 300;(b) 超像素数=2000 Number of superpixels is 2 000.)图1 超像素分割示例Fig.1 Example of superpixel segmentation
因此由(3)式,可得
(5)
对输入图像进行超像素分割后,我们用超像素块代替(3)中的固定窗口(x)。可以合理地假设,单个超像素块内的所有像素的暗通道是相同的。所以,考虑到噪声等干扰因素,为了提高估计的鲁棒性,在对超像素区域应用暗通道先验时,我们对传统算法中的最小值滤波进行了松弛处理,即将暗通道最小值及其之后的若干值排除,将式(3)修正为:
(6)
其中S((x)是以x为中心的超像素块中,排除最小的前5%暗通道值之后剩下的像素集合。由暗通道先验可得
(7)
实验证实,由于超像素分割后的窗口区域具有透射率一致性的特点,采用松弛后的透射率估计可以减少噪声干扰,获得更好的复原效果。图2的例子说明了直接使用经典的最小值滤波与使用松弛算法所得到的透射率在复原效果上的差异。可以看出,使用最小值滤波的复原结果在与天空交界的山脊处出现明显错误(红线圈出),而使用改进的松弛算法并没有出现此问题。
((a)原图 Input image;(b)最小值滤波 Minimum filtering;(c)松弛算法 Relaxation algorithm.)图2 基于超像素透射率得到的复原结果Fig.2 Restoration result based on transmittance of superpixels
基于超像素分割的透射率估计方法在保持估计的准确性的同时,其另一个优点是可以保证边界的完整性。因为物体边缘是超像素边缘的子集,所以获得的透射率图具有边缘保持性。实验证实,即使不采用传统算法中的导向滤波步骤,在图像去雾复原时也可以避免边缘处的伪影现象。
在得到大气光照强度A及透射率图的基础上,根据公式(1)即可恢复出无雾场景J,即
(8)
其中t0为预先设定的透射率估计的下限。
3 实验结果
将基于超像素分割得到的透射率代入成像模型(1),根据式(8)就可以得到去雾复原图像。对大气光值的估计我们仍然采用He的传统算法中所使用的方法。实验中进行超像素分割时的超像素数目取2 000。
图3给出用本算法得到的透射率图,作为比较,同时给出传统算法(本文称为He算法)的结果。图4给出了应用本算法和He算法以及经典的Tarel算法的去雾结果比较。
( (a)He算法结果 He’s method;(b)本算法结果 The proposed method.)图3 透射率图Fig.3 Transmission map
(自左至右分别为:原始图像,He算法,Tarel算法,本算法。From left to right:Input image,He’s method,Tarel’s method and the proposed method.)图4 本算法和其它经典算法的复原结果Fig.4 Restoration results using the proposed and the compared methods
进一步用去雾评价指标[21]进行比较,结果如表1和表2所示。表1的评价指标e是去雾后图像中新增可见边缘的比例;表2的评价指标r是去雾后和去雾前图像中边缘的梯度大小变化的平均比值,用于评价平均能见度(对比度)增强效果。理论上e和r值越大,表明去雾效果越好。从表中数据可以看出,对于图4中的实验样本,本算法的量化评价结果优于大多数He方法的结果,与Tarel方法的平均结果相当。另外可以看到,本算法在不用导向滤波进行透射率细化的情况下,图像的细节部分基本没有出现伪影现象。考虑到在实际应用中,较好的算法需要兼顾人眼观察效果和量化指标之间的权衡。因此综合人眼观察和量化评价,本算法的去雾效果优于经典算法。
表1 可见边缘评价指标 eTable 1 Visible edge evaluation index e
表2 梯度评价指标 rTable 2 Gradient evaluation index r
4 结语
在基于物理模型的图像去雾复原方法中,暗通道先验算法因其简单有效且适应性强而得到广泛应用,但原有算法中暗通道的提取是在固定大小的窗口内进行的,因此存在局部透射率的错误估计和透射率图的“块”效应,而该算法中对透射率图进行细化的软抠图和导向滤波方法本质上属于图像增强的手段,从而在某种程度上破坏了图像复原的物理有效性解释。本文提出了一种基于超像素分割和暗通道先验的透射率优化估计方法,应用超像素分割获得的不规则区域替代传统算法中的固定窗口,从而克服了原有算法中对初始透射率图的估计存在块效应的问题,并采用松弛策略以获得鲁棒性和准确性更好的透射率结果。由于超像素分割对局部透射率描述具有良好的适应性,所以无需进行另外的滤波细化步骤即可完成图像去雾复原,从而保持了图像去雾的物理有效性解释。实验结果表明,本文所提出的方法在复原效果上优于传统的暗通道算法和其它几种经典的去雾算法。