APP下载

基于卷积神经网络的初期林火识别*

2023-03-21朱洪前

计算机时代 2023年3期
关键词:林火火焰卷积

李 丹,朱洪前

(中南林业科技大学,湖南 长沙 410004)

0 引言

森林作为世界上重要的生态系统之一,为人类和动植物的生存发展,提供了丰富多样的自然资源。森林火灾的发生对整个生态系统的破坏是巨大且不可逆的,并且对人类的生命财产安全构成较大威胁[1]。据统计,2019 年9 月的澳大利亚特大型森林火灾持续燃烧近五个月,导致烧毁几千所房屋,烧死近五亿只动物,经济损失约50 亿澳元[2]。为了最大程度的降低森林火灾造成的各种损失,依据森林火灾扑救“打早”“打小”“打了”的基本原则,快速准确的检测到火源信息,对森林火灾的预警和扑救工作具有十分重要的意义。

随着科技的高速发展,林火识别方法已然从传统人工监察转为利用计算机图像识别技术,目前,图像识别技术分为传统的图像检测技术和深度学习技术。在林火识别领域中,传统图像检测技术依赖人工提取火焰的颜色、纹理、形状特征进行林火识别;张庆杰[3]等人利用林火在森林中的亮度及颜色特征更为显著这一特点,应用视觉显著性检测算法,结合特征融合、特征分类、阈值分析等技术进行林火识别,该检测方法对林火初期及火焰区域面积较小的火焰无法有效检测。传统算法过于依赖特征提取,在林火识别领域中存在应用性不够强,判断的准确率不够高,适应性不高等缺点,而被广泛应用的深度学习方法弥补了传统方法的弊端。深度学习的实质是构建具有多个层次的机器学习架构模型,通过大量训练使其自主学习到具有代表性的特征信息,进而利用训练后的模型达到分类预测的目的。而以卷积神经网络(Convolutional Neural Network,CNN)为代表的学习方法及各种改进算法普遍应用在图像分类领域[4-5];尹建平[6]等人提出了一种基于YOLOv3 算法的森林火灾识别方法,最终得到了90.3%的平均准确率。

综上,前人主要利用传统图像检测技术对较大、较为清晰的火焰进行识别,进而判断森林火灾的发生与否;而笔者针对的是利用无人机搭载相机所采集到的林火图像,重点是利用CNN 对森林火灾初期的、较小且不清晰的小火焰进行识别检测,据此进行森林火灾预警。故选择了四种不同的基于卷积神经网络的目标检测算法,通过实验,训练出能快速精确识别小火焰且具备轻量化优点的初期林火识别模型。

1 卷积神经网络

1.1 CNN结构

卷积神经网络是一种利用深度学习方法的机器学习模型,其具有的权值共享、局部感知、池化这三个主要特点不仅可以减少网络参数的个数,还可以保留图像的空间结构,使卷积神经网络在图像处理方面具备独有的优势。

CNN 主要由输入层、若干个卷积层、池化层、全连接层和输出层五部分组成,如图1所示;具体可进一步分为过滤器、步长、卷积操作和池化操作。CNN 模型是通过卷积层和池化层的组合来构建学习网络结构;CNN 的输入是一张大小为64×64 的RGB 图像,卷积层使用5×5卷积核提取图像的局部特征,池化层的核大小为2×2,Relu作为激活函数[7-8]。

图1 卷积神经网络基本结构

1.2 卷积层

卷积层作为特征提取层,主要作用是对输入图像信息进行特征提取。利用卷积核对前一层的特征映射进行卷积操作,获取到局部特征,再通过激活函数得到输出特征映射,在此过程中利用局部连接和权值共享机制来降低网络参数和复杂度。卷积层的特征提取公式一般如式⑴所示[9]:

其中,ℓ 表示卷积层数;kernel 为卷积核;f 表示激活函数;b表示各层的偏置。

1.3 池化层

池化层作为特征映射层其主要目的是进行降维操作;其结构能减少实验参数进而达到降维目的,在使数据尺寸最小化的同时还能保持数据的原始特征。使用池化层可以提高计算速度,增强网络对图像大小变化的适应性,有效防止过拟合问题,从而使系统具有鲁棒性。

采用了Relu 函数作为卷积网络的激活函数,使卷积神经网络具有解决非线性问题的能力;Relu 函数具有以下特点:

⑴计算效率高,允许网络快速收敛,计算复杂度低,不需要进行指数运算,只要一个阈值就可以得到激活值;

⑵在x>0 区域上,不会出现梯度饱和、梯度消失的问题;

⑶非线性,具有导数函数并允许反向传播。

2 林火识别需求分析

森林火灾是一种突发性强且无规律的燃烧过程,其火焰在不同的阶段具有不同的特征;林火初期的火焰较小,树木遮挡严重,火焰的精确识别较为困难,盛火阶段如若在密集的不透风的林区,由于树林的不充分燃烧,会产生大量的烟雾,此时烟雾识别较为重要,若是在通风良好的林区,盛火阶段的火焰范围较小,此时对微弱火焰的检测尤为重要,大火蔓延阶段火焰旺盛,火焰特征明显,容易识别[10]。

森林火灾的扑救要及时高效,把握时机,森林火灾扑救的基本原则是“打早”“打小”“打了”,而“打早”是其余两个原则的前提;林火初发时,火势微弱,蔓延速度较慢,容易通过投放较少的扑火力量,使用简单的扑火工具就能灭火;一旦错过时机,拖延了时间,火势不断蔓延扩展,扑火工作的难度就会越来越大,投放的扑火力量也要大大增加,后勤供应量和供应难度也将不断加大。

林火初期火势较弱,燃烧面积小,火焰微弱,初期林火识别具有以下难点:

⑴火焰的延伸方向不定,火焰较为微弱,容易受到树木遮挡;

⑵因在环境不稳定的野外,容易受到烟雾、风、无人机自身的抖动和运动的影响,使得采集到的林火图像火焰较为模糊;

⑶在燃烧的过程中,火焰本身的颜色和特征是不规律的,没有固定特征。

3 林火识别模型介绍

3.1 目标检测算法选择

目前,基于CNN网络的目标检测算法可分为以下两类:

⑴两阶段检测算法;顾名思义,即实现目标检测需要进行两步操作,第一步是获取候选区域,第二步是进行分类,代表性的算法有 R-FCN,Faster RCNN[11];

⑵一阶段检测算法,只需一步就能完成检测任务,利用回归的方法策略,直接推理目标分类的概率和位置,不需要单独寻找候选区域,代表性的算法有SSD[12-14]、YOLO[15-17]系列算法。

两者相比,由于两阶段算法需要单独寻找候选区域,故在检测精度上,两阶段算法略高于一阶段算法,在检测的速度上,一阶段算法优于两阶段算法。由于对林火识别检测的实时性要求较高,并且针对的是无人机搭载相机采集的林火图像,故初期林火的识别更倾向于实时性较优、网络层数较少的一阶段检测算法。

3.2 YOLOX目标检测算法

如图2 所示,YOLOX 可分为CSPDarknet,FPN 以及Yolo Head三部分[18]。

图2 YOLOX目标检测算法

CSPDarknet 是主干特征提取网络,输入图片在CSPDarknet 里面进行特征提取,提取到的特征被称作特征层,是输入图片的特征集合。在主干部分,获取了三个特征层进行下一步网络的构建,这三个特征层为有效特征层。

FPN 是加强特征提取网络,在主干部分获得的三个有效特征层在这一部分进行特征融合,特征融合的目的是结合不同尺度的特征信息。在FPN 部分,已经获得的有效特征层被用于继续提取特征。在YOLOX里使用了YOLOv4 中用到的Panet 结构,其不仅能对特征进行上采样实现特征融合,还能对特征再次进行下采样实现特征融合。

Yolo Head 是分类器与回归器,经过上述两部分,网络获得三个加强过的有效特征层。每一个特征层都有宽、高和通道数,此时的特征图是一个又一个特征点的集合,每一个特征点的特征数目和其通道数目相等。Yolo Head 的实质是对特征点进行判断,判断特征点是否有物体与其对应。先前版本的YOLO 系列所用的解耦头是一起的,即分类和回归在一个1×1卷积里实现,而YOLOX 认为这给网络的识别带来了不利影响。在YOLOX 中,Yolo Head 被分为了两部分,分别实现,最后预测的时候整合在一起。

综上,整个YOLOX 网络的工作进程可解释为:①对输入图像进行特征提取;②特征加强;③预测特征点对应的物体情况。

4 实验设计及结果分析

4.1 实验数据集

本实验使用的数据集主要来源于网络采集,林火图像分辨率统一为254×254,背景均为绿色林区,以火焰为识别特征,将数据集分为标签集和普通集,其中标签集是用Labelimage软件标注为Voc格式的目标识别数据集,目标为“火焰”,用“fire”标注,然后利用Python代码处理后使其按比例自动划分为用于训练和验证目标检测模型的训练集和验证集;普通集是不做处理,用于测试林火识别模型预测效果的测试集。

从网络采集到1100 张初期林火图像,其中900 张作为训练集,100张为验证集,100张为测试集。

4.2 测试评价指标

选用精确率(P)、召回率(R)、平均精度均值(mAP)、每秒帧率(FPS)、损失(loss)曲线作为目标检测模型的评价指标;

精确率是指在所有检测出的目标中检测正确的概率,如式⑵:

召回率是指所有的正样本中正确识别的概率,如式⑶:

式⑵⑶中:TP 为真正例,即目标检测正确的个数;FP为假正例,即目标预测为非目标的个数;FN为负正例,即将非目标预测为目标的个数。

mAP值是指多个类别AP的平均值,AP是Precisionrecall曲线下面的面积,通常情况下,该值越大,模型就更好,如式⑷:

每秒帧率指每秒内可以处理的图片数量,用于评估目标检测模型的预测速度。

4.3 实验内容

设置四个对比实验,分别是基于YOLOX、YOLOv4、SSD、Faster R-CNN 的初期林火识别模型,实验流程为:首先搭建目标检测模型,将获取到的初期林火数据集划分为训练集、验证集和测试集,将带有标签的训练集输入到目标检测模型进行训练,使其通过训练具有分类预测林火的能力,而后利用带有标签的验证集进行模型参数的调整,进而挑选出效果最佳的模型,最后将测试集输入到训练好的林火识别模型中,输出预测图片,得到预测结果。

实验硬件环境为Windows10,配置显卡为NVIDIA GeForce RTX2060,显存为1GB,实验所用平台为pycharm,整个网络模型是用pytorch框架实现的,计算过程实现了GPU加速。

4.4 实验结果与分析

四种算法模型在同等的迭代次数下,用相同的训练集与验证集进行训练;其性能结果见表1;各模型的训练集与验证集的loss 曲线如图3 所示;在相同的测试集上进行对比测试,预测结果如图4所示。

图3 训练集与验证集的loss曲线

图4 测试结果

表1 算法性能结果

据表1:

⑴ YOLOX、YOLOv4、SSD 属于一阶段检测算法,实时性较好,Faster R-CNN 为两阶段检测算法,实时性较差,其中YOLOX 速度为20FPS,实时性最好;YOLOX 利用simOTA 能够做到自动的分析每个gt 要拥有多少个正样本,能自动决定每个gt 要从哪个特征图来检测;与OTA相比,simOTA运算速度更快并且避免额外超参数。

⑵四个模型中精确率最高的是SSD 为95.51%,其算法的核心是在特征图上使用小卷积核来预测固定尺寸default bounding boxes 的类别分数和偏移量;为提高精确率,SSD在不同大小的特征图上进行预测,通过纵横比分开预测,实现了端到端训练并且保证较高的精确率。

⑶YOLOv4 的mAP 为96.69%,其算法在特征金字塔部分中使用了SPP、PANet 结构,它能够极大地增加感受野,分离出最显著的上下文特征,反复提取特征。

据图3,四个模型中,Faster R-CNN 存在欠拟合现象,即在相同的迭代次数、学习率等参数下,学习能力最低,不易训练;其余三个算法模型的训练集和验证集的loss曲线在某个轮次后都开始收敛,达到完美拟合。

据图4,四个模型设置confidence=0.4 和nms_iou=0.3,然后对同一张测试图片进行预测,预测结果如表2所示。

表2 预测结果

根据表2,平均置信度最高的是Faster R-CNN,其次是YOLOX,由此,泛化能力最好的是Faster RCNN,其次是YOLOX。

5 结束语

针对林火初期较小且不清晰的小火焰进行识别检测,依据它实时性的要求,本文初步选取了YOLOX、YOLOv4、SSD 三个一阶段目标检测模型与Faster R-CNN 两阶段目标检测模型,经过实验验证,YOLOX 的推理速度为20FPS,实时性最好,平均置信度为0.73,泛化能力较好,平均精度均值较高为94.40%,具备轻量化优点,适合初期林火识别;同时,四个初期林火识别模型的平均精度均值皆超过了93%,验证了基于卷积神经网络的初期林火识别模型的构建,能够提高初期林火识别的时效性,这对生态系统以及人们生命财产的安全保护具有重要意义。

YOLOX 在实时性上具有一定的优势,但其识别精确率为94.52%,尚有提升的空间,后期研究将逐步优化改进模型,提升精确率;同时扩充数据集,对烟雾干扰较为严重的林火进行精确识别。

猜你喜欢

林火火焰卷积
无锡惠山区坚持“六抓六强” 构建林火防治铜墙铁壁
最亮的火焰
基于3D-Winograd的快速卷积算法设计及FPGA实现
林火监测系统在森林防火中的应用与发展
缤纷的火焰
半边天
从滤波器理解卷积
漂在水上的火焰
基于傅里叶域卷积表示的目标跟踪算法
吹不灭的火焰