一种基于Dark Channel Prior图像去雾改进算法
An Improved Images Defogging Algorithm Based on Dark Prior Channel
DOI: 10.12677/CSA.2020.1012230, PDF, HTML, XML, 下载: 464  浏览: 832  科研立项经费支持
作者: 阳小燕, 宗建华, 夏国清:广州大学华软软件学院,广东 广州;许伦辉:广州大学华软软件学院,广东 广州;华南理工大学土木与交通学院,广东 广州
关键词: 图像去雾Dark Channel Prior滤波去噪Image Defogging Dark Channel Prior Filter Denoising
摘要: 探测机器人视觉导航中,现场烟雾或者有色气体会直接导致回传的视频图像雾化且充满噪声,图像品质差,影响后续目标检测与跟踪。针对上述问题,本文提出了一种基于Dark Channel Prior图像去雾改进算法,该算法首先对采集到图像进行灰度化预处理,再用滤波器进行去噪处理,有效去除采图像中的噪声,使待处理图像更加平滑,最后使用Dark Channel Prior去雾算法进行去雾处理,得到高品质图像。根据仿真实验表明,本算法能够有效解决图像去雾中的噪声问题,提高传送画面的清晰度,并缩短图像处理时间,时实性更强。
Abstract: In the vision navigation of detection robot, the scene smoke or colored gas will directly cause the video image to be atomized and filled with noise, and the image quality will be poor, which will affect the subsequent target detection and tracking. In order to solve these problems, an improved fog removal algorithm based on Dark Prior Channel image is proposed in this paper. Firstly, the collected image is pre-processed by grayscale; then the noise is removed by filter; and the noise in the collected image is effectively removed; finally, we use the Dark Channel Prior algorithm to defog the image, and get the high quality image. The simulation results show that the algorithm can effectively solve the noise problem in image defogging, improve the clarity of the transmitted image, shorten the image processing time and improve the real-time performance.
文章引用:阳小燕, 许伦辉, 宗建华, 夏国清. 一种基于Dark Channel Prior图像去雾改进算法[J]. 计算机科学与应用, 2020, 10(12): 2189-2196. https://doi.org/10.12677/CSA.2020.1012230

1. 引言

随着计算机科学技术的发展,探测机器人在室外工作中得到广泛应用,如:军事侦察、抢险救灾和科研考察等领域,而视觉导航系统是探测机器人的重要组成部分 [1] [2],它对所处环境十分敏感,在雾天或浓烟情况下,采集到的图像受雾气影响较大,图像往往具有模糊不清 [3]、对比度低、色彩失真和多噪音等问题。直接影响探测机器人视觉导航系统的目标检测与跟踪等功能,使其进行地形勘测和灾害观察等户外活动受到极大的限制 [4] [5]。目前,去雾算法的研究逐渐成为新的研究热点。对于回传图像质量低的问题,相关学者提出了不同的图像去雾算法。李冠章等 [6] 提出了修正Retinex模型,提高了图像的对比度,有效突显了图像的细节信息;苑尚博等 [7] 提出结合小波变换的暗原色方法,在降低算法运算量的同时突出局部细节;Meng等 [8] 提出一种快速图像去雾方法,采用中值滤波来估计大气耗散函数,复原出清晰的图像。本文针对在有色浓烟等复杂环境下采集的雾化图像多噪音的问题,提出了一种基于Dark Channel Prior的改进图像去雾算法,传统的Dark Channel Prior算法 [9] 在去雾增加图像清晰度方面效果明显,但对于多噪音图片处理效果不理想,且处理时间较长,实时性不强。改进的Dark Channel Prior去雾算法首先对采集到的图像进行灰度化预处理,再用滤波器进行去噪处理,有效去除采图像中的噪声,使待处理图像更加平滑,再使用暗通道先验去雾算法进行去雾处理,得到高品质图像。根据仿真实验表明,本算法能够有效解决图像去雾中的噪声问题,提高传送画面的清晰度, 并且缩短图像处理时间,时实性更强。

2. Dark Channel Prior去雾算法

目前探测机器人图像去雾一般采用传统的Dark Channel Prior算法,该算法主要基于对大量户外无雾图像的统计规律,称之为暗通道先验理论,即对于一副户外彩色无雾图像,在大部分区域中,其RGB三通道至少有一条颜色通道的灰度值很低,其灰度值大小趋近于零。

大多数雾天图像形成模型方程如下 [10]:

I ( x ) = J ( x ) t ( x ) + A ( 1 t ( x ) ) (2-1)

在此方程中, I ( x ) 为采集到的有雾图像, J ( x ) 是经过去雾处理后得到的无雾图像,A是全球大气光照, t ( x ) 是雾的透过率。可以理解为 J ( x ) 已知,要求目标 I ( x ) ,显然这个方程有无数解。

将(2-1)的方程稍作变形可以得到:

I c ( x ) A c = t ( x ) J c ( x ) A c + 1 t ( x ) (2-2)

其中,上标c表示图像的R/G/B(红色/绿色/蓝色)三个通道。在计算时,首先假设采集图像中的透射率 t ( x ) 为常数,并将其用为 t ˜ ( x ) 表示,全球大气光照值A已经给定,对式(2-2)两边同时进行两次求最小值计算,可以得:

min y Ω ( x ) ( min c I c ( y ) A C ) = t ˜ ( x ) min y Ω ( x ) ( min c J c ( y ) A C ) + 1 t ˜ ( x ) (2-3)

在式(2-3)中 J c ( y ) 是需要求解的无雾图像,C代表三通道中的最小通道值, Ω ( x ) 表示以像素点x为中心的一个窗口。通常情况下,采集到的有雾图像,不同位置的雾浓度往往是不同的,利用Dark Channel Prior估计出雾的透过率图(transmission map,反映有雾图像中雾浓度的变化),然后利用雾的透过率图恢复场景的辐射度从而得到无雾图像。根据暗通道先验理论,对于任意输入图像进行Dark Channel Prior数学定义,它的暗通道用下面的式子来表示:

J d a r k ( x ) = min y Ω ( x ) ( min c { r , g , b } J c ( y ) ) (2-4)

在上式中, J c ( y ) 表示彩色图像的每个通道。将式(2-3)与(2-4)联系起来有:

J d a r k ( x ) = min y Ω ( x ) ( min c J c ( y ) ) = 0 (2-5)

min y Ω ( x ) ( min c J c ( y ) A c ) = 0 (2-6)

将式(2-6)带入(2-3)中,可以得到:

t ˜ ( x ) = 1 ω min y Ω ( x ) ( min c I C ( y ) A C ) (2-7)

其中式(2-7)中的 ω 取值范围为0~1,表示图像的去雾程度,避免完全去雾使原图像出现失真的情况。

J ( x ) = I ( x ) A t ( x ) + A (2-8)

最终 J ( x ) 就是所得到的恢复后的无雾图像。

3. 图像滤波

由于自然因素和设备因素,采集到的图像会存在或多或少的干扰噪声,直接影响后续的图像处理,为解决这个问题,可以利用图像滤波来去除噪声干扰 [11]。

根据图像执行的线性关系将图像滤波分为线性滤波和非线性滤波两大类。其中线性滤波包括:方框滤波 [12]、均值滤波 [13]、高斯滤波 [14];非线性滤波包括:中值滤波和双边滤波 [15]。

1) 均值滤波(Average Filter)

均值滤波是方框滤波归一化的特例。每一个输出图像的像素为内核邻域像素的平均值卷积所得到,对于一个给定大小的模板,其目标像素点位于模板的中间部位,然后计算这个模板上的所有像素点的均值,用这个均值来代替该点的像素值。当待处理图像中存在图像灰度尖锐变化的噪声,均值滤波就能够实现较好的去除效果。其原理可以用下面的式子来表示:

a ( x , y ) = ( i , j ) Ω f ( i , j ) n (3-1)

在式(2-1)中, f ( i , j ) 表示给定模板内各像素点的灰度值, a ( x , y ) 表示均值滤波处理后的目标像素点的灰度值, Ω 表示给定模板的大小,n表示给定模板内像素点的总个数, ( x , y ) 即为目标像素点在待处理图像中的坐标。

2) 高斯滤波(Gaussian Filter)

高斯滤波器是线性滤波器中处理效果较好的一种算法,它的原理就是对待处理图像的各个像素点值进行加权平均求解的过程,可以用下面的式子来表示:

g ( x , y ) = 1 2 π σ 2 e x 2 + y 2 2 σ 2 (3-2)

在上述式子中, σ 表示高斯滤波器的模板宽度大小,不同值对应的不同的滤波效果。

3) 中值滤波(Median Filter)

中值滤波是一种常用的非线性滤波器,用目标像素点邻域灰度值的中间值来代替该目标点的灰度值。如果定义 x 1 , x 2 , x 3 , x 4 , , x n 为给定模板内各像素点的灰度值,那么其原理可以用下面的式子描述:

m ( x , y ) = median { x 1 , x 2 , x 3 , x 4 , , x n } (3-3)

在给定同样大小的模板的情况下,中值滤波相较于其他的几种滤波器,能够在进行图像滤波处理的过程当中,不会引起图像边缘的模糊,利于后续的进一步图像处理 [16]。

为验证各种滤波算法的有效性,本文首先对不同背景下的两幅图做了椒盐噪声处理,得到高噪声图像,模拟探测机器人采集到的带有噪声干扰的实时现场画面图像,在此基础上对图像去雾处理。椒盐噪声(salt-and-pepper noise),又称为脉冲噪声,主要是由于图像传感器、传输信道以及解码处理时产生 [17],如图1所示。

图1(a)拍摄的是学校实验室的地面,图1(b)为其椒盐噪声处理后图像。图1(c)拍摄的是华山一角,图1(d)为其椒盐噪声处理后图像。为验证算法能不失真的复原图像清晰度,避免过度去噪而使图片失真,本文选取了实验室碎花地面为实验对象,背景与噪音点相似。

(a) 原始图像A (b) 图像1椒盐噪声处理 (c) 原始图像B (d) 图像2椒盐噪声处理

Figure 1. Processing of pepper and salt noise in image A and B

图1. 对图像A、图像B椒盐噪声处理

为了比较各种滤波器对图像的滤波效果,将椒盐噪声处理后的图像用不同滤波算法进行去噪处理,其仿真结果如图2所示。图2(a)~(f)分别为使用均值滤波器、高斯滤波器和中值滤波器对图1(b)、图1(d)进行滤波处理。均值滤波处理后的效果如图2(a)、图2(d)所示,图像中的椒盐噪声点的滤除效果不理想,并且对于待处理图像的边缘、细节等信息损坏较为严重;高斯滤波处理后的效果如图2(b)、图2(e)所示,对于待处理图片的边缘、细节等信息保存较好,但对于噪声点的滤除效果欠佳;中值滤波器处理后的效果如图2(c)、图2(f)所示,图像中的椒盐噪声处理效果最好,并且最大程度上保留了原图像的信息,从对比度、亮度、失真程度等方面都更符合人类的视觉感受。因此本文在图片去噪处理中选择中值滤波器对图像去噪。

4. 改进Dark Channel Prior算法

本文研究的应用方向是基于机器视觉的探测机器人,其使用场景大多是一些救援人员和科研人员无法进入的狭小区域,同时还可能伴随着有色气体泄露,复杂的现场环境会使采集到的视频图像雾化且多噪声。

(a) 均值滤波处理 (b) 高斯滤波处理 (c) 中值滤波处理 (d) 均值滤波处理 (e) 高斯滤波处理 (f) 中值滤波处理

Figure 2. Denoising effects of different filters

图2. 不同滤波器去噪效果

传统的Dark Channel Prior去雾算法对普通户外有雾图像去雾处理效果较好,但对于含有多噪声的有雾图像,传统的Dark Channel Prior算法处理去雾后图像上仍会残留很多噪声点,遮挡住图像上的关键信息,直接影响探测机器人的目标跟踪。除此之外,当探测机器人进行抢险救灾等工作时,时间就是生命,对于图像处理的实时性要求更高。为了解决上述问题,使去雾算法更好地应用于探测机器人上,本文在原有的Dark Channel Prior去雾算法基础上做出了针对性的优化,提出了改进Dark Channel Prior图像去雾算法。具体见图3改进Dark Channel Prior图像去雾算法流程。

Figure 3. Improved image defogging algorithm based on Dark Channel Prior

图3. 改进Dark Channel Prior图像去雾算法流程

首先对采集到的有多雾多噪声图像用中值滤值进行滤波处理,通过滤波处理,不仅能够有效地去除图像中的噪声,而且可以使待处理图像更加平滑,减少了待处理图像像素点灰度值的差异,使图像灰度值的高低变化缓慢,在一定程度上减少了去雾算法的计算量,再将处理后低噪声图片使用Dark Channel Prior算法进行去雾处理,估计出雾的透过率图,利用雾的透过率图恢复场景的辐射度从而得到无雾图像。

为验证算法的有效性和可行性,本文以实验室地面(大小为450 * 600),和华山一角(大小为244 * 261)为对像,以Open CV为仿真工具,在Pentium(R) Dual-Core CPU E5200 @ 2.50GHZ,2G内存的PC平台上进行了仿真实验。实验仿真结果如图4所示。

图4(a)、图4(c)为待处理图像,图4(b)、图4(d)为传统Dark Channel Prior去雾算法,图4(c)、图4(e)本文提出的改进Dark Channel Prior算法的图像去雾算法。从仿真结果可以看出,传统的Dark Channel Prior算法,能够达到较好的去雾效果,但是去雾处理之后的图片噪声点明显,使得图片的一些细节、边缘等信息被覆盖,不能满足探测机器人后续目标跟踪;使用本文所提方法进行去雾处理后,图片清晰少噪声,图片信息保留完整,效果最佳,达到了探测机器人的使用要求。

为进一步比较两种算法的实时性,实验测算出平均每幅图处理的时间,结果如表1所示。对实验室地面图测算结果为,Dark Channel Prior去雾算法耗时11.344 ms,本文所提算法9.078 ms;对华山一角图测算结果为,Dark Channel Prior去雾算法耗时3.638 ms,本文所提算法2.577 ms。由测试结果可知,本文所提算法速度更快,耗时更短,实时性更强。

(a) 待处理图像A (b) 传统方法去雾算法 (c) 本文方法去雾算法 (d) 待处理图像B (e) 传统方法去雾算法 (f) 本文方法去雾算法

Figure 4. Simulation results of image defogging comparison

图4. 图像去雾对比仿真实验结果

Table 1. Comparison of image defogging processing time

表1. 图像去雾处理时间对比

5. 结论

针对探测机器人在烟雾或有色气体环境中回传图像有雾且多噪声的问题,本文提出了一种改进探测机器人去雾算法,先利用中值滤波去噪,再利用Dark Channel Prior算法进行去雾处理。实验结果表明本文所提算法能使图像更平滑,保护图像边缘,对多噪声的有雾图像处理效果好。该算法使探测机器人传送更加清晰的实时现场视频图像,有助于抢险救灾、科研考察工作顺利进行,增强探测机器人的使用价值。

基金项目

本文受广东省基金面上项目(2019A1515011063),广州大学华软软件学院科学研究、教育教学研究项目(ky202011),广东省科技创新战略专项资金(“攀登计划”专项资金)项目(pdjh2020a0862)资助。

参考文献

[1] 张登, 银鞠铭, 烨钱雯. 图像去雾算法研究现状与展望[J]. 南京邮电大学学报(自然科学版), 2020(5): 1-11.
[2] 杨燕, 姜沛沛, 岳辉. 基于线性变换的自适应透射率去雾算法[J]. 工程科学与技术. 2020(5): 194-200.
[3] 何宜鸿, 李彦锋, 黄树恺, 谭万钏. 基于深度卷积神经网络的自适应图像去雾算法[J]. 电子科技, 2020(8): 70-73.
[4] 邹昌帆, 黄富瑜, 朱晓兵, 孙明, 冯志义. 一种用于自动调焦图像的降噪方法[J]. 光学仪器, 2016(1): 45-48.
[5] 乔元秀, 程朋乐. 林火烟雾图像识别技术研究[J]. 计算机科学与应用, 2016, 6(8): 465-471.
[6] 李冠章, 罗武胜, 李沛, 吕海宝. 修正Retinex照射反射模型的彩色图像增强[J]. 光学技术, 2010, 36(2): 205-208.
[7] 苑尚博, 高轶琛, 宋笑影, 等. 暗通道结合小波变换的雾天图像复原[J]. 计算机应用与软件, 2015, 32(10): 192-195.
[8] Meng, G.F., Wang, Y., Duan, J.Y., Xiang, S.M. and Pan, C.H. (2013) Efficient Image Dehazing with Boundary Constraint and Contextual Regularization. IEEE International Conference on Computer Vision, 9, 617-624.
https://doi.org/10.1109/ICCV.2013.82
[9] 邵明省. 基于混合暗通道算法的图像去雾研究[J]. 计量学报, 2020(7): 796-800.
[10] 赵阳, 王剑, 曹浩男. 基于自适应改进的遥感图像去雾算法研究[J]. 电子设计工程, 2019(19): 164-169.
[11] 乔美丽, 王平, 杜宏伟, 刘新新. 基于雾浓度的去雾方法[J]. 计算机科学与应用, 2018, 8(12): 1813-1822.
[12] 温立民, 巨永锋, 张昌利, 王会峰. 基于改进Kuwahara滤波的图像去雾算法[J]. 控制工程, 2019(5): 997-1002.
[13] Fan, Y. and Wu, X.F. (2013) A Research for Image Defogging Algorithm. Applied Mechanics and Materials, 26, 1653-1656.
https://doi.org/10.4028/www.scientific.net/AMM.409-410.1653
[14] Zhang, X.J., Ng, M.K. and Bai, M. (2017) A Fast Algorithm for Deconvolution and Poisson Noise Removal. Journal of Scientific Computing, 75, 1535-1554.
https://doi.org/10.1007/s10915-017-0597-2
[15] Ma, R.Q. and Zhang, S.J. (2019) An Improved Color Image Defogging Algorithm Using Dark Channel Model and Enhancing Saturation. Optik—International Journal for Light and Electron Optics, 18, 997-1000.
https://doi.org/10.1016/j.ijleo.2018.12.020
[16] He, K.M., Sun, J. and Tang, X.O. (2011) Single Image Haze Re-moval Using Dark Channel Prior. IEEE Transactions on Pattern Analysis and Machine Intelligence, 33, 2341-2353.
https://doi.org/10.1109/TPAMI.2010.168
[17] Guo, F., Tang, J. and Cai, Z.-X. (2014) Objective Measurement for Image Defogging Algorithms. Journal of Central South University, 21, 272-286.
https://doi.org/10.1007/s11771-014-1938-z