APP下载

结合OSTU 阈值法的自适应DCP 图像优化算法*

2022-07-25刘长明曹红燕邵帅超

火力与指挥控制 2022年6期
关键词:灰度滤波阈值

刘长明,曹红燕*,范 焱,方 炜,邵帅超

(1.中北大学电气与控制工程学院,太原 030051;2.北方自动控制技术研究所,太原 030006;3.陆军装备部驻北京地区军事代表局驻太原地区某军事代表室,太原 030000)

0 引言

雾霾天气中采集到的图片质量差,一定程度上影响了人们日常活动;在部队作战中,干扰了目标信息,数据分析出现偏差,精确度降低。图像去雾研究与天气的随机性及复杂性有一定的关系,雾霾天气下拍摄的图像能见度低,亮度较弱。在此背景下,为了获取到更好的图像去雾效果,学者们提出了很多图像去雾的处理算法。文献[4]中,TAN等人在MRF 模型的基础上,通过设定图像边缘点梯度的损失函数,同时采用图像分割方法对输入图像的大气光值进行计算,图像处理的结果对比度更加明显,但是图像颜色过饱和,出现了光晕的现象。文献[5]提出一种从单幅图像中估计传输函数的方法,以光的传播和采集场景中物体表面阴影部分局部独立为理论依据,推导传播图像的信息量,虽然图像质量有一定的提升,但图像表面的反射系数通常比较复杂并且不唯一,得不到准确的透射率,图像失真严重。文献[6]中,HE 提出了一种基于暗原色先验(dark channel prior,DCP)的图像去雾理论,该理论是由大量的实验统计而得到规律,有雾图像利用该方法处理后能得到较好的效果,但是由于初始透射率的处理相对粗糙,需要用软抠图处理,增加了运行时间;且大气光值和透射率的估计存在一定误差,导致图像处理的效果不佳。文献[7]中,CHEN 等人提出一种纠正透射率的方法,归一化处理明亮区域的灰度,该算法能在保持图像不失真的前提下,提高处理速度,但是没有针对天空区域和非天空区域分别处理,导致图像出现“白边”。文献[8]中,XING 等人将暗通道估计的透射率进行自适应矫正,融入算法模型得到去雾后的图像结果,虽然能较好地处理一些带光源的图像,但是在粗分割后对于微小间隙处理的不好,不能有效地恢复图像的细节信息。文献[9]中,WANG 等人基于DCP 理论,将最小值滤波替换为双边滤波,得到比原始算法更精细的透射率,算法经验证有效,但是结果对含有大范围明亮区域的图像效果不合理。DCP 图像去雾算法是最经典的算法之一,虽有一定的不足,但是为后续研究提供了重要的理论基础。

本文在HE 提出的DCP 算法框架上进行改进,以有雾图像为主要研究对象,采用改进的OSTU 阈值法进行分割,结合本文的大气光值与透射率估计方法以及双指数滤波的边缘平滑处理,改善图像的去雾效果。实验表明,所提算法的处理效果得到改善,能恢复较多的图像细节,避免光晕及色彩失真等现象。

1 DCP 去雾算法

DCP 去雾算法,即暗通道先验(dark channel prior)去雾算法。在DCP 算法提出前,学者们大多在研究图像的数学公式,针对图像本身的清晰度、对比度、色度进行改进,没有深度分析自然环境因素对图像的影响。HE 在提出DCP 理论后,进一步变换大气散射数学模型,对图像进行去雾,实验结果有效证明了该算法的可行性。DCP 去雾算法主要思路是提取图像暗通道、估计大气光值与透射率、透射率优化、模型反演推算原图,其退化模型可以用式(1)表示:

DCP 去雾算法虽然能达到一定的去雾效果,但还需进一步改进。在建立模型前,假设大气光值是常数,透射率在局部邻域内也恒定不变。这种情况一般时成立,可以满足算法处理图像的要求,但对于不同目标和场景深度的边缘区域,假设不成立,透射率在局部邻域内不是恒定不变的。因此,DCP 算法处理结果有一定缺陷,边缘部分处理效果较差,在色彩明亮部分透射率的估计值偏大,容易缺失部分特征信息,导致结果颜色失真。由于明亮区域分割的影响导致大气光值估计误差较大,影响透射率的计算,尤其是对含明亮区域多的图片。

2 改进算法

本文的算法是在HE 提出的DCP 去雾算法基础上进行,主要对图像分割、大气光值估计、透射率估计以及透射率优化4 部分进行改进,具体步骤如图1 所示。

图1 本文改进算法流程图

输入:有雾图像

输出:去雾图像

Step1 输入有雾图像,利用改进的双阈值OSTU分割法确定阈值,以该值为临界将图像分成前景和背景两个区域;

Step2 利用改进算法估计大气光值,根据R、G、B 3 个颜色通道的值及心理灰度公式求取符合要求的大气光值;

Step3 基于图像分割后的不同情况,分析图像失真原因,引用最佳阈值估算更准确的透射率;

Step4 采用双指数滤波器优化透射率,精细化处理所得的估计值,将计算的参数代入DCP 去雾算法框架,求得最后的去雾图像。

2.1 改进的OSTU 阈值法

OSTU 阈值分割算法即最大类间方差法,依据参数灰度值将图像分割为前景和背景两部分,计算二者方差,得出一个灰度阈值令类间方差最大或者类内方差最小即为该图像的分割阈值。假设一副M×N 图像,灰度值为m,m∈[0,255],灰度为t,具体计算步骤如下:

1)计算背景部分的像素占图像总像素的比值:

2)计算前景部分的像素占图像总像素的比值:

3)计算背景部分灰度的平均值:

4)计算前景部分灰度的平均值:

5)计算该图像的灰度累计值:

6)求该图像的类间方差:

8)由灰度值阈值判别公式求最佳阈值:

实际的图像不只有前景与背景两部分,尤其含天空区域或者明亮区域多的图像通常带有阴影部分。该部分平均灰度小,一般呈暗性,可以与背景和前景形成对比进行分割,但由于边界灰度值存在跃变,原阈值分割法处理效果会受影响。本文在OSTU算法的基础上进行改进,目前关于OTSU 的改进算法很多,如双阈值、多阈值、自适应阈值等。使用硬阈值时,在选取的统一阈值处会出现不连续的现象,不能确保信号的连续性,当不光滑的信号进行重构时会出现信号的震荡,有些严重的会产生“伪吉布斯现象”;软阈值相比硬阈值,在统一阈值处的连续性较好,不会使信号断层,重构后的信号震荡不明显,但是会存在较大的偏差,在后期对图像进行数据分析时,结果存在一定的误差;半软阈值算法作为改进后的阈值算法,能够针对硬阈值和软阈值的特性取长补短,避免了二者的缺陷,但是在计算时由于要设定两个不同的阈值,导致复杂度和计算量更大,且需要人为设定参数,该设定方法没有具体的统一规定,结果影响较大。本文采用自适应阈值算法,主要思路是采用双阈值分割法分割前景、背景、阴影3 部分,该方法对含明亮区域过多的图像处理效果更佳。首先选择两个阈值T和T,将图像分为α、α、α3 个部分,设p、q 为两个阈值的数值,且p<q;按以上方法依次求3 个部分的像素占比ω、ω、ω和灰度平均值μ、μ、μ,最后得出本文改进分割算法的最佳灰度值阈值判别公式,如式(15)所示,以最佳阈值将图像分割为新的前景及背景区域。

图2(a)将两幅带有天空的有雾图进行分割处理,图2(b)是原OSTU 分割算法的结果图,图2(c)是图像通过改进的双分割算法的结果。

图2 图像分割结果

由图2 结果对比可知,本文采用的双阈值分割算法相比原OSTU 算法能更准确地识别建筑物的细节部分,减小明亮区域对图像边缘的识别干扰,可以更清晰地分割远处建筑物的字体。本文采用的分割算法,可以得到更有效的结果,更好地处理细节特征。

2.2 改进的大气光值估计

计算清晰图像的前提条件是大气光值A 已经求出,所以大气光值决定着复原图像的效果,对透射率的估计有也有着重要的作用。目前大部分学者采用HE 方法估计,选取图像暗通道中最亮的前0.1%像素,大气光值则为该选取像素在有雾图像中对应像素的最大强度值。但是HE 方法选取的大气光值会受高亮区域噪声及亮色物体的影响导致色彩出现偏差。本文采用的大气光值由R、G、B 3 个颜色通道的值转换而来,引用心理学灰度公式,如式(16)所示。

依据本文的大气光值估计方法,选出合适的像素点,结果如图3 所示。图3(a)是有雾图像,图3(b)是HE 算法的结果图,图3(c)采用的算法是在He算法框架下,透射率延用原算法,只对大气光改进,由图3 的结果对比可知,图3(c)的视觉效果优于图3(b),细节更清晰,去雾效果更好,说明了本文大气光值估计方法的有效性与实用性。

图3 大气光值优化后的去雾结果对比

2.3 改进的透射率估计

DCP 算法对于前景和背景的透射率估计均采用最小值估计,用引导滤波进行均值化修正,因为图像前景透射率偏大,背景透射率偏小,滤波模板存在透射率的错误估计,导致结果图像存在“白边”,交界处透射率不连贯,界线明显。鉴于不同的分布情况,选择自适应透射率估计方法补偿透射率估计的不足。本文利用改进的阈值分割法,将图像分为新的前景和背景区域,即图4 中的白色部分表示前景,虚线部分表示背景,在此基础上,根据图像的中心点和中值点的位置以及前景和背景区域的面积大小,大致分4 种情况进行讨论。如图4 所示,具体介绍如下。

1)图4(a)中,中心点与中值点都位于前景区域,背景区域面积小于前景区域,最小值滤波和中值滤波对透射率的估计影响不大,两种方法都可采用;

图4 中心点与前景背景区域分布

由本文分析可知,单独使用最小值滤波和中值滤波的其中某一种方法都会导致透射率的估计出现偏差,结果图像出现不同程度的失真;本文将最小值滤波应用于上述情况(1)、情况(2),计算公式如式(17)所示,将中值滤波应用情况(3)、情况(4),计算公式如式(18)所示。

为了使透射率的计算更具自适应性,将2.2 节改进的阈值与本节算法融合,更加准确地估计透射率,更有效地处理细节信息,如式(19)所示。

2.4 透射率优化

将2.3 节得到的透射率进一步优化,采用双指数滤波器进行平滑去噪,该滤波器能够很好地保护边缘信息,能实现并行化处理,具有一定时效性具体步骤如下:

1)执行正向递归,分解透射率:

2)执行反向递归:

3)优化后的透射率:

式中,λ 和σ 是调节平滑程度的参数,优化后的透射率代入第1 节的式(1)中,求取最后的去雾图像。结果如下页图5 所示,图5(a)是原图,图5(b)、图5(c)是HE 方法中的透射率图及图像去雾结果图,图5(d)、图5(e)是通过本文算法的透射率图及图像去雾结果图。

图5 不同透射率图及处理结果对比

3 实验结果与分析

3.1 算法验证与结果

本文所提算法在HE提出的算法框架下进行改进,首先选择两幅图像进行算法测试,验证有效性。带天空区域的自然环境下的有雾图像,以及MATLAB 中经典的lena 后期加雾图,分别经HE 算法与本文算法进行去雾处理。图6 所示是带有天空区域的测试图像1 的结果对比,图6(a)是原图,图6(c)是经过HE 算法的处理结果,图6(e)是本文算法处理结果,图6(b)、图6(d)、图6(f)是图像对应的灰度分布直方图。由图像结果可知本文算法处理的结果更自然,图像质量更高。由3 幅图像的灰度直方分布图可知,测试图像经过HE 算法处理后灰度值有一定提高,经过本文算法处理后的灰度值比HE 算法明显增强,均匀地分布在[0,250]。

图6 单幅自然有雾图像处理结果的对比以及对应的直方图

为了验证图像对边缘细节的处理效果,采用canny 边缘检测算子对图像进行处理并对比结果,如图7 所示。首先将MATLAB 中经典的测试图像lena 图像经过加雾算法得到有雾的结果图像,然后将有雾图像经过HE 算法与本文算法处理。对比分析结果,图7(a)表示MATLAB 加雾处理后的lena测试图,图7(c)表示经过HE 算法去雾后的图像结果,图7(e)表示经过本文算法去雾后的图像结果,图7(b)、图7(d)、图7(f)分别表示3 幅图像经过canny 边缘检测的图像识别结果,可以明显地看出,经过HE 与本文算法处理后的图像细节信息更多,原始的有雾图像人物的帽子上不能有效地检测出装饰物,但存在很多识别错误及漏检的情况。针对图像的边缘部分,例如右下角区域的背景信息,本文所提算法比HE 算法能够识别更多的特征信息,更加有效地处理图像边缘部分。

图7 单幅人工加雾图像处理结果的对比以及对应的边缘检测结果

3.2 客观评价

为了进一步地证明算法的有效性,采用多幅有雾图像对比不同的算法,本文采用的算法为HE算法、CHEN算法、XING算法、WANG 算法以及本文算法,分析的客观指标采用选择结构相似性(SSIM)、峰值信噪比(PSNR)、信息熵(H)3 种评判依据,本文的图像实验平台是3.6 GHz CPU,win 10操作系统,32 G RAM 的PHILIPS 台式计算机,主要仿真软件是MATLAB 2019a。图8 是测试图像的原图,图9~图13 是多幅测试图像经过不同算法的处理结果,图8(a)是经文献[6]HE 算法的处理结果,图8(b)是经过文献[7]CHEN 算法的处理结果,图8(c)是经过文献[8]XING 算法的处理结果,图8(d)是经过文献[9]WANG 算法的处理结果,图8(e)是本文算法的处理结果,下页表1 是图像处理结果的客观评价指标值,图14 是客观指标值的对比曲线图。

表1 不同算法的客观指标

图8 测试原图

图9 不同算法对测试图1 的去雾结果

图10 不同算法对测试图2 的去雾结果

图11 不同算法对测试图3 的去雾结果

图12 不同算法对测试图4 的去雾结果

图13 不同算法对测试图5 的去雾结果

图10 客观指标结果对比

由图9~图13 的结果分析可知,去雾效果都有一定的改善,但是DCP 算法过度增强,处理的结果虽整体效果较好,但存在失真现象;经过CHEN 算法处理的图像在天空区域没有失真,但在楼房和山体的轮廓处出现了“白边”现象;经过XING 算法处理后的图像由于采用双边滤波精细化透射率,对于包含大面积明亮区域的图像处理效果一般,存在过饱和现象;WANG 算法对包含大部分明亮区域的图像处理效果还需进一步改善;本文算法相比别的算法在细节处有较好的保留,真实地还原了图像特征信息,在处理效果上具有较大优越性。

由客观数据表1 及数据可视化图14 分析可知,算法的结构相似性值最大,取得了较好的人眼视觉效果,在图像不失真的情况下,峰值信噪比最好,达到了预期的去噪效果;对于信息熵,背景明亮区域色彩单一,相比前景区域,包含细节信息较少,前4 种算法将明亮区域过度地还原,导致处理结果不够自然,本文所提算法采用改进的OSTU 阈值法,将含明亮区域的图像首先分割为前景和背景区域,其次针对不同的情况,采用自适应的透射率估计算法,可以更准确更有效地计算透射率。综上所述,本文提出的算法比列举的其他算法有一定的优势。

4 结论

针对DCP 去雾算法中的不足,采用改进的OSTU 阈值法更有效地分割图像,更精确提取明亮区域,识别物体边缘细节,为后续透射率的计算做了很好的铺垫。利用心理灰度公式改进DCP 去雾算法中大气光值的估计,筛选更符合要求的像素点,并用实验结果说明了算法的可行性。其次针对分割后的4 种情况,对透射率进行改进,融合最小值滤波及中值滤波,得到自适应的透射率算法,并将其精细化处理,求取更精确的透射率。最后将大气光值及透射率等参数应用于DCP 去雾框架中进行图像复原。经实验结果分析可知,本文所提算法的去雾效果自然有效,分割图像的处理效果较好,可以保留更多图像特征信息,提高图像质量,具有一定的实用价值。但是改进的算法相对复杂,在运算时间和效率上还有待优化,后续会将该算法与变分模型融合运算,进一步验证算法处理结果及时间效率。除了算法本身的有效性,还需要进一步研究算法的实用性,将算法硬化,设计对应的道路监测系统,未来可应用于摄像头等监控设备中。

猜你喜欢

灰度滤波阈值
基于HP滤波与ARIMA-GARCH模型的柱塞泵泄漏量预测
非平稳声信号下的小波变换去噪方法研究
非均匀光照下文本图像分割算法研究
应用于农业温度监测的几种滤波算法研究
天津港智慧工作平台灰度发布系统和流程设计
华为“灰度”哲学
Arduino小车巡线程序的灰度阈值优化方案
利用迭代软阈值方法抑制恒时演化类核磁共振实验中的采样截断伪峰
基于非下采样剪切波变换与引导滤波结合的遥感图像增强
两种改进的局部阈值分割算法