一种基于深度学习的室外非固定场景天气识别方法与流程

文档序号:17726261发布日期:2019-05-22 02:32阅读:279来源:国知局
一种基于深度学习的室外非固定场景天气识别方法与流程

本发明属于导航技术领域,特别涉及了一种室外非固定场景天气识别方法。



背景技术:

全源导航是应用多种类型的传感器,根据环境和任务需求的不同,实现多种组合方案的快速集成和重新配置,从而形成一种可在多种复杂环境下精确定位、导航和授时的导航定位系统。而其中的光学传感器会受限于天气环境,如暴雨、暴雪、沙尘暴、雾霾等天气对激光雷达、激光测高仪、红外测距仪等影响比较大,夜视设备在晴天会失效,相机在夜间无光的情况下拍摄的照片无法提供有效的导航信息。如果在非适应环境下应用这些传感器,将会大大降低导航定位的精度。除此之外,在一些场景下也需要通过天气图片来识别出当前的天气环境,进而做出一些决策或判断。因此,精确识别出当前的天气情况是本领域亟需深入研究的内容。



技术实现要素:

为了解决上述背景技术提出的技术问题,本发明提出了一种基于深度学习的室外非固定场景天气识别方法。

为了实现上述技术目的,本发明的技术方案为:

一种基于深度学习的室外非固定场景天气识别方法,包括以下步骤:

(1)构建轻量型卷积神经网络的基本结构;

(2)收集各种天气的图片并将其制作为特定格式的数据集;

(3)利用步骤(2)得到的数据集对轻量型卷积神经网络进行训练;

(4)将训练好的轻量型卷积神经网络移植到嵌入式平台或可移动设备中,将拍摄的天气图片作为轻量型卷积神经网络的输入,输出各种天气情况对应的概率。

进一步地,在步骤(1)中,轻量型卷积神经网络的结构特征如下:

在特征变换过程中,特征图的二维尺寸逐渐减小,每次特征图减小时输入尺寸与输出尺寸的比例尽量接近2;特征图的通道数逐渐增多,服从金字塔形式的分布,特征图的输出通道数与输入通道数的比例尽量接近1。

进一步地,在步骤(1)中,轻量型卷积神经网络的结构特征如下:

对于卷积层,卷积核具有5×5、7×7或9×9的感受野,卷积层采用扩张卷积或深度分离卷积实现;对于池化层,采取最大池化层和平均池化层对特征图做下采样。

进一步地,在步骤(1)中,轻量型卷积神经网络的结构特征如下:

在网络的中间层对特征图进行特征提取时,采用多支路策略;其中一条支路作为残差结构,减小梯度消失的现象;其余支路采用扩张卷积或深度分离卷积进行特征提取:首先采用1×1的卷积对输入进行非线性变换,扩充通道数;然后采用扩张卷积或深度分离卷积对其进行特征提取,其中深度卷积操作中引入扩张因子,在不增加参数计算量的情况下增大感受野;最后采用1×1卷积对经过扩张卷积后的特征图做线性变换或将经过深度卷积后的特征图结合起来,使得各支路的输出通道数相同。

进一步地,步骤(2)的具体过程如下:

(201)收集晴天、黑夜、暴雨、暴雪、沙尘暴、雾霾六种天气的rgb图片,且这些图片为不同场景、不同角度拍摄的图片;

(202)将收集到的所有图片按比例分为三个子数据集,分别为训练集、验证集和测试集,训练集和验证集用于对网络进行训练,测试集用于测试网络的性能;

(203)将所有图片进行归一化,然后制作成tensorflow框架下特定的数据格式。

进一步地,在步骤(201)中,六种天气的图片数量应尽量接近相等;在步骤(202)中,训练集、验证集与测试集的比例为8:1:1或者6:2:2,且三个子数据集中均应包含六种天气图片。

进一步地,在步骤(3)中,网络中需要初始化和调整的参数包括但不限于:学习率、训练样本批大小、激活函数、权重初始化方法、损失函数、优化器和训练次数。

进一步地,在步骤(3)中,采用l2正则化和dropout,并且引入batchnormalization层,其中l2正则化和dropout的参数需要初始化和调整。

进一步地,在步骤(3)中,以训练集和验证集的损失最小化为目标,对网络参数和网络结构进行调整,不断进行训练,最后采用测试集来测试网络的性能。

进一步地,步骤(4)的具体过程如下:

(401)将训练好的轻量型卷积神经网络封装成可执行程序,移植到嵌入式平台或可移动设备上;

(402)采用多线程技术,利用互斥锁,先启动相机拍摄当前的天气图片,然后调用封装好的卷积神经网络来识别图片,输出每种天气对应的概率,其中概率最大的即为当前的天气情况。

采用上述技术方案带来的有益效果:

(1)本发明克服了传统方法只能识别固定场景的缺点,并且可以应用于嵌入式平台和移动设备中;

(2)本发明无需任何辅助,仅通过单张rgb图像就可以识别室外非固定场景下的天气情况;且本发明对相机拍摄图片的角度没有具体要求,实用性非常高;

(3)本发明实现的方法计算量非常少,且精度比较高,因此可以实现实时监测。

附图说明

图1是本发明的基本流程图;

图2是本发明中的一种多支路结构图;

图3是本发明中的一种卷积网络结构图;

图4是本发明中的一种网络预训练方法。

具体实施方式

以下将结合附图,对本发明的技术方案进行详细说明。

本发明设计了一种基于深度学习的室外非固定场景天气识别方法,如图1所示,步骤如下:

步骤1:构建轻量型卷积神经网络的基本结构;

步骤2:收集各种天气的图片并将其制作为特定格式的数据集;

步骤3:利用步骤2得到的数据集对轻量型卷积神经网络进行训练;

步骤4:将训练好的轻量型卷积神经网络移植到嵌入式平台或可移动设备中,将拍摄的天气图片作为轻量型卷积神经网络的输入,输出各种天气情况对应的概率。

在本实施例中,步骤1可以采用如下优选方案实现:

(1)该卷积网络是为一些需要通过天气图片识别出当前天气情况的场景所设计,要在嵌入式平台上应用,因此在保证准确率的基础上要有比较小的计算量。

(2)网络的输入图片应为三通道的rgb图片,在特征变换过程中,特征图二维尺寸(宽和高)应该逐渐减小,每次减少时输入和输出尺寸的比例应尽可能接近2(最优值取2),有利于网络性能的提升。特征图的通道数应该逐渐增多,服从金字塔分布,每次增多时输出通道数和输入通道数之比尽可能接近1(最优值取1),这样可以加快网络运行的速度。

(3)对于卷积层,卷积核的感受野应为5×5、7×7或9×9,以便于更好地提取全局特征,可采用扩张卷积来扩大感受野而不增加计算量;同时为了加快网络运行的速度,可以采用深度分离卷积,可以大大减小计算量。对于池化层,采用最大池化层和平均池化层对特征图做下采样,此处卷积核取常规尺寸即可。深度分离卷积和常规卷积所需计算量之比如下式所示:

上式中,dk表示卷积核尺寸,m表示输入通道数,df表示输出特征图的尺寸,n表示输出通道数;在相同条件下,采用深度分离卷积的计算量为dk·dk·m·df+m·n·df·df,其中深度卷积的计算量为dk·dk·m·df·df,1×1的计算量为m·n·df·df,采用常规卷积的计算量为dk·dk·m·n·df·df,两者之比为若卷积核大小为3×3,则深度分离卷积的计算量大约是常规卷积计算量的

特征图经过卷积层或池化层后尺寸变化如下式所示:

对于padding=vaild,

对于padding=same,

其中,w是输入图片的尺寸,一般宽和高相等,f为卷积核的尺寸,s表示步长,即stride,表示向上取整。

对于扩张卷积,其卷积核的感受野:

height=width=f+(f-1)×(rate-1)

其中,rate表示扩张因子,height和weight表示卷积核的实际感受野。

以下给出一个优选的卷积神经网络结构,本发明并不限于该结构:

输入图片尺寸可选为224-448之间,卷积核的感受野为5×5,采用扩张卷积实现;当采用卷积层对特征图做特征提取时,特征图的输出通道数和输入通道数之比可在1-2之间;采用最大池化层进行下采样时,输入特征图和输出特征图的二维尺寸之比可在1-3之间。

(4)对网络的中间层进行特征提取时,采用多支路策略。其中一条支路作为残差结构,减小梯度消失的现象;其余支路可先采用1×1的卷积对输入进行非线性变换,扩充通道数,然后采用扩张卷积或深度分离卷积对其进行特征提取,其中深度卷积操作引入扩张因子,可以在不增加参数计算量的情况下增大感受野,再采用1×1卷积对经过扩张卷积后的特征图做线性变换或对经过深度卷积后的特征图结合起来,且使得各支路的输出通道数一致。

如图2所示本发明的一种多支路结构,当采用多支路结构进行特征提取时,支路数量可选择2-5条,其中一条作为残差结构,若输入输出的通道数相等,则对该条支路不做任何变换,若输入输出的通道数不相等,则采用1×1的卷积对其做线性变化,使得输入和输出通道数相等;其余支路可先采用1×1的卷积核对输入特征图做非线性变换,扩充通道数以增加特征信息,然后采用深度分离卷积或扩张卷积进行特征提取,其中深度卷积中用具有较大感受野的卷积核来进行特征提取,卷积核的感受野可在5×5-9×9之间,此处可以引入扩张因子来增大感受野,扩张因子可取2-4之间,最后采用1×1卷积对经过扩张卷积后的特征图做线性变换或对经过深度卷积后的特征图结合起来,且使得各支路的输出通道数一致,得到的卷积神经网络结构如图3所示。

在本实施例中,步骤2可以采用如下优选方案实现:

(1)通过实地拍摄、监控视频或网站等方法收集晴天、黑夜、暴雨、暴雪、沙尘暴、雾霾六种天气的rgb图片,且为不同场景、不同角度拍摄的图片,图片数量越多越好。

(2)将所有的图片分为三个子数据集,分别为训练集、验证集和测试集,训练集和验证集用来对网络进行训练,测试集用来测试网络的性能。以下是基于本方法的划分数据集的比例,本方法包括但不限于按该比例划分数据集:训练集、验证集和测试集的比例大小为8:1:1或者6:2:2,且每个子数据集中的应具有均等数量的六种天气图片。

(3)将所有图片进行归一化,然后制作成tensorflow框架下特定的数据格式。

在本实施例中,步骤3可以采用如下优选方案实现:

(1)网络中需要初始化和调整的参数有学习率、训练样本批大小、激活函数、权重初始化方法、损失函数、优化器、训练次数等。以下是基于本方法设计出的初始化参数,本方法包括但不限于此参数:

初始参数设置如下:采用动态的学习率,其随着训练迭代次数按比例减小,范围为0.00001-0.01之间即可,batch_size取值为16的倍数,在16-256之间即可,激活函数取relu族的函数,权重初始化可采用xavier初始化或者截断高斯分布初始化方法,损失函数采用交叉熵损失函数,优化器采用adam或者rmsprop,训练次数在10-50ephos之间即可。

(2)网络中采用l2正则化和dropout,并且引入batchnormalization层,加强正则化,防止过拟合,且加快网络的收敛速度。其中l2正则化和dropout的参数也需要初始化和调整。以下是基于本方法设计出的初始化参数,本方法包括但不限于此参数:l2正则化系数可在0.00001-0.001之间,dropout系数可在0.5-1.0之间。

(3)如图4所示本发明的一种网络预训练方法,以训练集和验证集的损失最小化为目标,对网络参数和网络结构进行调整。若训练集损失不断下降,验证集损失不断下降,说明网络仍在学习;若训练集损失不断下降,验证集损失趋于不变,说明网络过拟合,需要增大l2正则化和dropout系数;若训练集损失趋于不变,验证集损失不断下降,说明数据集有问题,应该对步骤二构建的数据集进行检查;若训练集损失趋于不变,验证集损失趋于不变,说明学习遇到瓶颈,需要增加网络的深度或者减小学习率,并且调整(1)中的参数;若训练集损失不断上升,验证集损失不断上升,说明网络结构设计不当或训练超参数设置不当或数据集未经过清洗等问题,需要一一进行检查并且调整。

在本实施例中,步骤4可以采用如下优选方案实现:

(1)将训练好的网络封装成可执行程序,其输入为一张rgb图片,输出是对应六种天气的概率,然后将其移植到嵌入式平台上。

(2)调用相机采集一张实际的天气图片,然后采用多线程技术调用封装好的卷积网络程序来识别图片,输出每种天气对用的概率,再将结果发送给调度中心来进行决策。

以下是基于本方法设计出的嵌入式平台应用部分,本方法包括但不限于此平台:将训练好的网络封装成.py格式的可执行程序,然后移植到linux平台上,采用多线程技术,利用互斥锁,先启动相机采集一张当前天气的图片,然后传输给封装好的卷积网络,最后输出每种天气对应的概率,对应概率最大的则为当前的天气情况。

实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1