目标检测,即在图像中建立给定类别物体实例到类别库(如人类,机动车辆,建筑)的映射,并标志出位置信息,是计算机视觉领域应用场景最为广泛的研究领域之一。总体来说,目标检测领域的研究工作可基本划分为两个阶段:从基于人工设计特征和检测算子的Viola-Jones Detector[1]、DPM[2]等到基于深度学习的目标检测网络Faster r-cnn[3]、YOLO[4]等。在计算机视觉任务日益复杂的今日,基于人工设计特征和检测算子传统目标检测算法,由于其缺乏普适性和精确性,已不能满足需求。
在2012年 Imagenet图像分类竞赛中,基于深度学习的图像分类网络展露峥嵘[29],其能自动提取高维特征,对不同场景的图像具有很强的鲁棒性,并且其学习的特征具有很强的表达能力。随后研究者尝试将目标位置回归加入到深度学习框架中,成功将深度学习在图像分类中的优势转入到目标检测领域,由此给目标检测任务开拓了新的前景并使该领域以惊人的速度发展。目前主流的深度学习目标检测网络大多具有深度的层结构和大量的参数,如VGG-Net[5]、ResNet[6]。
尽管目前深度学习在目标检测领域取得突破性的进展,但其仍然存在一些问题。第一,网络的特征表达能力依赖训练数据源的数量和质量,因为神经网络需要训练足够数量的多场景多尺度目标来避免过拟合。第二,深度网络带来的庞大参数量导致训练和测试消耗大量时间和设备成本。故目前的监督学习网络研究趋向于在保证网络精度损失在可接受范围内减少网络参数量和网络推断时间两方面。对于深度学习网络设计,目前存在几点理论[7]:(1)时间成本:卷积层时间消耗占用网络整体时间消耗的90%,且卷积层中浅层占用大部分时间消耗。(2)参数成本:深度学习网络参数量的90%集中于全连接层。基于以上两点理论,本文针对深度学习目标检测网络的模型压缩展开研究,对其在移动端的部署方式进行探索。
鉴于目前学界和工业界对目标检测网络在移动设备和嵌入式设备上部署的要求越来越迫切,如何降低深层神经网络的时间和计算成本极其重要。随着这方面的研究逐渐被重视,深度网络的模型压缩领域发展出许多有效方法,如Deep Compression[8]和Fixed point optimization[9]等,其大致可分为三类:结构优化,剪枝与参数共享,以及知识精炼。虽然模型压缩整体理论已经基本确定,但仍有很多问题亟待解决:(1)目前深度网络的模型压缩方法主要针对图像分类任务,其评测标准与目标检测任务有差异。(2)泛用性较差,很难找到一种压缩方式适合大部分深度网络。(3)压缩带来的不可避免的精度损失。
因此,为了尽可能减少压缩带来的检测精度损失并实现结构压缩,本文提出针对单阶段目标检测网络的压缩方法,引入高效的深度可分离卷积实现检测算法的压缩。
近几十年来发表的目标检测方面的研究工作大致可分为两个方向:传统手工特征方法和基于深度学习的方法。其中基于深度学习的方法又分为基于区域提名的两阶段检测框架和基于回归的单阶段检测框架。
2014年,两阶段深度学习目标检测框架R-CNN[10]由Girshick首次提出,相比于传统目标检测算法,其在PASCAL VOC数据集上的准确率从35.1%提高到53.7%,取得突破性进展,将整个检测过程分为三个独立的步骤:Selective Search[11]区域提名,CNN网络提取深度特征,以及SVM分类和边框回归。后续演进版本不断将三个步骤并入卷积神经网络的整体框架中,Fast R-CNN[12]提出ROI池化结构,并将最后的边框回归和分类并入CNN网络,不仅提升了网络的速度,还在VOC数据集上达到70%的准确度。Faster R-CNN[3]是两阶段网络的集大成之作,其主要贡献是将前两代算法中未整合的区域提名部分整合到整个CNN网络中,实现一个端到端的目标检测系统。
另一类目标检测框架另辟蹊径,取消了区域提名,实现了完全端到端的单阶段检测框架,其中YOLO[4]算法最为经典,其在相比两阶段网络损失少量精度的情况下,已能做到实时检测。第二代算法YOLOv2[13]借鉴Faster R-CNN的思想引入anchor机制,并对anchor的设计做出从传统手工到K-Means聚类生成的改进。同时将深浅层特征进行连接,针对小物体检测精度显著提升。之后的三代算法YOLOv3[14]使用更好的基础分类网络和分类器,进一步提升了检测效果。
神经网络的模型压缩算法大致可分为以下三类:卷积核结构优化,剪枝与量化,以及知识精炼。卷积核结构优化主要采用引入新的卷积核结构或者网络结构的方法,使网络结构形式更简单,存储规模更小,从而减少网络参数量的存储和计算,其中最为经典的有:SqueezeNet[15]、Inception-v4[16]、MobileNet[17]。基于剪枝的网络压缩主要通过减少网络通道数或直接减少权重的参数量以减小网络计算量,其核心是使神经网络的稀疏性增加。Hao Li[18]等提出了基于量级的裁剪方式,用权值排序设置阈值评判其重要性。Hengyuan Hu[19]则假设大部分趋向于0的神经元激活值是冗余的,可以进行筛选。Sajid Anwar[20]采取一种随机裁剪的方式,然后对于每一种随机方式统计模型的性能,来确定局部最优的裁剪方式。基于量化的网络压缩方法根据计算机存储特性尽可能减小参数的比特数空间,从而降低存储和运算负担。其最极端情况为通过二进制进行权重参数表达,如BinaryConnect[21]、BinaryNet[22]和XNOR-Networks[23]。基于知识精炼的模型压缩方法最初是由hinton等人提出的知识蒸馏(Distilling knowledge)[26],其核心思想是通过压缩模型模拟复杂模型学习的效果,该方法的雏形是Caruana[24]等人提出的知识迁移(knowledge transfer)[25]。 后续Fitnets[27]为了使精炼网络更好地学习原始复杂网络的知识,提出了使用两个网络中间层的输出来相互拟合的改进方法。
深度可分离卷积最初由2014年一篇博士论文提出,随后在Xception和MobileNet中,该结构被用于进行目标检测网络的压缩。其由深度卷积(Depthwise Convolution)与逐点卷积(Pointwise Convolution)两部分组成,整体结构等效于一层常规卷积,但深度可分离卷积有更少的参数量和计算量。
传统卷积通过空间变换(spatial dimensions)和通道变换(channel dimension)在三个维度的空间中(两个空间维度,一个通道维度)学习卷积核权值信息,来获取空间关联性和通道关联性。即若单卷积层输入通道数为m,那么每个输出通道都需要与m个卷积核进行卷积运算,此过程占用整个网络大部分的计算量。若将三个维度计算进行分解,即将空间维度特征图卷积计算与通道维度特征图卷积计算分解为两层卷积依次独立进行,则保证了传统卷积的空间关联性和通道关联性不被破坏,同时能有效地减少参数量提高卷积的计算速度。
由于目标检测任务包含目标分类,目标物体边框位置回归,以及边框置信度评估三种任务,诸如剪枝,参数量化和知识精炼等网络压缩方法会造成网络特征提取能力降低,对检测任务中对特征提取能力有较高要求的边框位置回归任务造成较大影响。因此考虑到检测任务对多指标的要求,本文采用对网络特征提取能力影响较少的深度可分离卷积进行网络压缩。
传统卷积的运算过程如图1。
图1 传统卷积运算过程示意图
Fig.1 Operation process of traditional convolution
传统卷积层的参数量即卷积核可训练的参数数量可以通过以下公式计算:
Pc=M*Cin*K2
(1)
其中Pc是传统卷积层的参数量,M是卷积核个数,Cin是输入特征图通道数,K是卷积核尺寸。
该层乘法计算次数使用以下式子表示:
MAc=M*Cin*Win*Hin*K2
(2)
其中MAc是传统卷积层的乘法运算次数,Win是输入特征图宽,Hin是输入特征图高。
即假设输入特征图的大小为32*32*3,经过一个包含4个3*3卷积核的传统卷积层之后,这一层会输出一个大小为32*32*4的特征图(在这里忽略偏置与激活函数的作用)。该传统卷积层的参数总量为108个,需要做110592次乘加运算。
深度可分离卷积不同于传统卷积的单步运算。它将此过程分为两步。第一步深度卷积的运算过程如图2。
图2 深度卷积运算过程示意图
Fig.2 Operation process of depthwise convolution
深度卷积不同于传统卷积通道数可以是任意的这一特征,其通道数等于输入特征图的通道数,即每一个深度卷积的卷积核对应了输入特征图的一个通道。这种结构决定了深度卷积的计算是在二维空间平面进行的,生成等同于输入通道数个数的独立输出特征图,这些特征图会失去通道维度的关联性。
深度卷积层的参数量即卷积核可训练的参数数量可以通过以下公式计算:
Pd=M*K2
(3)
其中Pd是深度卷积层的参数量,M是卷积核个数,K是卷积核尺寸。
该层乘法计算次数使用以下式子表示:
MAd=M*Win*Hin*K2
(4)
其中MAd是深度卷积层的乘法运算次数,Win是输入特征图宽,Hin是输入特征图高。
假设输入特征图的大小为32*32*3,经过一个包含3个3*3卷积核的深度卷积层之后,这一层会输出3个大小为32*32的输出特征图(在这里忽略偏置与激活函数的作用)。该深度卷积层的参数总量为27个,需要做27648次乘加运算。
因为输出的每一个特征图都要包含输入层的所有信息,仅仅采用深度卷积层无法做到这一点,因此需要后接第二步逐点卷积来实现。第二步逐点卷积的运算过程如图3。
图3 逐点卷积运算过程示意图
Fig.3 Operation process of pointwise convolution
逐点卷积是卷积核尺寸为1*1的传统卷积层。每一个逐点卷积核会将上一步深度卷积输出的特征图在深度方向上进行加权组合,生成单通道的新的特征图。因此,最后输出的特征图的维度是由卷积核的个数决定的。
逐点卷积层的参数量即卷积核可训练的参数数量可以通过以下公式计算:
Pp=M*Cin*K2
(5)
其中Pp是逐点卷积层的参数量,M是卷积核个数,Cin是输入特征图通道数,K是卷积核尺寸。
该层乘法计算次数使用以下式子表示:
MAp=M*Cin*Win*Hin*K2
(6)
其中MAp是逐点卷积层的乘法运算次数,Win是输入特征图宽,Hin是输入特征图高。
假设输入特征图的大小为32*32*3,经过一个包含4个1*1卷积核的逐点卷积层之后,这一层会输出一个大小为32*32*4的特征图(在这里忽略偏置与激活函数的作用)。该逐点卷积层的参数总量为12个,需要做12288次乘加运算。
深度可分离卷积的整体结构如图4所示。整个结构由两种卷积结构组成:深度卷积(Depthwise Convolution)与逐点卷积(Pointwise Convolution)。它总体的计算量也是由两部分加和得到。
图4 深度可分离卷积运算过程示意图
Fig.4 Operation process of depthwise separable convolution
深度可分离卷积层的参数量即卷积核可训练的参数数量可以通过以下公式计算:
Pds=Pd+Pp
(7)
该层乘法计算次数使用以下式子表示:
MAds=MAd+MAp
(8)
其中Pds是深度可分离卷积层的参数量。MAds是深度可分离卷积层的乘法运算次数。
可以看出,与传统的卷积层相比,深度可分离卷积在保证检测精度变化较小的情况下,缩减了卷积层参数量和计算量。同时,在保证参数量相同的情况下,深度可分离卷积更适合目前逐渐加深的目标检测网络。即深度可分离卷积具有以下两点优势:更快的网络运算速度和更小的网络参数量。
在网络实际实现方面,由于代码存在局部性,即相邻代码在设计上会访问相邻的内存块,网络参数在内存中的存储结构和算式相乘的直接相邻模式不同,故实际运行时,会将内存中的网络参数读取到高速缓存中,减少多次读取不相邻数据的访问时间。深度学习框架会采用im2col方式进一步优化参数读取过程,其将特征图中间参数转化为矩阵使其符合内存中的计算顺序,避免了原始行先序存储带来的多余访问计算。深度可分离卷积在逐点卷积上进行了进一步的优化,其结构与传统卷积im2col后的矩阵排列相同,直接省去了im2col操作直接参与运算,缩减了读取数据重新排列的时间,同时能被GEMM(General Matrix Multiply)进行进一步优化加速。
针对移动化和嵌入式的应用需求,模型压缩的方向主要为减小网络参数以及加快网络检测速度,针对这两点,本文通过嵌入改进的轻量级卷积计算结构——深度可分离卷积,提出最适合移动端应用的网络结构DW-YOLOv3。网络结构如图5。
图5 DW-YOLOv3网络结构
Fig.5 Network structure of DW-YOLOv3
相比于现有的深度可分离卷积结构与单阶段目标检测网络YOLO结合网络Mobilenet-YOLO,本文提出一种针对包含密集小物体的无人机光学图像数据的优化压缩网络DW-YOLOv3。其具体表现为:
(1)Mobilenet-YOLO替换了边框回归之前的最后几层卷积层为深度可分离卷积,该层特征图包含较多的全局信息,减少卷积参数,会显著降低网络的性能。而本文提出的DW-YOLOv3保留了该层的卷积完整性,避免了网络精度的大幅降低。
(2)Mobilenet-YOLO并未考虑到传统无人机光学图像数据集中,目标密集且体积较小的特性,将YOLOv3网络浅层残差块中通道数较小的传统卷积替换为深度可分离卷积,这些卷积层对特征图影响较大,特别是浅层特征图感受野较小,对应原图中大部分密集的小物体目标。同时由于通道数较小的浅层卷积层参数量较通道数大的深层卷积层小很多,将其替换为深度可分离卷积后,参数量减少有限,反而在小物体目标检测精度上有较大损失。而本文提出的DW-YOLOv3保留了浅层残差块中的传统卷积,在参数量级和推断时间量级保持与Mobilenet-YOLO相同的情况下,大幅提升了检测精度。
具体实现中,在DW-YOLOv3中,将分类主干网络Darknet-53中所有通道数为256,512,1024的层替换为DW层,避免将YOLOv3中后面涉及预测部分的网络进行大规模修改,共替换35个卷积层。
本文采用中国天津大学机器学习与数据挖掘实验室的AISKYEYE团队制作的无人机地面实况大规模基准数据集VisDrone2018[28]数据集,包含14个中国城市的图像和视频序列。数据集包含10209张通过无人机摄像头拍摄的静态图像和录制的263个由179264帧构成的视频剪辑,采样自不同场景和不同人口建筑密度地区以及不同天气和光照强度,内含的250万个高关注度目标边界框均采用手动标注,每个目标带有场景可见性,对象类和遮挡程度的附加属性。该数据集为迄今为止公开的最大无人机数据集,具备对针对无人机视角的视觉任务算法进行评价的客观性。
数据来源:包括中国14个不同城市的不同场景,即:天津、香港、大庆、赣州、广州、金仓、柳州、南京、绍兴、沈阳、南阳、张家口、苏州、徐州14个城市。
图6 VisDrone2018实验数据
Fig.6 Experiment data of VisDrone2018 dataset
数据大小:VisDrone2018为目标检测任务提供了一个包含10209张图像的数据集,其中6471张用于训练,548张用于验证,3190张用于测试。这三个子集的图像在不同的位置拍摄,但是共享相似的环境和属性。
数据类别:定义了行人、人、汽车、面包车、公共汽车、卡车、摩托车、自行车、遮蓬三轮车、三轮车等十种感兴趣的对象类别,加上忽略区域,一共11类。数据集各类别目标分布情况如表1所示。
本文采用的网络模型为DW-YOLOv3,如图7所示。该网络模型backbone是darknet-53网络结构,拥有53个卷积层(包括全连接层),主要包括一系列的1*1卷积和3*3卷积,卷积层后均连接一个批量归一化层和LeakyReLU激活层,采用不使用池化层,而使用小尺度步长为2的卷积层来缩小特征图大小的策略,以防止池化对于小目标信息的丢失。同时大量采用residual结构使网络更深,加快收敛。最后,考虑到多尺度特征的融合效果,提取了3个不同尺寸的特征图13*13,26*26,52*52来参与最终的目标检测。输入图像大小不等,均被归一化为608*608尺寸。
表1 VisDrone2018数据集各类别目标分布
Tab.1 Object distribution for each category on VisDrone2018 dataset
类别名行人人自行车汽车面包车卡车目标数量881813218411767895312693113625类别名三轮车雨棚三轮车公交车摩托车其他目标数量585737786177345331564
图7 DW-YOLOv3网络模型
Fig.7 Network model of DW-YOLOv3
本实验配置为Titan X系列的GPU,内存为32G;实验平台搭建在Ubuntu16操作系统上;深度网络模型基于Darknet框架实现。本实验初始学习率为0.001,权重衰减为0.0005,学习策略为“step”,最大迭代次数50200次,在40000次和45000次学习率分别减小10倍。由于内存限制,将Darknet中random参数设为0。同时,在开始训练网络之前,对ECCV数据集中所有标注框进行k-means++聚类,计算出对应的anchor。
目标检测算法的常用评价指标包括精度(precision),召回率(recall)等,本文采用全局评测指标平均精度均值mAP衡量本文检测网络在所有类别上的检测性能,采用模型权值文件参数量和网络推断速度衡量网络压缩效果。
本文以YOLOv3网络作为基准网络,在原始VisDrone2018数据集上进行通道裁剪网络压缩方法与本文提出的卷积结构优化压缩方法的对比实验,并在自制VisDrone2018精简数据集ECCV-light上进行本文提出的DW-YOLOv3压缩方法,Mobilenet-YOLO 以及网络裁剪三种网络压缩方法的对比实验。实验使用7019张训练图像,550张测试图像,图片尺寸从540*960到765*1360,1080*1920等各不相同,网络输入将所有图片归一化为608*608。
(1)卷积结构优化实验
本文在原始网络中直接添加深度卷积和逐点卷积,根据选择加入的位置和数量不同进行多次实验,其中DW-YOLOv3-1为YOLOv3网络结构中通道数为1024的最后一层替换为深度可分离卷积层的网络结构,DW-YOLOv3-2同理表示YOLOv3网络结构中通道数为1024的最后两层替换为深度可分离卷积层的网络结构。DW-YOLOv3为替换原始网络中35个卷积层后的网络结构。实验结果如表2。
理论上若采用深度可分离卷积替换传统卷积,单层网络参数量将减少为原始网络该层参数量的通道数分之一,例如DW-YOLOv3-1将YOLOv3第73层替换后,由于当前层输出通道数为1024,即该层参数量为原始网络YOLOv3该层参数量的1/1024。由于网络最后几层特征图包含比较多的全局信息,减少卷积参数,会降低网络的性能,实验结果表明约2%的性能会被损失掉。故在DW-YOLOv3中,只将分类主干网络替换35个卷积层。实验结果表明这样可以使网络参数减少9倍,测试速度比原来快4倍。但同时,精度损失9%左右。因此,为了提升压缩后网络的性能,本文后续采取了使用预训练模型训练加入网络训练以及简化训练数据等策略。
表2 网络卷积优化实验结果
Tab.2 Experiment results of network convolution optimization
网络结构名权值体积/MB速度/smAP/%YOLOv3246.50.07916959.69DW-YOLOv3-1231.90.04831755.69DW-YOLOv3-2221.30.04566954.03DW-YOLOv334.40.01128150.58
(2)网络裁剪实验
本文采用网络裁剪压缩方法实验作为本文提出的网络压缩方法的对比实验,实验过程将原始网络YOLOv3每一层通道数裁减为原始的1/2,1/4。实验结果如表3。
表3 网络裁剪实验结果
Tab.3 Experiment results of network cutting out
网络结构名权值体积/MB速度/smAP/%YOLOv3246.50.07916959.69YOLOv3-1/261.80.03050544.63YOLOv3-1/415.60.00741432.78
YOLOv3-1/4网络在完整VisDrone2018数据集各类别检测实验结果如表4所示,当YOLOv3剪裁掉1/4通道后,汽车类别检测精度达到65%,而行人检测精度只有5%左右。根据表1中对VisDrone2018数据集各类别分布情况的统计分析,行人目标数量与汽车目标数量基本持平,但在图像中,行人的成像尺寸和大小往往与车辆差异很大,这证明了网络裁剪压缩方法对于小目标物体特征损失较大。另一方面,YOLOv3裁剪一半通道后性能下降约15%,相比于表2中显示的DW-YOLOv3检测结果,YOLOv3-1/2检测性能低6%,推断速度约慢3倍,参数量为其2倍。该结果表明针对包含大量密集小目标的无人机光学图像数据两种压缩方法性能差距明显。
表4 YOLOv3-1/4网络VisDrone2018数据集各类别检测实验结果
Tab.4 Detection performance of YOLOv3-1/4 network for each category on VisDrone2018 dataset
类别名行人人自行车汽车面包车卡车AP/%5.2132.0415.3064.8442.6041.03类别名三轮车雨棚三轮车公交车摩托车其他AP/%45.8227.6043.1539.173.84
(3)网络剪裁与卷积结构优化测试结果对比实验
为了直观显示网络裁剪与卷积结构优化对性能影响的差异,本文在测试集中选择一张场景较为复杂同时类别包含较多的典型图像。使用这一张典型图片对YOLOv3-1/2和DW-YOLOv3在相同配置和参数下进行测试,原图以及两张测试结果展示如下。
图8 ECCV测试集示例图像
Fig.8 Example of ECCV test data
根据图像右上角的广场区域的检测结果,在YOLOv3-1/2的实验结果中对通道进行裁剪可以带来很大程度的参数减少,但同时会带来部分虚警以及小目标物体检测性能损失。而图11中DW-YOLOv3的检测结果表明,经过卷积结构优化之后的网络,随着优化层数的增加,对小目标物体的检测能力逐渐加强。一部分是因为网络常规卷积层经过优化之后,一层变为两层,增加了整体网络的深度,加之YOLOv3版本的多尺度训练,使得小目标物体的特征得到加强。该图具体检测结果如表5,表中数字为各类别目标检测个数。
图9 YOLOv3-1/2检测结果
Fig.9 Detection result of YOLOv3-1/2
图10 DW-YOLOv3-1检测结果
Fig.10 Detection result of DW-YOLOv3-1
图11 DW-YOLOv3检测结果
Fig.11 Detection result of DW-YOLOv3
表5 典型图片检测结果
Tab.5 Detection results of typical picture
网络结构名PedestrianPeopleCarGroundtruth111139YOLOv3-1/25430DW-YOLOv3-17732DW-YOLOv310637
(4)Imagenet预训练网络性能测试
为了获得更好的性能,本文补充使用官方提供的Imagenet预训练模型对DW-YOLOv3模型和YOLOv3-1/2进行微调的实验。实验结果如表6。
表6 预训练实验结果
Tab.6 Experiment results of prE-training
网络结构名权值体积/MB速度/smAP/%YOLOv3-1/2(Imagenet)61.80.03050547.51DW-YOLOv3(Imagenet)34.40.01128153.26
实验结果表明,预训练使得YOLOv3-1/2的性能增长了3%左右,DW-YOLOv3增长2%左右,预训练对于通道裁剪的效果更好,原因推测为能使通道少的网络更快找到梯度下降最快的初始点。
(5)ECCV-light数据集测试
对表1所示VisDrone2018数据集类别分布情况进行分析论证,VisDrone2018数据集目标集中于三个类别物体:人、机动车、非机动车。实际计算机视觉目标检测应用中,往往不考虑人的姿态变化和机动车以及非机动车的型号分类。因此,本文对VisDrone2018数据集进行二次处理,修改候选框标注将11类减少为3类:人、汽车、自行车。接着在新的数据集上进行实验,实验结果如表7。
表7 ECCV-light实验结果
Tab.7 Experiment results of ECCV-light dataset
网络结构名权值体积/MB速度/smAP/%YOLOv3246.40.07375161.62YOLOv3-1/261.70.02764255.84DW-YOLOv334.20.01357856.78YOLOv3-mobilenet21.20.00815248.07
在ECCV-light上,三种网络结构都有不同程度的效果提升。其中,对YOLOv3进行一半通道剪裁的YOLOv3-1/2获得了约8%的检测精度提升,DW-YOLOv3获得约3%的检测精度提升。YOLOv3-1/2网络在完整VisDrone2018数据集各类别检测实验结果如表8,经过分析,通道裁剪压缩方法效果提升的主要原因是ECCV-light中去除了其他类,该类在YOLOv3-1/2完整ECCV数据集训练中的检测精度仅为17%,严重影响了整体的检测精度。该类由背景中杂乱的物体组成,表明背景中杂乱物体对于通道数少的网络影响很大。
表8 YOLOv3-1/2网络VisDrone2018数据集各类别检测实验结果
Tab.8 Detection performance of YOLOv3-1/2 network for each category on VisDrone2018 dataset
类别名行人人自行车汽车面包车卡车AP/%44.2940.0925.7777.3656.1049.63类别名三轮车雨棚三轮车公交车摩托车其他AP/%40.1828.3961.8750.0916.96
对比同等参数量级的现有YOLOv3深度可分离卷积优化网络YOLOv3-mobilenet,本文提出的DW-YOLOv3保证了相对原版YOLOv3网络少于5%的精度损失。对比参数量量级为其两倍的通道裁剪网络压缩方法,该网络结构检测精度略有提升。初步分析,YOLOv3-mobilenet相较本文提出网络结构网络精度损失较大,原因在于其使用深度可分离卷积替换了浅层通道数较小的卷积层,这些卷积层对特征图影响较大,特别是浅层特征图感受野较小,对应原图中大部分小物体目标。由于通道数较小的浅层卷积层参数量较深层通道数大的卷积层小很多,替换深度可分离卷积后,参数量减少有限,反而在小物体目标检测精度上有较大损失。同时,YOLOv3-mobilenet替换了边框回归之前的最后几层,后几层特征图包含比较多的全局信息,减少卷积参数,会显著降低网络的性能,故在同量级参数情况下在精度上远不如本文提出的DW-YOLOv3网络损失小。
总体来说,对YOLOv3网络进行大限度的卷积结构优化之后可以获得参数量减少约9倍,测试速度相较原始网络提升约4倍的效果。同时使用Imagenet预训练模型的情况下,在ECCV-light数据集中网络检测性能相较于原始网络少于5%的精度损失。
本文提出了一种单阶段目标检测压缩网络。由于深度可分离卷积具有高效性和不亚于传统卷积的特征提取能力,通过在目标检测网络中加入深度可分离卷积,在输入图像进行深度卷积后,使用1*1卷积层实现升维或降维,对通道特征图进行网络跨通道的交互和信息整合。深度可分离卷积在减少训练参数的同时增加模型的深度,提升网络的表达能力,能够更好的学习图像的细节特征,使网络能够更好的识别小尺度目标。实验结果表明,本文所提压缩检测网络能够实现网络9倍的参数压缩以及4倍的加速,同时在参数量级相同情况下,于无人机对地观测图像检测中精度损失小于目前的深度可分离卷积压缩网络和通道裁剪压缩网络,可广泛应用于移动端或嵌入式硬件设备。
目标检测压缩受参数、结构等多种因素影响,本文仅探讨了卷积结构的优化对多尺度目标检测的影响。后续将探究多种压缩方法的相互结合。
[1] Viola P, Jones M J. Robust Real-Time Face Detection[J]. International Journal of Computer Vision, 2004, 57(2): 137-154.
[2] Felzenszwalb P F, Mcallester D A, Ramanan D. A Discriminatively Trained, Multiscale, Deformable Part Model[C]∥2008 IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR 2008), 24-26 June 2008, Anchorage, Alaska, USA. IEEE, 2008.
[3] Ren S, He K, Girshick R, et al. Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2015, 39(6): 1137-1149.
[4] Redmon J, Divvala S, Girshick R, et al. You only look once: Unified, real-time object detection[C]∥Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2016: 779-788.
[5] Simonyan K, Zisserman A. Very deep convolutional networks for largE-scale image recognition[J]. arXiv preprint arXiv: 1409.1556, 2014.
[6] He K, Zhang X, Ren S, et al. Deep residual learning for image recognition[C]∥Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2016: 770-778.
[7] VeryARM. 卷积神经网络在ARM-CPU上的推断计算综述[EB/OL]. https:∥www.veryarm.com/119461.html, 2019.1.18.
VeryARM. The Summary of Convolutional Neural Network’s Inferential Calculation on ARM-CPU[EB/OL]. https:∥www.veryarm.com/119461.html, 2019.1.18.(in Chinese)
[8] Han S, Mao H, Dally W J. Deep compression: Compressing deep neural networks with pruning, trained quantization and huffman coding[J]. arXiv preprint arXiv: 1510.00149, 2015.
[9] Anwar S, Hwang K, Sung W. Fixed point optimization of deep convolutional neural networks for object recognition[C]∥2015 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP). IEEE, 2015: 1131-1135.
[10] Girshick R, Donahue J, Darrell T, et al. Rich feature hierarchies for accurate object detection and semantic segmentation[C]∥Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2014: 580-587.
[11] Uijlings J R R, Van De Sande K E A, Gevers T, et al. Selective search for object recognition[J]. International Journal of Computer Vision, 2013, 104(2): 154-171.
[12] Girshick R. Fast r-cnn[C]∥Proceedings of the IEEE International Conference on Computer Vision, 2015: 1440-1448.
[13] Redmon J, Farhadi A. YOLO9000: better, faster, stronger[C]∥Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2017: 7263-7271.
[14] Redmon J, Farhadi A. YOLOv3: An Incremental Improvement[J]. arXiv preprint arXiv: 1804.02767 (1804), 2018.
[15] Iandola F N, Han S, Moskewicz M W, et al. SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and <0.5 MB model size[J]. arXiv preprint arXiv: 1602.07360, 2016.
[16] Szegedy C, Ioffe S, Vanhoucke V, et al. Inception-v4, inception-resnet and the impact of residual connections on learning[C]∥Thirty-First AAAI Conference on Artificial Intelligence, 2017.
[17] Howard A G, Zhu M, Chen B, et al. Mobilenets: Efficient convolutional neural networks for mobile vision applications[J]. arXiv preprint arXiv: 1704.04861, 2017.
[18] Li H, Kadav A, Durdanovic I, et al. Pruning filters for efficient convnets[J]. arXiv preprint arXiv: 1608.08710, 2016.
[19] Hu H, Peng R, Tai Y W, et al. Network trimming: A data-driven neuron pruning approach towards efficient deep architectures[J]. arXiv preprint arXiv: 1607.03250, 2016.
[20] Anwar S, Sung W. Coarse Pruning of Convolutional Neural Networks with Random Masks[C]∥2017 International Conference on Learning Representation (ICLR), 2017: 134-145.
[21] Courbariaux M, Bengio Y, David J P. Binaryconnect: Training deep neural networks with binary weights during propagations[C]∥Advances in Neural Information Processing Systems, 2015: 3123-3131.
[22] Courbariaux M, Hubara I, Soudry D, et al. Binarized neural networks: Training deep neural networks with weights and activations constrained to +1 or -1[J]. arXiv preprint arXiv: 1602.02830, 2016.
[23] Rastegari M, Ordonez V, Redmon J, et al. Xnor-net: Imagenet classification using binary convolutional neural networks[C]∥European Conference on Computer Vision. Springer, Cham, 2016: 525-542.
[24] Buciluǎ C, Caruana R. Niculescu-Mizil A. Model compression[C]∥Proceedings of the 12th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. ACM, 2006: 535-541.
[25] Argote L, Ingram P. Knowledge Transfer: A Basis for Competitive Advantage in Firms[J]. Organizational Behavior & Human Decision Processes, 2000, 82(1): 150-169.
[26] Hinton G, Vinyals O, Dean J. Distilling the Knowledge in a Neural Network[J]. Computer Science, 2015, 14(7): 38-39.
[27] Romero A, Ballas N, Kahou S E, et al. FitNets: Hints for Thin Deep Nets[J]. Computer Science, 2014.
[28] Zhu P, Wen L, Bian X, et al. Vision meets drones: A challenge[J]. arXiv preprint arXiv: 1804.07437, 2018.
[29] 杨真真, 匡楠, 范露, 等. 基于卷积神经网络的图像分类算法综述[J]. 信号处理, 2018, 34(12): 1474-1489.
Yang Z Z, Kuang N, Fan L, et al. Review of Image Classification Algorithms Based on Convolutional Neural Networks[J]. Journal of Signal Processing, 2018, 34(12): 1474-1489.(in Chinese)
Reference format: Tong Ming, He Chu, He Bokun, et al. OnE-Stage End-to-End Object Detection Compression Algorithm For Mobile Terminal[J]. Journal of Signal Processing, 2019, 35(12): 2017-2028. DOI: 10.16798/j.issn.1003- 0530.2019.12.010.
童 鸣 男, 1996年生, 湖北武汉人。武汉大学电子信息学院硕士研究生,主要研究方向为机器学习。
E-mail: 2014301200202@whu.edu.cn
何 楚 男, 1974年生, 贵州遵义人。武汉大学电子信息学院教授。主要研究方向为图像分析与理解、机器学习与大数据、遥感图像解译。
E-mail: chuhe@whu.edu.cn
何博琨 女, 1995年生, 湖北武汉人。武汉大学通信与信息系统专业博士研究生。主要研究方向为机器学习。
E-mail: bokun.he@whu.edu.cn
王文伟 男, 1966年生, 湖北武汉人。武汉大学电子信息学院信息与通信工程系副教授。主要研究方向为图像处理。
E-mail: wangww@whu.edu.cn