刘佳嘉,唐悟甲,刘建华
(1.中国民航飞行学院航空工程学院,四川 广汉 618307;2.中国电子科技集团公司第二十九研究所,四川 成都 610036)
基于大气散射模型的单幅雾天图像复原方法
刘佳嘉1,唐悟甲2,刘建华1
(1.中国民航飞行学院航空工程学院,四川 广汉 618307;2.中国电子科技集团公司第二十九研究所,四川 成都 610036)
现有大气散射模型方法对于利用长期固定成像器的地方可以较好实现场景建模并复原雾天图像,但在缺乏其他天气状况下,景物图像作为参考的单幅雾天图像不能很好地复原。针对这一问题,该文提出一种新的基于大气散射模型的单幅雾天图像复原方法。该复原方法先通过边缘检测算法查找景物轮廓来划分不同区域,然后标定不同连通区域来划分景物层次,再计算图像灰度值变化曲线的斜率并分割天空区域,最后对新的环境光强度设定,对不同区域的景物采用不同的参数进行复原。采用一张手动拍射图像和一张网络图像作为实例分别进行实验,结果表明:该方法能够很好地复原缺乏参考图像的单幅雾天图像。
大气散射模型;图像去雾;天空分割;场景划分
现阶段图像去雾方法大致分为非建模和建模2类。非建模方法是对雾天降质图像进行有选择性的增强,可以提高图像的对比度。但这种方法的不足之处在于不考虑景深,对所有像素点都进行相同处理,而实际上不同层次物体所受雾气影响不同[1],这就导致场景信息丢失,从而使恢复图像失真[2-3]。建模方法则依据不同距离的物体受雾气的叠加影响,以及成像器所得图像来计算景物的实际效果[4-5]。常见建模方法包括大气散射模型方法、交互式复原方法和场景深度估计方法等。大气散射模型方法的准确性较高,但需使用两幅或者多幅同一场景不同天气的图像进行辅助。在安装固定摄像机时该方法的辅助条件容易获得,可从监测视频中提取各种天气状况的图像帧;但对于临时拍摄的单幅雾天图像,因没有参考图像,该方法不能进行复原。文献[6]利用马尔科夫随机场恢复出大气光,从而改善了降质图像,但该方法由于没有通过物理模型恢复图像,往往导致恢复图像出现光晕效应。文献[7]利用图像的彩色统计信息对图像进行恢复,该方法的缺点是对于浓雾区域的恢复效果不佳。文献[8-9]通过估算大气遮光罩来恢复图像,具有较好的效果,但这种方法要求图像具有较高的对比度且大气遮光罩平滑,因此应用范围有限。文献[10]提出了一种基于天空区域分割的改进暗原色先验去雾算法,此算法解决了暗原色先验在明亮区域估计透射率偏小的问题,在一定程度上能够提高雾天交通图像的整体对比度、层次感;但该方法由于在场景传输率的优化里采用固定的散射系数,因此对于浓雾环境下的图像复原效果不佳。
为了复原没有参考图像的单幅雾天图像,本文在现有大气散射模型方法的基础上,提出了一种新的基于大气散射模型的单幅雾天图像复原方法。该方法只利用单幅雾天图像本身,通过分割场景,计算复原所需的环境光亮度,能够实现对拥有天空区域的雾天图像进行较好复原。
McCartney在1975年提出了大气散射模型。在该模型中成像器所接收的光线一部分来自实际景物的反射光,即衰减反射光;另一部分来自大气中悬浮颗粒散射的光线,即环境光。其中衰减光模型描述了反射光经过大气削弱的过程,衰减反射光线的强弱反比于物体离成像器的实际距离。环境光包括太阳其他方向直射的光线,大地和天空云层的漫反射光线,成像器所接收到的实际光线为这两个光线的叠加。
大气散射系数β(λ)和光波长度有关,满足公式:
其中,0≤r≤4,r取决于大气中悬浮颗粒物的大小。
晴天时光线散射对波长的选择性很强,此时r=4。浓雾时大气散射系数变化很小,此时r≈0,所有可见光被散射,所以看见一片白色的雾气。文献[11-12]分别利用光学深度值和环境光强度成功地进行图像去雾。但是对于临时拍摄的单幅雾天图像,由于没有其他参考图像的辅助而难以采用传统方法进行复原。
本文在现有的大气散射模型基础上提出一种单幅雾天图像复原方法。无需采集多幅辅助图像,通过场景划分、天空分割、远景提取和新的环境光强度设定,对不同的景物采用不同的参数进行复原,能够成功复原不具备各种天气状况作为参考的单幅雾天图像。其处理流程如图1所示。
图1 雾天图像复原流程图
2.1 图像边缘检测
在雾天复原中,标定不同深度区域是处理的第一步,本文通过边缘检测算法查找景物轮廓来划分不同区域。常见边缘检测算法[13]包括robert算法、sobel算法、prewitt算法、LOG算法等。通过实验效果对比,本文采用sobel算法[14]处理图像,该方法运算量小、计算速度快,所得结果能满足后续处理需求。图2(a)为原始图像。图2(b)中包含非常多细小边缘线条,为防止在后续分割中造成过分割现象,利用一定阈值筛选掉过小边缘。筛选公式为
其中T为筛选阈值。
本文采用固定值T=10即可达到满意效果,图2(c)为经过筛选并加强显示后的结果。处理后线条清晰层次分明,利用该图进行连通区域查找,再划不同景物层次。
2.2 景物层次划分
图3为景物层次划分流程图。
图2 边缘检测结果
图3 景物层次划分流程
以边缘检测的结果为依据运用连通区域查找算法[15-16],通过标定不同连通区域来划分景物层次。图4(a)为连通区域查找运算之后的效果图。可看出大块白色区域中还包含很多独立的黑色小区域,对小区域标定后将像素点数小于一定阈值的区域标记为边界区域,就可筛选掉极小区域[17]。结果如图4(b)所示,阈值为100。
连通区域划分后计算每个区域平均灰度值,用于后续判断天空区域:
图4 连通区域划分及筛选效果
k——连通区域标号;
N——该连通区域中像素个数。
接下来将区域边界归属到各自的景物层次中。通过在原始雾天图像中比较该边界与其接壤连通区域平均像素值,选择和边界像素值最接近区域作为该像素点的归并区域。结果如图5所示,每一区域用一种颜色标记,不同区域不同颜色。
图5 连通区域归并效果
完成景物层次的划分后,计算环境光强度。由于不同景物所处高度不同,从远处传来的环境光在不同高度所需要穿透的雾气层也不同,即使同一景物的最高点和最低点也有很大差别,因此每一点的环境光强度是不一致的。光线强度为
其中Ej表示高度为j的位置环境光强度。
如果能找到Ej,则可利用式(4)复原景物亮度。由于环境光只和高度有关,而和景物到成像器距离无关,因此假设雾天图像中包含天空区域,且该区域能从空中一直延伸到地平线附近,即像上景物无法全部遮挡远处地平线或者遮挡高度有限。这样就可利用天空区域计算环境光强度。
2.3 天空区域划分
天空部分灰度值一般大于其他区域,图6为门限值大于300判断出的天空区域,可看出远景受雾气影响其轮廓难以形成闭合包络线,被误判为天空区域。因此需对天空区域进行二次处理,分离出远景。
图6 天空区域
普通雾气可视为均匀介质,光线的衰减应随高度增加连续减弱。图 7(a),图 7(c),图 7(e)为分别取图像第10,100,200列时的灰度值变化曲线,图中直线段为近景灰度值255,曲线为天空区域。第10列曲线变化平缓,而第100列和第200列有一个明显奇点,奇点左右两边曲线的斜率有明显的变化。可假设该点附近存在实际景物,干扰了光线指数衰减过程。
本文通过计算曲线斜率作为分割依据:
根据式(5),求得曲线每一处的斜率值,如图7(b),图7(d),图7(f)所示。 再根据该值采用固定阈值和自适应阈值方法综合确定远景分割点。在获得某一列的斜率值后平滑该列曲线[18-19],获得g(i,j)中出现频率最高的值作为该列主值。主值表示光线正常衰减趋势,如果光线衰减斜率和主值偏差超过一定范围,则表明该处可能存在远景干扰了光线正常衰减。
固定阈值法根据经验获得阈值,在本文中采用偏差值大于4作为远景和天空的分界点。当出现第一个斜率偏差值大于4的点时,确定该点为分界点。自适应方法先计算平均偏差值,当出现第一个偏差值大于平均值时,则标定该点为分界点。单独采用任一方法都可能得到孤立奇点,造成分界点不正确,因此需将两者结合来修正奇点。采用相邻点判断法,如果该点位置和周围点差别大于一定值,则修正该点位置为左右两点平均值。由于某些含远景的天空和远景相近,该列已经不能判断分界点,但左右两列却能找到分界点,则该列分界点为左右两列的平均值,即断点的连接。图8为修正分界点后的位置图。可以看出,相对于图6,已将远景从天空区域中分割出来。
在不受雾气干扰的情况下,天空区域每一行亮度应该一致,且复原后天空亮度最大值是255。由于雾气均匀分布,可认为同一行光线受到雾气衰减相同,有相同光学深度,因此可通过该行最亮列计算出该行光学深度,再获得其他列光线强度。利用式(6)计算得到每一行最亮值的像素灰度值Amax:
同一行其他列光强度根据βd利用式(8)计算。
式中:E(d,λ)——成像器处接收到的环境光强度;
E∞——无穷远处的环境光强度。
根据之前假设,天空区域能延伸至地平线附近,天空中像素高度最低行就是地表处环境光强度,则式(4)中环境光强度为已知。
2.4 景物区域实际距离的计算
图像中景物到成像器距离各不同,因此反射光衰减程度也各有差异。为了能复原实际亮度,需知道光学深度βd,d是景物实际距离。
图9为景物投影示意图,f为焦距,h为图像像素点到地平线高度,H为焦点距离地面高度,d为实际景物到焦点距离。根据三角公式:
图7 天空区域单列灰度曲线及斜率值
图8 天空区域最终分界点
图9 景物到成像器距离计算
焦距f可从图像属性中获得,H是相机所在高度,可能是固定脚架高度,或者拍摄人的高度。普通数码相机CCD尺寸大约在1/2.5~1/2.3in,首先将h的单位像素换算成公制单位再计算:
其中ph为图像的总像素高度。
图10 雾天复原图像结果
由于f,h,H已知,可根据式(9)计算景物实际距离d,再结合参数β,得到式(1)所需参数。β取决于雾气浓度,最佳值可使复原后图像对比度最大化。
2.5 图像复原
复原时,由式(6)复原天空区域亮度,根据式(9)计算景物到成像器实际距离d,再估计参数β,由式(4)计算出复原值D0。
本文实验中采用一张手动拍射图像和一张网络图像。前者拍摄相机为SONY DSC-T100,像素值为2048×1536,焦距为6mm,手持拍摄。后者来源网络,因此图像属性未知。
图10(a)~图 10(d)为大气散射参数β取 0.2,手持拍摄高度H取1.6m,焦距f取6mm时的原始图像及复原结果。 图10(e)为原始雾天网络图像,图10(f)、图10(g)分别为普通方式复原结果,图10(h)为采用本文方法复原结果,其中β取0.2,H取1.7,f取6mm。
通过处理结果表明,该方法能较准确地分割景物,远景与天空分割明显;而普通增强方式远景与天空融合较深,不仅界限不清,近景也不够清晰。本文方法较好地实现图像复原,近景清晰,远景分明,效果较好。
传统大气散射模型需要多幅不同天气状况的图像作为参考,对固定成像器的方式较为实用,但对于随机拍取的零散单幅图像则效果甚微。本文提出了基于大气散射模型的单幅雾天图像复原方法。该方法根据图像中景物边缘划分场景,分割不同层次景物。同时根据环境光的实际情况,提出了新的环境光计算方法,并根据光线衰减特性实现对远景再分割,避免远景被误判为天空,并对天空和场景两种区域采用不同的复原算法。结果显示复原效果较好,近景清晰,远景与天空界限明显。
本文的缺点在于天空区域与远景界线过于明显,比较突兀。下一步将研究采用融合算法等方法使边界过度更自然。另外近景复原效果较好,远景效果不太理想,下一步将研究如何在远景复原效果上进行改进。
[1]王大雷.雾天图像增强技术的分析与研究[D].南京:南京理工大学,2007.
[2]毕笃彦,葛渊,李权合,等.单幅图像去雾方法研究[J].空军工程大学学报(自然科学版),2013,14(6):46-53.
[3]MI Z, ZHOU H, ZHENG Y, et al.Single image dehazing via multi-scale gradient domain contrast enhancement[J].Iet Image Processing,2016,10(3):206-214.
[4]NARASIMHAN S G, NAYAR S K.Interactive(de)weathering of an Image using physical models[C]∥In Proceeding of ICCV Workshop on Color and Photometric Methods in Computer Vision(CPMCV) France,2003:241-252.
[5]NARASIMHAN S G,NAYAR S K.Contrast restoration of weather degraded images[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2003,25(6):713-724.
[6]TAN R T.Visibility in bad weather from a single image[C]∥IEEE Conference on ComputerVision and Pattern Recognition,Alaska USA,2008:1-8.
[7]FATTAL R.Single image dehazing[J].ACM Transactions on Graphics,2008,27(3):72.
[8]TAREL J P,HAUTIERE N.Fast visibility restoration from a single color or gray level image[C]∥IEEE International Conference on Computer Vision, Kyoto Japan,2009:2201-2208.
[9]何人杰,樊养余,WANG Z Y,等.基于非局部全变分正则化优化的单幅雾天图像恢复新方法 [J].电子与信息学报,2016,38(10):2509-2514.
[10]邢晓敏,刘威.雾天交通场景中单幅图像去雾[J].中国图形图像学报,2016,12(11):1440-1447.
[11]OAKLEY JP,SATHERLEY B L.Improving image quality in poor visibility conditions using a physical model for contrast degradation[J].IEEE Transitions on Image Processing,1998,7(2):167-179.
[12]卢洋,张旭秀.图像边缘检测算法的对比分析与研究[J].太原科技,2009(3):50-52.
[13]吴国伟,谢金法,郭志强.基于Sobel算子的车辆轮廓边缘检测算法[J].河南科技大学学报(自然科学版),2009,30(6):38-41.
[14]马胜前,张光南,杨金龙,等.基于二维直方图的otsu图像分割算法改进[J].西北师范大学学报(自然科学版),2009,45(1):57-61.
[15]蔡念,唐孝艳,许少睿,等.基于分水岭算法的MELK图像分割[J].计算机应用研究,2009,26(8):3175-3176,3191.
[16]朱凯军,周焰,兰祖送.基于区域分割的雾天图像增强算法[J].计算机测量与控制,2006,14(5):661-663.
[17]郭尚,苏鸿根.基于像素的计算大量连通区域面积的快速算法[J].计算机工程与设计,2008,29(7):1760-1763.
[18]赵凤石,邵寄群.曲线平滑局部处理[J].佳木斯工学院学报,1992,10(3):170-177,186.
[19]周焰,王祖喜,陈振羽,等.一种曲线平滑的自适应方法[J].计算机工程,2000,26(4):13-15.
(编辑:商丹丹)
Restoration for single fog image based on atmospheric scattering model
LIU Jiajia1,TANG Wujia2,LIU Jianhua1
(1.Aviation Engineering Institute,Civil Aviation Flight University of China,Guanghan 618307,China;2.No.29 Research Institute of CETC,Chengdu 610036,China)
The current atmospheric scattering model method can be used to effectively realize scene modelling and restore fog image where the long-term fixed imager is used,but it is failed in restoring single fog image without reference of scene images under other weather conditions.Aiming at this problem,a new method of single fog image restoration based on atmospheric scattering model is presented in the article.The restoration method firstly can find the contours of the scenery to divide different regions in edge detection algorithm way,then divide the scene hierarchy by calibrating different regions together and calculate the slope of the image gray value change curve and divide the sky area,finally reset the new environment light intensity and restore sceneries in different regions by applying different parameters.A manually shot image and a network image are used as an example to test the method.The test results show that the method can effectively reconstruct the single fog image without reference images.
atmospheric scattering model; removing fog in image; sky segmentation; scene partitioning
A
:1674-5124(2017)07-0117-07
10.11857/j.issn.1674-5124.2017.07.023
2017-01-11;
:2017-02-24
刘佳嘉(1986-),女,四川新津县人,讲师,硕士,研究方向为航空电子、图像处理。