沈岳峰,殷海涛,史得道,王庆武
(1.天津滨海新区气象局,天津 300457;2.天津海洋中心气象台,天津300074;3.天津酷云网络科技有限公司,天津 300461)
能见度检测在交通运输、航海运输、以及运输过程中的作业安全中起着重要的作用。 低能见度下,交通、航海以及运输作业发生事故的可能性大大的增加。 因此,及时准确的检测能见度显得尤为重要。
目前,能见度检测主要有以下3 种方式:①物理硬件检测法,主要分为投射式和散射式2 种。 此方法不仅硬件设备价格昂贵,而且不易维护和多点布设。 因此此类方法检测能见度具有局部性,不能全面实时检测能见度;②目测法:通过训练专业的人员来人为地判断能见度情况,此类方法判断结果与人眼特性相关,具有很强的人为主观性,且耗时耗力;③摄像法:通过摄像机模拟人眼进行能见度检测,此方法较为灵活,可实现全面部署,检测结果准确客观。 因此,本文采用摄像法与机器学习相结合的方法进行能见度检测。
国内外学者提出了多种通过摄像法检测能见度的方法。 文献[1]提出利用图像的视觉特征来测量能见度的思路,通过手工拍照,冲洗照片,人工计算目标物与背景的对比度,推算出能见度值。 此方法准确度低,且过程繁琐。 文献[2]提出了根据摄像机是否可观测到高速公路不同距离的目标物,来进行能见度检测, 但由于此方法需要设置多个目标物,且目标物的间距精度直接影响了检测结果。 文献[3]提出平均梯度算法和透射率比率法,但计算准确性容易受到噪声影响,且时效性差;文献[4]通过动态标定摄像机内外放入参数,分析活动图中感兴趣区域的平均像素拟合曲线对雾天进行判断。 但该方法中自标定模型较为复杂,且对公路能见度监测的实时性较差。 文献[5]通过对监控摄像头设定严格的参数,基于图像的平均灰度值与曝光时间检测大气能见度。 但该方法易受天气状况影响,并且对道路标志信息的完整性要求较高。 文献[6]基于图像增强方法对MSR 代数模型的权重进行了修正,但是该方法并不是基于大气成像原理,故该类方法不能估计图像能见度。 近些年来,利用卷积神经网络进行端到端学习的算法在能见度检测方面取得了一定的应用[7]。 文献[8]首次将卷积神经网络用于能见度检测方面,并训练基于文献[9]的能见度检测模型,提取特征进行能见度等级的分类。 文献[10]通过搭建一个浅层的CNN 实现对图像的能见度检测。 文献[11]将传统图像预处理方法和卷积神经网络相结合,通过学习原始图像和经过快速傅里叶变换或光谱滤波处理的图像,得到了对雾图像中能见度等级的综合分类。 这些能见度检测算法都是将CNN 和逻辑回归函数的结合,但此类算法性能在很大程度上严重依赖于数据集的大小和训练样本标注的质量,而目前具有准确能见度标注的雾图像很难获取。
本文提出了一种利用暗通道特征、图像梯度幅度和图像对比度幅度作为支持向量机算法的输入特征。 通过支持向量机算法进行模型训练,此方法无需进行特殊的图片标注,无需设置标志物,对小样本的训练数据也十分友好。
暗通道先验法是由He 最早提出的, 是基于大量的统计经验所得。 其基本思想为对于室外无雾图像的任一除天空之外的局部区域,总存在一些像素点,在r,g,b 中的某一通道像素值非常小,几乎趋近于0。 其定义如公式(1)所示:
式中:Jdark(x)为图像的暗通道;w(x)是包含像素x的局部区域。
经过上述方法得到的暗通道图像会较为模糊,直接采用效果较差,因此采用导向滤波器对暗通道图像进行细化。 导向滤波可以很好地保留图片的边缘。 其引导关系如公式(2)所示:
边缘特征即梯度特征。 可通过Sobel 算子提取图像梯度特征。 可使用n×n 的窗口区域,计算其边缘特征值,计算方法如公式(5)所示:
式中:G(x,y)代表像素点x,y 的边缘特征值;Gx代表像素点x 的行方向的特征分量;Gy代表像素点x的列方向的特征分量。
韦伯定律对比度可以很好地表示各个像素点与相邻像素的对比度。 计算韦伯定律对比度时需获取计算像素点相邻上下或左右像素点的像素值。 因此,首先通过复制的外插方式扩充图像边缘。 然后通过公式(6)计算即可。
式中:G(x,y)为像素点行对比度;f(x1,y1)为计算像素点的灰度值;f(x2,y2)为其相邻左侧像素点的像素值;M 为图片最大灰度值;min 取相邻像素与本像素的灰度值的最小值。
能见度检测的及时性和准确性对需依赖交通运输、航海运输以及沿海作业有重要的影响。 各地气象局也会定期更新当日的能见度等级。 行业内以及气象局一般不使用具体的能见度数值来作为评判依据。 因此本文主要通过机器学习来估算能见度等级。 能见度等级划分如表1 所示。
表1 能见度等级划分Tab.1 Visibility classification
本文的能见度检测方案如图1 所示。
图1 能见度检测方案Fig.1 Visibility detection scheme
暗通道图像能很好地反映出雾浓度情况。 当雾浓度较高时,暗通道图整体偏灰;当雾浓度较低时,暗通道图整体偏白;因此本文采用原图的灰度图作为导向滤波引导图,采用2.1 章方法采集暗通道图像特征。
浓雾时采集的暗通道精细图特征如图2 所示,无雾时采集的暗通道精细图特征如图3 所示。
图2 浓雾暗通道精细图Fig.2 Detailed drawing of dense fog and dark channel
图3 无雾暗通道精细图Fig.3 Detailed diagram of fog free dark channel
当雾浓度较大时,物体的边缘轮廓较为模糊,梯度值较低;当雾浓度较小时,物体的边缘轮廓较为清晰,梯度值较高;因此本文通过2.2 章方法计算各个像素点边缘梯度特征后,计算梯度幅度来作为反映雾浓度的特征之一。 梯度幅度计算公式见公式(7):
式中:V代表图像的梯度幅值;H,W 代表图像大小;G(x,y)代表像素点对应梯度值。
图片像素与相邻像素灰度值的对比度,与雾浓度有一定的相关性。 当雾浓度较高时,对比度值较低;反之对比度较高。 因此将图片对比度幅度作为支持向量机输入特征之一。 对比度幅度特征计算公式见公式(8):
式中:Cmean代表图像的对比度幅值;H,W 代表图像大小;C(x,y)代表像素点对应的横向韦伯定律对比度值,可通过2.3 章节方法计算得到。
本方法采集了110 张不同能见度等级的图片进行训练。 使用五折随机交叉验证作为模型训练评估标准,采用网格搜索不断调整参数。 最终随机交叉验证得分均值最高可达95%。调参过程如图4所示,其中gamma 为高斯核参数,C 为正则化参数,score 为随机交叉验证得分。
图4 模型调参过程图Fig.4 Process diagram of model parameter adjustment
为极大地保证模型的泛化能力,本文选择在得分最高的前提下最小的C,即C=0.85,gamma 选择为5.963623316594637×10-6。
为分析本文的实验效果,共采集了不同等级的能见度图片108 张,进行模型预测分析。 分析结果表示,本模型单张图片(分辨率为1920×1080)预测速度为605 ms,整体准确率可达89.1%。
本文提出一种基于机器学习的能见度分类算法。可利用原有的监控设备,成本低。同时使用支持向量机作为模型训练的算法,在小样本的情况下也可得到较好的结果,可大大缩短训练周期,且本文算法准确率较高,时效性高,可用于气象监控,交通运输等行业,发展前景较好。