基于树莓派4B的森林防火系统研究与设计
2021-08-31兰元帅何晋
兰元帅 何晋
(成都信息工程大学软件工程学院,四川 成都 610225)
森林资源是人类的重要资源,在净化环境的同时给人类带来多样的物种资源。但是,我国每年都有不少森林防火不当引起的灾难和损失。
早期森林防火仅依靠人工观测技术,不仅精度低,而且实时性差。在森林防火中传感器技术带来了较大影响,但对于大面积的森林空间,传统的传感技术并不是很有效[1]。由于空间距离大,传感器无法快速采集烟气变化信息,有效探测火灾情况。目前,森林火灾的探测方法大多是红外探测方法,具有火灾探测精度高的特点,但红外探测系统的探测算法易受到外界干扰,火灾早期烟雾微弱时探测精度较低[2]。
通过深度学习方法训练目标检测模型,运用树莓派4B搭载YOLOv3机器视觉模型对火焰智能识别,采用这种森林防火方法,抗干扰能力强,检测精度高。本系统采用树莓派4B+,性能强、价格低、功耗低、体积小,能很好地解决森林防火中因环境特殊性带来的防火预警不及时的问题,具有一定的推广价值。
1 系统的流程设计
森林防火系统采用模块化的设计理念,主要由Gan网络数据生成模块、YOLOv3目标检测模块、实时图像采集模块、动态报警系统4部分组成,系统总体框图如图1所示。
图1 系统总体框架图
1.1 Gan网络数据生成模块
数据处理是模型训练过程中很重要的一步。通过将烟雾和明火的图片数据输入到图片生成Gan模型进行训练,图片生成Gan模型训练成熟后再输入固定格式的编码即可生成大量目标图片数据,以此降低寻找大量训练图片数据的成本,再将由图片生成Gan模型的生成的目标图片数据根据需求进行标注,标注后的图片数据进行归一化处理,加快网络训练的收敛性;再将归一化处理后的目标图片数据输入到目标检测模型进行训练,目标检测模型训练成熟后即可连接至输入设备待用。
1.2 目标检测模块
火灾主要的特征是明火和烟雾,因此对于森林火灾识别模型的训练数据应为明火和烟雾的图片数据及视频数据,同时增加“光线”相关特征使目标检测模型精度更高。对于模型算法的使用优选为YOLOv3模型。YOLOv3目标检测模型引用更加强大的特征提取网络darknet-53使得计算速度大大加快,对象分类引用Logsitic支持多标签以增加检测精度。模型在PC端完成训练后,将模型和数据优化后部署到树莓派4B上,作为系统的目标检测模块。
1.3 实时图像采集模块
相关图像或视频的数据通过铁塔上安装的摄像头以及相关已部署的无人机完成采集。通过铁塔和无人机采集视频数据传输至监控中心,监控中心利用SLIC图像分割技术对视频进行分帧,分帧后的视频数据变为待检测的图片数据[3],本系统SLIC搜索的限制范围示意图见图2。
图2 SLIC搜索限制范围示意图
摄像头为双目摄像头,双目摄像头包括红外摄像头和高清摄像头,红外摄像头用于夜晚,高清摄像头用于白天[4]。由于光线的影响,将夜晚和白天分别用不同的摄像头进行视频采集,提高视频采集的精度。
对于相关设备的供电则由设置的太阳能供电模块完成。太阳能供电模块包括若干光伏电池板、稳压模块、蓄电池组。将太阳能板与稳压模块的输入端连接,再将稳压模块LM317输出端与蓄电池的输入端连接,并使用蓄电池为摄像头提供备用电源,本系统的LM317稳压电源电路,如图3所示。
图3 LM317稳压电源电路
1.4 动态报警系统
通过无人机和铁塔部署好的传感器和摄像头在定期采集数据后将数据回传,通过原来训练好的识别模型进行判断目标检测的模型是否大于预先设定好的阈值。如果超过所设阈值则触发森林防火报警器,根据火灾发生的位置通知相关人员灭火,并将数据存储于数据库[5]。
2 系统核心算法
2.1 图片生成模型
用于模型训练的原始数据是明火和烟雾的图片数据及视频数据。由于获取到大量的相关数据存在一定的困难,因此使用Gan网络对于有限的真实原始数据进行处理。通过Gan网络可以生成大量图片,标注后的图片可以提供给目标识别模型的训练[6]。
图片生成模型的Gan网络是G网络和D网络的动态“博弈”。生成网络G欺骗判别网络D通过生成大量真实图片;D网络就尽最大努力区分生成图片和真实图片。最理想状态下,G可以生成足以“以假乱真”的图片G(z)。将烟雾和明火的图片数据输入到Gan网络进行训练,训练成熟后生成编码网络和解码网络,编码网络输出固定格式的编码,这样只需要输入与编码网络输出的相同格式的编码到解码网络即可生成大量足以“以假乱真”的图片,以降低寻找原始图片数据进行目标检测模型训练的成本。
Gan的判别公式:
整个式子由2项构成,x表示真实图片,z表示输入G网络的噪声;G(z)表示G网络生成的图片;D(x)表示D网络判断真实图片是否真实的概率。D(G(z))是D网络判断G生成的图片是否真实的概率,G希望尽可能的大,这时V(D,G)会变小[7]。D的能力越强,D(x)应该越大,D(G(x))应该越小,这时V(D,G)会变大,因此,式子对于D来说是求最大。
2.2 Gan网络实现
生成器的定义:
def G(w,name="G"):
with fluid.unique_name.guard(name + "/"):
w=fluid.layers.fc(y,size=1024,act='relu')
w=fluid.layers.batch_norm(y,act='relu')
w=fluid.layers.fc(y,size=128×7×7)
w=fluid.layers.batch_norm(y,act='relu')
w=fluid.layers.reshape(y,shape=(-1,128,7,7))
w=fluid.layers.conv2d(y,num_filters=64,filter_size=5,padding=2,act='relu')
w=fluid.layers.image_resize(y,scale=2)
w=fluid.layers.conv2d(y,num_filters=1,filter_size=5,padding=2,act='relu')
return y
判别器的定义:
def D(images,name="D"):
def conv_bn(input,num_filters,filter_size):
y=fluid.layers.conv2d(input=input,num_filters=num_filters,filter_size=filter_size,stride=1,bias_attr=False)
y=fluid.layers.batch_norm(y,act="leaky_relu")
return y
开始训练后,训练判别器D识别生成器G生成的假图片。训练判别器D识别真实图片进行对比,训练生成器G生成符合判别器D标准的假图片,然后测试。
2.3 目标检测模型
目标检测模型为YOLOv3目标检测模型[8]。YOLOv3目标检测模型引用更加强大的特征提取网络darknet-53使得计算速度大大加快[9]。darknet-53的网络结构包含53个卷基层,借鉴残差网络Residual Network的做法,在一些层之间设置了快捷链路,最左侧1列的1、2、8等数字表示多少个重复的残差组件,每个残差组件有2个卷基层和1个快捷链路,残差组件结构如图4所示[10,11]。
图4 残差组件结构
YOLOv3网络使用了darknet-53前面的52层,YOLOv3网络是一个全卷积网络,大量使用残差的跳层连接。使用这种残差结构的好处是,保证网络结构在很深的情况下,仍能收敛;网络越深,表达的特征越好,分类和检测的效果都会提升。由于大量减少了参数量,进一步减少了计算量。对象分类引用Logsitic支持多标签以此增加检测精度。
2.4 目标检测部分
YOLOv3将输入图像分成S×S个格子,每个格子预测B个bounding box,每个bounding box预测内容包括Location(x,y,w,h)、Confidence Score和C个类别的概率,因此YOLOv3输出层的channel数为B×(5+C)[12,13]。YOLOv3的loss函数也由3部分组成,Location误差、Confidence误差和分类误差。
3 方法测试与结果
3.1 测试方案
使用互联网易于搜索到的数据集进行Gan网络训练,并在高性能的计算机进行计算得到较成熟的Gan网络图片生成模型,并使用Gan网络模型生成大量图片数据训练YOLOv3目标检测模型。
部署相关硬件,采集相关数据。通过对随机采集到的30张的森林火焰图片输入挂载目标检测模型的树莓派4B上进行计算,得到识别目标的准确率,如图5所示。
图5 实际测试结果
3.2 测试结果
经过训练,模型的准确率逐步增高。随着数据采集数量的增多,模型对于森林火焰的数据有较强的敏感性;通过部署到树莓派4B,输入视频和图片完成测试,可以精准地识别森林中的火焰和烟雾,并输入相应的较高的准确率。
4 结语
这种基于树莓派4B森林防火系统采用深度学习模型完成对森林火焰的识别。经过实验测试,通过Gan网络的图片生成模型以及基于YOLOv3的目标检测模型均可以良好的工作,具备较好的可移植性。整个系统运行稳定、准确度高,具备较强的抗干扰性,具有一定的应用市场。