APP下载

基于SSD的轻量级车辆检测网络

2020-10-28乔延婷陈万培

无线电工程 2020年11期
关键词:压缩率剪枝过滤器

乔延婷,陈万培,张 涛

(扬州大学 信息工程学院,江苏 扬州 225009)

0 引言

随着现代社会的快速发展,车辆已成为主要的交通工具[1]。每年成千上万的交通事故给世界经济带来损失,威胁着人们的生命安全。基于计算机视觉的车辆检测方法通过图像处理技术确定目标车辆的位置,能够有效地避免交通事故的发生,受到学术界和工业界的广泛关注[2-3]。

传统上,一些学者将Haar-like[4]或方向梯度直方图(HOG)特征[5]应用于车辆检测,但由于存在误检测和帧丢失等问题,这些算法无法满足复杂的交通场景。随着计算机视觉技术的不断发展,基于卷积神经网络的目标检测算法的性能与传统算法相比有了很大的提高,如R-CNN[6]、Fast R-CNN[7]、Faster RCNN[8]、YOLO[9]、YOLOv2[10]和SSD[11]等。

虽然检测结果得到了改善,但由于卷积神经网络的计算强度很高且有较大的内存需求,面临着在嵌入式平台和低延迟需求场景下难以应用的问题[12]。因此,在几乎不降低检测准确率的前提下对深度卷积神经网络进行压缩和加速成了研究重点。近年来,该领域取得了重大突破。Vanhoucke等[13]提出了8 bit参数量化的方法,该方法可以在准确率损失极小的同时实现大幅加速。Han等[14]将参数修剪、量化和编码结合应用到模型压缩中,实现了最大程度的网络压缩,但参数修剪形成了稀疏矩阵,需要专门的硬件支持。Hu等[15]通过计算每个滤波器的参数为零的百分比作为其重要性得分,修剪不重要的神经元。Li[16]通过计算过滤器的绝对值和来评估过滤器的重要性,当绝对值过低时,则修剪掉该过滤器。

本文采用SSD算法检测车辆,但SSD算法没有全连接层,上述网络压缩方法无法在该网络上取得较好的效果。基于此,结合网络剪枝和参数量化的方法,提出基于SSD的轻量级车辆检测网络,在不损失检测准确率的同时,缩小网络体积,提高检测速度。

1 SSD算法

SSD是由Wei Liu等人提出的单个网络目标检测算法。本文采用SSD算法检测车辆,将车辆检测看作一个回归问题,网络结构如图1所示。SSD网络以VGG网络为基础网络,将VGG网络中全连接层转换为卷积层,并添加了额外的卷积层,融合多个卷积层的输出做预测。预测采用2个3×3的卷积核,一个用来分类,另一个用来回归位置。

图1 SSD的网络结构Fig.1 Network architecture of SSD

该算法的主要检测步骤如下:

① 输入RGB(红、绿、蓝)图像,调整图像尺寸,将其看作一个300×300×3的三维矩阵。

② 按照网络结构的顺序依次提取图像的特征,提取特征时,不同特征图的每个特征点上都对应了一组默认边界框,预测的时候计算默认边界框的位置偏移和置信度。

③ 融合卷积Conv4_3,Conv7,Conv8_2,Conv9_2,Conv10_2,Conv11_2的预测结果做输出,得到多个目标检测框。通过非极大值抑制的方法剔除相同车辆的多余窗口,获得最终的检测结果。最终在图像中框出车辆的目标。

POEMS综合征的临床特征及诊疗分析 …………………………………………… 葛义俊,戴映,高建国 107

2 网络压缩

首先,根据后一层的输出结果指导裁剪上一层的过滤器,该方法考虑了当前层过滤器对后一层输出的影响,能够保证在不影响精度的情况下大大压缩网络;接着,在修剪结束以后,采用K-means[17]算法量化参数,使多个参数共享一个有效权值。网络剪枝与参数量化结合的方法在准确度几乎没有损失的情况下,达到了15.7%的压缩率,并且检测速度提高了近3倍。

2.1 网络剪枝

网络剪枝是最有效的去除网络冗余参数的方法[18]。剪枝技术最先被用于解决决策树过拟合的问题,后被用于去除深度神经网络不太重要的参数。通过剪枝的方法压缩深度学习卷积神经网络的基本步骤如图2所示。首先,需要预训练一个基于SSD算法的车辆检测网络模型;接着,评估过滤器的重要性,裁剪掉不太重要的过滤器;然后,微调裁剪后的网络模型使网络模型具有较好的性能;最后循环修剪网络和微调网络参数,直到取得网络模型压缩率和检测正确率二者间的平衡。

图2 网络剪枝示意Fig.2 Flow diagram of network pruning

本文通过ThiNet[19]的方法衡量过滤器的重要性原理,利用第i+1层的输出指导修剪第i层的过滤器,修剪后的网络结果不变,但具有较少的过滤器和特征图。网络剪枝示意如图3所示,输入特征图Xi和第i层的K×K大小的过滤器卷积产生第i+1层的特征图,特征图Xi+1又将作为下一个卷积层的输入,当移除Fi中的一个过滤器Fi,j,与它对应的特征图Xi+1,j(蓝色部分)被裁剪掉,下一卷积层过滤器中对应的核(蓝色部分)也被移除。所以,当可以使用第i+1层输入的一个子集来近似计算第i+1层的输出时,则该子集外的其他通道可以安全地从第i+1层的输入中移除,那么第i层中对应的过滤器也可以移除。

图3 网络剪枝示意Fig.3 Schematic diagram of network pruning

(1)

式中,C表示特征图的通道数;K表示卷积核的大小。进一步定义:

(2)

则式(1)可简化为:

(3)

(4)

(5)

式中,|S|表示子集S中的元素个数;r表示事先定义的压缩率(即保留多少个信道)。然后采用贪婪策略求解子集S,每次向S添加一个元素,并在当前迭代中求得最小目标值。

2.2 参数量化

采用参数量化的方法进一步压缩网络模型,首先利用K-means算法求解有效权值,然后多个参数共享同一个有效权值来减少需要存储的比特数。

参数量化和质心微调如图4所示。假设某层有4个神经元输入和4个神经元输出,权值参数和梯度参数都是一个4×4的矩阵。通过K-Means聚类算法将权值参数分为4个簇,每一个簇内的参数共享一个有效权值,然后用4×4簇索引矩阵表示权值参数矩阵。每一个梯度参数对应一个权值参数,所以梯度参数也可按照权值参数聚类的结果分为4类。在更新过程中,所有的梯度参数按颜色分组并求和乘以学习率,从上次迭代的共享质心中减去来微调质心。

图4 参数量化和质心微调Fig.4 Parameter quantification and centroid fine-tuning

假定设置k个簇,则最终只需要lbk位的簇索引矩阵和k个b位有效权值表示权值参数矩阵,b表示原来权值参数的位数。所以,对于具有n个权值参数且每个权值参数用b位表示的网络,将其权值参数限制为只有k个共享权值的压缩率为:

(6)

3 实验与结果

3.1 数据集及参数设置

基于Caffe深度学习框架在NVIDIA GeForce GTX 1080平台对SSD车辆检测模型进行相关实验。训练参数的具体设置如下:训练数量批尺寸(batch_size)为16,初始学习率(base_lr)为10-4,学习策略(lr_policy)为多步衰减(multistep),gamma为0.1,采用随机梯度下降法(SGD)进行优化,网络训练迭代次数为80 000次,权值衰减(weightdecay)设置为5e-4,冲量(momentum)设置为0.9。微调是恢复剪枝后网络的泛化能力必不可少的步骤,通过在修剪一层之后微调一个epoch来节省时间。当所有层都修剪结束后,再微调整个网络得到一个精确的模型。在KITTI数据集上进行了实验,以验证所提出算法的有效性。KITTI数据集[20]由德国卡尔斯鲁厄理工学院和丰田美国技术研究院联合创办,是目前国际上最大的自动驾驶场景下的计算机视觉算法评测数据集,主要包含市区、乡村和高速公路等场景下采集的真实图像数据。每张图像中最多达15辆车,还有各种程度的遮挡与截断。KITTI数据集共分为8个类别:Car,Cyclist,Pedestrian,Van,Truck,Tram,Person(sitting),Misc。本文仅采用其中的车辆样本数据:Car,Van,Truck和Tram。本文数据集格式为VOC数据集格式,并将每个数据集按照8∶1∶1的比例划分为训练集、测试集和验证集。

3.2 实验结果与分析

第1组实验的目的是比较基于SSD的车辆检测时间与本文提出基于SSD的轻量级的车辆检测网络的检测时间。本组实验统计了1 min检测的图像帧数,求每帧图像的平均耗时,单帧图像检测所需要的平均时间如表1所示。

表1 车辆检测时间比较

从该组实验可以得出,利用基于SSD的轻量级的车辆检测网络的检测速度远高于原算法的检测速度,是原算法检测速度的3倍左右。主要是去除了网络中的冗余连接,减少了参数计算,从而节约了时间。本文所提算法的最大优势在于大大降低了算法的检测时间,对于实时性要求较高的车辆检测任务,其性能比基于SSD的车辆检测算法好。

第2组实验分析了不同压缩方法对SSD网络的检测准确率(mAP)损失。分别对比了只网络修剪、只参数量化和网络修剪与参数量化结合的方法,实验结果如图5所示。从图5可以看到,这3种压缩方法在压缩率较高的情况下,平均mAP基本没有损失,而压缩率低到一定程度时,网络模型的mAP会骤然下降。参数量化和网络修剪的方法在不影响检测准确率的情况下,最多都只能压缩30%左右,但二者结合的方法可以达到15%左右的压缩率。每一种方法在保证模型检测正确率[21]的情况下都对应一个最小的压缩率,称之为最优压缩率。对于剪枝后的车辆检测网络,本文能够量化到每个卷积层8位(256个共享权值),而不损失任何精度。实验发现,在检测准确率几乎不损失的情况下,结合过滤器剪枝和参数量化结合的方法则可以达到15.7%的压缩率。最终,网络整体压缩6倍多,可以移植到嵌入式平台。

图5 不同压缩率下的mAP损失Fig.5 mAP loss at different compression rates

为了探究压缩后的网络对车辆检测准确率的影响,在KITTI数据集进行了实验,输入图像尺寸为300 pixel×300 pixel,实验结果如图6和表2所示,Ours表示轻量级的车辆检测网络,压缩后的模型的mAP有轻微的下降,但仍然保持较高的检测结果。相较于其他车型的AP,Car的AP受网络压缩影响大一点,其他类型车辆的AP只有轻微下降。所以,该轻量级的车辆检测网络可以在达到15.7%的同时,基本上保持原网络的检测效果。

图6 基于SSD的轻量级车辆检测网络实验结果Fig.6 Experimental results of a lightweight vehicle detection network based on SSD

表2 各网络的性能对比Tab.2 Performance comparison of each network

4 结束语

通过研究基于SSD算法的车辆检测网络,发现网络存在较大的冗余参数,所以采用网络剪枝和参数量化结合的网络压缩方法,提出基于SSD的轻量级车辆检测网络。该网络能够在车辆检测准确度损失较低的情况下达到15.7%的压缩率,且车辆检测速度提高了近3倍,达到嵌入式平台实时检测的应用需求。但是,在实验过程中,发现该轻量级的车辆检测网络对小目标车辆的检测准确率较低。所以,如何在压缩网络和提高车辆检测速度的情况下保证小目标车辆的检测准确率有待进一步的研究。

猜你喜欢

压缩率剪枝过滤器
人到晚年宜“剪枝”
基于YOLOv4-Tiny模型剪枝算法
三步拆卸洋马YH880/1180 收割机变速箱内过滤器
基于激活-熵的分层迭代剪枝策略的CNN模型压缩
提高中央空调高效过滤器使用寿命的几点思考
污染控制—燃料电池的使能技术
水密封连接器尾部接电缆的优化设计
缠绕垫片产品质量控制研究
某型飞机静密封装置漏油故障分析
新型纳米材料过滤器