APP下载

轻量化卷积神经网络目标检测算法综述∗

2021-05-25杨玉敏廖育荣林存宝倪淑燕吴止锾

舰船电子工程 2021年4期
关键词:集上轻量化卷积

杨玉敏 廖育荣 林存宝 倪淑燕 吴止锾

(1.航天工程大学研究生院 北京 101400)(2.航天工程大学电子与光学工程系 北京 101400)(3.洛阳电子装备试验中心 洛阳 471000)

1 引言

随着近年来卷积神经网络(Convolutional Neu⁃ral Networks,CNN)在计算机视觉领域的广泛应用,基于CNN的目标检测算法得到了迅猛发展。Gir⁃shick等于2014年提出了R-CNN(Regions with Con⁃volutional Neural Network)[1]算法,首次基于CNN 框架大幅提高了目标检测的平均精度均值(Mean Av⁃erage Precision,mAP)。随后各种基于CNN的目标检测算法,包括基于候选区域的R-CNN改进算法Fast R-CNN[2]、Faster R-CNN[3]、Mask R-CNN[4],以及基于回归方法的YOLO(You Only Look Once)系列[5~7]与 SSD(Single Shot MultiBox Detector)系列[8~11]算法先后被提出,显著提高了目标检测算法在检测精度和实时性方面的性能。

虽然R-CNN、YOLO、SSD系列算法在目标检测性能方面效果优异,但其普遍具有较高的计算复杂性和较大的模型体积,无法充分满足计算能力、存储空间、功耗等资源受限场合的应用需求。为了提高目标检测算法在嵌入式平台等资源受限条件下的应用能力,各种轻量化目标检测算法,包括Light-Head R-CNN[12]、Tiny-YOLO[5]、Tiny-SSD[13]等算法先后发展而来,有效提高了轻量化目标检测算法的性能水平。本文旨在归纳现有轻量化CNN的基础上,重点对轻量化目标检测算法进行系统总结,并结合各算法在PASCAL VOC[14~15]等数据集上的测试结果进行对比分析和发展方向探讨。

2 轻量化网络模型与目标检测算法研究进展

基于候选区域和回归方法的目标检测算法虽然性能优异,但其模型大小和参数量相对较大,通常为百MB大小和百M参数量,且其计算复杂度较高,对于内存空间和计算能力受限的嵌入式系统而言通常难以满足要求。为了满足资源受限的嵌入式系统的使用要求,研究人员提出了多种轻量化网络模型,最具代表性的主要为SqueezeNet、Mo⁃bileNet和ShuffleNet系列轻量化网络。

2.1 轻量化网络模型

2.1.1 SqueezeNet与SqueezeNext

2016年,Iandola等[16]提出了SqueezeNet轻量化网络,该网络借鉴了Inception网络[17]的设计思想,通过Fire module基本模块实现SqueezeNet网络的构建,其Fire module结构如图1(a)所示。Fire mod⁃ule中主要包含了Squeeze层和Expand层,其中Squeeze层采用1×1的卷积核来减少参数量,Ex⁃pand层则采用1×1和3×3卷积核分别得到对应特征图后进行拼接,由此得到Fire module的输出。利用卷积层、Fire module和池化层构建的SqueezeNet模型大小只有4.8MB,却在ImageNet上达到了相比AlexNet略优的57.5%的TOP-1分类精度。2018年,Gholami等[18]基于SqueezeNet提出了改进版的SqueezeNext轻量化网络,其主要采用了如图1(b)所示的模块结构。该结构中采用通道数减半的两层Squeeze层对输入进行处理,然后通过3×1和1×3搭配的低秩卷积核进行卷积,之后利用一个卷积层实现数据维度匹配。此外,SqueezeNext借鉴ResNet网络[19]结构思想实现了shortcut连接,并通过硬件实验指导网络设计,其参数量相比SqueezeNet有了明显降低,但却实现了高达69.8%的TOP-1分类精度。

图1 Fire Module与SqueezeNext基本模块结构

2.1.2 MobileNet v1与MobileNet v2

2017年,Howard等[20]提出了MobileNet v1轻量化网络,该网络使用了深度可分离卷积(Depthwise Separable Convolution,DSC)结构代替传统卷积结构,将传统卷积结构中N个DK×DK×C卷积核分解为C个DK×DK×1和N个1×1×C卷积核叠加的形式,其结构图如图2(a)所示,通过该方法可使卷积操作运算量降低为原有的1/8~1/9。于此同时,通过引入时间因子α和分辨率因子ρ进一步降低模型参数量,最终MobileNet v1参数量约为4.2 M,且在ImageNet数据集上实现了70.6%的TOP-1分类精度。2018年,Mark等[21]在Mobilenet v1的基础上提出了Mobilenet v2轻量化网络,该网络最大的特点是引入了反向残差和线性瓶颈结构,反向残差结构如图2(b)所示,其不同于常规残差结构“压缩—卷积—扩张”过程,而是采用“扩张—卷积—压缩”的反向式操作,充分利用深度可分离卷积可有效降低中间卷积运算计算量的优势来保证算法性能,且通过去掉ReLU来避免信息损失。MobileNet v2的参数量约为6.9 M,其在ImageNet数据集上实现了74.7%的TOP-1分类精度。

图2 深度可分离卷积与反向残差结构

2.1.3 ShuffleNet v1与ShuffleNet v2

2017年,Zhang等[22]提出了ShuffleNet v1轻量化网络,其基本模块结构如图3(a)所示。Shuf⁃fleNet v1对常规残差结构进行了改进,将与输入特征图相连的第一个1×1卷积层替换为分组卷积,并利用Channel shuffle操作对分组卷积各组输出结果进行信息交互,以此实现在降低运算量的情况下保证网络性能,ShuffleNet v1最终在ImageNet数据集上实现了73.7%的TOP-1分类精度。2018年,Ma等[23]在 ShuffleNet v1 的基础上又提出了 Shuf⁃fleNet v2轻量化网络,该网络的基本模块结构如图3(b)所示,其在对输入特征图进行处理时首先进行了通道划分,其中一个分支不采取任何操作,另一个分支经过卷积处理后,与前一个分支拼接后再进行Channel Shuffle操作,以此实现信息交互,最终ShuffleNet v2在ImageNet数据集上实现了74.9%的TOP-1分类精度。

图3 ShuffleNet v1与ShuffleNet v2基本模块结构

2.2 轻量化目标检测算法

为了满足嵌入式系统等资源受限平台的使用需求,研究人员基于R-CNN、YOLO、SSD等原始算法,结合各种轻量化网络模型,通过采用巧妙的融合策略与算法改进,提出了一系列兼具目标检测精度和实时性的轻量化目标检测算法,其中最具代表性的仍是以R-CNN、YOLO、SSD系列为代表的轻量化目标检测算法。

2.2.1 轻量化R-CNN系列

2016年,针对R-CNN系列算法实时性不足问题,Hong等[24]基于Faster R-CNN提出了PVANet轻量化目标检测算法,该算法通过将CReLU(Concate⁃nated Rectified Linear Units)、Inception与残差结构相结合,并借鉴HyperNet网络[25]思想来构建特征提取网络,在尽量保留Faster R-CNN精度优势的情况下提高算法实时性,最终在VOC数据集上实现了84.4%的mAP与20.6 FPS的处理速度。2017年,Li等[12]通过分析R-CNN系列算法头部架构设计复杂导致算法速度较慢的问题,提出了Light-Head R-CNN轻量化目标检测算法,该算法一方面利用较大核尺寸的可分离卷积生成通道数较少的特征图,另一方面通过单个较小的全连接层连接于池化层,从而降低算法复杂度,最终在COCO数据集上实现了37.7%的mAP,检测速度达到了102 FPS。

2.2.2 轻量化YOLO系列

2015年,文献[5]在提出YOLO v1算法的同时提出了一个轻量化版本Tiny-YOLO v1,该算法将YOLO v1原有的24层卷积结构简化为9层,在VOC2007数据集上以相比YOLO v1降低10.7%mAP的代价实现了检测速度的3.4倍提升。在此基础之上,文献[6~7]在后续提出YOLO v2和v3的同时也发布了对应的轻量化版本Tiny-YOLO v2和v3,改进的Tiny-YOLO v2和v3算法在降低模型大小的同时也实现了更高的目标检测mAP。2016年,Wu等[26]受YOLO算法启发,提出了一种面向自动驾驶目标检测任务的SqueezeDet轻量化算法,该算法通过改进的SqueezeNet轻量化网络,利用全卷积结构实现端到端的目标检测,有效降低了模型大小和参数量,在KITTI数据集上实现了76.7%的mAP。2018年,Pedoeem等[27]针对非GPU工作平台,基于YOLO系列算法提出了改进的YOLO-LI⁃TE轻量化目标检测算法,该算法网络结构中仅采用了7层卷积层,并针对其浅层网络结构特点取消了批归一化处理,使其能够在非GPU平台下实现21 FPS的检测速度,但其mAP指标相对较低。2019年,Wong等[28]采用人机协作设计策略,将骨干网络人工设计和机器驱动探索设计相结合,以YO⁃LO系列算法为基础提出了YOLO Nano轻量化目标检测算法,该算法在相比Tiny-YOLO v2和v3算法显著降低模型大小及运算量的同时,将mAP指标提升了10%以上,且在嵌入式平台下实现了48.2 FPS的目标检测速度。

2.2.3 轻量化SSD系列

2018年,Zhang等[29]将MobileNet v1网络与SSD算法相结合,提出了MobileNet-SSD算法,该算法利用MobileNet v1网络替换了SSD算法原有的VGG-16网络,并利用DSC替换了传统卷积,在VOC数据集上实现了72.0%的mAP,并在NanoPi 2嵌入式平台下实现了1.13 FPS的目标检测速度。同年,文献[21]在提出轻量化网络MobileNet v2的同时,将原有SSD算法中的常规卷积替换为DSC并将其命名为SSDLite,又将MobileNet v2与SSDLite相结合得到了MobileNet v2+SSDLite轻量化目标检测算法,其在COCO数据集上实现了22.1%的mAP。同年,Womg等[30]受轻量化网络 SqueezeNet中fire module基本结构和SSD算法中单点探测整体框架启发,针对目标检测问题对二者网络进行特定改进与结合,以此提出了Tiny-SSD轻量化目标检测算法,在有效降低算法模型大小的基础上,在VOC数据集上实现了61.3%的mAP。此外,Li等[31]将DSC与DenseNet网络相结合构造了DDB(Depth⁃wise Dense Block)模块,又将深度卷积与特征金字塔网络(Feature Pyramid Network,FPN)相结合构造了D-FPN模块,最后分别将DDB和D-FPN作为骨干网络和前端网络提出了Tiny-DSOD轻量化目标检测算法,该算法在VOC数据集上实现了72.1%的mAP,且具有较高的目标检测速度。

2.3 不同轻量化算法性能对比与分析

基于PASCAL VOC、COCO、KITTI数据集,表1为各种轻量化算法在其上的测试结果。对于R-CNN系列轻量化目标检测算法PVANet与Light-Head R-CNN,其依然保持了较高的目标检测精度,但在嵌入式平台下的目标检测速度仍有待研究。对于YOLO系列轻量化目标检测算法,随着算法的改进其模型大小在不断降低,算法精度也在不断提高,且在嵌入式系统Jetson AGX Xavier上实现了实时目标检测能力,取得了模型大小、检测精度、检测速度的较好平衡。对于SSD系列轻量化目标检测算法,其模型大小和参数量均已明显降低,且在GPU平台105 FPS处理速度下实现了72.1%的mAP,同样达到了较好的目标检测水平。

表1 不同轻量化目标检测算法性能对比

3 结语

基于卷积神经网络的目标检测算法以其优异的性能已成为当前目标检测任务的主要解决方案,本文在对基于候选区域和回归方法的典型目标检测算法概述的基础上,重点对轻量化网络模型及其轻量化目标检测算法进行了系统总结,阐述了其网络结构和算法特点,并结合各类算法在PASCAL VOC等数据集上的测试结果对其进行了对比分析。总体而言,性能优异的轻量化目标检测算法依然明显依赖于巧妙的轻量化特征提取网络设计,以及网络内部高效的信息提取与传递机制,此外,多尺度与多样化的模型训练方法也是实现算法性能的有效保障,这些方面可作为改进轻量化目标检测算法性能的研究方向。

猜你喜欢

集上轻量化卷积
基于双空间模糊邻域相似关系的多标记特征选择
基于全卷积神经网络的猪背膘厚快速准确测定
基于ABAQUS的某轻卡车蓄电池支架轻量化
中低速磁浮直线感应电机轻量化研究
重卡车架轻量化设计
关于短文本匹配的泛化性和迁移性的研究分析
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种并行不对称空洞卷积模块①
一种轻量化自卸半挂车结构设计