一种图像雾霾去除方法及装置与流程

文档序号:12273007阅读:378来源:国知局
一种图像雾霾去除方法及装置与流程
本发明涉及图像处理相关
技术领域
,特别是一种图像雾霾去除方法及装置。
背景技术
:近年来,环境污染愈发严重,出现雾霾情况的城市也在不断增加。雾霾的存在使得能见度大大降低。雾天情况下,大气中存在大量的颗粒介质,如水珠,灰尘颗粒等。目标物体的反射光线经过大气时,会被这些介质散射和吸收,光强度发生衰减,导致图像的对比度降低,细节特征被覆盖,色彩严重失真。图像信息的缺失会给目标判定带来一定的困难,特别是在浓雾天气下,可视度极度下降,图像模糊,直接影响交通运输、室外监控、侦查、导航、遥感遥测等户外成像系统效用的发挥。大范围的雾、霾还会导致受污染城市的交通濒临瘫痪、户外工程项目、图像采集系统、遥感图像成像以及户外计算机视觉系统的正常运转等都受到了极大的影响。雾、霾的出现降低了场景的可见度,改变了捕获图像的色彩,降低了照片的对比度与清晰度,这也为后续的图像处理带来困难。在对户外晴天无雾图像的研究中发现,在大部分非天空区域的像素点处,至少有一个RGB颜色通道的值非常低。换句话说,在这样的区域内,总能在RGB三个颜色通道中的至少一个通道中找到一个非常低的像素点值,这个像素点值大部分情况下都接近于零。这一规律就称之为暗通道先验理论。因此,现有基于暗通道先验理论的图像去雾步骤如下所示:(1)利用暗原色先验理论,求取输入图像的暗原色通道图;(2)假设大气光成分值已知,且透射介质均匀。利用暗原色通道图估计透射率;(3)利用暗原色通道图估算大气光成分值;(4)将步骤(2)(3)中估算出的透射率与大气光成分值,结合输入图像中所包含的数据,代入大气散射物理模型中,恢复无雾图像。通过上述步骤,能够将有雾图像恢复为无雾图像。在上述步骤(2)中求取透射率的计算公式为:其中为第i个像素点观测到的c通道的图像强度,因此即为第i个像素点观测到的暗通道的图像强度,A为全球大气光成分值,通常假设为空间不变,ω(x,y)是以像素点(x,y)为中心的方形区域的窗口。然而,采用上述公式计算出来的透射率,由于每个像素点的透视率是以ω(x,y)窗口为基础计算出来的,因此,透射率不够精准,导致最终恢复的无雾图像颗粒感过重。为此,现有技术提出采用抠图算法对透射率进行细化,在抠图算法中,图像的每个像素点认为是由背景色和前景色的线性组合,其公式为:Orgi=Fiαi+Bi(1-αi),其中,F为图像中的前景,B为背景,α为前景的不透明度,其值为0≤α≤1且为连续变化。抠图算法需要用户提供一个粗略的提示图像,根据该提升图像从图像Org中恢复出前景F、背景B和不透明度α。通过引入对照大气散射物理模型公式,可以将无雾图像J看作是前景F,而将大气光成分值A作为背景B,将初次估算的透射率作为提示图像,将细化后的透射率作为不透明度,通过算法得到细化后的透射率。然而,现有的抠图算法一般使用迭代运算以逼近得到细化后的透射率,每步迭代运算的中间结果向量由根据有雾图像得到的拉普拉斯矩阵与前一步迭代运算的中间结果向量计算得到,其中有雾图像划分为多个窗口,而拉普拉斯矩阵的每个元素的值根据有雾图像中包括该元素的窗口计算得到。发明人在实现发明的过程中发现,现有的算法对每步迭代运算的中间结果向量直接进行乘法运算,其运算复杂度与窗口的半径的平方相关,因此运算复杂度较高,运算时间较慢,无法适应快速去雾的需求。技术实现要素:基于此,有必要针对现有技术运算时间较慢,无法适应快速去雾的需求的技术问题,提供一种图像雾霾去除方法及装置。本发明实施例提供一种图像雾霾去除方法,包括:计算有雾图像各像素点的暗原色通道,得到暗原色通道向量,根据所述暗原色通道向量计算大气光成分值和第一透射率向量;采用抠图算法通过迭代运算对所述第一透射率向量进行细化得到第二透射率向量,将每步迭代运算的中间结果向量的每个元素的值分解为有雾图像中对应像素点的RGB值的至少一个线性组合,对每个所述线性组合的系数采用积分图像算法计算得到;根据所述第二透射率向量和所述大气光成分值,依据大气散射模型将所述有雾图像恢复为无雾图像。进一步的,所述采用抠图算法对所述第一透射率向量进行细化得到第二透射率向量,具体包括:根据(L+λU)t'=λt计算第二透射率向量,其中,L为有雾图像的拉普拉斯矩阵,U为单位矩阵,t为第一透射率向量,t′为第二透射率向量,λ为第一常量。更进一步的,所述根据(L+λU)t'=λt计算第二透射率向量,具体包括:采用迭代运算的共轭梯度法对(L+λU)t'=λt进行求解,其中每步迭代运算的中间结果向量为拉普拉斯矩阵L与前一步迭代所得的共轭向量p的乘积Lp,且每步迭代运算得到的乘积Lp作为下一步迭代运算的共轭向量,每步迭代运算得到的乘积Lp的第i个元素其中ωi为有雾图像中以第i个像素点为中心的窗口,pi为共轭向量p的第i个元素的值,Orgi为有雾图像的第i个像素点的RGB值,ωk为有雾图像中以第k个像素点为中心的窗口,Orgm为有雾图像的第m个像素点的RGB值,pm为共轭向量p的第m个元素的值,|ωk|为ωk窗口所包括的像素点数量,μk为ωk窗口所包括的像素点的RGB值的平均值,为共轭向量p在ωk窗口中的平均值,∑k为ωk窗口所包括的像素点的RGB值的协方差,为第二常量。再进一步的,所述窗口的半径大于或等于10。再进一步的,所述第一透射率向量采用如下方式计算:计算其中,ti为第一透射率向量中第i个像素点的第一透射率,ωi为有雾图像中以第i个像素点为中心的窗口,Orgic为有雾图像中第i个像素点的c通道的值,Ac为大气光成分值的c通道的值,c为R通道、G通道或者B通道之一,θ为第三常量,且0<θ≤1。本发明实施例提供一种图像雾霾去除装置,包括:暗原色通道计算模块,用于:计算有雾图像各像素点的暗原色通道,得到暗原色通道向量,根据所述暗原色通道向量计算大气光成分值和第一透射率向量;透射率细化模块,用于:采用抠图算法通过迭代运算对所述第一透射率向量进行细化得到第二透射率向量,将每步迭代运算的中间结果向量的每个元素的值分解为有雾图像中对应像素点的RGB值的至少一个线性组合,对每个所述线性组合的系数采用积分图像算法计算得到;无雾图像恢复模块,用于:根据所述第二透射率向量和所述大气光成分值,依据大气散射模型将所述有雾图像恢复为无雾图像。进一步的,所述透射率细化模块,具体用于:根据(L+λU)t'=λt计算第二透射率向量,其中,L为有雾图像的拉普拉斯矩阵,U为单位矩阵,t为第一透射率向量,t′为第二透射率向量,λ为第一常量。更进一步的,所述根据(L+λU)t'=λt计算第二透射率向量,具体包括:采用迭代运算的共轭梯度法对(L+λU)t'=λt进行求解,其中每步迭代运算的中间结果向量为拉普拉斯矩阵L与前一步迭代所得的共轭向量p的乘积Lp,且每步迭代运算得到的乘积Lp作为下一步迭代运算的共轭向量,每步迭代运算得到的乘积Lp的第i个元素其中ωi为有雾图像中以第i个像素点为中心的窗口,pi为共轭向量p的第i个元素的值,Orgi为有雾图像的第i个像素点的RGB值,ωk为有雾图像中以第k个像素点为中心的窗口,Orgm为有雾图像的第m个像素点的RGB值,pm为共轭向量p的第m个元素的值,|ωk|为ωk窗口所包括的像素点数量,μk为ωk窗口所包括的像素点的RGB值的平均值,为共轭向量p在ωk窗口中的平均值,∑k为ωk窗口所包括的像素点的RGB值的协方差,为第二常量。再进一步的,所述窗口的半径大于或等于10。再进一步的,所述第一透射率向量采用如下方式计算:计算其中,ti为第一透射率向量中第i个像素点的第一透射率,ωi为有雾图像中以第i个像素点为中心的窗口,为有雾图像中第i个像素点的c通道的值,Ac为大气光成分值的c通道的值,c为R通道、G通道或者B通道之一,θ为第三常量,且0<θ≤1。本发明实施例通过将抠图算法的迭代运算的中间结果向量分解为线性组合,对每个所述线性组合的系数采用积分图像算法计算,由于积分图像算法能快速计算得到系数,从而使得中间结果向量的运算复杂度大大降低,提高了运算速度,实现了快速去雾。附图说明图1为本发明一实施例提供的一种图像雾霾去除方法的工作流程图;图2为本发明可选实施例提供的一种图像雾霾去除方法的工作流程图;图3为本发明一实施例提供的一种图像雾霾去除装置的装置模块图;图4为本发明一实施例实现图像雾霾去除方法的设备的结构框图。具体实施方式下面结合附图和具体实施例对本发明做进一步详细的说明。如图1所示为本发明一实施例提供的一种图像雾霾去除方法的工作流程图,包括:步骤S101,计算有雾图像各像素点的暗原色通道,得到暗原色通道向量,根据所述暗原色通道向量计算大气光成分值和第一透射率向量;步骤S102,采用抠图算法通过迭代运算对所述第一透射率向量进行细化得到第二透射率向量,将每步迭代运算的中间结果向量的每个元素的值分解为有雾图像中对应像素点的RGB值的至少一个线性组合,对每个所述线性组合的系数采用积分图像算法计算得到;步骤S103,根据所述第二透射率向量和所述大气光成分值,依据大气散射模型将所述有雾图像恢复为无雾图像。根据大气散射物理模型公式可得Orgi=A+(Ji-A)ti,其中Ji为无雾图像的第i个像素点的RGB值。依据单幅图像去雾,要从已知的Orgi中恢复出无雾时场景光线的强度Ji,步骤S101首先计算出有雾图像各像素点的暗原色通道,得到暗原色通道向量。然后采用现有的计算大气光成分值方式确定大气光成分值A,并计算出第一透射率向量t,第一透射率向量中每个元素与有雾图像的每个像素点对应,第一透射率向量t的第i个元素为有雾图像Org中的第i个像素点的第一透射率。步骤S102通过抠图算法对第一透射率向量进行细化,去除光晕(Halo)效应。从而将抠图算法恢复得到的不透明度α作为第一透射率向量细化后的第二透射率向量。抠图算法一般使用迭代运算以逼近得到细化后的透射率,每步迭代运算的中间结果向量由根据有雾图像得到的拉普拉斯矩阵与前一步迭代运算的中间结果向量相乘得到,其中有雾图像划分为多个窗口,而拉普拉斯矩阵的每个元素的值根据有雾图像中包括该元素的窗口计算得到。因此,如果将拉普拉斯矩阵与前一步迭代运算的中间结果向量直接相乘,其运算复杂度必然与窗口半径相关,导致运算复杂。因此,步骤S102中将每步迭代运算的中间结果向量的每个元素的值分解为有雾图像中对应像素点的RGB值的至少一个线性组合,而每个线性组合的系数都通过积分图像算法计算得到,因此其运算复杂度与窗口半径无关,运算效率得到很大提升。最后,步骤S103根据所述第二透射率向量和所述大气光成分值,依据大气散射模型将所述有雾图像恢复为无雾图像。具体来说,可以采用如下公式:其中ti'为第二透射率向量的第i个元素,ε为预设很小的第四常量,通常取0.1,以保证上式分母不为0。本发明实施例通过将抠图算法的迭代运算的中间结果向量分解为线性组合,对每个所述线性组合的系数采用积分图像算法计算,由于积分图像算法能快速计算得到系数,从而使得中间结果向量的运算复杂度大大降低,提高了运算速度,实现了快速去雾。在其中一个实施例中,所述采用抠图算法对所述第一透射率向量进行细化得到第二透射率向量,具体包括:根据(L+λU)t'=λt计算第二透射率向量,其中,L为有雾图像的拉普拉斯矩阵,U为单位矩阵,t为第一透射率向量,t′为第二透射率向量,λ为第一常量。将Orgi=Fiαi+Bi(1-αi)转换为有雾图像和无雾图像的表示方式为Orgi=Jiti'+A(1-ti'),将第一透射率向量t作为提示图像,可以确定Orgi=Jiti'+A(1-ti')对应的代价函数为(L+λU)t'=λt。从而通过求解(L+λU)t'=λt,得到第二透射率向量t′,其中λ优选为10-4。本实施例通过(L+λU)t'=λt确定第一透射率向量和第二透射率向量的关系,从而通过求解线性方程组得出第二透射率向量,效率更高。在其中一个实施例中,所述根据(L+λU)t'=λt计算第二透射率向量,具体包括:采用迭代运算的共轭梯度法对(L+λU)t'=λt进行求解,其中每步迭代运算的中间结果向量为拉普拉斯矩阵L与前一步迭代所得的共轭向量p的乘积Lp,且每步迭代运算得到的乘积Lp作为下一步迭代运算的共轭向量,每步迭代运算得到的乘积Lp的第i个元素其中ωi为有雾图像中以第i个像素点为中心的窗口,pi为共轭向量p的第i个元素的值,Orgi为有雾图像的第i个像素点的RGB值,ωk为有雾图像中以第k个像素点为中心的窗口,Orgm为有雾图像的第m个像素点的RGB值,pm为共轭向量p的第m个元素的值,|ωk|为ωk窗口所包括的像素点数量,μk为ωk窗口所包括的像素点的RGB值的平均值,为共轭向量p在ωk窗口中的平均值,∑k为ωk窗口所包括的像素点的RGB值的协方差,为第二常量。(L+λU)t'=λt为线性方程组,现有的线性方程组求解方式,主要是对其进行迭代运算,逐步逼近最终的解。共轭梯度法是其中一种有效的通过迭代运算方式。然而,现有的共轭梯度法的求解过程速度较慢,原因是因为每步的迭代运算,都要计算拉普拉斯矩阵L与前一步迭代所得的共轭向量p的乘积Lp。而现有的共轭梯度法是对Lp直接计算,即由于L为拉普拉斯矩阵,L的第(x,y)个元素为其中,ωk为有雾图像中以第k个像素为中心的窗口,δij为克罗内克δ函数的第(i,j)个元素的值,|ωk|为ωk窗口所包括的像素的数量,Orgi为有雾图像中第i个像素的RGB值,Orgj为有雾图像中第j个像素的RGB值,μk为ωk窗口所包括的像素的RGB值的平均值,∑k为ωk窗口所包括的像素的RGB值的协方差,为第二常量。因此,的复杂度为O(Nr2),其中,N为未确定的像素点的数量,r为ωk窗口的半径。因此r不能太大。本实施例对Lp进行分解,将Lp分解为和的线性组合,而和可以通过积分图像快速有效地计算出来。因此,Lp的复杂度将会降低至O(N),从而降低计算Lp的复杂度。本实施例通过对Lp进行分解,降低了计算Lp的复杂度,提高了运算效率。在其中一个实施例中,所述窗口的半径大于或等于10。表1为一个100×130的图像采用前述计算Lp的方式后,不同的窗口半径的迭代次数比较表。表1窗口半径迭代次数比较表窗口半径迭代次数1543101142051窗口是一个方形区域,窗口半径即方形区域一行所包括的像素点的一半。现有的共轭梯度法一般采用窗口半径r=1。但这样的话,会导致一张图像所分割的窗口数量过多,窗口数量的增多会导致迭代次数的增多,从而导致整体运算时间的增大。而采用了前述计算Lp的方式后,由于计算单次Lp的复杂度大幅降低,且变得与窗口半径无关,因此可以将窗口半径增大,从而减少迭代次数。从表1可以看出,当窗口半径大于10之后,迭代次数有显著下降。优选地,窗口半径为20。本实施例通过增加窗口半径从而减少迭代次数,进一步减少整体运算时间。在其中一个实施例中,所述第一透射率向量采用如下方式计算:计算其中,ti为第一透射率向量中第i个像素点的第一透射率,ωi为有雾图像中以第i个像素点为中心的窗口,为有雾图像中第i个像素点的c通道的值,Ac为大气光成分值的c通道的值,c为R通道、G通道或者B通道之一,θ为第三常量,且0<θ≤1。在现实生活中,就算是晴朗气候下,大气中还是会存在部分微尘颗粒(比如我们在大树下乘凉时,从树叶透射过来的光线中我们可以看到微尘颗粒在空气中浮动)。因此,在实际晴朗天气下捕获到的图片中也有微弱的薄雾存在。本实施例引入第三常量θ(0<θ≤1),使得去雾后图像中保留少量的雾、霾成分,去雾后图像显得更加真实。优选地,θ=0.95。同时,在计算第一透射率时,采用的是大气光成分值的暗通道的值,使得第一透射率的计算更为准确。如图2所示为本发明可选实施例提供的一种图像雾霾去除方法的工作流程图,包括:步骤S201,计算有雾图像各像素点的暗原色通道,得到暗原色通道向量,根据所述暗原色通道向量计算大气光成分值。步骤S202,根据所述暗原色通道向量和大气光成分值计算第一透射率向量。具体来说,通过引入常量系数θ(0<θ≤1)使得去雾后图像中保留少量的雾、霾成分,去雾后图像显得更加真实。步骤S203,以第一透射率向量t作为提示图像,通过抠图算法计算第二透射率向量t'。具体来说,采用迭代运算的共轭梯度法对(L+λU)t'=λt进行求解,λ为10-4。其中每步迭代运算的中间结果向量为拉普拉斯矩阵L与前一步迭代所得的共轭向量p的乘积Lp,且每步迭代运算得到的乘积Lp作为下一步迭代运算的共轭向量,每步迭代运算得到的乘积Lp的第i个元素其中:且窗口的半径为10。步骤S204,根据所述第二透射率向量和所述大气光成分值,依据大气散射模型将所述有雾图像恢复为无雾图像。具体来说,采用公式计算得到无雾图像。本发明实施例通过将抠图算法的迭代运算的中间结果向量分解为线性组合,对每个所述线性组合的系数采用积分图像算法计算,由于积分图像算法能快速计算得到系数,从而使得中间结果向量的运算复杂度大大降低,提高了运算速度,实现了快速去雾。如图3所示为本发明一实施例提供的一种图像雾霾去除装置的装置模块图,包括:暗原色通道计算模块301,用于:计算有雾图像各像素点的暗原色通道,得到暗原色通道向量,根据所述暗原色通道向量计算大气光成分值和第一透射率向量;透射率细化模块302,用于:采用抠图算法通过迭代运算对所述第一透射率向量进行细化得到第二透射率向量,将每步迭代运算的中间结果向量的每个元素的值分解为有雾图像中对应像素点的RGB值的至少一个线性组合,对每个所述线性组合的系数采用积分图像算法计算得到;无雾图像恢复模块303,用于:根据所述第二透射率向量和所述大气光成分值,依据大气散射模型将所述有雾图像恢复为无雾图像。本发明实施例通过将抠图算法的迭代运算的中间结果向量分解为线性组合,对每个所述线性组合的系数采用积分图像算法计算,由于积分图像算法能快速计算得到系数,从而使得中间结果向量的运算复杂度大大降低,提高了运算速度,实现了快速去雾。在其中一个实施例中,所述透射率细化模块,具体用于:根据(L+λU)t'=λt计算第二透射率向量,其中,L为有雾图像的拉普拉斯矩阵,U为单位矩阵,t为第一透射率向量,t′为第二透射率向量,λ为第一常量。本实施例通过(L+λU)t'=λt确定第一透射率向量和第二透射率向量的关系,从而通过求解线性方程组得出第二透射率向量,效率更高。在其中一个实施例中,所述根据(L+λU)t'=λt计算第二透射率向量,具体包括:采用迭代运算的共轭梯度法对(L+λU)t'=λt进行求解,其中每步迭代运算的中间结果向量为拉普拉斯矩阵L与前一步迭代所得的共轭向量p的乘积Lp,且每步迭代运算得到的乘积Lp作为下一步迭代运算的共轭向量,每步迭代运算得到的乘积Lp的第i个元素其中ωi为有雾图像中以第i个像素点为中心的窗口,pi为共轭向量p的第i个元素的值,Orgi为有雾图像的第i个像素点的RGB值,ωk为有雾图像中以第k个像素点为中心的窗口,Orgm为有雾图像的第m个像素点的RGB值,pm为共轭向量p的第m个元素的值,|ωk|为ωk窗口所包括的像素点数量,μk为ωk窗口所包括的像素点的RGB值的平均值,为共轭向量p在ωk窗口中的平均值,∑k为ωk窗口所包括的像素点的RGB值的协方差,为第二常量。本实施例通过对Lp进行分解,降低了计算Lp的复杂度,提高了运算效率。在其中一个实施例中,所述窗口的半径大于或等于10。本实施例通过增加窗口半径从而减少迭代次数,进一步减少整体运算时间。在其中一个实施例中,所述第一透射率向量采用如下方式计算:计算其中,ti为第一透射率向量中第i个像素点的第一透射率,ωi为有雾图像中以第i个像素点为中心的窗口,为有雾图像中第i个像素点的c通道的值,Ac为大气光成分值的c通道的值,c为R通道、G通道或者B通道之一,θ为第三常量,且0<θ≤1。本实施例使得去雾后图像中保留少量的雾、霾成分,去雾后图像显得更加真实。如图4所示为本发明一实施例实现图像雾霾去除方法的设备的结构框图,其主要包括:处理器401、存储器402及通信组件403等。其中存储器402中存储前述方法的具体代码,由处理器401具体执行,通信组件403用于进行通信。此外,上述的存储器402中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台移动终端(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。最后应说明的是:以上实施例仅用以说明本发明实施例的技术方案,而非对其限制;尽管参照前述实施例对本发明实施例进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1