APP下载

基于改进SSD算法的农田烟火图像检测研究

2022-05-10曹丽英

无线电工程 2022年5期
关键词:烟雾火焰图像

李 琳,曹丽英

(吉林农业大学 信息技术学院,吉林 长春 130118)

0 引言

随着我国经济建设飞速发展,人们生活水平不断提高,天然气普及到家家户户,各种家电层出不穷,导致对柴草的需求一再减少,农田里的秸秆无处销售,农民朋友便选择燃烧秸秆[1]。但燃烧秸秆对环境影响极为严重,不仅容易引起“火烧连营”的火灾事故,燃烧产生的烟灰更污染了空气,降低可见度,极易引起交通事故,不完全燃烧产生的气体会引发人体呼吸道疾病。因此,如何在火焰和烟雾形成早期进行检测具有重大的理论和实际意义[2]。

农田火灾的监控系统多数来自于农田中高塔上的摄像头和无人机等设备,而这种图像中往往包括多种物体,比如建筑、道路、汽车和作物等,并且图像的清晰度受天气、光照等因素影响[3]。除此之外,图像中的烟雾和火焰相对于整幅图像来说很小,而且背景也很复杂。

传统的烟火检测方法主要采用传感器等技术,但是安装大量传感器的成本很高,野外放置易受灰尘、气流和人为因素的干扰,因此检测精度较低。烟雾检测在国内外已经做了大量研究,并且基于图像的烟雾检测方法也在不断提出,主要研究方向是结合烟火图像的动静态特征进行检测[4]。典型的动静态特征包括目标颜色、运动方向、运动范围和时间轨迹等[5]。

深度学习是机器学习研究的重要领域,相比于传统算法,深度学习算法可降低硬件成本,不依赖人工特征工程。目前已有学者将深度学习应用于烟雾检测方向,王中林[6]使用改进的支持向量机进行烟雾检测;冯路佳等人[7]通过将提取到的运动背景放入卷积神经网络(Convolutional Neural Networks,CNN)中进行烟雾检测;段锁林等人[8]通过对火焰区域进行RGB灰度处理进行火焰区域检测。

本文结合深度学习,使模型可以自我学习烟雾和火焰的特征,同时利用视频监控设备和无人机等设备对农田中的秸秆燃烧行为进行数据采集,及时对农田中秸秆燃烧产生的烟雾和火焰进行检测,可以在秸秆燃烧初期进行相应的检测,从而实现快速、大范围的烟火警告。此外,该方法安装和使用成本适中,有利于进行推广。Single Shot MultiBox Detector(SSD)算法[9]是目前深度学习目标检测中较优秀的算法之一,在保证了精度的同时,又提高了检测速度,可以达到实时检测的需求。

1 改进SSD网络模型的构建

1.1 SSD目标检测算法

SSD是目前主要的检测框架之一,该方法于2016年由Wei Liu提出,是基于单个神经网络的目标检测算法,可以一次完成目标定位与分类。基础网络参考了VGG16网络,为了连接基础网络的特征映射图而补充了辅助卷积层。预测卷积层是预测特征映射图每个点的矩形框信息和所属类别信息,从不同层获取特征并进行预测,随着层次结构的增加,语义变得更加复杂,SSD网络结构如图1所示。SSD算法使用直接卷积的方式对特征图进行预测并获取结果。SSD特有的网络结构使得采用3×3×q的卷积核即可对m×n×q的特征图进行检测[10],从而减少计算量。SSD使用低层特征图检测小目标,高层特征图检测大目标。

图1 SSD网络结构Fig.1 SSD network structure

SSD在预测时参考了Faster R-CNN[11]中候选框的方法,但为了减小训练时的难度,设置了比Faster R-CNN更少的4个先验框,有效提高目标检测速度。SSD算法虽然能够多层次提取特征,但是随着层次加深,形状易发生变化的目标语义会变得更加抽象,特征提取难度大大增加,因此实现不同尺度多种语义层次的特征提取,才能真正意义上帮助模型提升检测精准度。SSD算法在进行小目标检测时效果一般,常常出现漏检现象。

1.2 改进SSD网络模型

为了使SSD算法更好地契合农田烟火检测场景,解决SSD对小目标检测精度不高、训练过程易产生梯度下降和梯度爆炸等问题,对经典SSD网络结构进行修改:在经典SSD模型的基础网络VGG16的每2个卷积层中引入残差网络(Residual Network,ResNet)结构的思想,共组成4个ResNet+VGG16的结构;结合特征金字塔网络的融合思想,增强SSD网络对图像信息进行表达输出,更好地展现出图像各个维度的信息,提升小目标的检测效率,使用组归一化替代批量归一化避免数据量小对模型的影响,改进后的SSD网络结构如图2所示。

图2 改进SSD网络结构Fig.2 Improved SSD network structure

在进行烟火目标检测时,先验框的设置极其重要,先验框尺寸为:

(1)

1.2.1 引入ResNet模块

ResNet是在深度学习中用于提取主干特征的一种网络模型。在CNN中,网络层数越多,模型对事物的表征能力越强,但同时会产生性能快速下降的情况,这种情况称为“退化”。为解决该问题,ResNet网络应运而生[12]。提出残差的概念,残差结构有2种,本文引入的残差结构如图3所示。

图3 残差结构Fig.3 Residual structure

残差模块的数学公式为:

f(x)=h(x)-x,

(2)

式中,f(x)为残差模块中的残差;x为残差模块的输入部分;h(x)为经过第1次线性变化并通过激活函数处理的输出结果。

改进SSD网络模型将待预测的图片进行多层次卷积时,在VGG16网络的每2次卷积中进行残差学习,由于存在前后维度不一致的情况,此时使用步长为2的池化层进行降采样操作,可以避免无用参数对时间复杂度的影响,有效提高特征整合度。

1.2.2 引入特征金字塔思想

特征金字塔网络是一种高效提取图片多维度特征的方法,可以使不同尺度特征图之间互相融合,将浅层细节与高层语义结合并提高图像识别率,同时对小目标有更高的特征映射分辨率[13-16],可以解决经典SSD算法不能区分不同维度特征信息的缺点,但由于农田复杂的背景会对目标分辨率产生干扰,给FPN特征提取带来困难。为解决该问题,本文在引入FPN思想时对FPN结构进行调整,改进后结构如图4所示。

图4 改进特征金字塔网络Fig.4 Improved feature pyramid network

改进后的FPN结构可以进行跨层级连接,将高层级特征跨层与低层级特征融合,使用双线性插值代替临近插值,得到更优秀的上采样效果。

改进SSD网络模型对Conv7采用双线性插值方法进行上采样操作,与Conv4_3进行特征融合作为Conv4_3的特征图,同理将Conv8_2进行上采样与Conv7进行融合作为Conv7的特征图,将经过卷积的Conv11_2,Conv10_2,Conv9_2,Conv8_2与融合后的Conv7和Conv4_3组成一个新的特征金字塔通过非极大值抑制进行预测。

1.2.3 归一化方法

经典SSD算法进行归一化处理时使用批量归一化(Batch Normalization,BN)[17]。BN在对大量数据进行归一化处理时效果较好,能够有效减少训练过程中产生的误差,但在对少量数据进行归一化时,其训练产生的误差会随着数据量减少而逐渐增大[18]。为了使模型在数据量较少的情况下也能有效减少误差,本文采用组归一化(Group Normalization,GN)实现模型的训练。GN将数据进行分组,每个组中的数据进行归一化,最后将各组结果合并,其数学表达式为:

(3)

(4)

式中,σ为标准差;μ为均值;x为待归一化处理的数据。S在GN中定义如式(4)所示,其中C/G代表通道数量。

2 实验设计

2.1 实验环境

本文实验在64位Windows10操作系统下,运行内存32 GB,GPU为GeForce RTX 2080Ti(11 GB显存),处理器为Inter(R) Core(TM) i9-10900K CPU@3.00 GHz。采用Python3.7和Tensorflow 1.10.0框架实现模型的搭建以及模型的训练及验证。

2.2 实验数据集

由于截至目前还没有比较权威的烟雾和火焰检测标准数据集,因此本实验数据部分来自网络图片平台,部分来自项目拍摄,其中包括在自然环境下,田间高塔定点拍摄图像和无人机拍摄图像,经人工筛选,共计3 500张,图片样本如图5所示。通过LabelImg图像标注工具中的矩形框对图像进行人工标注,标注时尽量沿待检测烟雾和火焰边缘进行标注,以免进行模型训练时不能够准确地学习到烟雾和火焰的特征,避免模型不易饱和、误检率高的问题。

图5 图像样本集Fig.5 Image sample set

2.3 数据增强

在SSD模型中,数据增强是一种有效增加数据集样本数量的方式,从而提升模型的泛化能力以及鲁棒性[19]。数据增强可以将现有图像进行缩放操作,对图像中的小目标进行放大可以更明显地观察其内在结构,提高小目标检测效果。数据增强还可以通过裁剪方式,保留待检测目标未被遮挡的部分。本文采用如图6所示的随机缩放、随机旋转和随机翻转等方式对数据进行增强。当随机生成的裁剪框与目标的交并比(Intersection over Union,IOU)不满足要求,则要求删除;如IOU满足但目标中心点不包含在随机裁剪框也要求删除,经过数据增强后数据集扩充至7 000张图片。

(a) 随机缩放

(b) 随机旋转

(c) 随机翻转

2.4 实验过程

整体实验过程如图7所示。

图7 实验流程Fig.7 Experimental flow chart

将数据集随机划分为训练集和测试集,分别包含5 400张和1 600张图片。训练集用于网络模型的训练,测试集用于确定模型后进行测试实验。

实验采用随机梯度下降的方法来训练优化模型[20]。该方法可以在每次迭代过程中只选取一个随机样本数据用来更新模型参数,因此迭代次数大幅提升,但每次的学习是非常快速的,并且可以进行在线更新。

首先将数据集分辨率统一为300 pixel×300 pixel,然后使用训练集来训练网络模型。将激活函数学习率设置为e-4,学习率衰减因子设置为0.97,最大迭代步数为2×104,训练过程中每进行1×103次迭代后将所得模型进行保存,当训练结束后将目标检测准确度作为评判标准来选取最优模型。使用测试集对模型进行验证实验,并对实验结果进行分析。

2.5 评估标准

在本实验中,使用每秒传输帧数(Frames pre Second,FPS)、平均精度均值(Meanaverage Precision,mAP)和平均精度(Average Precision,AP)作为目标检测评估参数[21]。FPS表示1 s能够处理的图片数量,值越大说明算法的识别速度越快,mAP是目标检测算法中常用的综合评估多个类别下的平均准确率,AP是衡量单个类别下算法的准确率。AP和mAP为:

AP=∑precision/N,

(5)

mAP=∑AP/M,

(6)

式中,precison表示正确检测图像数量在算法检测出图像数量中的占比;N为目标类别图片总数;M为类别总数。

3 实验结果与分析计

3.1 改进网络结构模型对模型性能的影响

本文在经典SSD网络模型的基础网络中引入残差模块,将改进后的SSD模型与经典SSD模型使用相同训练数据集进行训练,当模型达到饱和后使用相同测试数据集进行对比实验,实验结果如表1所示。

表1 改进SSD模型与经典SSD模型性能对比Tab.1 Performance comparison between improved SSD model and classical SSD model

由表1可以看出,改进SSD模型与经典SSD模型相比较,训练时间有明显缩短,并且在检测速度上提升极为明显,识别准确率也高于经典SSD模型。

3.2 FPN与多尺度特征图对模型性能的影响

经典SSD模型使用多尺度特征融合方式从不同层抽取不同尺度特征进行预测,无上采样过程;FPN结合多尺度特征融合思想,将顶层通过上采样与低层特征进行跨层级融合,且每层都进行独立预测。本实验在改进SSD模型中引入FPN并与原有的多尺度特征图进行对比,共进行3次测试,测试结果如表2所示。

表2 FPN与多尺度特征图性能对比Tab.2 Performance comparison between FPN and multiscale feature map

由表2可以看出,在改进SSD模型中结合FPN思想后使模型检测精度有较大提升,由于FPN中上采样使得顶层与低层融合,因此在检测速度上稍逊于多尺度特征图。

3.3 不同归一化方法对模型性能的影响

在模型训练时,对数据进行归一化的方法极其重要。本次实验在引入FPN的改进SSD模型中分别使用组归一化和批量归一化2种归一化方法对相同数据集进行对比测试,测试结果如表3所示。

表3 组归一化与批量归一化性能对比Tab.3 Performance comparison between GN and BN

由表3可以看出,使用组归一化替代批量归一化,在数据量较小时,识别准确率更高。

3.4 不同网络模型比较

为比较改进后的SSD模型更适用于农田场景下的烟火图像检测,在本次实验中使用改进SSD模型分别与经典SSD模型、YOLOv3模型、Faster R-CNN模型使用相同数据集进行模型训练,训练过程中每进行1×103次迭代后将所得模型进行保存,经过2×104次迭代后,4种模型分别生成20个模型,模型准确率曲线和损失曲线如图8和图9所示。

图8 模型准确率Fig.8 Model accuracy

图9 模型损失曲线Fig.9 Model loss curve

模型训练的实质是从不断迭代的过程中寻找最小损失值的过程。由图8可以看出,随着迭代次数增加模型准确率不断提高,最终趋于稳定。由图9可以看出,YOLOv3,Faster R-CNN,经典SSD和改进SSD 四种模型分别在0.5×104,0.7×104,0.7×104和1.0×104次迭代时损失曲线趋于平缓,并且分别在1.5×104,1.6×104,1.8×104和1.3×104次迭代时损失曲线趋于收敛,模型达到饱和,此时模型准确率最高,因此选择这4个模型进行后续测试实验。从准确率曲线和损失曲线中可以看出,改进后的SSD模型收敛速度更快,收敛效果更好,准确度更高。

为了验证本文提出的改进SSD神经网络模型能够有效识别图片中的烟火小目标,将改进的SSD模型与经典SSD模型、YOLOv3模型和Faster R-CNN模型使用相同的测试数据集进行实验,并对得到的结果进行分析,实验结果如图10所示。

图10 烟火目标检测效果Fig.10 Smoke and flame detection effect

由图10可以看出,4种模型均能够对图片中的烟雾图像进行检测,改进SSD模型能够有效对图片中的烟雾和火焰目标进行检测,其他3种模型均存在较为明显的漏检现象;图片中烟火图像相对较小,YOLOv3模型、Faster R-CNN模型和经典SSD模型未能有效识别,而本文所采用的模型能更好地识别小目标。不同烟火检测模型的测试结果统计如表4所示。

表4 烟火目标检测模型对比Tab.4 Comparison of smoke and flame target detection models

通过使用不同的网络模型对相同测试集图片中烟雾、火焰图像检测生成的结果进行分析,可得到如下结论:

① 从对图片中图像较小的火焰识别结果来看,引入残差思想后的SSD模型结合FPN可以有效地将浅层细节与高层语义相结合,并使用组归一化方法进而大幅度提升图像中较小火焰识别的精准度。与YOLOv3模型相比,在烟雾识别上AP值提升20.4%,在火焰识别上AP值提升16.6%。与Faster R-CNN模型相比,在烟雾识别上AP值提升21.6%,在火焰识别上AP值提升19.1%。与经典SSD网络模型相比,在烟雾识别上AP值提升18.0%,在火焰识别上AP值提升17.6%。

② 在使用相同测试集进行实验的情况下,改进SSD模型相对于YOLOv3模型、Faster R-CNN模型和经典SSD模型在检测准确度上均有较大提升,实验结果表明,mAP值分别提高了18.5%,20.3%和17.7%。

③ 从图像检测速度来看,YOLOv3模型比经典SSD模型和Faster R-CNN模型的效率更高,由于本文提出的模型在经典SSD模型的结构上进行改进,速度提升更为明显,改进后的SSD算法FPS比YOLOv3模型高18,比Faster R-CNN模型高30,比经典SSD模型高24。

4 结束语

本文提出了一种基于改进SSD算法的烟火图像检测方法,可以在农田秸秆燃烧等行为产生烟雾和火焰的初期进行有效的监测,为有关环保部门及时提供预警。烟火识别的核心问题在于提取有效的烟雾和火焰的特征。在使用深度学习对烟雾火焰检测分类的基础上,解决了传统CNN计算量大、占用存储空间大和计算时间长的问题。将改进后的SSD烟火检测模型与YOLOv3模型、Faster R-CNN模型和经典SSD模型进行仿真实验,可以看出改进后模型对烟火目标检测更精确,尤其对小目标的识别定位更加精准,同时在检测速度方面有较大提升。在接下来的研究中将继续扩充数据集并对网络结构进行更深层次优化,使模型达到更加优秀的效果。

猜你喜欢

烟雾火焰图像
最亮的火焰
基于生成对抗网络的CT图像生成
浅析p-V图像中的两个疑难问题
薄如蝉翼轻若烟雾
缤纷的火焰
巧用图像中的点、线、面解题
影视剧“烟雾缭绕”就该取消评优
漂在水上的火焰
咸阳锁紧烟雾与尘土
火焰