基于卷积神经网络的天气现象识别方法研究
2019-03-11杨文佳朱海龙刘靖宇
杨文佳 朱海龙 刘靖宇
摘要:为实现基于图片的天气现象识别,本文提出一种基于卷积神经网络的天气现象识别技术。深度学习在图片分类方面表现出了巨大的优势,本文采用最新的卷积神经网络模型DenseNet,自动提取图像中每种天气现象的特征,通过对同一地点拍摄的晴、阴、雨、雪4种天气进行训练、测试,得到最终的识别结果。实验结果表明,该方法对图片中天气的识别达到了预期的效果,并且相较于传统的方法减少了实验步骤,缩短了时间。
关键词:天气现象识别;深度学习;图片分类;卷积神经网络
0引言
在现代道路交通中,恶劣的天气条件会对城市交通产生很大的影响。雾、雪和其它极端天气条件可能导致交通拥堵、驾驶员视野的模糊以及道路的湿滑会造成严重的交通事故。通过对天气和环境的实时检测,结合交通信息,可以有效减少恶劣天气对道路交通造成的影响,提高恶劣天气下的出行效率。因此,实现天气状况的实时预测在很多方面具有重要意义。
传统的天气现象检测方法中,主要是通过气象卫星检测结果,结合地面观测站建立的大气模型实现天气预测。该方法可以实现大范围的天气趋势预报,对小区域的实时天气预报准确度较低。通过布置大量的传感器,可以提高预测的精度,但传感器部署和维护的成本较高,实现难度大。视觉图像采集具有成本低、效率高等优点,如果将城市中大量部署的交通摄像头和网络摄像头结合起来,通过机器学习的方法,对摄像头采集到的户外图像进行处理,识别范围将会更加广泛。文献[3]通过图片中HIS空间直方图等特征。判断辅助驾驶系统拍摄的图像是晴天还是雨天;文献[4]分析了天气现象对图像的影响,提取图像功率谱斜率、对比度、噪声等特征进行训练,建立决策树,并在非叶子节点构造SVM分类器,实现了对室外图像中的天气现象识别。但这些方法只能识别特定场景下拍摄的图片,而且训练过程复杂,无法满足越来越高的要求。
随着卷积神经网络[5-7]的发展,其在图片分类方面的优势更加明显。因此,本文将卷积神经网络应用到基于图片的天气分类中。该方法借助卷积神经网络不用手工提取图像特征的优点。对拍摄于同一地点、不同时刻的4种天气图片进行训练、测试,取得了较好的结果。
1 DenseNet模型
图片的移动、规模大小和变形对于CNNs的分类识别没有影响。在自然图像识别任务,特别是复杂的现实环境中的图像识别中,CNNs都有出色的表现。CNN的实现过程如图1所示。
DenseNet是2017年CVPR会议上提出的一种新的卷积神经网络模型,具有密集连接的网络结构。在该网络中,任何两层之间都有直接的连接,网络每一层的输入是之前所有层输出的并集,该层所学习的特征图也会作为之后所有层的输入。DenseNet的模型结构如图2所示。
设第L层的变换函数为H_L,输出为Y_L,可以用下式表示DenseNet每一层的变换:
Y_L=H_L([Y_0,Y_I,…,Y_{L-1}])(1)
DenseNet与其它网络最主要的不同是:
(1)网络中的每一层都直接与前面层相连,实现特征的重复利用。
(2)网络的每一层都设计的特别“窄”,每层都只学习非常少的特征图,从而达到降低冗余性的目的。其中网络密集连接是基于网络设计“窄”的前提,否则在训练过程中会出现欠拟合的现象。
与此同时,DenseNet还有如下优点:
(1)省参数。在ImageNet数据集上实验达到相同的识别率。DenseNet的参数量是ResNet的一半。模型越小可以明显的减小带宽,大大减少支出。
(2)省计算。相较于其它神经网络模型,DenseNet的计算量只有其它神经网络模型的一半。
鉴于DenseNet的各种优势,本文选其作为训练模型,将数据集中的训练集进行训练获得模型,利用模型获得单张图片的识别结果。
2 实验
由于缺乏大规模的天气数据集,本文使用互联网上获得的小规模图片,这些图片拍摄于同一地点的不同时间段,可以分为4个类别:晴天、阴天、降雨和降雪,所有图片的分辨率均为224×224.因为数据集较少,本文将数据集中60%的图片作为训练集,全部图片作为验证集,经过多次迭代获得训练模型。4种样本天气图像如图3(a)-图3(d)所示。
为了保证实验的准确性,本文提出的算法是基于tensorflow后端的keras深度学习库的开源代码。在Anaconda平台下使用python3.6进行编程。实验中用到的DenseNet模型共709层,在该结构中使用全局池化层(GAP)来替代全连接层,学习率设为0.001,使用权值衰减防止过拟合,权值衰减设定为0.0001.
在代码中调用了绘图模块,训练结果的准确率和损失会以曲线图的形式表现出来。如图4和图5所示(红色为训练结果,蓝色为验证结果)。在该实验中共训练迭代20次,在第十次迭代之后,准确率逐渐增长缓慢,趋于稳定。
通过测试实验,可以获得数据集中每张图片的天气识别结果。该方法对晴天和阴天的识别率高于雨天和雪天。通过图片分析发现,雨雪天错误率较高的主要原因是图片的数量较少,降雨过程中形成的水雾影响了图片的质量。
3 结束语
本文提出了一种基于卷积神经网络的天气现象识别方法,相较于传统的机器学习识别方法,该方法省去了手动提取图像中各类天气特征的步骤,大大节省了识别时间。由实验结果可知,该方法在对图像中的天气现象进行识别时取得了不错的结果,为接下来的研究打下了基础。由于本文使用的是小样本,而卷积神经网络在大量样本时才能获得更加准确的识别率。在接下來的工作中,可在以下几个方面作出改进:
(1)扩充数据集的大小,可以在固定位置设置摄像头,固定间隔时间拍摄图片,对每张图片中的天气现象进行手工标记。
(2)利用多种神经网络进行天气识别,将获得的多个结果进行融合,以期得到更准确的结果。