技术背景:
近年来,雾霾天气出现频繁。雾霾天气情况下,能见度降低,严重影响了人们正常生活以及视频***的正常工作。实时地改善雾霾天气图像/视频的清晰度和能见度,有重要的实际意义。可以广泛应用于交通安全、视频监控等众多领域。
雾天图像清晰化技术发展至今,目前主要有两种方法:一是基于图像处理的增强方法;二是基于物理模型的复原方法。
图像增强的目的是使恢复之后的图像更加符合人类视觉习惯或有利于计算机***的识别。基于图像增强的去雾方法没有考虑图像降质的原因,仅从图像处理的角度根据主观视觉效果进行对比度增强和颜色校正,这一类方法主要有直方图均衡化、小波变换、同态滤波、Retinex算法等。这些算法可以有效地增强图像的对比度和细节信息,但不能针对图像退化的原因进行有效补偿,不能彻底去除雾气。处理后的图像常常会有颜色上的偏差和噪声放大的现象。针对图像增强存在的问题,国内外的一些研究者对恶劣天气条件下的图像退化机理进行了分析,提出了一些基于物理模型的复原方法。
基于物理模型的方法利用雾天图像退化模型,通过求解图像退化的逆过程来恢复清晰图像,恢复的无雾图像相对而言比较清晰自然。这一类方法主要有:假设场景深度已知的复原方法、利用辅助信息提取深度信息的复原方法以及基于先验信息的复原方法。
场景深度已知的复原方法需要使用昂贵的传感器获取精确的雾天图像场景深度信息,因此在很大程度上限制了这些方法的实际应用。利用辅助信息提取深度信息的复原方法需要不同天气下2张或以上数量的图像估计深度图像,而实际中很难满足图像实时处理的需求。众多学者将目光投入到单幅图像去雾。然而,仅仅通过单幅雾天图像来恢复无雾图像,本身是一个病态问题。这就需要一些先验知识。从事这方面研究的学者主要有Tan、Fattal、何凯明、Tarel等。
Tan等基于无雾图像的对比度必定比有雾图像要高的事实,通过最大化局部对比度的方法实现了单幅图像去雾,但复原后的图像容易产生色调偏移。Fattal基于透射率和物体表面阴影局部不相关的假设,利用独立成分分析(ICA)方法和马尔科夫随机场(MRF)模型实现去雾。该方法的性能很大程度上取决于输入数据的统计特性,对于浓雾图像的复原结果存在较大失真。为了达到更彻底的去雾目的,何凯明等人提出基于暗原色先验的单幅图像去雾技术,并借助软抠图技术改善透射率图,最后得到的复原图像清晰自然。但软抠图技术的使用让整个算法有很高的时间复杂度和空间复杂度,对分辨率为600*400的图像处理时间为10-20s(3.0GHz Intel Pentium4processor)。为提高效率,许多加速算法被提出。Tarel等人提出一种中值滤波的快速去雾方法,中值滤波的性质使得复原图像在景深发生突变的边缘,会产生光晕(Halo)效应。2010年何凯明等人提出一种导向滤波方法来代替先前的软抠图部分,极大降低了算法复杂度。Xie等人对图像亮度分量通过MSR算法求取透射率,取得了一定效果,但其处理600*400的图像耗时为5-8s(3.0GHzIntel Pentium Dual-core),速度也很慢。
此外,在国内,孙抗等人利用双边滤波的方法较好的保持了图像的边缘。2013年甘佳佳等人利用两次不同尺度的双边滤波结果的差值来衡量图像的局部对比度,对雾浓区域和自身亮度值较高的物体进行了一定区分,以此得到了更加准确的大气散射图。恒宗圣等人采用了局部区域分割的方法等等。总之,基于图像复原的图像清晰化算法目前已取得了一定的成果,但存在复杂度较高的问题,处理速度仍然有待进一步提高。并且,目前使用的大气散射模型相对简单,对于较复杂的情况,如天空区域有强烈太阳光或光照非常不均时,去雾效果往往不理想。
发明内容:
本发明的目的在于解决现有的去雾算法对环境的适用性不强以及实时性较差、难以应用于实际的问题,基于大气散射模型,提供一种保持物体颜色的实时视频去雾算法。通过所述方法可很好的恢复雾天图像的颜色和对比度。
为了实现上述目的,本发明提供一种基于颜色保持的实时视频去雾方法,该方法主要包括以下步骤:
步骤1,图像获取:通过成像设备获得一帧雾天图像I;
步骤2,求最小通道图Imin:将步骤1获取的图像在RGB颜色空间,对每个像素点求取RGB分量的最小值,获得最小通道图Imin;
步骤3,估计当前帧大气光值A0:对步骤2获得的Imin的前height/3行(其中height为图像高度)做半径为height/30的最小值滤波。目的在于去除明亮细节,减少非大气光的白色明亮物体干扰。在滤波后前height/3行找出最亮像素点,将原图对应位置取RGB三通道中的最大值作为当前帧估计的大气光值A0;
步骤4,滑动平均求得大气光值A:在雾天视频处理过程中,A值的波动可能会造成复原结果出现明暗跳变现象,影响视觉效果。为使A值变化平稳,采用滑动平均的方法,将当前帧估计的大气光值A0与前7帧图像估计的大气光值求平均得到当前帧的最终大气光值A。
步骤5,初步估计透射率图由最小通道图Imin可得到初步估计的透射率图
步骤6,下采样透射率为减少处理时间,先将下采样得到使得的宽高分别为原图宽高的1/4;
步骤7,导向滤波优化下采样透射率用3×3的方形结构元素b对做形态学开运算,得到作为导向滤波的输入图,作为导向图,进行导向滤波以平滑区域内部,同时达到保持边缘的目的,经导向滤波后,得到优化后的下采样透射率td(x);
步骤8,上采样td(x)得到最终透射率图t(x):采用线性插值的方式,得到原来尺寸的优化后透射率图t(x);
步骤9,白色区域的修正:由于天空等白色区域不满足暗原色先验规律,这些区域的透射率被低估,需要进行修正,得到修正后的透射率图t′(x);
步骤10,初步复原无雾图像J:将估计出的最终大气光值A和透射率图t′(x)带入大气散射模型,获得初步去雾图像;
步骤11,自适应亮度调整:对初步去雾后的图像J各像素点RGB三通道做同比例增强,以保持物体颜色,得到最终的复原图像。
本发明采用优化的导向滤波方法对透射率图进行平滑处理。其次,针对去雾后图像普遍存在的偏暗情况,给出一种保持物体颜色的自适应亮度调整方法。针对大面积天空等灰白区域存在的失真问题,提出修正方案。最后,为实时处理更高分辨率的图像,在优化透射率时采用了下采样的方法。本发明不仅去雾效果清晰自然,而且处理速度快,具有广泛的实用性。
具体实施方式
为了更好的理解本发明,下面结合具体实施方式对本发明的颜色保持的实时视频去雾算法进行更为详细的描述。在以下的描述当中,当前已有的现有技术的详细描述也许会淡化本发明的主题内容,这些描述在这里将被忽略。
图1是本发明颜色保持的实时视频去雾算法的一种具体实施方式的流程图,在本实施方案中,按照以下步骤进行:
步骤1,获取一帧雾天图像,如图2;
步骤2,求最小通道图Imin。
将步骤1所获得的雾天图像在RGB颜色空间,对每个像素点求取RGB分量的最小值,获得最小通道图Imin,所采用的公式如下:
步骤3,估计当前帧大气光值A0。
对步骤2所获得的最小通道图Imin前height/3行(其中height为图像高度)做半径为height/30的最小值滤波。目的在于去除明亮细节,减少非大气光的白色明亮物体干扰。在滤波后前height/3行找出最亮像素点,将原图对应位置取RGB三通道中的最大值作为当前帧估计的大气光值A0;
步骤4,滑动平均求得大气光值A。
在雾天视频处理过程中,A值的波动可能会造成复原结果出现明暗跳变现象,影响视觉效果。为使A值变化平稳,采用滑动平均的方法,将当前帧估计的大气光值A0与前7帧图像估计的大气光值求平均得到当前帧的最终大气光值A。假设数组Af[8]用于保存包括当前帧在内的8幅图像所估计的大气光值。设count为当前帧的序号,k=count%8,具体步骤是:
当count=0(首帧):
估计首帧大气光值Af[0],并初始化Af[7]=Af[6]=Af[5]=Af[4]=Af[3]=Af[2]=Af[1]=Af[0]
计算首帧最终大气光值:
A=mean(Af)=(Af[0]+Af[1]+Af[2]+Af[3]+Af[4]+Af[5]+Af[6]+Af[7])/8=Af[0]
当count=1,2,3…N:
估计第count帧大气光值,更新A[k],计算第count帧最终大气光值:
A=mean(Af)=(Af[0]+Af[1]+Af[2]+Af[3]+Af[4]+Af[5]+Af[6]+Af[7])/8
例如,当count=99,
估计第99帧大气光值,k=count%8=3,更新A[3],计算第99帧最终大气光值:
A=mean(Af)=(Af[0]+Af[1]+Af[2]+Af[3]+Af[4]+Af[5]+Af[6]+Af[7])/8
此时,Af[2]、Af[1]、Af[0]、Af[7]、Af[6]、Af[5]、Af[4]分别为第98、97、96、95、94、93、92帧估计的大气光值。
经过上述滑动平均后,可得到当前帧最终的大气光值A。
步骤5,初步估计透射率图
由步骤2所获得的最小通道图Imin和步骤4获得的大气光值A可得到初步估计的透射率图所采用的公式如下:
其中,参数ω为0.9,作用是保留一定程度的雾气,使图像更加真实;
步骤6,下采样步骤5所获得的透射率
为减少处理时间,先将下采样得到使得的宽高分别为原图宽高的1/4;
步骤7,导向滤波优化步骤6所获得的下采样透射率具体做法如下:
用3×3的方形结构元素b对做形态学开运算,得到
以作为导向滤波的输入图,作为导向图,参数epsilon选为0.01,导向半径为图像宽高较小者的1/20,进行导向滤波以平滑区域内部,同时达到保持边缘的目的,经导向滤波后,得到优化后的下采样透射率td(x);
步骤8,上采样步骤7获得的td(x)得到最终透射率图t(x)。
采用线性插值的方式,得到原来尺寸的优化后透射率图t(x);
步骤9,白色区域的修正。
由于天空等白色区域不满足暗原色先验规律,这些区域的透射率被低估,需要进行修正。具体做法如下:
首先计算每个像素点RGB三通道与大气光值A距离的最大值,记为Δmax(x):
若像素点三个通道强度值都靠近A,即Δmax(x)<D(D为常量),则认为该区域是天空等亮区。并对该点的透射率t(x)进行修正:
其中D取值为50
若Δmax(x)>D,无需修正,t′(x)=t(x)。于是得到修正后的透射率图t′(x);
步骤10,初步复原无雾图像J。
将估计出的最终大气光值A和透射率图t′(x)带入大气散射模型,获得初步去雾图像:
其中,t0是透射率下限,取值为0.2,目的是防止t(x)趋近于0时出现0/0的不稳定情况,物理意义在于在某些雾稠密的区域仍然保留一定数量的雾。
步骤11,自适应亮度调整。
对初步去雾后的图像J各像素点RGB三通道做同比例增强,以保持物体颜色,采用的公式如下:
先对初步去雾后图像J每个像素点取三通道最大值,记为Jmax(x):
并将该点增强的比例限制在270/Jmax(x)以下,以保持颜色,这也在一定程度上减少了对亮区过增强而造成的细节丢失。这里分子取270而不是255,相当于增加了一定裕量,目的是使原本就相似的像素在提升亮度后更趋近于一致,减少噪声。k(x)根据输入图像三通道均值Bavg,Gavg,Ravg得到。k(x)计算表达式如下:
经过亮度调整后,得到最终的复原图像,如图3所示。
综上所述,本发明首先对输入图像的每个像素点求RGB分量的最小值,得到最小通道图,记为Imin,然后对Imin图像的上部分进行最小值滤波,并在滤波后区域找出最亮像素点,将原图的对应位置像素点取RGB三通道中最大值作为当前帧估计的大气光值A0,采用滑动平均方法得到最终平稳的大气光值A。由Imin也可以得到初步估计的透射率图下采样后记为对做导向滤波以使景深相同的区域具有相同的透射率值,再将导向滤波后td(x)通过线性插值的方法上采样至原来尺寸,于是得到优化后的透射率图t(x),对天空等白色区域的透射率进行修正,得到最终的透射率图t′(x)。将已估计出的大气光值A和透射率图t′(x)带入大气散射模型,获得初步去雾图像。经过进一步亮度调整,得到最终复原图像。
尽管上面对本发明说明性的具体实施方式进行了描述,但应当清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。