基于大气物理模型的快速视觉优化去雾算法
- 格式:doc
- 大小:1.06 MB
- 文档页数:16
基于大气物理模型的快速视觉优化去雾算法作者:付辉吴斌韩东轩黄阳强来源:《计算机应用》2015年第11期摘要:针对雾霾天气条件下单幅图像降质以及现有去雾方法时间复杂度高的问题,以环境光物理模型为基础,引出快速视觉优化去雾算法。
首先对单幅图像阈值分割找到天空区域,并结合二叉树模型定位精确的天空光矢量,进而采用改进的约束最小二乘法滤波细化粗略透射比率,保证其边缘细节较完整且受噪声影响小,最后利用环境光物理模型实现无雾图像的还原,并采用平均梯度、信息熵和视觉保真度等指标对图像进行评价。
实验结果表明,所提算法与基于多尺度Retinex的自适应图像增强方法、基于独立分量的复原方法、快速可视化复原方法和暗原色先验复原方法对比,指标值较好且实时性强。
关键词:暗通道先验;阈值分割;二叉树;最小二乘法滤波中图分类号: TP751文献标志码:A0引言现有的去雾算法可分为两个方向:一是基于图像增强的算法改进,通过提高图像的对比度,从人眼感官的角度优化视觉效果;二是基于图像复原的算法改进,针对环境光物理模型,采用病态方程和图像处理的基本方法还原未知量。
去雾算法基于人眼视觉。
增强类去雾算法通过强化和削弱某些信息达成此目的。
早期的该类去雾算法如全局直方图均衡化[1],对图像整体作均衡处理,但忽视了局部景深变化带来的“晕轮效应”。
对此Kim等[2]用子块部分重叠直方图均衡化和Zimmerman等[3]插值直方图均衡化方法解决了由“块效应”引起的运算复杂度高的问题。
此外,Russo[4]通过多个小波尺度上的增强策略实现图像细节区域较为精细的处理。
刘茜等[5]提出的多尺度Retinex去雾自适应算法(MultiScale Retinex, MSR)对细节处理,其图像压缩效果明显;但其浓雾处理颜色失真明显,同时拉大了光晕和噪声,因而该算法适用于薄雾处理。
基于环境光物理模型的去雾算法对数学模型逆推病态方程,所得的去雾图像效果与现实场景相近,其细节真实细腻。
Kratz等[6]基于Fattal[7]提出将单幅图像作为阶乘马尔可夫随机场的假设,其中场景反照率和景深是两个独立的统计量。
此方法采用典型的期望最大化算法来实现因式分解,恢复出的无雾图像具有精细的边缘细节;但其输出图像被过度增强。
Yu等[8]提出一种快速去雾方法,采用快速双边滤波器实现天空光矢量A的平滑;由于中值滤波处理的速度明显优于双边滤波,因此该方法比采用中值滤波处理的算法[9]要慢。
He等[10]通过观察大量无雾图像,提出暗通道先验理论,即无雾图像中至少有一个颜色通道的像素值很低的结论;但此理论在户外拍摄的图像中,场景与天空亮度相近时不成立。
本文算法属于环境光物理模型的去雾处理,对天空光矢量A采用阈值分割并结合二叉树模型实现较为精确的求取。
并对初始透射比率t(x,y)采用改进的最小二乘法滤波优化,其抑制噪声的同时能最大限度地保留边缘细节。
通过检测平均梯度、信息熵以及视觉信息保真度三种参数,可得本文算法具有良好的人眼视觉效果,以及较强的鲁棒性的结论。
1雾霾成像的环境光物理模型由Narasimhan等[11]引出的环境光传输的物理模型被广泛应用于机器视觉和计算机图形处理领域,其表述式如下:F(x,y)=R(x,y)e-βd(x,y)+A(1-e-βd(x,y))(1)其中:F(x,y)代表雾气图像在(x,y)的像素强度值; R(x,y)表示无雾图像在(x,y)处的像素强度值; t(x,y)=e-βd(x,y)为介质传输的透射比率,β为环境光的散射系数,d(x,y)为景深,此等式表明场景中的光线强度与景深成指数性衰减的关系;A为天空光矢量;R(x,y)e-βd(x,y)代表直接衰减项,表示在场景中的辐射和介质中衰减掉的部分。
从图形学的角度,雾气图像模型的等式表明在RGB三通道中,天空光矢量A、F(x,y)、R(x,y)之间存在几何关系。
透射比率t(x,y)为两条线段的比值。
t(x,y)=‖A-F(x,y)‖‖A-R(x,y)‖=AC-F(x,y)AC-R(x,y);C∈[R,G,B](2利用环境光物理模型实现去雾处理,实质为根据雾气图像F(x,y)估计天空光矢量A、透射比率t(x,y)和无雾图R(x,y)。
对于一幅具有n个像素点的彩色图像F(x,y),存在3n个约束量和4n+3个未知参量。
对未知参量的还原需要大量的假定和前验信息,引言所述的文献[8-9]等去雾算法均在环境光物理模型下,通过自身算法的假定和前验信息得到A、t (x,y)和R(x,y)。
本文算法在He算法[10]前验信息的基础上优化参量求取方法,使得还原图像效果更接近真实值。
图片图1环境光散射模型2本文算法的整体设计天空光矢量A是还原无雾图像的重要参量,大多数基于环境光模型的去雾算法对A值的处理不够精准。
若取整幅图像的最大像素值,一些白色或偏白色的背景目标被误取为A值。
本文采用阈值分割结合二叉树模型选取A值,首先利用阈值分割搜索天空区域,定位A值区间。
再采用二叉树模型对所得的天空区域分块,求取块的平均像素值,比较求取得到的平均值大小,并取像素值大的块分块比较,重复上述步骤至块中的像素点数量小于给定的阈值T。
在锁定块的像素点群中定位A值。
进而采用改进的最小二乘法滤波[12]对初始投射图t(x,y)优化,该算法延续了最小二乘法滤波保持边缘能力强的优势同时其去噪能力强。
本文算法主要步骤如下所示:1)对雾气图像进行阈值分割得到天空分区s1;2)对天空区域s1采用二叉树模型分割并求取灰度均值最大值所在区域;3)重复2)至区域s2的像素个数小于给定的阈值T;4)将s2的每个像素值与255对比,所得最接近的像素值即为A值;5)应用暗通道先验模型确定暗通道图和初始投射图;6)应用改进的最小二乘法滤波优化透射图[12];7)根据公式R(x,y)=F(x,y)-Amax(t1(x,y),t0)+A还原去雾图像。
第11期付辉等:基于大气物理模型的快速视觉优化去雾算法计算机应用第35卷3本文算法的具体实现3.1阈值分割分区将目标和背景分开是阈值分割的目标,本文采用阈值分割的目的是将天空与其他景物相分离。
阈值分割算法中阈值选取往往占用大量处理时间,例如大津法OTSU[13](由Nobuyuki OTSU提出的最大类间方差法)其选取阈值方式为:OTSU=Max[w0(t)*(u0(t)-u)2+w1(t)*(u1(t)-u)/2](3)其中:阈值为t、w0为背景在整幅图像灰度所占比例,u0为背景灰度均值,w1为前景在整幅图像灰度所占比例,u1为前景灰度均值,u为整幅图像的灰度均值。
本文根据先验信息可知天空的像素值靠近255,故采用手动选取阈值法可节约处理时间。
本文选取灰度阈值分割法,该方法是一种单阈值分割方法(只设一个阈值将图像分割为背景和目标两部分)。
首先将图像转换为灰度图像,再利用每阶灰度出现的概率绘制直方图。
原始图像为F(x,y),分割后的图像为F1(x,y),T为选取的阈值,则其基本式为:F1(x,y)=1,F(x,y)≥T0,F(x,y)分别选取阈值T为150、200、210,其效果如图2所示。
本文算法将阈值设定为210,找到天空区域s与原雾气图对照,确定有雾图中的雾霾区域为s1。
图片图2阈值分割图3.2二叉树模型确定天空光矢量A对阈值分割所得的天空区域s1应用二叉树模型确定天空光矢量A。
将雾天图像中对应的s1区域分割为面积相等的两部分,计算这两部分的灰度均值,并比较灰度均值的大小。
选取灰度均值大的部分s2进一步分割,重复上步骤,直到该部分存在像素点a[m,n]的个数小于给定的阈值t。
二叉树分割模型如图3所示。
其中a[m,n]=a[0,0]a[0,1]…a[0,n]a[1,0]a[1,1]…a[1,n]a[m,0]a[m,1]…a[m,n],并将a[m,n]值与255比较,d=|255-a[m,n]|,d取到最小值的a[m,n]即为本文选取的天空光矢量A值。
图片图3二叉树模型定位天空光矢量A3.3改进的约束最小二乘法滤波[12]优化透射比率He方法[10]采用暗通道先验,得出除天空以外的景物其像素值至少有一个通道接近0的结论,并处理得到天空光矢量A和初始透射比率,其中透射比率亮度值大的部分代表光线在此处透过率好。
由于选用模块化处理以及原始投射图带来的深度断续问题,He等[10]采用soft matting优化初始透射比率,其占用该算法 70%以上的处理时间。
本文采用改进的最小二乘法(正则)滤波对透射比率实现优化,传统的正则滤波对透射图边缘细节保持效果好,但其对噪声处理效果不理想。
采用改进的约束最小二乘法滤波[12]处理投射图,能在保持边缘细节的同时较好地处理噪声。
最小二乘法滤波的数学模型是基于图像退化复原模型的二维离散卷积,改进的最小二乘法滤波引入约束条件进行推导。
式(5)给出图像退化模型,f(x,y)为给定图像,n(x,y)为相关噪声,g(x,y)为降质图像,其中g(x,y)的大小为M×N。
g(x,y)=H[f(x,y)]+n(x,y)(5)其中:H[f(x,y)]是二维卷积离散化模型,该式表达如下:h(x,y)*f(x,y)=1MN∑M-1m=0∑N-1n=0f(m,n)h(x-m,y-n)(6改进的最小二乘法滤波[12]给出线性算子B1和B2,并结合t(x,y)构造优化后的透射比率t1(x,y),构造为‖B1t(x,y)‖2+‖B2t(x,y)‖2,且满足约束条件‖g·Ht(x,y)‖2=‖n‖2,n为加性噪声,利用上述两个条件选取拉格朗日系数λ构造函数,并实现求解最小值的问题。
J(t1(x,y))=‖B1t(x,y)‖2+‖B2t(x,y)‖2+λ(‖g·Ht(x,y)‖2·‖n‖2)(7J(t1(x,y))对t(x,y)的最小值采用微分算子求取:J(t1(x,y))(t1(x,y))=2BT1B1t(x,y)+2BT2B2t(x,y)·2λHTg+2λHTt(x,y)=0(8t1(x,y)=(HTH+1λBT1B1+1λBT2B2)-1HTg(9令Rt1(x,y)和Rn为t1(x,y)和n的自相关矩阵,则定义BT1B1=Rt(x,y)RnBT2B2=CTCt1(x,y)=(HTH+1λR-1t(x,y)Rn+1λCTC)-1HTg(10设定对角阵D,M,B,E则H=WDW-1,Rt(x,y)=WAW-1,Rn=WBW-1,C=WEW-1。
t1(x,y)=(WDDW-1+1λWM-1BW-1+1λWEEW)-1WDW-1g(11)透射到频域,式(11)化为:T1(u,v)=H*(u,v)×{|H(u,v)|2+1/λ[Sn(u,v)/St(x,y)(u,v)+1/λ[P(u,v)]2]}-1×T(u,v)(12图4给出初始透射比率构成的初始透射图和利用滤波操作处理后所形成的改进算法透射图,与He算法[10]相比,改进算法透射图更贴近现实。