APP下载

自适应混合卷积神经网络的雾图能见度识别

2020-05-20苗开超周建平刘承晓姚叶青

计算机工程与应用 2020年10期
关键词:正确率卷积神经网络

苗开超,周建平,陶 鹏,刘承晓,姚叶青

1.安徽省公共气象服务中心,合肥 230031

2.安徽继远软件有限公司,合肥 230088

1 引言

雾是一种常见的灾害性天气现象,在大雾水汽的作用下,使地面水平能见度大大降低,严重危害道路交通安全。因此,提高大雾天气能见度监测准确性是加强道路交通安全[1]管控水平的重要内容。目前,交管部门主要通过布设能见度仪对道路大雾等级进行监测,这种监测手段对道路交通安全管控起到了重要作用,然而能见度仪布设成本高,间距较远,对局地大雾或团雾的监测具有较大的局限性。

近年来,卷积神经网络(Convolutional Neural Network,CNN)[2-5]和深度学习技术在大气科学领域得到了广泛的应用[6-7]。Narasimhan 等人[8]通过建立点光源传输公式,获取散射粒子条件,计算能见度,但这种方法检测范围较为有限。Gallen等人[9]通过光源亮度计算大气消光系数,进而计算能见度,这种方法侧重理论论述,未结合实际应用情况进行实验结果分析。戴庞达等人[10]提出了一种消除光源波动的双光源能见度计算方法,该方法分析多次散射条件下光源图像亮度与大气消光系数之间的关系,建立目标亮度特征与能见度反演的关系模型。夏创文[11]提出了一种基于视频的大雾级别检测方法,该方法利用梯度计算和距离变换来区分并分割天空与真实雾区,并以雾区HSV 颜色空间的统计直方图为颜色特征向量,通过SVM(Support Vector Machine)算法实现大雾等级分类。该研究对场景有较大依赖,模型难以推广应用。

本文基于安徽省高速公路不同场景、不同时段监控视频图像数据,提出一种基于自适应混合卷积神经网络算法,通过将ResNet[12-14]、VGG19迁移到样本上学习[15-18],解决样本量少带来过拟合问题,并通过建立参数自适应调整模块,根据训练周期数和训练结果误差,调整权值参数,对相应特征进行针对性训练,从而提高模型训练的收敛速度和识别精度。实验表明,本文提出的自适应混合卷积神经网络对雾图能见度有较高的识别能力,用于补充气象、交管、交通等部门对道路能见度的自动化辅助观测。

2 数据来源及预处理

2.1 数据来源

本文所用数据来源于安徽省高速公路200 个监控摄像头白天(6:00—18:00)采集的图像数据,及相应摄像头附近200 m 内的能见度仪监测数据。图像数据包括2017年10月至2019年1月安徽省高速公路视频监控截图,共计约9.2 万张,剔除其中模糊、拍摄角度过低或过高的图像数据,保留有效图像样本约4.5 万张。根据能见度仪监测数据将样本数据进行分类标注,其中无雾样本34 090张(能见度1 000 m以上)、轻雾样本16 506张(能见度500~1 000 m)、大雾样本14 086张(能见度200~500 m)、浓雾15 931张(能见度50~200 m)、强浓雾11 402张(能见度50 m以下)。五种能见度等级雾图如图1所示,样本标注结果具体分布情况如表1所示。

表1 雾图像采集信息表

图1 不同雾能见度等级样本

2.2 迁移学习

为防止过拟合,卷积神经网络需要大规模训练样本。由于本文实验采集的样本量较少,为防止出现过拟合现象,本文采用迁移学习的方法。

其次迁移学习模型可以获得优化的初始参数,从而加快训练的速度,提高模型的识别率和泛化能力。本文使用ImageNet 上预训练好的VGG19 和ResNet 作为预训练模型,迁移到本文实验样本集上进行调整训练。

3 自适应混合卷积神经网络模型构建

深层卷积神经网络结构复杂,具有大量的参数,会消耗过多的计算资源和存储资源。为此,在大雾能见度识别的实际应用中,需要设计能同时保证识别精度和识别速度的网络结构。本文构造了自适应混合神经网络,实现雾的等级自动识别分类。通过建立自适应模块对预训练模型权值和偏置自适应更新,调整权值参数,优化网络;然后构建自定义网络层进行进一步的训练;最后网络输出层采用SVM[19]多分类。对结果进行分析,算法流程如图2所示。

图2 算法流程

3.1 自适应混合卷积神经网络算法实现

卷积神经网络结构反向传播分类误差过程中,由于没有对分类结果进行明确分析,无论识别正误,将所有分类误差进行无差别反馈,无法实现参数的有效调整。自适应混合卷积神经网络[20]算法旨在解决不同识别结果和迭代次数下分类特征自适应增强问题,以实现网络的加速收敛和提高识别率。

本文构造的自适应混合卷积神经网络结构如图3所示。其中forward process为前向传播过程,包括Pretraining model、Feature extraction layer、Connection layer 和 Output layer。Pretraining model 使用了 ResNet 和 VGG19混合预训练模型;Feature extraction layer定义了多个卷积和池化操作,实现图像特征提取;Connection layer 与SVM 分类器相连接实现图像分类;Output layer 为输出层,其中增加了自适应增强模块。reverse process为残差的反向传播过程,根据自适应增强模块分析结果,实现反向传播过程中权值自适应调整。输入数据经前向过程后得到分类结果,其中每个分类值对应唯一类别,且最大值对应的类被识别为输入Input 的所属类别,而输入数据实际所属的类别称为真值类别;分类真值为训练监督数据,存储输入数据对应的真实分类结果,其中真值类别对应的值为1,其余类别对应的值为0;分类误差由分类结果与分类真值生成。

图3 自适应卷积神经网络结构

表2 网络层结构参数

如图3 所示,前向过程将图像归一化为224×224 大小,输入到ResNet和VGG19预训练模型,并利用6个5×5的卷积核进行滤波后,得到特征映射成C1,它由6 个大小为24×24的最大值下采样后得到S1层,在S1层上,继续使用32个5×5的卷积核对其进行卷积,得到输出的特征图 C2,它由 6 个 12×12 的特征图组成;在 S2 层后,生成全连接层1×256一维向量,该层由84个神经元构成隐层,隐层通过线性关系连接output层,由5个取值为0或1的节点构成,节点即为待预估的能见度等级的分类标签。根据分类标签和真值进行对比分析后,增强错误分类样本的权值系数,再反向传播,以更新预训练模型权值,自适应调整网络层的权值。自适应混合卷积神经网络结构描述如表2所示。

以G3 京台高速831 km 处的一张轻雾图像为例。在网络层的各阶段过程输入图像,通过卷积层后得到的卷积结果如图4所示。

卷积神经网络使用误差函数E(ε,b)[21]来衡量隐层中各项参数对输入图像的训练效果。通过在迭代训练过程中降低误差函数的输出,从而使分类结果kω尽可能接近分类真值k^ω,当相邻两次学习的误差小于既定阈值时,则认为网络训练处于收敛状态,学习完成。对于一个n分类问题,定义其目标误差函数为:

图4 输入图像在混合卷积神经网络各卷积层的图像

其中,inaccω为第ω类的分类结果与真值的误差。

根据梯度下降法,权值和偏置的变化量表达式为:

其中,d为残差,x为输入特征图中的值,f′为对激活函数f进行求导。

本文提出自适应混合卷积神经网络,在CNN[22]的前向与反向过程之间增加自适应增强模块,根据迭代次数和分类结果误差分析,自适应地调整隐层权值及偏置幅度。通过反向过程将增强后的残差反馈到隐层参数中,实现卷积核与全连接层中的权值与偏置的自适应更新,从而提升下一周期模型训练分类效果。

3.2 自适应模块构建步骤

自适应模块构建步骤如下:

(1)分类误差计算。自适应混合卷积神经网络通过前向过程得到分类结果,将分类结果与分类真值进行比较,计算得出分类误差,计算方式如式(1)所示。

(2)确定自适应调整系数。根据迭代次数和前向过程的识别结果确定调整系数。调整系数μ的基本计算表达式为:

(3)将与分类结果特征对应的误差值进行自适应调整,则第ω分类增强误差计算表达式为:

(4)计算残差。将式(6)计算的误差带入式(4),计算调整后的残差。

(5)将调整后的残差反馈到隐层。隐层中权值与偏置更新计算方法如式(2)、(3)所示。

(6)权值更新。通过反向过程对增强后的隐层权值与偏置进行更新。

3.3 自适应混合卷积神经网络算法分析

3.3.1 算法收敛性

卷积神经网络分类过程如下:通过池化操作将卷积层输出的特征进一步降维,并输入到全连接层。全连接层经过权值变换与激活得到分类结果。分类表达式如式(7)所示:

即有:

其中,Fr是分类结果,f是激活函数,W是权值矩阵,T为特征矩阵,C为偏移量。

因此根据式(8)可知,传统的卷积神经网络与本文提出的混合神经网络的第i类分类计算表达式如式(9)所示:

由于传统卷积神经网络不对分类结果进行详细分析[23],无论识别正确与否,都无差别地返回各个类别的分类误差,因此传统神经网络下一次迭代训练分类过程表达式如式(10)所示。而本文提出的算法会根据分类结果调整下一次训练的权值和参数,其权值和参数调整方式如式(9)所示,因此混合卷积神经网络下一次迭代训练过程表达式如式(11)所示。

其中,μ1、μ2为参数调整系数,其计算方式如式(5)所示。

传统的神经网络训练过程中无论识别正确与否,都无差别地返回各个类别的分类误差,反馈的参数修正量较小,从而无法有效地扩大参数修正,降低了网络训练收敛速度。混合卷积神经网络详细地分析了分类结果与真值之间的误差,根据误差计算参数调整系数μ1、μ2,自适应地调整参数的修正量,从而提高网络收敛速度。

3.3.2 算法复杂度

本文提出的自适应混合卷积神经网络有两方面改进:一是在前向过程增加预训练模型;二是在前向过程与反向过程之间增加了误差自适应调整计算。因此本文主要从这两方面对算法的复杂度进行分析。

首先,在算法输入层增加两个预训练模型,其隐层参数是训练好的,不会进行反向传播更新,消耗时间较少,因此并不会显著增加算法的训练时间,对网络主体训练时间复杂度影响可忽略不计。

其次,在算法的前向与反向传播之间增加了自适应调整模块。自适应调整模块时间复杂度为O(N),与算法分类类别数有关,因此每个周期算法的时间会增加O(N);但不会增加网络训练的总体训练时间复杂度,通过增加自适应调整模块,可以加速网络的收敛,从而有效地降低网络的训练周期数,因此在一定程度上会减少网络的总体训练时间。

3.3.3 算法识别效果

根据卷积神经网络的分类特性,分类结果中最大值决定识别效果,若分类结果与样本标注结果一致,则样本分类正确,反之则分类错误。本文提出的自适应混合卷积神经网络算法通过将ResNet、VGG19 预训练模型与卷积神经网络混合使用,可以高效快速地提取样本主要特征,并随着训练周期增加,对主要特征进行训练,提升算法对样本类别的区分能力,实现样本训练的准确分类,有效提升模型的识别率。

传统卷积神经网络每次训练是将分类误差无差别地反馈到隐层,因此无法准确地加强主成特征对网络训练的影响。自适应卷积神经网络算法通过构建自适应模块,可以根据样本分类误差进行增强或降低调整后反向传播,增强或降低对应的隐层参数、偏置,达到对相应特征针对性训练的目的,从而有效地增强主成特征对网络训练的影响,降低无效特征对网络训练的干扰,使分类结果准确性不断提高,优化收敛效果,提高样本识别率。

本节主要对自适应神经网络算法的收敛性、时间复杂度和识别效果进行分析。通过分析可知,增加自适应调整模块可以有效地提升算法的收敛性并降低时间复杂度,同时可以对误差较大的特征进行针对性训练,提高分类的准确性。为进一步验证本文提出算法的应用效果,在下一章节,将自适应神经网络算法与同结构网络算法进行对比分析。

4 实验结果及分析

4.1 实验数据及环境

本文通过自建数据集验证模型效果,数据集采集标注情况见表1。从各等级样本中各选择10 000张作为实验数据集,并将各等级雾图按照6/10、2/10、2/10 比例随机划分,从而把样本分为训练集、验证集和测试集三部分,各部分数据具体分布情况如表3所示。实验环境如表4所示。

表3 样本分布

表4 实验环境

4.2 评价指标

本文分别通过以下几个指标验证自适应混合卷积神经网络算法的效果,指标定义如下。

(1)收敛指数。为验证自适应混合卷积神经网络算法的收敛性,本文设定收敛指数作为算法的评价指标,当收敛指数满足式(12),停止模型训练,即模型训练曲线随着训练次数趋于平稳,则认为模型已经收敛。

其中,acci是训练过程中的准确率,E是自定义的阈值。

(2)时间复杂度。本文将模型收敛时所用的时间定义为时间复杂度,为排除偶然性,通过训练,比较分析时间曲线。

(3)识别正确率。衡量模型性能有很多评价指标,本文使用常用的识别正确率(accuracy,ACC)作为模型评价指标。ACC计算公式为:

其中,TP表示被模型预测为正的正样本,TN表示被模型预测为负的负样本,FP表示被模型预测为正的负样本,FN被模型预测为负的正样本。

4.3 实验及分析

本文针对卷积神经网络在大雾等级识别领域展开研究,为验证模型效果,分别从收敛指数、时间复杂度和识别正确率几个指标进行实验分析,具体设置以下实验:(1)将自适应混合卷积神经网络算法与同结构无自适应模块的算法进行两次实验,对比分析收敛情况下两种算法所用迭代周期数。(2)将自适应混合卷积神经网络算法与同结构无自适应模块的算法进行五次实验,对比分析收敛情况下两种算法所用时间。(3)实验选择VGG19、ResNet、GoogLeNet[24]作为对比算法,重复多次实验,对比分析自适应混合卷积神经网络与VGG19、ResNet、GoogLeNet的总体识别效果。计算多次实验的每个等级识别平均结果,对比分析在不同雾等级下自适应混合卷积神经网络与 VGG19、ResNet、GoogLeNet 的识别效果。

4.3.1 收敛性对比分析

基于自建样本集,重复训练自适应混合卷积神经网络和同结构的原始网络两次,初始迭代周期设置为1 000次,分别对比两种算法停止训练时训练的周期数。经过实验分析,得到收敛指数与训练周期之间的曲线图,如图5所示。

图5 是两次训练自适应混合卷积神经网络与同结构的原始网络训练收敛曲线。图5(a)是第一次训练结果,从图中可以看出,自适应混合卷积神经网络训练周期在540 左右时达到收敛条件,训练停止;同结构的原始网络需要训练700个周期左右达到收敛条件,停止训练。图5(b)是第二次训练结果,从图中可知,混合神经网络训练530个周期左右时停止训练,原始神经网络经过670个周期训练达到收敛条件,停止训练。综合图1判断,本文提出的自适应混合卷积神经网络算法要比同结构的原始神经网络提前150个周期左右达到收敛条件,说明自适应混合卷积神经网络的自适应模块能够有效地加速算法的收敛。

4.3.2 时间复杂度对比分析

基于自建样本集,重复训练自适应混合卷积神经网络和同结构的原始网络五次,为了不让两种算法达到收敛情况,设置训练周期小于混合神经网络的收敛周期,因此,分别设置训练周期达到100、200、300、400、500次停止训练,记录不同训练周期下的两种算法所需要的训练时间。通过实验分析,得到两种算法训练时间与周期数之间的关系图,如图6所示。

图5 收敛曲线对比图

图6 训练时间对比图

图6 是自适应混合卷积神经网络算法与同结构的原始算法之间的训练时间对比图,通过五次不同训练周期重复实验得到两种算法训练时间,从图中可以看出,同周期情况下,自适应混合卷积神经网络算法的所需时间要比原始神经网络算法的时间长,这是因为该算法增加了自适应模块,所以增加了训练时间。但从图上看总体时间增加不大,因此并没有明显地增加网络的时间复杂度。

4.3.3 识别正确率对比分析

(1)总体识别正确率分析

实验使用样本总体训练集训练模型,并随机将测试集分为五部分,用于重复测试模型性能。首先将样本总体训练集作为模型训练数据,构造雾识别模型;然后基于训练好的雾识别模型,分别将五个测试集进行实验验证;最后经实验对比,获得总体样本下混合神经网络模型与 VGG19、ResNet、GoogLeNet 五次重复实验结果。实验结果如图7所示。

图7 各神经网络识别结果

图7 是自适应混合卷积神经网络模型与VGG19、ResNet、GoogLeNet五次实验结果。由图可知,自适应混合卷积神经网络五次实验结果识别正确率在0.80左右;VGG19五次实验结果识别正确率在0.70左右;GoogLeNet识别正确率在0.77左右;ResNet的识别正确率在0.79左右。根据实验结果可知,几种算法对雾图的识别稳定性较好,没有太大的波动,其中自适应混合卷积神经网络与ResNet效果相近,且比其他两种算法高,说明本文构造的神经网络算法不仅能够解决模型训练速度慢的问题,而且保持着相对较好的识别效果。

(2)不同雾等级识别正确率分析

图8 各网络识别结果混淆矩阵图

实验使用总体样本集训练模型,并根据各雾等级测试集识别结果分析模型性能。首先输入训练集,构造雾识别模型;然后基于训练好的雾识别模型,使用相应雾等级的测试集进行验证;最后经实验对比,获得各个等级下自适应混合卷积神经网络与VGG19、ResNet、GoogLeNet的识别结果。实验结果如图8所示。

图8是自适应混合卷积神经网络与VGG19、ResNet、GoogLeNet 实验结果混淆矩阵图。由图8(a)可知自适应混合卷积神经网络在五个等级雾图的识别正确率分别达到了0.820、0.813、0.804、0.793、0.781,识别正确率在0.78以上。图8(b)、(c)、(d)是VGG19、ResNet、GoogLeNet的实验结果,此三种算法的各等级识别正确率分别在0.67、0.79和0.73以上。由实验结果可知,自适应混合卷积神经网络算法在各等级识别正确率上与ResNet 相近,优于VGG19和GoogLeNet,说明构造的自适应混合卷积神经网络在加快收敛速度的情况下能够很好地对雾等级进行识别。

5 总结

本文在收集不同能见度等级雾图样本的基础上,提出并训练了自适应混合卷积神经网络模型,实现了雾能见度等级自动识别分类。通过实验分析对比,自适应混合卷积神经网络构造的模型具有较高的识别正确率,在各能见度等级下的大雾识别中,识别正确率平均在0.78以上;同时经过多次重复验证,其识别正确率均保持在0.80 左右。相较于 VGG19、GoogLeNet,自适应混合卷积神经网络构造的模型识别正确率和稳定性都具有较大的提升。本文算法的识别正确率和稳定性与ResNet相近,但能够加快训练收敛速度。因此通过实验比较,本文算法能够较好地识别雾等级,在一定程度上满足道路大雾等级辅助监测需求。但本文只针对白天的雾图样本数据进行了建模应用,因为夜晚光线原因,能标注的图片样本较少,所以没列入本文的研究范围。

猜你喜欢

正确率卷积神经网络
基于3D-Winograd的快速卷积算法设计及FPGA实现
门诊分诊服务态度与正确率对护患关系的影响
卷积神经网络的分析与设计
神经网络抑制无线通信干扰探究
从滤波器理解卷积
基于神经网络的中小学生情感分析
基于傅里叶域卷积表示的目标跟踪算法
生意
品管圈活动在提高介入手术安全核查正确率中的应用
生意