喻丽春, 刘金清
(1.福州外语外贸学院 大数据学院, 福建 福州 350202;2.福建师范大学 光电与信息工程学院, 福建 福州 350007)
团雾是一种常见的自然气象现象,其出现会极大地降低能见度,影响行车安全。团雾由于其尺度小、预测预报难、区域性强等特点,更容易引起交通事故,造成重大人员伤亡。团雾实时监测对于高速公路交通安全、效率以及经济发展等方面都具有重要意义。团雾的实时监测目前一般以能见度检测为主要依据。目前高速公路的能见度检测主要有三种方法:
1)人工目测法。它是一种简单常用的测量和评估气象能见度的方法,通常由观测员在外部环境以及气象条件允许时进行,在室外可供参考的固定距离处确定所看到的最远可识别物体。该方法受限于人眼的生理特征和主观判断,很难保证高准确性与可信度。
2)仪器检测法。它是一种通过使用特殊的气象仪器来测量和评估大气中能够传播光线的范围,从而确定能见度程度的方法,一般可以用激光雷达、红外辐射计、光电传感器等先进科技仪器,以及其他气象设备进行实现。仪器检测法对设备安装的环境条件有一定要求,且设备造价昂贵。
3)图像检测法。能见度图像检测法是一种利用现代计算机技术和数字图像处理技术来识别、分析和评估团雾等能见度不良的气象现象,从而实现对环境视野范围情况的精确测量方法。我国高速公路里程较长,能见度仪器的部署密度不够,很难实现对高速公路百米级别的能见度监测。
基于图像视频的能见度测量是一种以团雾的视觉识别为基础,结合计算机视觉技术实现的新型气象检测方法。它可以精准监测小尺度团雾,实时计算其分布和密度,迅速发布预警信息,有助于降低交通事故风险,提升公共安全保障水平。
近年来,由于人工智能和计算机视觉的发展,基于视频图片的能见度测量方法取得了较大进展。2010年,陈钊正等[1]提出基于小波变换的视频能见度检测方法,利用自标定方法确定目标距离,使用小波变换进行边缘提取,最后通过拟合得到能见度值。2012年,宋洪军等[2]提出一种基于车道线和图像拐点的道路能见度估计。2018年,孟颖[3]实现了基于优化暗原色先验的公路能见度检测与预警系统。杨天麟等[4]提出采用改进暗通道先验算法的高速公路能见度检测。常见的基于图像的能见度测量可以分为三种,它们有各自的局限性。首先,基于车道线边缘信息实现的测量方式容易出现检测值波动大的情况,原因在于车道线边缘信息是不规则的;其次,通过区域增长得到路面区域进行测量也容易检测失败,因为区域的增长过程可能会失败;最后一种方法是通过考虑暗通道先验计算图像透射率来实现能见度测量,虽然可以提高准确度,但如果天空亮度估计不足,则有可能导致透射率计算不精确。面对这些问题,提出一种基于图像透射率和单目深度的能见度检测方法,尝试通过改进计算大气可见光,同时构造权重系数函数替代固定值,提升透射率计算准确性,并通过实验对比,验证改进方法的有效性。
能见度是指地面上由于大气中物质对光的吸收、散射及折射作用所形成的景象可见度程度,通常用米为单位来表示。大气散射模型和能见度之间有密切的关系。在一定条件下,可以利用大气散射模型计算出在特定位置和时间的大气透视率,从而得到能见度的估测值。柯西米德定律[5]为
C=C0e-σd,
(1)
式中:d----观测点到观测目标的距离;
σ----大气消光系数;
C----景物在距离为d时的可视亮度对比;
C0----景物与背景的亮度对比。
(2)
式中:ε----视觉阈值ε为C和C0的比值。
国际民航组织ICAO(International Civil Aviation Organization)推荐视觉阈值为0.05时,人眼最大可视距离为能见度距离。将式(2)代入式(1)得到
(3)
式中:d----能见度值。
从式(3)可以看出,能见度的计算与大气消光系数成反比。因此要计算能见度,首先要计算出大气消光系数σ。
根据大气衰减模型,光线在大气中传播时满足衰减定律。
F=F0e-σz,
(4)
式中:F----物体接收光的光照强度;
F0----发射光的光照强度;
z----场景深度;
σ----大气消光系数。
将透射率t=F/F0代入式(4),即可得到大气消光系数计算公式为
(5)
将式(5)代入式(3),即可得到能见度距离公式为
(6)
大气透射率是影响能见度的重要因素之一。光线经过目标物体反射后,在传播过程中,由于空气中颗粒物的散射,导致能见度降低。在视频图像中,透射率降低主要表现为色彩减退、对比度降低、边缘模糊等特点。因此可以先根据暗通道先验[6](Dark Channel Prior, DCP)理论计算出图片透射率,然后通过大气能见度公式估算能见度。
基于暗通道先验的透射率计算流程如图1所示。
图1 基于暗通道先验的透射率计算流程
暗通道先验理论是He K M等[7]于2009年提出,对于室外无雾图像任一局部区域里(除天空区域),在R、G、B三个颜色通道中的某个通道总存在较小的像素值。即在该图像中以任一像素为中心的窗口区域,某个通道的光强值接近于0。则无雾图像的暗通道定义为
Jdark(x)=miny∈Ω(x)(minc∈(r,g,b)Jc(y)),
(7)
式中:Jc(y)----J的任意一个颜色通道;
Ω(x)----在像素点x的窗口。
根据暗通道先验理论,在非天空区域部分,Jdark的强度值近似于0,具体表示为
Jdark→0。
(8)
在计算机视觉领域,有雾图像的模型可以描述为
I(x)=J(x)t(x)+A(1-t(x)),
式中:I(x)----摄像机采集到的有雾图像;
J(x)----无雾图像;
A----大气光值;
t(x)----透射率。
假设透射率t(x)在局部区域Ω(x)为定值,得
miny∈Ω(x)(Ic(y))=t(x)miny∈Ω(x)(Jc(y))+
(1-t(x))Ac,
(9)
式中:y----以x为中心的局部区域Ω(x)的任一像素;
c----R、G、B三个通道之一;
Ac----大气光值,通常用颜色通道中最亮的0.1%像素亮度的均值表示。
式(9)对大气光值做归一化,得
(1-t(x))。
(10)
对式(10)求暗通道,得
(1-t(x))。
(11)
根据暗通道先验理论,暗通道的值趋近于0,那么可以得到透射率为
(12)
在天气较晴朗的环境下,摄像机采集到的图像中,远距离目标始终会存在少量雾,因此引入权重系数ω,取值0.95,得到透射率为
(13)
暗通道先验算法处理图像的时候,假设任一像素周围区域的透射率为固定值,这导致算法计算出的大气透射率存在块效应,邻域窗口的尺寸越大,透射率图像的块效应越明显。这种块状效应将严重影响能见度的计算结果,因此需要使用导向滤波(Guided Filtering)来对生成的透射率图进行修正。
透射率图优化如图2所示。
(a) 原始图
导向滤波是一种图像滤波技术,通过一张引导图,对原始图像进行滤波处理,最后得到输出图像与原始图像相似,纹理与引导图像相似。在计算透射率时,可以使用导向滤波优化透射率图。从图2(c)可以看出,经过导向滤波后,其块状问题明显消失,纹理也更精细。
1)通过检测图像中的车道线,依赖车道线的长度和车道线两端的透射率来计算能见度。有些摄像头场景没有车道线,无法获取场景深度。
2)通过提前设置与摄像头固定距离的目标物来实现距离的采集。因为普通公路摄像头较密,每个摄像头前预设目标物需要大量精力。因此这种方法实用性不强。
3)通过两个摄像头进行双目测距[8]。双目测距需要两个摄像头进行双目匹配,对摄像头的设备精度要求较高,在高速公路摄像场景下,一般只有单个摄像头,而且摄像头清晰度一般,无法满足双目测距要求。
4)基于深度学习的距离测量。基于深度学习进行距离估测需要大量样本,背景复杂,容易受到车辆等移动目标的干扰,因此测量精度也具有局限性。
常见基于暗通道先验的能见度测量一般采用前两种。由于车道线不具有通用性,预设目标物需要部署成本,所以传统基于暗通道先验的能见度测量研究大多还停留在实验阶段,距离实际应用有一定距离。
基于暗通道先验的能见度测量与其他算法,如对比度算法具有操作简单、检测效果相对较好等优点,但算法需要改进的问题如下:
1)算法使用图像中最亮的0.1%像素的均值来估计天空亮度。由于天空亮度A对正确估算大气透射率非常重要,天空亮度A的估计误差对最终能见度估计结果影响较大。
2)摄像机采集到的图像中,图中较远区域在观察者眼中雾的浓度越大,但暗通道先验算法再取权重系数ω,简单取经验值0.95,这种处理方式使透射率估计误差变大。因此权重系数ω的取值大小对能见度的计算影响较大。
3)在采集目标物距离时,需要预设目标物或者依赖车道线进行计算,通用性不足,在实际交通应用场景具有局限性,部署难度较高。
针对传统暗通道先验算法进行能见度测量存在的问题,对能见度计算方法进行改进。首先,暗通道先验理论不适用天空区域,因此可用边缘检测算法提取出天空区域所有像素的均值作为天空亮度A。然后优化权重系数ω,其值太大或者太小都将显著影响透射率计算结果。由于HSV空间能更好地区分图像的亮度特征和色相特征,因此可以将雾天图像转换为HSV空间,再构造与雾浓度对应的函数来计算权重系数。最后,在采集目标物距离时,可以采用单目摄像机动态标定方法来实现,标定方法不依赖车道线和预设标志物,能够满足大多数高速公路摄像头能见度测量的要求。
文献[7]采用图片最亮像素前0.1%的平均亮度作为大气光值,这种方法计算简单快速,然而也造成了大气光值的估计准确度不足,导致最终的能见度计算误差增大。因为图像中可能包含除了大气光的其他光源,还可能存在其他白色对象。这都将导致大气光估测不准。为了增加大气光估测的准确性,需要先从图像中识别出天空区域,然后计算天空区域所有像素的平均值当作大气光值,具体计算步骤如下:
1)首先通过对图像进行直方图均衡化(Histogram Equalization),增强图像的边缘信息;其次对灰度图像进行canny算子获取图像轮廓;接着检测出的边缘进行膨胀;最后自上而下对膨胀后的图像进行扫描,并二值化处理,得到天空区域和非天空区域。天空分割处理过程如图3所示。
图3 天空分割处理过程
2)得到天空区域后,可以获取天空部位所有像素的平均值作为大气光值A。考虑到部分图像天空区域比例较小,在其比例小于5%时,可以采用最亮像素的前千分之一作为大气光值A。
暗通道先验去雾算法取权重系数ω,简单取经验值0.95。通过实验统计证明,ω取值大小对能见度计算结果影响较大。实际上,图像中较远距离的目标,在观察者眼中雾越浓,权重系数ω不能简单统一取值,而是应当根据雾的浓度系数来动态取值。HSV空间能够更好地表达图像的色调、饱和度和亮度。因此可以将图像转为HSV空间。在HSV颜色空间里,亮度越高,雾越浓。图像每个像素的HSV距离定义为
d(x)=‖IHSV(x)-BHSV‖,
(14)
式中:BHSV----颜色空间里最亮的颜色值。
d(x)越小,表示像素所在的点雾越浓。
为了适应自然场景下的雾浓度,构造的权重系数计算函数为
(15)
根据式(15)可以绘制出ω(x)与d(x)的函数关系图,如图4所示。
图4 权重系数ω与d(x)函数图
从图4可以看出,权重系数在雾气越浓(d(x)越小)的地方,取值越大;在雾浓度越轻的地方,取值越小。当像素点值与亮度最高的像素点值的距离在30左右时,权重系数ω值大约是0.95。
图像场景深度值是能见度测量计算的关键指标之一。目前传统基于暗通道的能见度测量大多是采用基于车道线的能见度测量。该方法局限性较大。因为我国目前公路交通中,有些场景并没有车道线,而且车道线检测也容易失败,导致最终无法得到能见度值。针对公路交通摄像头一般为单目摄像头的情况,这里引用文献[9]实现基于场景透射率的单目摄像机标定公式,具体实现步骤如图5所示。
图5 计算目标距离流程
该方法结合了透射率和传统摄像机线性模型,选择了路面上透射率最低的8个点进行摄像来标定参数修正。该算法相对于基于车道线的目标距离检测适用场景更广,计算结果更准确稳定,鲁棒性更强。
通过以上方法,获取透射率图t和目标距离d后,代入式(6)得
(16)
计算即可得到大气能见度。
为了测试算法的有效性和准确性,按照能见度等级将图片进行分类,根据《中华人民共和国气象行业标准》[10],能见度一般分为5个等级。因此将所有视频图像按照能见度等级范围划分为5类,具体见表1。
表1 能见度等级表
由于目前权威高速公路雾天图像较少。因此这里采集高速公路摄像头数据自建测试数据库。
通过截取高速公路4个摄像头图像并进行筛选,由于实际环境有雾样本较少,数据样本不均衡,因此需要对有雾图像进行左右翻转和缩放等简单方法进行数据增强,并进行样本扩充,通过结合能见度记录仪的能见度值,对图像进行能见度等级标识。最终得到实验数据集见表2。
表2 实验数据集 张
为了验证算法的检测效果和性能,采用准确率P、召回率R、精确率均值F1三个指标进行评价。Macro-F1值为多个类别F1值的平均值,其计算公式为
(17)
(18)
(19)
(20)
式中:TP----正确检测出分类的图像个数;
FP----不是目标图像,却被检测为目标图像的个数;
FN----实际为目标图像,却被错误检测的样本图像。
对算法按能见度等级进行测试,结果见表3。
表3 测试结果 %
为了评估算法优化改进的有效性,分别构建算法模型进行测试,具体如下:
1)传统暗通道+车道线;
2)算法1:暗通道+改进大气光+单目深度;
3)算法2:暗通道+动态系数+单目深度;
4)算法3:暗通道+改进大气光+动态系数+单目深度。
模型F1检测算法测试结果对比见表4。
表4 模型F1检测算法测试结果对比 %
从表4可以看出,算法在分别引入天空检测和动态系数后,各能见度分类精确率F1值有一定提升,其中同时改进天空检测和动态系数的算法提升效果最佳,说明改进有效。相对于传统基于暗通道和车道线的算法,改进后算法的Macro-F1值为91.56%,提高了5.78%。
针对传统基于暗通道先验的能见度测量存在天空亮度估计不足,且简单使用固定值作为权重值,导致能见度测量不准的问题,提出一种基于透射率和单目深度的能见度测量算法。算法通过改进计算大气可见光,同时构造权重系数函数替代固定值,提升了透射率计算准确性,并引入单目摄像机标定算法计算目标距离,最终计算出能见度,通过实验对比表明,改进后算法的能见度测量准确率较高,不依赖车道线,应用范围更广,能够满足实际交通场景使用要求。