APP下载

基于轻量化YOLOv4的离岗检测算法

2022-04-24陶青川

现代计算机 2022年4期
关键词:网络结构卷积精度

雷 磊,陶青川

(四川大学电子信息学院,成都 610000)

0 引言

在值班室、仪器操作室、保卫室、生产流水线等场景下,工作人员的工作职责要求持续在岗职守,而这类人员如果异常离岗或脱岗,导致实时性监督得不到保障,留下重大的安全隐患或造成经济损失。

离岗检测算法的首要目标是获取人体的位置。深度学习算法中目标检测算法经过训练之后泛化性强且具有较高的检测精度,因此基于目标的离岗检测算法具有更高可行性。

迄今为止,目标检测算法主要分为两类:一种是以R-CNN为代表的Two Stage 方法;另一种以SSD、YOLO算法为代表的One Stage方法。相比之下,One Stage 算法网络结构较简单,且更容易进行将算法部署至移动、嵌入式设备。

本文在YOLOv4算法基础上,通过对网络结构进行研究和改进,降低网络的计算量和参数,提高推理速度。而后基于轻量化YOLOv4实现离岗检测算法并部署至边缘设备进行测试。

1 相关工作

YOLOv4目 标 检 测 算 法 是 由AlexyAB 于2020年提出的新一代目标检测算法,YOLOv4从输入端、主干网络、特征融合以及激活函数等多个方面进行改进,在保证推理速度更快前提下具有更高的检测精度。

YOLOv4算法性能优越,但是根据实际使用场景、检测目标大小等不同,网络结构不一定需要如此复杂。如在移动端设备、边缘设备等算力有限、存储资源有限的终端上,YOLOv4难以做到实时性。在这种情况下,通常可用一部分的性能损耗来换取更快的推理速度。因此本文选择对YOLOv4进行轻量化改进,具体的措施主要有以下3个方面:

(1)对MobileNetV2的Bottleneck网络进行调整,在保证精度的前提下,降低计算量,并使用改进的MobileNetV2 网络替换YOLOv4 的特征提取网络。

(2)将SPP 结构加入特征提取网络末端,提高网络检测精度。

(3)YOLOv4 采用3 层特征融合的方式主要是为了解决小目标难以检测的问题,而由于离岗检测只需要检测较为简单的人体目标,故采用2层特征融合并结合路径网络降低网络参数的同时保持检测精度。

2 算法细节

2.1 MobileNetV2结构改进

2.1.1 MobileNetV2原始结构

MobileNet 以网络结构简单、参数量小、推理速度快著称,因此该网络适用于移动端或边缘设备。MobileNetV2网络延续了MobileNet中所使用的深度可分离卷积,并借鉴了ResNet网络中的经典瓶颈层结构。MobileNetV2 的网络结构如表1。

表1 MobileNetV2网络结构

表1中Input为输入尺寸,Operator为某层的操作类型,为网络扩展因子,表示某一层的卷积核个数,为bottleneck 的重复次数,表示卷积步长,为类别数,conv2d 表示二维卷积,Avgpool表示平均池化。

2.1.2 深度可分离卷积

深度可分离卷积将传统卷积操作拆分为深度卷积(depth wise,DW)与逐点卷积(point wise,PW)。传统卷积如图2所示。

图2 传统卷积操作

以卷积步长为1 为例,D表示输入图像的大小,D表示卷积核的大小,表示输入图像的通道深度,表示输出特征图的通道深度。则传统卷积计算量如公式(1)所示。

DW 卷积操作则是对于每一个输入通道单独使用一个卷积核进行处理,如图3 所示。相对于传统卷积,DW 卷积核个数对应输入特征矩阵的通道数,其操作实质是分别对各个通道进行卷积计算,可以更充分地理解单个通道的特征。

图3 DW卷积操作

但是由于DW 卷积每个卷积核只关注单个通道的特征信息,因此存在空间特征信息表达力不够的问题。为了解决这个问题,引入PW 卷积与DW 卷积相配合。由图4 可知,PW 卷积操作主要是通过1×1 的传统卷积操作对输入特征图进行处理,该操作的主要目的是使得各通道之间的特征信息融合,从而得到表达能力较强的空间特征信息。

图4 PW卷积操作

在同样的条件下,深度可分离卷积的计算量为公式(2)所示。

其中,

化简可得,最终的深度可分离卷积的计算量为:

通过公式(1)(5)可得同样输入输出条件下传统卷积操作与深度可分离卷积的比值为:

2.1.3 SandGlass模块

MobileNetv2 借 鉴 了ResNet网 络 中 的bottleneck,使用PW 卷积来实现灵活改变特征维度的目的。由图5(a)可知,ResidualBlock 先通过一个PW 卷积减少特征通道数;而后通过传统卷积进行特征提取;最后利用PW 卷积进行通道间信息融合并恢复通道数。通过2.1.2 中的计算方式可知,这种做法显著降低了网络计算量。

如果一开始使用1×1 的逐点卷积进行降维,在降维的过程中很可能造成高维信息丢失,因此MobileNetV2 首先使用PW 卷积扩展维度,避免直接降维所造成的信息丢失;而后使用DW卷积提取各通道的特征;最后的PW 卷积采用Linear 激活函数,能够避免使用ReLU 激活函数所造成的信息丢失。Linear Inverted Residual 结构如图5(b)所示。

相关研究表明:残差模块中的短连接在特征信息较少的情况下可能会影响梯度回传。考虑到Residual Block 和Inverted Residual Block的局限性,文献[13]提出了SandGlass Block。SandGlass Block 主要基于两点进行bottleneck 模块的重构:一是尽可能保证残差结构从bottom上传到top 时具有更多的信息,从而有助于提高梯度回传的效果;二是由于DW 卷积具有轻量化的特点,采用两次DW 卷积有助于保留更多的空域信息,从而提升分类性能。SandGlass 的网络结构如图5(c)所示。

图5 三种bottleneck结构

使用SandGlass 模块替换MobileNetv2 的bottleneck,修改主体网络的输入尺寸为416×416,并删去MobileNetV2 网络末端的Avgpool 层与逐点卷积。此时,改进MobileNetV2 网络中有两种bottleneck模块,一种为SandGlass模块,另一种是由PW 卷积与DW 卷积组合的Block,两者细节如图6所示。

图6 改进MobileNetV2网络两种模块

2.2 SPP空间金字塔池化

当特征提取网络的输入尺寸固定,由于输入样本图片尺寸不一致,需要在训练或推理时使用裁剪、缩放等图像处理方式改变输入图像的尺寸,但这可能会造成图像畸变,造成特征信息失真。为了解决这个问题,在特征提取网络之后引入空间金字塔池化结构,该结构可以对不同尺度的特征图进行信息压缩和融合,最终得到固定尺寸的输出。考虑到人体目标属于中型或大型目标,本文引入的SPP 网络结构如图7所示。

图7 SPP空间金字塔池化模块

具体而言,SPP 模块的工作步骤为:首先,输入特征图经过三次最大值池化层(尺寸分别为3、5、7);而后通过一条short-cut 路径将输入特征图与三个池化输出进行维度拼接(concat);最后,通过一个卷积层对四个不同尺度的特征信息进行融合、学习。

2.3 特征融合增强

由于人体目标较大且较为简单,为降低网络计算量,提高前向推理速度,本文采用2层特征信息融合。为了提高细节信息的利用率,使用路径聚合网络PANet来进行特征增强网络。PANet包含了自下而上和自上而下两条特征融合路径,如图8所示,其有两个输入层,分别来自特征提取网络中的中端与末端,这种方式可以使得多尺度特征反复融合、相互增强,能够更充分地理解特征提取网络的高层语义信息与低维度信息,提升网络表达能力。

图8 路径聚合网络PANet

2.4 改进的YOLOv4网络结构

综合以上有关网络的改进,本文所提出的改进YOLOv4 网络结构如图9 所示,为方便行文,将改进的YOLOv4算法称为YOLOv4-Fast。

图9 YOLOv4-Fast网络结构

2.5 离岗检测算法设计

本文所提出的离岗检测算法流程如图10所示。

图1 YOLOv4网络结构

图10 睡岗检测算法流程

离岗检测算法的具体步骤为:

(1)选择待岗区域。选择工作人员的待岗区域,即需要进行离岗检测的区域。

(2)前处理。利用摄像机实景图像,经过边缘设备解码后,将解码出的每一帧图像传入目标检测网络中。

(3)目标检测网络。本文所提出的改进目标检测算法YOLOv4-Fast 将检测到的人体位置传递给后续算法。

(4)离岗判定算法。当未检测到人体目标或人体目标位置不处于待岗区域时,进入离岗判定算法:间隔2 s(实验设定,可自定义)再次对图像进行人体目标检测,持续检测10 次,如果超过半数检测结果显示人体位置异常,则判定人员离岗,否则不存在离岗行为。

(5)离岗通知。如果存在离岗情况,则将现场图像发送至相关负责人并警示工作人员,达到督促工作人员持续在岗的目的。

3 实验对比

3.1 实验准备

3.1.1 实验数据集

目前用于值班室等场景下的人体目标检测数据集较少。本文所用数据集来源包括实地场景采集与网络图片资源,数量为5462 张。为增强网络的泛化能力,从COCO 数据集选取4000张人体目标图像。共有9462张图片,以8∶2划分训练集和测试集。

图11 数据集示例

3.1.2 实验平台

本文选用PC以及Kria KV 260开发板作为实验平台,其中PC的硬件配置如表2所示。

表2 本地计算机相关参数

Kria KV 260 开发板为Xilinx 公司最新推出的智能边缘设备,其参数如表3所示。

表3 Kria KV 260相关参数

其中推理引擎DPU 是由板载FPGA 资源所抽象而成的深度学习推理资源,具有实时、高效、低能耗的特点。

3.2 验证结果

3.2.1 PC GPU验证结果

为了验证YOLOv4-Fast 算法的检测效果,使用相同的硬件条件和数据集分别重新训练本文算法以及YOLOv4、YOLOv3 算法。对比多种算法的准确率、推理耗时、计算量(BFLOPs)和模型大小,具体实验数据如表4所示。

表4 本文改进YOLOv4目标检测算法效果对比

图12分别为三种算法的检测效果。

图12 GPU测试结果

从目标检测结果上看,三种算法的检测结果大致相同;从实际精度上看,相较于原YOLOv4 算法,YOLOv4-Fast 算法精度低3.5%,但检测速度却提升了100 FPS,并且模型大小降低210 MB,网络计算量下降近90%。

3.2.2 Kria KV 260验证结果

本文所提出的目标检测算法YOLOv4-Fast旨在移植至移动、边缘设备,充分发挥其高速数据处理、功耗低、性价比高等优点,因此第二个实验是在PC(GPU)和Kria KV 260 开发板上分别运行YOLOv4-Fast 算法,对比两者的检测速度、功耗、和精度。如表5所示。

表5 GPU与Kria KV 260实验对比

图13是Kria KV 260上的目标检测效果图。

通过表5可知,将YOLOv4-Fast算法部署至Kria KV 260时由于模型转换的损耗,造成0.52%的精度下降,但从图13 可以看出,Kria KV 260的检测结果与GPU 上的检测结果基本一致,与此同时,FPS 达56,足以胜任实时性的目标检测场景。在功耗方面,Kria KV 260 约为GPU 的八分之一。

图13 Kria KV260测试结果

由上述分析可知,YOLOv4-Fast 算法既有较好的检测性能与较快的推理速度,又能充分发挥FPGA智能边缘设备高速处理、低能耗的优点,因此,本文所提出的YOLOv4-Fast 算法非常适合部署在边缘设备上。

3.3 消融实验

为了研究本文改进模块和相关策略对网络性能带来的影响,设计消融实验如表6所示。表中√表示本次实验包含该结构,×表示不包含该结构。MobileNetV2 表示将YOLOv4 的主干网络替换为MobileNetV2;SandGlass 表示将Mobile-NetV2 中的bottleneck 模块替换为SandGlass 模块;SPP 表示在主干网络末端增加SPP 模块以提高不同尺度的特征信息融合;PANet表示使用路径聚合网络。

由表6 的消融实验可以看到,原版YOLOv4具有最高准确率、浮点运算量与模型大小;第二组实验表明将主干网络替换为MobileNetV2时,精度有所下降,但浮点运算量和模型大小大幅下降;第三组、第四组、第五组实验表明SPP 与PANet对模型的精度都有不同程度的提升效果;第六组实验使用SandGlass 模块替换MobileNetV2 网络的bottlneck,精度有些许下降,但浮点运算量与模型大小下降明显,可能是由于SandGlass 模块采用两次3×3 的卷积提高了网络的特征信息获取能力;第七组、第八组、第九组实验表明各种策略对于网络的精度都有显著提升。综上所述,本文所提出的YOLOv4-Fast 算法针对YOLOv4 的轻量化改进具备有效性和合理性,以较低性能损耗为代价大幅减小了网络的浮点运算量与模型大小。

表6 消融实验

3.4 离岗检测算法

在章节2.5 中提出了一种基于目标检测的离岗检测算法,使用本文提出的YOLOv4-Fast 作为其目标检测算法。采集多个场景下的值班室视频,将视频分割为30 s一段,一共170段,其中95 段为员工在岗视频,75 段为员工离岗视频。将离岗检测算法部署至Kria KV 260,并对上述视频进行一一检测,检测结果如表7所示。

表7 离岗算法检测结果

由表7 可知,离岗检测算法的准确率为96.87%,能够有效的识别员工是否离岗并及时进行反馈。通过分析判定错误的例子,当员工身体被大面积遮挡,或是场景中存在衣物等物体时容易造成误判,这是后续算法优化需要解决的问题。

4 结语

针对智能边缘设备上的计算资源有限的问题,本文在YOLOv4 算法和MobileNetv2 网络的基础上进行了模型的替换和改进,提出了YOLOv4-Fast 算法,并分别部署至GPU 和Kria KV 260开发板。GPU上的实验结果表明,YOLOv4-Fast在牺牲3.5%的精度下,提高了100 FPS的运行速度,并将模型大小降低了210 MB。与此同时,Kria KV260 开发板与GPU 的实验结果表明,YOLOv4-Fast 算法能够充分利用KV260 的FPGA计算资源,并且相比于GPU 仅只有1 8 的功耗。基于YOLOv4-Fast 算法的离岗检测算法达到96.87%的准确度,说明本文所提出的算法具有很大的实用性。为了尽可能提高算法的检测精度,以免产生误判,在之后的工作中,需要结合Kria KV 260 开发板特性对网络结构进行分析,探究各种网络结构对推理速度以及模型参数的关系,从而在降低网络计算量、模型参数的前提下,进一步提高目标检测网络的推理速度和精度。

猜你喜欢

网络结构卷积精度
基于不同快速星历的GAMIT解算精度分析
基于全卷积神经网络的猪背膘厚快速准确测定
基于图像处理与卷积神经网络的零件识别
基于深度卷积网络与空洞卷积融合的人群计数
近似边界精度信息熵的属性约简
卷积神经网络概述
电力系统短期负荷预测方法与预测精度
试论分布式计算机网络结构分析与优化
带通信配网故障指示器故障监测方法及安装分析
非常规突发事件跨组织合作网络结构演化机理研究