1. 引言
近年来,雾霾天气越来越严重,这对于安全驾驶和交通监管都带来了困扰 [1]。雾霾天气,光线发生散射,驾驶员的视线变短,从而导致驾驶员对于车辆间距和时速预估不准确,从而容易造成安全事故 [2]。雾霾天气所带来的影响,不仅会对人造成困扰,并且对迅速发展的机器视觉带来麻烦。对于大多数计算机视觉算法,一般会假定图像是由原始光线汇聚而成,所以偏光、低对比度的图像会使处理结果不理想。随着无人驾驶技术、智能交通的发展,对图像去雾有了更大的需求 [3]。整体而言,现有的去雾算法在特定的环境背景下能较好地改善图像的视觉效果,基本实现去雾 [4],但各去雾算法难以同时满足图像处理的有效性和实时性的要求,并且较少地应用于实际生活。本文采取三种主流的去雾技术,对实际交通路况图片进行处理,同时考量不同去雾技术的有效性和实时性,有利于促进图像去雾技术在实时交通监控和行车记录方面的应用,因此具有重要的实际意义。
2. 三种常见的图像处理方法
由于去雾需求在各个领域的需求不断提高,产生了越来越多的去雾技术,基于课外创新实验的要求,本文针对公路交通现状主要采用三种主流的去雾方法:1) 全局直方图均衡化;2) Retinex图像增强算法;3) 暗原色先验去雾算法。
2.1. 全局直方图均衡化
全局直方图均衡化是一种十分常用的去雾技术,广泛应用于光学补偿、图像去雾等多个领域 [5]。这种算法的核心是将彩色图片分解为红、绿、蓝三种颜色的灰度级图片,通过直方图均衡化分别处理三种颜色的灰度级图片,重新将三个图片叠加即为去雾后的图像,经过处理后,使图像中灰度原本集中的区域变得均匀,从而增大反差,改变图像对比度,使细节更加清晰 [6]。
灰度直方图均衡化实现步骤 [7]:
1) 统计原始图像各灰度级的像素数目ni,0 ≤ i < L,L是图像中所有的灰度数(通常为256);
2) 图像中灰度为i的像素的出现概率是:px(i) = p(x = i) = ni/n,n是图像中所有的像素数,px(i)实际上是像素值为i的图像的直方图,归一化到[0, 1];
3) px的累积分布函数,是图像的累计归一化直方图:
(2.1.1)
4) 直方图均衡化计算公式,cdfmin为累积分布函数最小值,M和N分别代表了图像的长宽像素个数,而L则是灰度级数(如图像为8位深度,则灰度级别共有28 = 256级数,这也是最常见的灰度级数),v为原始图像中为v的像素值:
(2.1.2)
下图1~3其直方图均衡化去雾的处理结果及处理前后的图片灰度直方图:

Figure 3. Gray histogram of image before and after defogging
图3. 去雾处理前后的图像灰度直方图
直方图均衡化的处理较为简单,能够提高图片的灰度值的范围,提升对比度,具有一定的去雾效果,在处理器为Intel Core i5-8300H的电脑上的直方图均衡化处理时间为1~3秒,处理时间短,实时性好。但这种去雾方法也存在一些缺陷。由于数字图像灰度取值的离散性,计算过程中用到近似的方法使变换后的新图像中的灰度级数量会比原图像中的灰度级数量少,从而对某些细节造成不好的影响。对于景深较大的图片,由于不同深度,图像的局部特征不同,采用直方图均衡法以反映景深多变的图像中局部景深的变化,难以获得令人满意的视觉效果。如在本实验中,远处车辆的清晰度较差。此外,对于雾天中光源光晕,直方图均衡化处理的效果也不理想。
2.2. 暗原色先验去雾算法
暗通道先验去雾算法是何凯明博士经过大量统计实验数据研验证发现的。暗原色先验(dark channel prior)指在绝大部分非天空的局部区域里,某些像素总会有至少一个颜色通道具有很低的值,该区域光强度的最小值是个很小的数。暗原色先验定义为:
(2.2.1)
公式中:
代表无雾图像R、G、B三通道中的某一通道。Ω是以像素x为中心的正方形区域。
称为图像J的暗原色,总是趋于0。根据暗原色理论得到的透射率为:
(2.2.2)
式中:w被称为调节系数,其目的是保证景深处有模糊效果,取值为0.95。
在估计大气光A时,He等 [8] 选取暗原色
中前0.1%亮度最大的像素,然后得到这些像素对应在雾天图像I(x)中对应位置的像素点,取这些像素点中的最大值为大气图像A的值 [9]。
其基本去雾流程如图4所示 [10]:

Figure 4. Dark channel prior defogging flow chart
图4. 暗原色先验去雾流程图
图5~8为对采集到的图片用暗原色去雾技术处理的结果。
通过比较处理前后的图片可以看到,处理过后的图片中的关键信息(车牌、远处车辆)更加清晰,图中红绿灯和车辆(右1)的辨识度有所提高,使观测者更容易注意到,并且图片颜色也更加鲜艳,但是由于对大气光的估计产生偏差,从而导致整体色调偏红,去雾效果不是很理想。同时,本实验在处理器为Intel Core i5-8300H的电脑上运行,所用时间为110~130秒,而本文采用的其余两种方法的处理图片的时间均小于10秒,所以采用暗原色先验技术去雾实时性较差。
2.3. Retinex图像增强算法
人类视觉系统具有颜色恒常性,当环境照度变化时,人眼对物体颜色的感知保持相对不变。E. H. Land基于颜色恒常性理论提出了Retinex理论 [11]。在Retinex图像增强增强算法中,将图像分为照度图像和反射图像,照度图像是由光照所导致,对应于图像中的低频成分;反射图像是由图像中场景自身反射属性导致的,包含图像的颜色、细节等,属于图像中的高频成分。其数学表达式可表示为:
(2.3.1)
其中,(x, y)表示像素点坐标,I为输入的雾霾图像,R和L分别为雾霾图像I的反射图像和照度图像。根据公式(2.3.1),只需要计算获得雾霾图像I的照度图像I,即可通过计算获得包含更多细节的反射图像。为了简化计算复杂度,在获取反射图像时,常对公式(2.3.1)两边取对数,在对数域进行计算 [12]。图9为Retinex算法的流程图。

Figure 9. Retinex algorithm flow chart
图9. Retinex算法流程图
在颜色恒常理论中,入射光或者照度L(x, y)往往变化比较缓慢,在图像中对应的就是低频,而反射分量R(x, y)对应的是高频。对于彩色图,将图像分解为红、绿、蓝三种颜色的灰度级图片,通过Retinex图像增强算法分别处理三种颜色的灰度级图片,重新将三个图片叠加即为去雾后的图像。在我们处理的过程中,简易的认为:
(2.3.2)
其中,F(x, y)是环绕函数
(2.3.3)
式中,
和c是与标准偏差有关的量,在本实验中,采用matlab自带的高斯低通滤波器(fspecial (gaussian, parameters, sigma))函数代替环绕函数F(x, y),parameters是范围参数,sigma是方差参数,下表1为不同sigma取值下的去雾图像处理结果及图像灰度直方图。

Table 1. The results under different sigma values
表1. 不同sigma取值下的处理结果
比较不同sigma取值下的图像处理结果,发现sigma较小时,虽然图片关键信息(车牌)较为清晰,但图像平滑性较差,图像灰度直方图向低值偏移较大,效果不好。对于本实验中的雾霾图片,sigma取值为200附近时,处理效果较好。当sigma取值为200时,比较处理前后的图片,发现图片关键信息(车牌)更加清晰,车辆与环境(道路、大气等)的对比度增强,并且红绿灯、远处白色车辆更加明显,所以对于不同景深的物体,Retinex算法具有较好的效果比较前后的图像灰度直方图,处理前后的灰度分布趋势大致相近,所以Retinex图像增强算法保留了更多的原图信息,处理效果更好。在实时性方面,本实验在处理器为Intel Core i5-8300H的电脑上运行时间为7~11秒,所用时间较短,实时性较好。
3. 三种去雾技术的比较
比较雾霾图像的处理效果,三种去雾技术都有一定的去雾效果,对于车牌的处理都有良好的效果,但采用直方图均衡化处理,对于远处的车辆,会变得更加模糊,不利于人眼观察,所以直方图均衡化不适用于景深较大的图片,而其他两种去雾技术在这一方面效果较高。另一方面比较三种去雾技术处理后图片和雾霾图片的图像灰度直方图,直方图均衡化处理后图片的灰度直方图偏移较大,会造成细节信息丢失,所以从去雾效果来看,暗原色先验去雾技术和Retinex去雾技术优于直方图均衡化。在实时性方面,暗原色先验去雾技术的耗时多于100秒,而其他两种去雾技术耗时均小于10秒,所以暗原色先验去雾技术的耗时远高于其他两种去雾技术的耗时,实时性最差。所以,在本实验中,从有效性和实时性两方面综合来看,Retinex去雾技术效果最好,最能满足现实生活的需要。
NOTES
*通讯作者。