基于深度学习的消防器材自动识别研究

2021-10-10 03:55李小玄
电子设计工程 2021年19期
关键词:消防器材图标图纸

李小玄,董 雷,2

(1.武汉邮电科学研究院,湖北武汉 430000;2.武汉理工光科股份有限公司,湖北武汉 430000)

近年来,城市中的安全隐患日益增多,各类灾害事故呈现出风险高、危害大的特点。安全隐患日益增多的主要原因是城市规模不断扩大导致的人口大量聚集,因此社会公共安全需求日益倍增。随着城市化进程的持续进行,城市高层、地下、商业综合体、地铁、隧道等建筑发展迅猛,导致公安消防局现役防灭火力量严重不足,消防官兵长期疲劳作战,火灾防控压力巨大。国务院《促进大数据发展行动纲要》(2015)中指出要推动智慧消防城市救援平台的建设和发展。“要深入推进消防信息化建设,积极建设‘智慧消防’”是2017 年1 月全国消防工作会议上中央政法委书记郭声琨强调的重点。在此背景下智慧消防城市救援平台项目应运而生,利用图像识别技术对建筑图纸上的消防器材图标进行定位识别,能更好地发挥智慧消防城市救援平台的作用。

目前国内图像识别的研究方向大多是关于数字识别的,如对数字仪表[1]、试卷答题卡[2]、手写试卷分数的识别;射频指纹识别的研究[3];人脸识别算法如正交人脸特征学习算法[4]、二阶段性别分类算法[5];车牌识别如依赖边缘特征的车牌识别[6],算法如色彩迁移与正则化约束去雾算法[7];农产品虫害如玉米螟虫害的图像识别方法[8],图像识别中储粮害虫的特征提取[9];缺陷检测如游乐设施焊缝缺陷检测[10],钣金件表面缺陷检测[11]以及医用病理如腹膜腔脱落细胞病理图像识别[12]等方面,但对于消防方面深度学习的应用较少。应用方向多是对于依赖卷积神经网络的烟雾识别来识别森林火灾[13],通过读取视频图像来进行烟雾识别[14],识别方法上多是对于生成对抗网络和卷积神经网络[15]、颜色统计特征和小波变换方法[16]的对比研究,用在建筑图纸上消防器材的处理与识别目前较少。

1 YOLOv3的原理

YOLO 算法的基本思想可以通过一个例子来理解。例如输入一张64×64的图片,YOLO 算法会将输入的图片用网格分成64×64的单元格,如果单元格和真实检测框中目标的中心坐标重合,就由这个单元格来预测目标。YOLOv3 算法中每个目标都拥有3 个对应的边界框来定位,YOLOv3 算法就是使用逻辑回归的办法来确定在三个边界框的回归框。所以说YOLO 是一种end to end的目标检测模型。

1.1 YOLOv3的结构

池化层和全连接层不包含于YOLOv3的整个结构中。Darknet-53 网络是YOLOv3 主干结构,同时全卷积的结构是YOLOv3所有预测支路所采用的结构。

通过图1 可以看出YOLOv3的基本组件是DBL。Batch Normalization(BN)和Leaky Relu Darknet紧跟在Darknet的卷积层后。在YOLOv3 中除最后一层卷积层外,最小组件由BN 和Leaky Relu 共同构成,而最小组件已经是卷积层不可分离的一部分。5 个resn结构分别为res1、res2、…、res8,其组成了YOLOv3的主干网络。resn结构中的n代表数字,表示由n个res_unit 组成了res_block,YOLOv3的大组件就由resn结构组成。YOLOv3 和YOLOv2的区别在于后者没有残差结构,YOLOv3 借鉴了ResNet的残差结构使得YOLOv2的Darknet-19 改进为YOLOv3的Darknet-53。YOLOv3 网络结构更深,就是因为使用了这种残差结构。从图1 最下方可以清楚地看到DBL,它也是构成res_block的基本组件。

图1 YOLOv3的整体结构

1.2 特征提取网络Darknet-53(Backbone)

YOLOv3 算法使用的特征提取网络是一个由残差单元叠加而成的53 层的卷积网络。Joseph Redmon的实验证实了,YOLOv3 算法中的Darknet-53 模型很好地平衡了识别目标物体的效率和准确度。YOLOv3追求精度的同时保证了实时性(fps>60),而不是盲目的追求效率。从图2 可以看出,YOLOv3算法要进行5 次尺寸变换。

图2 Darknet-53骨干结构

1.3 损失函数

损失函数(Loss Function)是掌握YOLO的重要关键。YOLO 系列文献里面只有YOLOv1 明确提到了损失函数的公式,所用的损失函数并没有在YOLOv3的文献里明确提出。sum-square error的损失计算方法是YOLO 系列文献中唯一提到损失函数公式。画出Loss Function 曲线需要获取(xi,yi)、(wi,hi)、class、Confidence 这四个参数。损失函数应该由四类不同的关键信息各自确定。Loss Function 因此可以作为衡量模型训练成果的标准。

2 数据集训练

步骤一,权重下载。

从官方网站上下载权重数据放到YOLOv3 算法程序的主目录下,然后使用主目录下的conver.py 文件进行转换,命令如下:

就能得到权重文件。最后权重文件放在model_data 文件夹里。

步骤二,生成训练文件。

训练文件每一行对应着一个样本图片,代码的开头是图片的路径,后面是对应目标的4个参数坐标。

步骤三,修改YOLOv3.cfg。

有三处需要修改的代码,Classes 对应的YOLOv3.cfg 是数据集的类别,filters的数值需要通过计算公式filters=(5+classes)*3 来计算。

步骤四,利用k-means.py 生成一个先验框。

先验框的作用就是在没开始训练之前决定模型需要检测的物体的大小,然后模型可以再利用边界框对回归框进行调整。

步骤五,修改yolo_classes.txt 文件。

这个yolo_classes.txt 上显示的就是项目要识别的类别和对应的名称。本项目有4 种需要识别的器材,分别为烟感、温感、手报(手动报警装置)、消报(消火栓),因为预训权重练文件只能识别英文,所以该文用yangan、wengan、shoubao、xiaobao的拼音来代表4 种不同的消防器材。

步骤六,训练模型。

把train.py中的一些相关路径设定好,如图3所示。

图3 相关路径设置

步骤七,绘制loss 曲线。训练完成后,可以通过日志文件来画训练日志图,文中一共训练了3 次数据集,数据集图片的数量分别为500、750、1 000 张,训练过程一共生成了3 张loss 曲线图,图中的val_loss 代表验证集的损失值,train_loss 代表的是训练集的误差值,从图4 中可以看出train loss 曲线在随着test loss 曲线不断下降,这说明模型的训练过程非常顺利。随着训练集数据的增多,loss 曲线下降的趋势在逐渐变快,这说明模型识别目标物体的准确度与数据集图片的数量有关,数据集的数据越多,模型在训练集上的表现就越好。第三次训练完成后,模型对目标物体进行识别的准确率达到了99%。

图4 loss曲线图

3 实验结果

使用Python 调用经过以上的步骤训练出来的权重文件,对建筑图纸上的四类消防器材图标分别进行识别。识别图像结果及其位置输出分别如图5 和图6 所示。

图5 消防图标识别图

图6 消防图标位置输出图

图5 和图6 说明了消防器材的自动识别研究方案能够准确地识别建筑图纸上的消防图标并输出位置坐标。本次实验说明了,利用YOLOv3 算法进行自训练的方法来实现消防器材的自动识别是切实可行的,模型识别效果良好,达成了该文的研究目的,能提高智慧消防城市救援平台数据录入工作的效率。

4 结束语

为完成建筑图纸上消防器材图标的识别工作,文中使用了深度学习方面的相关知识。基于Python语言,使用基于Darknet 框架中的YOLOv3 算法对数据集的多次训练,使得该文的研究方案能同时识别4 种不同的建筑图标,识别结果在准确性和高效性方面显得极为突出。调用训练好的权重文件对建筑图纸上的消防器材图标进行识别,并输出其位置坐标,最终实现了对建筑器材消防图纸上消防器材图标的自动识别研究,为后续城市智慧安防平台的建筑图纸信息录入工作,指挥调度系统在火灾消防行动中开展精准的指挥工作奠定了基础。

猜你喜欢
消防器材图标图纸
消防器材
◆ 消防器材
浅谈汽车线束产品图纸管理
看图纸
Android手机上那些好看的第三方图标包
图标
中国风图标设计
有意思的厕所图标
消防器材进村寨
消防器材有“户口”了