APP下载

一种基于改进YOLOv3的火焰识别算法

2020-10-09曹成志谭笑宇黄馨仪罗泽昊

理论与创新 2020年15期

曹成志 谭笑宇 黄馨仪 罗泽昊

【摘  要】在复杂多变的工作情景中,火灾的预防往往依赖于烟雾报警器,但不能对火情的程度做出判断,容易受到场地的局限,而且存在一定的滞后性。针对上述存在的问题,本文提出了一种基于多尺度检测的改进YOLOv3火焰识别算法,采用四个不同尺度的特征层来提高对小火焰的识别率,用于解决原始YOLOv3算法对小尺寸物体的识别效果不佳的问题。

【关键词】多尺度检测;YOLOv3;后验框

引言

烟雾作为火灾表现出的最为显著的特征之一,准确而实时地进行烟雾检测,是减小火灾危害的重要手段。传统的烟雾检测通常使用烟雾探测器作为检测装置,需要烟雾达到一定浓度时才会发出警报,检测速度较慢、响应时间长。而运用目标检测算法进行火灾烟雾视频监控能较好地解决上述问题,其监控范围广,反应速度快,而且可以节省大量硬件资源。

本文提出一种基于改进YOLOv3的火灾烟雾检测算法,在原有三种不同尺度进行检测的基础上拓展一个尺度,提升小目标识别的准确度,并在火灾目标检测数据库上进行训练,获得相应火灾检测模型,检验算法应用效果。

1.YOLOv3算法原理

YOLOv3算法的整体结构包括主干网络、多尺度特征提取器以及输出层三个部分。YOLOv3的主干网络采用由53个卷积层构成的Darknet-53网络架构,其重要特点是使用了一系列残差块。残差块内进行的残差卷积是对输入进来的特征层先进行一次步长为2的3x3卷积,以压缩特征层的长和宽,并增加其通道数。在保存这一步得到的卷积层后,再依次进行一次1x1和3x3的卷积,以减少参数量并扩张通道。把这两次卷积后得到的结果与前面保存的卷积层相加,就得到残差卷积的最终结果。另外,残差块还使用了跳跃连接,以缓解在深度神经网络中增加深度带来的梯度消失问题,使得网络深度可以进一步增加。在多尺度特征提取器部分,共有三个不同位置的特征层,通过上采样和特征融合的方法,最终在输出层得到3种不同尺度的特征图。多尺度的特征提取可以增加特征的丰富度,提升大、小目标的检测效果。

2.多尺度检测改进

在许多实际场景中,由于物体与图像采集装置的距离不尽相同,导致物体在图像中的尺寸也会出现较大差距,一些尺寸较小的物体往往不容易被检测。针对以上问题,本文通过在原有的三个特征层的基础上,再增加一个104*104尺寸的特征层,用于提高对小物体的识别率。在Darknet-53网络架构中,三种特征层都经过了不同数目的残差卷积,使得原始图像被划分为指定的尺寸。以此类推,从网络中引出104*104尺寸的特征图也十分方便。当得到第四个特征层之后,由于尺寸不同,还需要各个特征层通过上采样操作调整特征层尺寸,再经过拼接,才可以使各个特征层想融合。

2.1构建训练集和测试集

由于数据十分有限,本文采用交叉验证法进行训练和测试,就是把原始数据进行分组,一部分做为训练集来训练模型,另一部分做为测试集来评价模型。本次实验将数据集随机分为10组,每次选取其中1组作为测试集,剩下的9组作为训练集,对模型进行测试。如此反复10次,保证每一组都有一次机会成为测试集。得到的10组结果再求取平均值用于模型参数的估计,作为模型的性能指标。这种做法可以充分利用样本数据,适用于样本较少的情况。

2.2图像预处理

直方图是图像中像素强度分布的图形表达方式,表征了图像种色素的数量分布。直方图均衡化是一种比较常用的图像处理方法,其主要作用是增加局部对比度而不失整體对比度,可以突出图像一些细节的特征。采用直方图均衡化的方式对图像进行预处理。

2.3实验过程

利用改进后的YOLOv3网络,每次将2700张图片作为训练数据集输入,训练完成后通过300张图片测试集进行性能测试,迭代次数为10次。与传统YOLOv3网络的测试结果进行对比,观察各个性能指标的差异性,并分析改进模型的策略。

此外,本实验选用视频作为最终载体,将训练好的模型用于识别视频中的火焰并标注火焰的位置,并记录性能较好的模型参数,尽可能提高目标检测的流畅度和实时性。

2.4测试与评估

本实验采用平均精确度AP(average precision)作为评价指标,首先要计算结果的准确率(precision)和召回率(recall)。仅通过准确率或召回率并不能全面地衡量一个模型的性能,mAP将两者结合起来,评价模型显得更加客观。模型的准确率表征预测结果中真实正样本的比例,即结果中的实际正样本与结果中所有正样本之比;召回率表征结果中的正样本占实际所有正样本的比例,即预测的真实正样本数量与样本中真实正样本数量之比。

3.实验结果分析

在对模型进行训练时,选取动量参数为0.8,迭代次数为10次,学习率设置为0.001,权重下降率为0.0005。在参数一致的情况下,使用相同的数据集,分别将传统YOLOv3算法和本文的改进YOLOV3算法的效果进行对比,得到以下效果。

两者的初始损失值十分相近,约为8.1,但是改进后的YOLOv3算法loss值衰减较快。相比于原算法,在训练时表现出较好的效果,可以提升收敛效果。

在实效性上,改进后的YOLOv3算法在识别视频时,帧数保持在25~30以内,可以基本满足实时监测的需求,但是相比于传统方法,实时性有所下降。以下为检测视频流的效果。

4.问题与展望

目标检测算法一直是计算机视觉领域的研究热点之一,依靠高效的硬件设备作为支撑,结合性能优良的算法结构,可以工业生产和居民生活做提供便利。本文完成了对YOLOv3算法的改进,但是,在实际运行过程中,依然存在很多问题待解决。笔者在这里总结几点问题:

(1)训练集的制作会消耗大量人力资源。在图像标注的过程中,需要对每一张图片中的目标进行框图并标注类型,如果训练更加优异的模型,必然需要更加丰富的样本,因此需要更多人力,这样就限制了算法的推广以及在工程领域的应用。

(2)时效性与准确性的矛盾。深度神经网络往往配有大量参数,而参数的多少直接影响到模型的快时效性。本文选用删减残差网络的方法来提高时效性,可以缩短训练的时间,但是在一定程度上会降低准确度。

(3)“黑箱”模型背后的数学基础。事实上,很多算法的搭建和改进都是依赖于数学知识。对于YOLOv3算法背后的数学,还有待发掘。如果想要有更好的算法,必须具备很好的数学功底,这正是很多初级研究人员所稀缺的。

在当代,人工智能已经走进寻常百姓家,计算机视觉技术也在慢慢改变着人们的生活,目标检测早已应用于很多工程领域。无论是在理论上还是在应用上,目标检测算法都还有很多部分等待开发。在不久的将来,还会有一大批科研人员投入其中,不断推动算法性能的提升,促进人工智能的推广。

5.结语

为了提高YOLOv3算法性能,本文对特征提取网络进行适当改进,选用多尺度检测的方式提高检测精度,在原有三个尺度的特征层的基础之上,再增加第四个不同尺度的特征层;并删减残差网络数目以保持时效性,在五个残差网络块中都进行删减,使得模型的参数大大缩小。

虽然本文在一定程度上可以实现较好的火焰目标实时检测,但是算法的稳定性依然受到很多不确定因素的影响,例如:火焰本身的颜色特征对周边环境有较大影响,会出现很多噪声;待捕捉的火焰受到光照强度(强光或弱光)的制约,会降低检测精度,还对鲁棒性提出更高的要求。此外,如何利用数学数学理论去解释算法的合理性,依然是在未来的研究中需要探索的内容。