基于改进Tiny-YOLOv3 的火灾图像识别算法研究

2022-11-01 02:46王少韩刘淼
农业装备与车辆工程 2022年9期
关键词:网络结构特征提取卷积

王少韩,刘淼

(201620 上海市 上海工程技术大学 机械与汽车工程学院)

0 引言

图像识别在无人机、医学、自动驾驶等许多热门领域有着广泛的运用。在一些复杂场景,深度学习有非常好的性能。卷积神经网络近十年飞速发展,逐渐成为主流算法。在实时监控方面,YOLO[1-2]算法是应用最广的算法之一,有良好的准确率。YOLO 自发布以来,版本已经到了第5 代。本文使用的Tiny-YOLOv3[3]是YOLOv3 版本的改进版,其模型相对较小,检测速度也有较大提升,然而它在计算能力较低设备上的性能表现不是特别好,所以引进了SqueezeNet[4]中的Fire 模块,并用紧密连接链接,将网络部分卷积层改成Fire 模块,从而压缩了模型和加快了检测速度。

本文主要介绍了改进版的Tiny-YOLOv3 的网络结构,在自建的测试数据集上获得了实验结果,得到了几个改进的Tiny-YOLOv3 模型的主要衡量指标,并与原模型以及其他模型进行了比较,并得出实验结论。

1 改进版的Tiny-YOLOv3

1.1 YOLOv3

YOLOv3 是 YOLO 的第3 版,借鉴了 ResNet[5]、RetinaNet[6]、SSD[7]等网络的结构和做法,如多尺度融合预测,进一步提高了速度和准确率,特别是在检测小目标方面有了比较显著的提高。YOLOv3的网络结构如图1 所示。可将该网络分成2 部分:特征提取部分和预测部分。特征提取部分为Darknet53,YOLOv3 网络为全卷积(没有池化层,通过调整卷积的步长进行下采样);预测部分,共有3 层输出,分别是13 ×13 × 255,26 ×26 ×255,52 ×52 ×255。

图1 YOLOv3 的网络结构Fig.1 Network structure of YOLOv3

YOLOv3 的3 个基本组件:

(1)CBL:是YOLOv3 网络结构中的最小组件,由Conv+Bn+Leaky_relu 激活函数三者组成。

(2)Res unit:借鉴Resnet 网络中的残差结构,让网络可以构建得更深。

(3)ResX:由1 个CBL 和X 个残差组件构成,是YOLOv3 中的大组件。每个Res 模块前面的CBL都起到下采样的作用。

YOLOv3 主要的改进有:调整了网络结构;利用多尺度特征进行对象检测;识别对象分类用logistic 取代了softmax;借鉴了残差网络等。v3 版本主要是对小目标检测进行了性能提升。

1.2 Tiny-YOLOv3

Tiny-YOLOv3 是一个轻量级的算法,它本身 是YOLO算法v3 版本的改进,但随着识别任务的复杂程度及难度越来越大,Tiny-YOLOv3 逐渐不太适合计算能力比较差的设备。从图 2 网络结构可以看出,它由主要是用于图像特征提取的7 个卷积层和6 个 maxpool层组成,网络结构非常小,可以获得2 个不同尺度的特征图,从而确保大小物体的检测准确率。Tiny-YOLOv3 为保证准确率,使用了含有512 和 1 024 个卷积核的多个卷积层,而卷积核过多,会造成进行深度学习时所需的参数较多,使得存储也比较大,因此检测速度受到很大限制,但比v3 版本的物体识别速度快。

图2 Tiny-YOLOv3 的网络结构Fig.2 Network structure of Tiny-YOLOv3

1.3 改进的Tiny-YOLOv3

Tiny-YOLOv3 使用许多带有很多参数的卷积层,这导致在受限环境中大量参数、大量存储会极大地限制检测速度。Tiny-YOLOv3 的另一个问题是检测精度不是很高,这主要是网络中不合理的数据压缩方法导致的。为解决此类问题,本文使用了改进版的Tiny-YOLOv3 的网络结构,具体网络结构如图3 所示。该算法模型引入了Fire 模块实现网络参数压缩,同时,为提升模型性能,利用紧密连接将Fire 模块链接在一起,对原网络结构的其他部分未做改动。

图3 改进算法的网络结构Fig.3 Network structure of improved algorithm

卷积层如果全被Fire 模块代替,检测效率就会下降;如果保留具有少于256 个卷积核的少量卷积层,而不是由Fire 模块代替,准确率将增加5%左右,模型大小仅增加2 MB。因此对Tiny-YOLOv3 网络的部分卷积层用Fire 模块代替。

为了更有效地使用Fire 模块,其嵌入位置要合理。改进的Tiny-YOLOv3 网络结构共引入8 个Fire 模块,用5 个Fire 模块取代原网络中第6 和第7 卷积层。第1 个输出层之前的一个卷积层被替换为Fire 模块,第7 和第8 个Fire 模块也被Fire 模块代替。这样的改进可以极大减少参数,但网络的深度和宽度并没有很大改变,特征提取也没有变弱。

1.4 Fire 模块

引入Fire 模块不仅减少了数据模型,并且加深了网络。Fire 模块由2 部分组成:压缩数据部分的1×1 的卷积层和数据扩展部分的1×1 和3×3的卷积层的组合。1×1 的卷积层是一种十分有效减少参数个数的方法,并且1×1 的卷积层只有1个参数需要训练和学习,检测精度不会降低很多。图4 是Fire 模块的网络结构。

图4 Fire 模块的网络结构Fig.4 Network structure of Fire module

1.5 Fire 模块之间的紧密连接

由于加入了Fire 模块,特征提取比较弱,为了加强特征提取,在Fire 模块之间使用了紧密连接。简单地讲,在Fire 模块中,每一层的输入是前几层的所有输出,这样的做法可以极大地保证特征提取和火灾识别准确率。Fire 模块之间的紧密连接如图5 所示。

图5 改进Tiny-YOLOv3 之间的紧密连接Fig.5 Tight connection improve between Tiny-YOLOv3

当特征图的尺寸较大时,使用紧密连接会使计算量变大,实时性会受到很大影响。因此测试了3 个不同类型密集连接的网络实时性能,如表1 所示,本文使用的密集连接方式具有最佳的实时性。

表1 不同类型的紧密连接实时性能Tab.1 Real-time performance of different types of tight connections

2 实验结果

软件环境为Win10 系统,Python3.7.2,深度学习框架为tensorflow。CPU 为i7-9750H,显卡为GTX1650,内存是16 GB。

2.1 实验数据集

Pascal VOC 和 COCO 数据集主要是用来进行训练和验证,并得出权重,最后利用迁移学习将训练好的权重应用在改进的算法上,并用自建的火灾图像测试数据集进行训练,最后得出性能指标并进行检测。

前2 个数据集应用比较广泛,特别是在人工智能领域。Pascal VOC 的数据集包括PASCAL VOC 2007 和 Pascal VOC 2012 等。有 20 种物体,3 万张图片左右。当计算 AP 值和 mAP 时,默认值 0.5 用于(IOU)。COCO 的数据集比 Pascal VOC 更难训练。对于目标检测算法,模型的性能通常更倾向于COCO。COCO 中有 80 个物品类别,每张图像中包含的目标数量是 Pascal VOC 的 3 倍。

而本实验中用到的数据集是通过自己网上扒取的400 张火灾照片,并加入了30 张非火灾图像,这样做是为了使模型的性能更加优越。

2.2 模型训练

在对数据集进行训练之前,首先将 Darknet53加载到改进版的 Tiny-YOLOv3 中,得到一个预训练的网络模型,然后通过预训练模型对数据集训练,得到最优的模型和权重,最后进行检测。检测结果如图6 所示。

图6 火灾图片的检测结果Fig.6 Detection results of fire pictures

2.3 损失曲线的比较

从图7 数据训练的损失曲线可以看出,2 种模型随着训练迭代次数的增加,损失稳定在一个数值,并上下波动;从图7 还可以看出,改进的模型在损失方面有着明显的优势。

图7 数据训练的损失曲线Fig.7 Loss curve of data training

2.4 BFLOP/s 和模型尺寸的性能比较

BFLOP/s 通常用来衡量模型所需的计算能力。BFLOP/s 越大,对器件的要求就越高。由表 2 可知,改进 Tiny-YOLOv3 的 BFLOP/s 只有 2.643,约等于Tiny-YOLOv3 的一半,适用范围更广。改进 Tiny-YOLOv3 的模型尺寸几乎为原算法的1/4。

表2 不同模型的性能比较Tab.2 Performance comparison of different models

2.5 实时性能比较

实时性的重要参考标准是FPS 和平均检测时间,其中FPS 值越大越好,检测时间越小越好。具体数值见表3,从表3可见,改进的模型性能更优。

表3 算法实时性能比较Tab.3 Real-time performance comparison of algorithms

2.6 mAP 值比较

通常使用mAP 来衡量检测精度。该检测精度也是在测试数据集上的表现,Tiny-YOLOv3 的mAP 值为 61.3,而改进版的Tiny-YOLOv3 的mAP值为65.7,从数据上看改进的算法精度提升了。

3 实验结论

本文使用了一种运行于计算能力较差的设备中的实用算法——改进Tiny-YOLOv3。为了缩小模型尺寸,将Tiny-YOLOv3 中的部分卷积层用Fire 模块替换,这样的改进不但使网络结构变小,并且使算法的深度增加。然后,讨论了Tiny-YOLOv3 中Fire 模块之间的连接方法,即通过DenseNet 中密集连接实现;同时讨论了不同的紧密连接方式,获得了最优方式。Tiny-YOLOv3 中密集连接有助于增强检测准确性和实时性,因为可以增强特征传播并确保网络中的最大信息流。在测试数据集上进行的实验和检测表明,改进Tiny-YOLOv3 比Tiny-YOLOv3 更有效。并且改进Tiny-YOLOv3 在损失曲线、模型大小、BFLOP/s、FPS 和mAP 值等方面也显示出竞争优势。通过这些性能指标也可以证明改进Tiny-YOLOv3在计算能力受限的设备中可以很好地应用。

猜你喜欢
网络结构特征提取卷积
同步定位与建图特征提取和匹配算法研究
基于全卷积神经网络的猪背膘厚快速准确测定
基于图像处理与卷积神经网络的零件识别
基于深度卷积网络与空洞卷积融合的人群计数
基于MED—MOMEDA的风电齿轮箱复合故障特征提取研究
基于曲率局部二值模式的深度图像手势特征提取
试论分布式计算机网络结构分析与优化
带通信配网故障指示器故障监测方法及安装分析
非常规突发事件跨组织合作网络结构演化机理研究