面向空基边缘平台轻量化目标智能检测

2021-09-08 02:31:04王文庆马晓华杨东方
西安邮电大学学报 2021年3期
关键词:剪枝卷积性能

王文庆,丰 林,刘 洋,马晓华,杨东方

(1.西安邮电大学 自动化学院, 陕西 西安 710121;2.火箭军装备部驻南京地区 第二军事代表室, 江苏 南京 210023;3.火箭军工程大学 导弹工程学院,陕西 西安 710025)

深度学习作为机器学习的重要分支,已被广泛应用于文字识别、语音识别、目标检测、自然语言处理、自动驾驶、生物信息处理、电脑游戏、推荐系统、医学自动诊断和金融分析等各大场景[1]。卷积神经网络(Convolution Neural Network,CNN)作为深度学习的典型模型,在图像分类、图像分割与目标检测领域获得了一系列的研究进展[2]。自AlexNet[3]之后,相继出现了各种新型卷积神经网络结构,如计算机视觉组(Visual Geometry Group,VGG)Net[4]、GoogLeNet[5]、ResNet[6]和DenseNet[7],它们作为目标检测的主干网络逐步提升了检测的准确率,但其总体趋势仍局限于使用更深层更复杂的网络实现更高的分类精度。

得益于空中监测范围广的优势与嵌入式平台的普及,无人机被广泛应用到实际的检测任务中,如自然灾害分析、道路交通检测和抗灾救险等。在无人机边缘计算平台实际部署中,主要面临3个方面的挑战[8]:在空对地场景下,经常出现密集的小型目标,该情况下虚检率与漏检率较大,保持良好的检测性能是一个基本条件;基于深层卷积神经网络的目标检测算法参数量过大,不利于直接部署在内存与算力有限的嵌入式设备上;如何尽可能的满足性能与实时检测的要求。

自R-CNN(Region-CNN)模型引入之后,更多检测框架相继被提出,如Faster R-CNN[9]、单步多框检测(Single Shot MultiBox Detector,SSD)[10]和YOLO(You Only Look Once)[11]等。其中,YOLO系列模型的精度和速度一直在提升,实际应用更加广泛。这些模型都被直接部署在平台上,需要占据大量运行空间和进行高密度计算才能保证原有检测性能,功耗与时延等问题尤为突出。因此,如何合理均衡模型处理速度和检测精度,已成为工业系统中亟待解决的问题[12]。

网络参数统计结果显示,经典VGG网络前10个卷积层占据整个模型90%的计算量,而全连接层则占据着大约5%~10%的计算量和95%的参数量,即卷积神经网络存在很大的参数冗余,这为模型压缩提供了统计依据。使用某种训练方式,可将网络中不重要的或多余的参数筛选出来,进而删除对模型性能影响较小的不重要权重。网络剪枝[13]就是实现模型压缩最为有效的方法之一。对于深层卷积神经网络来说,特征层很容易存在通道的冗余,对特征通道进行剪枝可更有效地减少计算量。

为获得精简的深层目标检测器,拟提出一种面向空基边缘平台的轻量化目标智能检测方法。先将L1正则强加于通道缩放因子,增强网络卷积层的通道稀疏性,对YOLOv4[14]初始模型进行稀疏化训练。然后设置一定的通道剪枝比例,删除冗余的通道,微调恢复网络性能,得到剪枝后的YOLOv4模型,以期更适合于无人机的实时目标检测。

1 基本原理

1.1 基于深度学习的目标检测算法

检测目标分为两类。第一类是对特定实例的检测,如检测面孔、行人等单个类别或少数特定类别。第二类是通用目标检测,如检测飞机、汽车等不同预定义目标类别。目标检测的研究分为两个阶段。第一阶段是利用方向梯度直方图(Histogram of Oriented Gradient, HOG)、加速稳健特征(Speeded Up Robust Features,SURF)和尺度不变特征变换(Scale-Invariant Feature Transform,SIFT)等算法提取特征并进行检测。该类算法均在候选区域内提取特征,利用支持向量机、随机森林和自适应增强等机器学习方法进行检测与识别。第二阶段是利用深度学习进行目标检测,可细分为单级目标检测算法和两级目标检测算法。两级目标检测代表算法有R-CNN、Fast R-CNN、Faster R-CNN等[15],这些算法摒弃了使用滑动窗口进行区域选择,采用有建议性的Selective Search区域生成算法,减少了冗余候选区域的生成。特征提取也从传统的手工设计变为利用深度卷积网络学习和提取图像中目标的深层特征,将特征向量进行分类和精确定位。两级目标检测算法在检测精度上取得了很好的效果,但还是无法实现端对端的实时检测。单级目标检测算法则是直接对输入的图像应用算法实现类别预测与定位,较于两级目标检测算法精确度略低,但检测速度提升显著,能够实现端对端的检测,其中,具有代表性的方法有SSD、CenterNet[16]和YOLO系列模型。

YOLO系列模型是实际应用中最受欢迎的深层目标检测器之一,其检测速度快,且检测精度与检测速度达到了很好地平衡。其中,YOLOv4模型的检测性能高且更具实时性,但其硬件平台不足以应对巨大的计算开销与容量。

1.2 深度学习轻量化技术

目前,深度学习的模型压缩方法大致可以分为设计更加精致的骨干网络、模型剪枝、知识蒸馏、低秩分解和网络量化等5类。

模型剪枝分为非结构化剪枝与结构化剪枝两类。早期基于非结构化的方法裁剪粒度为单个神经元,如果对卷积核进行非结构化剪枝,则得到的卷积核是稀疏的,即中间有很多元素为0的矩阵。除非下层的硬件和计算库对其有较好的支持,剪枝后模型很难获得实质的性能提升,稀疏矩阵无法利用现有成熟的基础线性代数子程序库(Basic Linear Algebra Subprograms,BLAS)获得额外性能收益。相反,结构化剪枝是对整个卷积核或者通道进行剪枝,不会破坏原有的网络结构,因此,更适合部署在硬件上运行。网络瘦身[17]是一种简单且有效的通道修剪方法,在批量标准化卷积核中直接采层作为通道级缩放因子,并在这些缩放因子上使用L1正则化训练网络,从而获得通道稀疏性的因素。通道修剪是一种粗粒度但有效的方法,并且无需专用工具即可方便地实施修剪的模型硬件或软件。将网络瘦身应用于修剪基于CNN的图像分类器,可减少模型大小和计算。

2 YOLOv4模型轻量化改进

2.1 YOLOv4模型

YOLOv4模型与YOLOv3模型在整体结构上没有差别,解码过程也几乎相同,主要是在YOLOv3模型的基础,进行了以下4个方面的改进。

1)根据CSPNet[18]网络特点,将Darknet53替换为CSPDarknet53,使用更平滑的Mish激活函数改进主干网络。

2)在特征增强部分添加SPP(Spatial Pyramid Pooting)结构,增加感受野。借鉴PANet,在FPN(Fenture Pyramid Networks)后面加入PAN结构,进一步提高特征提取能力,Head层与YOLOv3保持一致。

3)使用Mosaic数据增强方法,降低对于硬件的要求,使其能够在8-16 GB的常规CPU上进行训练。

4)将CIoU作为其回归Loss,使回归损失在与目标框有重叠甚至有包含关系时更准确,收敛更快。

但是,在相同数据输入下,YOLOv3与YOLOv4参数量与计算量相差不大,不建议直接部署到空基边缘检测平台。

2.2 YOLOv4模型压缩

YOLOv4模型的主干网络深度与宽度较大,在下采样过程中,通道数成倍增加,在训练过程中易出现通道冗余现象,因此,使用模型剪枝作为模型压缩的方法。YOLOv4模型迭代剪枝过程主要分为是初始模型稀疏训练、通道剪枝、微调剪枝后的紧凑模型和迭代训练等4个阶段。

1)初始模型稀疏训练。在YOLOv4模型中,主干网络每层输出的通道数量较多,但并不是所有通道都同等重要,可去掉对模型性能没有影响的通道。稀疏训练可自动选择特征,实现通道级别的稀疏,有助于通道修剪,网络的稀疏度越高,剪枝率越大。为了减少稀疏时间和方便通道修剪,可利用卷积层缩放因子|γ|的大小表示某通道的重要性,将其与通道一一对应,卷积层的使用可加速网络收敛和提高网络的泛化性能。特征层批量标准化的计算表达式为

(1)

L=LY+λ‖γ‖1

(2)

式中:LY为YOLOv4模型的损失函数;λ为正则系数,其值越大,稀疏化通道越快,但不宜过大,容易造成性能损失。在正则化期间,卷积层缩放系数的分布经自动调整、稀疏化之后,有助于优化网络结构。由于网络结构限制,不对SPP与上采样前一个卷积层稀疏训练,进而对其不进行剪枝。

2)通道剪枝。稀疏训练完成之后,对所有可剪层的|γ|进行排序,根据排序的结果和给定的剪枝率求得|γ|系数的全局阈值,将所有|γ|小于该阈值的置0,而|γ|大于该阈值的保持不变。为了保证网络结构的完整性,对每个剪枝层设置安全阈值,保证每层有保留的通道。

设立通道掩码(filter_mask)表示YOLOv4模型中每个剪枝层的剪枝掩码,对γ置0的卷积核设置剪枝掩码为0,表示剪枝;对不为0的γ系数设置剪枝掩码为1,表示不剪枝。针对跳跃连接(shortcut),只有对应通道才能相加,因此将shortcut相关联的所有卷积层的通道掩码对0求交集,即关联的卷积层相对应的通道掩码都为0时才能被剪枝,只要有一个为1都不剪枝。最后,根据filter_mask生成剪枝后的紧凑YOLOv4模型,并从剪枝前的YOLOv4模型中加载参数。

3)微调剪枝后的紧凑模型。通道剪枝完成之后,网络的性能有所下降,需要经过微调,使损失的性能恢复,若经微调之后还无法恢复初始性能,说明剪枝率过高。

4)迭代训练。若微调剪枝后的紧凑YOLOv4模型能够恢复初始性能,可将其作为初始模型进行迭代训练,进一步压缩网络,最终获得精简YOLOv4模型。

3 实验及结果分析

在操作系统为Ubuntu 16.04,1个RTX 2080 Ti显卡的服务器上训练与评估检测模型,使用Darknet与Pytorch实现。为了评估剪枝的YOLOv4模型的性能,基于YOLOv4模型对于剪枝前与不同剪枝率的各项性能指标进行详细对比。实时性在边缘计算平台Jetson AGX Xavier测试,整个平台的尺寸不超过105 mm×105 mm,内存为16 GB,支持10 W、15 W或30 W功率运行,其8 bit运算性能为22 Tops,16 bit运算性能为11 Tops。

3.1 数据集

将空机无人平台在不同场合、不同时间进行拍摄,获得了5 000张样图片。空对地成像结果与成像传感器焦距、分辨率等内参和高度有关,同一类目标成像的尺寸对目标检测的设计和实际检测效果会产生影响。因此,采用目标最终占用的像素不得少于10个像素的方式衡量数据集。5 000张样图片共标定汽车、卡车、公交车、厢式货车和人等5类检测目标,部分场景示例图片如图1所示。

图1 数据集部分场景

3.2 实验参数

按照8∶1∶1的比例将数据集划分为训练集、验证集和测试集。在所有训练中,批量大小(batch size)为64,最大迭代次数为10 000次,初始学习率为0.001,使用学习率衰减方式,分别在7 000次和9 000次迭代时学习率降低10倍。在稀疏训练中,令正则稀疏λ=0.001进行稀疏训练。

3.3 评估指标与实验结果分析

对YOLOv4模型按照一定比例进行了3次通道剪枝,75%、90%和93%等3个不同的剪枝率代表了对通道数的理论减少比例。为了验证YOLOv3模型、初始YOLOv4模型及剪枝后YOLOv4模型的性能,分别对比精确度、召回率、F1-score、平均精度均值(mAP)、模型计算量(10亿浮点运算次数)、帧率及模型体积等7个评估指标,结果如表1所示。

从表1可以看出,YOLOv4模型比YOLOv3模型精度提升了近30%,可见对YOLOv4模型的改进对小目标的检测很有效。3种不同通道剪枝比例中,只有剪枝93%的YOLOv4模型在精确度、召回率和平均精度指标略微降低,其余两种剪枝模型经过微调反而比原模型有所提高,显然原网络冗余性较大。3种剪枝模型在实际计算量中大约下降了60%、68%和73%,对应模型大小下降了92%、96%和97%。在实时性方面,输入一段视频统计检测帧率,最终的剪枝模型帧率提升了1倍,因此,剪枝后的YOLOv4模型在性能不损失的情况下,能够有效提升实时性。

表1 通道剪枝前后各类模型的指标对比

5类检测目标的平均精准度(Average Precision,AP)对比如表2所示。

表2 5类检测目标平均精准度对比

由表2可知,经过迭代训练的最终YOLOv4模型精度整体略微下降,各目标的AP值也存在较大差距,这主要是样本不平衡所导致,例如,训练集中汽车数量远大于其他类型。

在实际场景中,对比初始YOLOv4模型与剪枝93%的YOLOv4模型的检测效果,如图2所示。图2可以看出,在相同环境下两个检测模型都能正确检测大多数的目标,没有显著的差异,但是对遮挡严重或不清晰的目标还存在漏检与误检的情况,而综合表1和表2的结果得出,剪枝后的模型更有利于部署到空基边缘平台上。

图2 剪枝前后模型实际检测效果对比

4 结语

面向空基边缘平台的轻量化目标智能检测方法,针对无人机视角的小目标,利用YOLOv4主干网络较强的特征提取能力,使得网络学习更加全面的目标特征。针对在实际部署时模型计算量大的问题,设计了有效的通道剪枝策略,在嵌入式环境下同时提高了检测精度与检测速度。实验结果表明,该方法在不损失mAP的前提下,参数量和计算量得到很大程度压缩,具有更快的运算速度以及更低的计算功耗,有助于推动无人机智能目标检测。

猜你喜欢
剪枝卷积性能
人到晚年宜“剪枝”
保健医苑(2022年5期)2022-06-10 07:47:22
基于3D-Winograd的快速卷积算法设计及FPGA实现
基于YOLOv4-Tiny模型剪枝算法
提供将近80 Gbps的带宽性能 DisplayPort 2.0正式发布
从滤波器理解卷积
电子制作(2019年11期)2019-07-04 00:34:38
基于傅里叶域卷积表示的目标跟踪算法
剪枝
天津诗人(2017年2期)2017-03-16 03:09:39
Al-Se双元置换的基于LGPS的thio-LISICON的制备与性能表征
强韧化PBT/PC共混物的制备与性能
中国塑料(2015年4期)2015-10-14 01:09:28
RDX/POLY(BAMO-AMMO)基发射药的热分解与燃烧性能
火炸药学报(2014年1期)2014-03-20 13:17:29