本发明涉及一种高速公路雾天能见度检测方法,具体的为一种基于暗通道先验知识和深度学习的高速公路雾天能见度检测方法,可以根据高速公路视频信息,实现高速公路雾天情况下的能见度检测。
背景技术:
高速公路在实际运行中,容易受恶劣天气的影响。其中,雾天是一种典型的恶劣天气,大雾使得高速公路能见度大幅下降,这一方面使得道路整体车速降低,道路通行能力随之下降;另一方面低能见度影响驾驶员视野,极易造成交通事故。因此,如何利用高速公路视频实现雾天能见度检测,及时发现低能见度的大雾天气并对其进行告警,是提升高速公路行车安全的有力措施。
现有技术中,基于视频的高速公路雾天能见度检测方法主要有以下三类:
1)基于图像对比度的方法:如公开号为cn101936900a的中国专利申请公开的一种基于视频的能见度检测系统,这类方法提取车道线边缘信息并计算对比度,然后拟合得到能见度值。但是由于图像边缘信息的无规则变化,使得检测值波动很大,实用性较低。
2)基于区域增长的方法:如公开号为cn102175613a的中国专利公开的一种基于图像亮度特征的ptz视频能见度检测方法,这类方法利用基于nagao滤波的区域增长算法得到精确路面区域,然后计算得到可视的最远距离。但是这类方法对环境适应性低,容易出现区域增长失败的现象,从而导致检测失败。
以上两类方法实质上仍是使用图像的亮度和对比度特征,未建立精确的雾天数学模型,导致检测效果不理想。
3)基于暗通道先验的方法:如公开号为cn102162788a的中国专利申请公开的一种基于高清视频的能见度检测方法,这类方法的核心是通过计算图像透射率来获得能见度值,检测结果较为准确。但是该类方法仍存在一些问题,如获取的透射率图不够精细,在一定程度上影响了能见度检测的准确性,且算法较为复杂,实时性较差,难以满足实际应用要求。
技术实现要素:
有鉴于此,为了解决现有技术中存在的不足,本发明的目的在于提供一种基于暗通道先验和深度学习的高速公路雾天能见度检测方法。
为达到上述目的,本发明提供如下技术方案:
一种基于暗通道先验和深度学习的高速公路雾天能见度检测方法,包括如下步骤:
步骤1:采集高速公路摄像头获取的视频图像,建立背景模型;
步骤2:获取初步透射率图;
步骤21:构建一个六层的卷积神经网络来模拟图像透射率计算过程,并使用大量样本训练得到网络模型;
步骤22:加载卷积神经网络模型,并使用原始图片的长和宽对网络进行初始化;
步骤23:把原始雾天图像送入该网络进行计算,得到对应的透射率图;
步骤3:透射率图优化:采用导向滤波函数处理透射率图,得到更加精细的透射率图;
步骤4:求取平均大气消光系数;
步骤41:在原始图像中指定至少两条车道白线以选取道路关键点;
步骤42:对于每一条车道线,获取车道线两端位置的透射率,分别计算出对应的大气消光系数;
步骤43:对所有大气消光系数求平均值,得到平均大气消光系数;
步骤5:能见度估计:采用平均大气消光系数,计算大气能见度。
进一步,所述步骤1中,建立背景模型的方法如下:
步骤11:从高速公路摄像头获取视频图像,然后利用视频图像序列,建立背景模型;
步骤12:对背景模型实时更新。
进一步,所述卷积神经网络包括三部分:
第一部分:卷积层加上maxout计算,用于提取特征;
第二部分:多尺度映射和局部极值;
第三部分:非线性回归。
进一步,所述卷积神经网络中的透射率计算方法如下:
对于任意的输入图像,其暗通道表述为:
其中,jc是彩色图像的像素,jdark是暗通道图像的像素,ω(x)是以像素x为中心的一个窗口;
根据观测结果,无雾图像的暗通道先验表示方程如下:
在计算机视觉中,雾天模型方程为:
i(x)=j(x)t(x)+a(1-t(x))
其中,i(x)是雾化图像的像素,j(x)是无雾图像的像素,t(x)是透射率,a是全局大气光值;
将雾天模型方程等式两边同时除以a,并分别计算暗通道,可得:
结合无雾图像的暗通道先验表示方程,可得透射率估算公式:
进一步,所述步骤3中,导向滤波函数说明如下:
使用引导图像i对输入图像p进行处理,得到输出图像q;对于输出图像的第i个像素,有如下表达式:
其中,p是输入图像的像素,q是输出图像的像素,i和j是像素标签,wij是滤波核函数,其定义如下:
其中,i是像素值,ωk是第k个核函数窗口,|ω|是窗口内的像素个数,μk和
进一步,所述步骤42中,设车道线两端关键点为p0和p1,则大气消光系数的计算公式如下:
其中,β是大气消光系数,t0和t1是p0和p1分别对应的透射率,d0和d1是p0和p1分别到观测点的距离。
进一步,所述步骤43中,平均大气消光系数的计算方法为:
其中,βi是每次求取的大气消光系数,
进一步,所述步骤5中,大气能见度的计算方法为:
大气亮度的对比度衰减规律为:
c=c0e-βd
其中,c是目标物的视亮度对比值,c0是目标物相对于背景的固有亮度对比值,β是大气消光系数,d是目标到观测点的距离;
为了保证物体刚好能够看见,视亮度c必须等于一个阈值;根据国际照明委员会推荐阈值为0.05,则可得气象能见度距离为:
其中,vmet是待求的能见度值,
本发明的有益效果在于:
本发明基于暗通道先验和深度学习的高速公路雾天能见度检测方法,采用了基于暗通道先验的方法,首先在原理上保证检测结果的准确性;针对现有方法得出的透射率图不够精细的问题,本发明做了两方面改进:首先基于深度学习,设计了一个六层的卷积神经网络来模拟透射率的计算过程,由于卷积神经网络能有效提取图像特征,所以通过该网络计算出的透射率图比现有算法更为精确;然后使用了导向滤波来进一步提升透射率图的精细度;针对现有方法计算复杂、实时性差的问题,本发明将卷积神经网络的调用做了简化,使得算法流程更加简单,由于所用卷积神经网络的结构简单,加上深度学习框架的性能优化,检测速度相对之前有了较大提升,可以满足实际应用需求,如果网络计算部分使用gpu进行处理,检测速度还能有更大的提升。
附图说明
为了使本发明的目的、技术方案和有益效果更加清楚,本发明提供如下附图进行说明:
图1是本发明基于暗通道先验和深度学习的高速公路雾天能见度检测方法的流程示意图;
图2是用于生成透射率图的卷积神经网络模型示意图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好的理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
如图1所示,本实施例基于暗通道先验和深度学习的高速公路雾天能见度检测方法,包括如下步骤:
步骤1:采集高速公路摄像头获取的视频图像,建立背景模型
步骤11:从高速公路露天摄像头获取视频图像,然后利用视频图像序列,对视频帧采用高斯法建立背景模型,以排除车辆对能见度检测的干扰;
步骤12:对背景模型实时更新,本实施例采用基于像素变化率的背景更新方法,即连续3帧图像中变化率小于某一阈值的像素点以一定的更新率实时更新。
步骤2:获取初步透射率图
步骤21:构建一个六层的卷积神经网络模拟图像透射率计算过程,并使用大量样本训练得到网络模型。
本实施例构建的一个六层的卷积神经网络包括三个部分:
第一部分是卷积层加上maxout计算,用于提取特征,作用等同于传统的手工暗通道计算;
第二部分是多尺度映射和局部极值,多尺度映射可以提升不同分辨率下特征提取的鲁棒性,而局部极值可以抑制模型噪声;
第三部分为非线性回归,因为透射率是一个0~1的常数,所以要对输出结果进行双边约束。
使用大量雾天图片样本,经过离线训练训练得到了可用的模型。由于卷积神经网络具有良好的非线性映射能力,使用该网络计算而生成的透射率图更加精确,且避免了复杂的计算过程。且本实施例的卷积神经网络中的透射率计算方法如下:
在去雾算法的研究中,存在一个暗通道先验,其基于如下的观测:在绝大多数非天空的局部区域里,某一些像素总会有至少一个颜色通道具有很低的值。对于任意的输入图像,其暗通道表述为:
其中,jc是彩色图像的像素,jdark是暗通道图像的像素,ω(x)是以像素x为中心的一个窗口;
根据观测结果,无雾图像的暗通道先验表示方程如下:
在此基础上,彩色图像的暗通道计算过程分两步:首先求出彩色图像每个像素rgb分量中的最小值,存入一幅和原始图像大小相同的灰度图中;然后对生成的这幅灰度图进行最小值滤波,滤波半径取为7。在计算机视觉中,雾天模型方程为:
i(x)=j(x)t(x)+a(1-t(x))
其中,i(x)是雾化图像的像素,j(x)是无雾图像的像素,t(x)是透射率,a是全局大气光值;
将雾天模型方程等式两边同时除以a,并分别计算暗通道,可得:
结合无雾图像的暗通道先验表示方程,可得透射率估算公式:
步骤22:加载卷积神经网络模型,并使用原始图片的长和宽对网络进行初始化;
步骤23:把原始雾天图像送入该网络进行计算,得到对应的透射率图;
步骤3:透射率图优化:采用导向滤波函数处理透射率图,得到更加精细的透射率图。
导向滤波是一个线性移可变的滤波过程,使用引导图像i对输入图像p进行处理,得到输出图像q。对于输出图像的第i个像素,有如下表达式:
其中,p是输入图像的像素,q是输出图像的像素,i和j是像素标签,wij是滤波核函数,其定义如下:
其中,i是像素值,ωk是第k个核函数窗口,|ω|是窗口内的像素个数,μk和
步骤4:求取平均大气消光系数
步骤41:在原始图像中指定至少两条车道白线以选取道路关键点,本实施例在原始图像中指定4条车道白线以选取道路关键点。
步骤42:对于每一条车道线,获取车道线两端位置的透射率,分别计算出对应的大气消光系数。
对于每一条车道线,假设车道线两端关键点为p0和p1,则该车道线附近对应的大气消光系数的计算方法如下:
如前文所述,雾天模型方程为:
i(x)=j(x)t(x)+a(1-t(x))
其中,i(x)是雾化图像的像素,j(x)是无雾图像的像素,t(x)是透射率,a是全局大气光值。
对于能见度检测,柯西米德于1924年建立了物体自有亮度与物体视亮度之间的关系:
l=l0e-βd+lf(1-e-βd)
其中,l是物体视亮度,l0是物体自有亮度,lf是天空亮度,β是大气消光系数,d是物体与观测点距离。
根据变量之间的对应关系,得出:
t(x)=e-βd
两边取对数,可得:
ln(t)=-βd
对于两个关键点p0和p1,则有:
其中,d0和d1是p0和p1分别到观测点的距离。
进一步推导,可得大气消光系数的计算公式如下:
其中,β是大气消光系数,t0和t1是p0和p1分别对应的透射率,d0和d1是p0和p1分别到观测点的距离。
根据交通部门的数据,每条白色车道线长度是6m,依据三角形原理,容易得出:d0-d1≈6。
步骤43:重复步骤42,计算出对应于每一条车道线的大气消光系数,并对所有车道线的大气消光系数求平均值,得到平均大气消光系数。平均大气消光系数的计算方法如下:
其中,βi是每次求取的大气消光系数,
步骤5:能见度估计:采用平均大气消光系数,计算大气能见度。
大气能见度的计算方法为:
大气亮度的对比度衰减规律为:
c=c0e-βd
其中,c是目标物的视亮度对比值,c0是目标物相对于背景的固有亮度对比值,且c0≈1,β是大气消光系数,d是目标到观测点的距离;
为了保证物体刚好能够看见,视亮度c必须等于一个阈值;根据国际照明委员会推荐阈值为0.05,则可得气象能见度距离为:
其中,vmet是待求的能见度值,
本实施例基于暗通道先验和深度学习的高速公路雾天能见度检测方法,采用了基于暗通道先验的方法,首先在原理上保证检测结果的准确性;针对现有方法得出的透射率图不够精细的问题,本发明做了两方面改进:首先基于深度学习,设计了一个六层的卷积神经网络来模拟透射率的计算过程,由于卷积神经网络能有效提取图像特征,所以通过该网络计算出的透射率图比现有算法更为精确;然后使用了导向滤波来进一步提升透射率图的精细度;针对现有方法计算复杂、实时性差的问题,本发明将卷积神经网络的调用做了简化,使得算法流程更加简单,由于所用卷积神经网络的结构简单,加上深度学习框架的性能优化,检测速度相对之前有了较大提升,可以满足实际应用需求,如果网络计算部分使用gpu进行处理,检测速度还能有更大的提升。
以上所述实施例仅是为充分说明本发明而所举的较佳的实施例,本发明的保护范围不限于此。本技术领域的技术人员在本发明基础上所作的等同替代或变换,均在本发明的保护范围之内。本发明的保护范围以权利要求书为准。