APP下载

一种改进实时图像去雾的暗原色先验算法

2020-08-03陈伟贺元恺李昭慧郭明香郑佳雯陶智慧

现代电子技术 2020年6期
关键词:仿真分析

陈伟 贺元恺 李昭慧 郭明香 郑佳雯 陶智慧

摘  要: 针对暗原色先验图像去雾算法运行时间长,天空区域分割耗时,复原图像中存在方块效应以及整体偏暗等缺点,提出一种改进的实时图像去雾暗原色先验算法。在暗通道求取时,使用快速最小值滤波,加快传统暗通道求取最小值排序的时间;在大气光求取时,使用像素值限定的方法快速排除天空区域,使用暗通道图像剩余最亮部分对应原图像像素值的均值,有效避免原算法中求取大气光值过大导致复原图像失真的现象;在透射率的优化时,使用Sobel边缘检测与求取图像二阶导数图像,得到精细的透射率,改善了细化透射率的时间复杂度;对最终图像采取伽码变换,提高图像亮度。实验结果表明,与原暗通道先验算法相比,此算法有效提高了算法的实时性。

关键词: 暗原色先验; 图像去雾; 算法改进; 透射率改善; 最小值排序; 仿真分析

中图分类号: TN911.73?34                          文献标识码: A                      文章编号: 1004?373X(2020)06?0163?05

A dark channel prior algorithm for improving real?time image dehazing

CHEN Wei, HE Yuankai, LI Zhaohui, GUO Mingxiang, ZHENG Jiawen, TAO Zhihui

(School of Communication and Information Engineering, Xian University of Science and Technology, Xian 710054, China)

Abstract: In allusion to the disadvantages of the dark channel prior image defogging algorithm, such as long running time, time?consumption of sky region segmentation, and blocking effect and whole partial dark in the restored image, an improved real?time image defogging dark channel prior algorithm is proposed. In the dark channel calculation, the fast minimum filtering is used to speed up the minimum sorting of the traditional dark channel . In the atmospheric light extraction, the method of pixel value limit is used to quickly exclude the sky area, and make the remaining brightest part of the dark channel image correspond to the mean value of the original image pixel value, which can effectively avoid the restored image distortion caused by the too large atmospheric light value got by the original algorithm. In the optimization of transmissivity, the Sobel edge detection and second derivative image are used to obtain the refined transmissivity, which improves the time complexity of refining transmissivity. The Gamma conversion is applied to the final image to improve the brightness of the image. The experimental results show that in comparison with the original dark channel prior algorithm, this algorithm can effectively improve its real?time performance.

Keywords: dark channel prior; image defogging; algorithm improvement; transmissivity improvement; minimum sorting; simulation analysis

0  引  言

工业化生产造成了部分城市雾霾现象越来越严重,给生活和生产造成了很大影响。基于图像复原的去雾方法[1?4]是从雾天图像产生的本质出发,建立雾天退化数学模型,通过图像去雾领域的假设参数来模拟雾天图像成像,以此为基础,推导出雾天复原图像的计算公式。何凯明提出基于暗原色的图像先验去雾方法,该方法在雾天物理成像的模型上,加入了先验理论,但是该方法存在着运行时间长,天空区域难分割,复原图像中存在方块效应,图像整体偏暗等不足[5?6]。Sun等提出一种局部大气光估计方法[7],这种方法可以改善暗通道先验算法中由于全局大气光值选取不足而导致复原图像色彩失真的问题。惠霄霄等提出了四分法求取有雾图像的大气光值,使求得的大气光更接近真实值,求取时间长,不利于实时性[8]。代睛睛等采用全局搜索的方法估计大气光的偏振度,最后根据大气散射模型恢复出清晰目标图像,仍需要大量时间,不利于实时图像处理[9]。

为了达到实时图像去雾硬件系统的实现,本文提出一种基于暗原色先验算法的改进实时图像去雾算法。首先,在暗通道的求取过程中使用快速最小值滤波降低了算法的运行时间。在求解大气光时,使用像素值限定的方法快速排除天空区域,然后选用了暗通道图像中最亮部分对应原图像中的图像像素均值,增加了大气光值的准确度。其次,在优化透射率时,使用了边缘检测后,对边缘检测结果进行了一阶导数,求取了块状效应明显的区域进行导向滤波,有效地去除了因暗通道图引起的块状效应。最后,对复原图像使用伽码变换提高了图像亮度。结果表明:改进后的算法,极大地减少了程序运行时间,提高了实时性。

1  暗原色先验原理

暗原色先验原理证明在非天空的图像区域内,总有一些像素点有至少一个颜色通道具有接近零的像素值。对于任意输入的一幅图像[I(x,y)],它的暗通道图像表达式为:

式中:[Ω]是输入图像的某一区域;[[r,g,b]]表示的是每个像素的三个颜色通道。先求出每个像素R,G,B通道中的最小值,存入一幅和原始图像大小相同的灰度图中,然后再对这幅灰度图进行最小值滤波,暗通道理论指出[I(dark)(x,y)]趨于0。

雾天图像成像数学模型常用下面的公式表示:

式中:[I(x)]为现有的图像(待去雾的图像);[J(x)]为要恢复的无雾的图像;A为全球大气光成分;[t(x)]为透射率。现在的已知条件就是[I(x)],要求目标值[J(x)],显然,这是个有无数解的方程,因此,需要先验。暗通道理论恰好提供了所需的先验理论。

对式(2)进行变形:

对式(2)两边求取最小值滤波2次:

式中:C表示R,G,B三个通道;J为待求的无雾的图像。根据前述的暗原色先验理论有:

所以求解出的透射率为:

式(6)为预估计的粗透射率,它存在许多缺点,如由最小值滤波留下来的块状效应。现实生活中,正常观察远方的物体还是能感觉到雾,远方的雾使人感觉到景深,因此,需要保留一定程度的雾,通过在式(6)中引入一个在[0,1] 之间的因子表示,如下:

仿真结果表明,一般值取为0.95左右时复原效果最好。

2  改进算法

本文算法流程框图如图1所示。

2.1  快速最小值滤波

在对一个矩阵进行最小值滤波时,最简单的思路是对一个点的邻域直接通过比较得最小值,这样,计算的复杂度与取的窗口的尺寸有绝对的关系。当选取的滤波核过大时,需要进行大量的排序,这一过程非常耗时。Herk等提出了一种快速最大最小值滤波算法[10]。快速最小值滤波的算法思想是分别对行和列进行排序操作,行和列的操作,以行操作为例:

将一行分为多个大小为d的分段,比如取d=5,定义两个数组为g和h,对每一个分段进行处理,其中每个位置存放的是其后到分段末所在直线段上的点中的最大值。如此处理得到g和h两个数组,g是行操作结束保存的矩阵,h是列操作结束后保存的矩阵,这样每次计算时都能直接选取h和g中的点进行比较得到最后结果。减少了常规最小值滤波对于每一个滤波核内的数据进行大量排序所耗费的时间。

分别用原算法和快速算法进行仿真,结果如图2~图4所示。图中采用的最小值滤波核为5×5。如果图像里面充满雾霾,暗通道图像如图4所示。

图2和图3中的图a)~图c)分别是原图像、暗通道图像和快速最小值滤波得到的暗通道图像。可以看到无雾图像的暗通道图像像素值整体趋近于0。可以看到有雾霾的图像的暗通道图像像素值并不是趋于0。有雾图像使得暗通道原理失效,因此会有许多远远大于0的像素。

算法运行时间对比如表1所示。

从表1看出,使用快速最小值滤波可以快速降低时间复杂度,在用时最短的情况下,仍能达到理想的结果,保证了算法的实时性与有效性。

2.2  求取大气光值

首先需要求取实际的大气光值,可以使用输入图像的暗通道图获取该值。原算法[6]从原始暗通道图中按照亮度的大小排序选取最亮的0.1%的像素。在这些位置中,从原始有雾图像[I(x,y)]中寻找对应的具有最高亮度的点的值,作为大气光值。原算法没有考虑到户外含有天空气区域的图像很普遍,因此存在适应性的问题。惠霄霄等给大气光设定一个最大的阈值[8],改善了大气光过大导致图像失真,但这种方法不能适应于亮度较高的图像。

由于一幅图像中,不一定大气光是最亮的,可能会有别的物体像素点亮度是最高点,比如天空区域就是亮度很高的点,并且暗原色先验的理论对天空区域的图像是失效的。本文使用像素值限定的方法进行排除大气光区域,主要思想就是在进行最小值滤波时对每一个滤波核内的暗通道图像像素值相加,并设定一个阈值,若大于这个阈值就认为该区域为大气光区域或者个别亮度高的几点,在求取大气光时排除此区域。经过大量仿真,发现滤波核为15×15并且阈值设置为49 500时,对绝大部分含有大气光的图像排除天空区域干扰效果最好,因此本文最终将上述值作为固定值进行仿真设计。

本文的大气光值取暗通道剩余最亮部分对应的原始图像区域的像素平均值,以防止由于大气光过大而导致复原图像的天空或者图像本身比较亮的区域色彩失真,如图5所示。

由图5b)可以看到,原算法复原图像之后,图像中的天空区域已经出现了图像失真,变成了蓝色。从图5c)可以看到,改进后的算法改善了原算法带来的图像色彩失真情况。但是此复原方法仍不理想,在图像的边缘区域会出现一些模糊和方块效应,这都是由于最小值滤波的滤波核所引起计算的透射率不够平滑造成的,因此需要获得更精细的透射率。

2.3  细化透射率

本文从细化透射率的本质出发,发现粗透射率图像中的块状效应明显的区域基本发生在图像中出现边缘变化明显的区域,也就是图像的二阶导数图像大于0的区域,因此本文使用Sobel边缘检测进行边缘检测,再求出图像二阶导数,为了提高算法的运行速度,本文对图像没有块状效应和平滑的区域不做处理,只针对二阶导数图像大于0的领域进行导向滤波,仿真结果表明,此方法极大地改善了运行时间,仿真效果如图6所示。

猜你喜欢

仿真分析
DYNA在安全带固定点强度仿真分析中的应用
预应力混凝土连续刚构桥施工监测与仿真分析
半挂汽车列车直角转弯仿真分析
民用飞机直流开关电弧效应仿真分析
温度大时滞串级—Smith预估控制系统建模与仿真
ADAMS/Car 与MATLAB联合仿真在《汽车理论》教学中的应用
基于DIALux仿真分析的室内绿色照明方案设计
基于LPC的语音信号预测仿真分析