发明内容:
本发明的目的在于解决现有的能见度测试方法依赖大气透射仪等硬件设施、需要人工多点观测等局限性,基于透射率估计和场景深度,提供一种简单精确的基于单幅图像的能见度估计方法,通过所述方法可较容易的计算出雾天图像的能见度,为评价去雾算法的性能提供一种标准。
为了实现上述目的,本发明提供一种基于场景深度的单幅雾天图像能见度估计方法,该方法主要包括以下步骤:
步骤一,图像获取:通过成像设备获得一帧雾天图像I;
步骤二,透射率t′的估计,包括如下8个步骤:
步骤1,求最小通道图Imin:将步骤1获取的图像在RGB颜色空间,对每个像素点求取RGB分量的最小值,获得最小通道图Imin;
步骤2,估计当前帧大气光值A0:对步骤1获得的Imin的前height/3行(其中height为图像高度)做半径为height/30的最小值滤波。目的在于去除明亮细节,减少非大气光的白色明亮物体干扰。在滤波后前height/3行找出最亮像素点,将原图对应位置取RGB三通道中的最大值作为当前帧估计的大气光值A0;
步骤3,滑动平均求得大气光值A:在雾天视频处理过程中,A值的波动可能会造成复原结果出现明暗跳变现象,影响视觉效果。为使A值变化平稳,采用滑动平均的方法,将当前帧估计的大气光值A0与前7帧图像估计的大气光值求平均得到当前帧的最终大气光值A。
步骤4,初步估计透射率图由最小通道图Imin可得到初步估计的透射率图
步骤5,下采样透射率为减少处理时间,先将下采样得到使得的宽高分别为原图宽高的1/4;
步骤6,导向滤波优化下采样透射率用3×3的方形结构元素b对做形态学开运算,得到以作为导向滤波的输入图,作为导向图,进行导向滤波以平滑区域内部,同时达到保持边缘的目的,经导向滤波后,得到优化后的下采样透射率td(x);
步骤7,上采样td(x)得到最终透射率图t(x):采用线性插值的方式,得到原来尺寸的优化后透射率图t(x);
步骤8,白色区域的修正:由于天空等白色区域不满足暗原色先验规律,这些区域的透射率被低估,需要进行修正,得到修正后的透射率图t′(x);
步骤三,场景深度d′估计:利用图像的灰度梯度信息中可以反映景物的细节信息,在计算景物深度信息时加入梯度信息。采用计算在像素8邻域内0°、90°、45°和135°4个方向的一阶偏导数P0°,P45°,P90°,P135°,再采用二阶范数推算像素梯度:
将此梯度信息加入到景深的计算中去。
步骤四,计算图像中每一个像素点的能见度V。根据步骤二得到的透射率t′和步骤三得到的景深估计d′,利用公式可以求得每一个像素的能见度的估计V。
步骤五,利用特强浓雾因子估算单幅雾天图像的能见度:引入概率统计的思想,根据伯努利大数定律可知单幅雾天图像若整体雾浓度属于某一个级别,则该幅图像中的大部分像素点计算的能见度值分布在该级别雾所对应的能见度区间。因此,利用特强浓雾因子占有率的不同,来确定单幅图像的能见度。
本发明在分析雾天图像的特点的基础上,提出一种基于场景深度的单幅雾天图像能见度估计方法来评价去雾算法效果的优劣。该方法基于大气退化物理模型估计透射率,采用一种景物深度估计法估算场景深度,并依据能见度测量仪原理求取大气消光系数。最后引入概率统计的思想,对单个像素点计算能见度并按照雾天能见度等级统计每个等级像素能见度所占概率,并通过特强浓雾因子的占有率估计出单幅雾天图像的能见度。该方法弥补了对雾天图像客观评价指标中能见度估计的空白,仅仅对单幅雾天图像进行估算,计算简单、估计准确度高,不依赖任何硬件设施,减少人工参与的操作。
具体实施方式
为更好的理解本发明,下面结合具体实施方式对本发明的能见度估计算法进行更为详细的描述。在以下的描述当中,当前已有的现有技术的详细描述也许会淡化本发明的主题内容,这些描述在这里将被忽略。
图1是本发明基于透射率和场景深度的单幅雾天图像能见度估计方法的一种具体实施方式的流程图,在本实施方案中,按照以下步骤进行:
步骤一,获取一帧雾天图像;
步骤二,透射率的估计,图2是估算透射率的流程图,包括如下过程:
步骤1,求最小通道图Imin。
将步骤一所获得的雾天图像在RGB颜色空间,对每个像素点求取RGB分量的最小值,获得最小通道图Imin,所采用的公式如下:
步骤2,估计当前帧大气光值A0。
对步骤1所获得的最小通道图Imin前height/3行(其中height为图像高度)做半径为height/30的最小值滤波。目的在于去除明亮细节,减少非大气光的白色明亮物体干扰。在滤波后前height/3行找出最亮像素点,将原图对应位置取RGB三通道中的最大值作为当前帧估计的大气光值A0;
步骤3,滑动平均求得大气光值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。
步骤4,初步估计透射率图
由步骤1所获得的最小通道图Imin和步骤3获得的大气光值A可得到初步估计的透射率图所采用的公式如下:
其中,参数ω为0.9,作用是保留一定程度的雾气,使图像更加真实;
步骤5,下采样步骤4所获得的透射率
为减少处理时间,先将下采样得到使得的宽高分别为原图宽高的1/4;
步骤6,导向滤波优化步骤5所获得的下采样透射率具体做法如下:
用3×3的方形结构元素b对做形态学开运算,得到
以作为导向滤波的输入图,作为导向图,参数epsilon选为0.01,导向半径为图像宽高较小者的1/20,进行导向滤波以平滑区域内部,同时达到保持边缘的目的,经导向滤波后,得到优化后的下采样透射率td(x);
步骤7,上采样步骤6获得的td(x)得到最终透射率图t(x)。
采用线性插值的方式,得到原来尺寸的优化后透射率图t(x);
步骤8,白色区域的修正。
由于天空等白色区域不满足暗原色先验规律,这些区域的透射率被低估,需要进行修正。具体做法如下:
首先计算每个像素点RGB三通道与大气光值A距离的最大值,记为Δmax(x):
若像素点三个通道强度值都靠近A,即Δmax<D(D为常量),则认为该区域是天空等亮区。并对该点的透射率t(x)进行修正:
其中D取值为50
若Δmax>D,无需修正,t′(x)=t(x)。于是得到修正后的透射率图t′(x);
步骤三,估计场景深度d′。
目前主要通过雷达、激光测距仪等精密仪器测量图像的景深,也可以利用同一角度降质程度不同的多幅图像和不同角度的多幅图像求取图像的景深,但是这些方法对差异图像获取不便,因此也无法在实时监控情况下对图像进行处理。平时拍照时,需要聚焦景物,观察发现其聚焦点大多数是在照片的中心位置。但一幅图像的景物深度是以焦点作为中心向周围辐射的。越远的地方(越靠近图像的上方),景物深度越大,则可以粗略得到:
其中:(i,j)表示的是m×n维图像上的任一像素点的坐标,c1为深度调整参数。
采用公式(1)估算景物深度会造成景物的细节信息损失,这是因为景物存在一定的高度。但是,图像的灰度梯度信息中可以反映景物的细节信息。由于,传统的图像灰度梯度估算方法对噪声十分敏感,导致其在实际应用中效果并不是十分理想。针对该缺点,并满足保留细节和降噪平滑的要求,采用计算在像素8邻域内0°、90°、45°和135°4个方向的一阶偏导数的有限差分从而求得像素梯度。求解过程如下:
0°方向的偏导数:P0°[i,j]=f[i+1,j]-f[i-1,j]
90°方向的偏导数:P90°[i,j]=f[i,j+1]-f[i,j-1]
45°方向的偏导数:P45°[i,j]=f[i-1,j+1]-f[i+1,j-1]
135°方向的偏导数:P135°[i,j]=f[i+1,j+1]-f[i-1,j-1]
其中:f(i,j)表示的是图像在(i,j)处的灰度值。
采用二阶范数推算像素梯度,则为:
则修正后的景物深度d′为:
其中:c1,c2为梯度修正系数,取值范围在0和1之间。
步骤四,计算图像中每一个像素点的能见度V。通过公式(4),并利用步骤二得到的透射率t′和步骤三得到的景深估计d′,可以求得每一个像素的能见度的估计V。
其中,ε为视觉阈值,国际民航组织ICAO(International CivilAviationOrganization)推荐的视觉阈值为0.05,因此本发明取ε=0.05。
步骤五,利用特强浓雾因子估计单幅雾天图像的能见度。
根据能见度的定义,描述观察者所能看清楚的最大距离。计算图像中每一个像素的能见度,并将所有像素点中能见度最大值作为整幅图像的能见度。但对于局部或前景清晰的测试图像,往往造成较大的误差,为解决这一问题,本发明引入概率统计的思想,根据伯努利大数定律,有些随机事件无规律可循,而在大量重复出现的条件下,往往呈现几乎必然的统计特性。单幅雾天图像若整体雾浓度属于某一个级别,则该幅图像中的大部分像素点计算的能见度值分布在该级别雾所对应的能见度区间。
因此对于雾天图像中的每个像素点计算出能见度值,并把得到的能见度值按照雾的等级分成五个区间,分别为轻雾V1∈[1000,2999),大雾V2∈[500,1000),浓雾V3∈[200,500),强浓雾V4∈[50,200),特强浓雾V5∈(0,50),单个像素点能见度。分别统计V1~V5五个区间像素点个数,本发明以特强浓雾因子V5作为主要参考标准,计算特强浓雾因子V5的占有率。
通过大量的实验测试,发现不同级别的雾天图像,特强浓雾因子占有率的不同。当则为特强浓雾,能见度小于50米;当则为强浓雾,能见度小于200米;当98%则为浓雾,能见度小于500米;若则为大雾,能见度小于1000米;若则为轻雾,能见度大于1000米。因此,
综上所述,本发明首先对输入图像的每个像素点求RGB分量的最小值,得到最小通道图,记为Imin,然后对Imin图像的上部分进行最小值滤波,并在滤波后区域找出最亮像素点,将原图的对应位置像素点取RGB三通道中最大值作为当前帧估计的大气光值A0,采用滑动平均方法得到最终平稳的大气光值A。由Imin也可以得到初步估计的透射率图下采样后记为对做导向滤波以使景深相同的区域具有相同的透射率值,再将导向滤波后td(x)通过线性插值的方法上采样至原来尺寸,于是得到优化后的透射率图t(x),对天空等白色区域的透射率进行修正,得到最终的透射率图t′(x);然后利用场景深度的估计和透射率估计求得图像中每一个像素的能见度;最后引入概率统计的思想,对单个像素点计算能见度并按照雾天能见度等级统计每个等级像素能见度所占概率,并通过特强浓雾因子的占有率估计出单幅雾天图像的能见度。
尽管上面对本发明说明性的具体实施方式进行了描述,但应当清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。