目标跟踪中基于深度可分离卷积的剪枝方法

2021-02-01 01:36毛远宏贺占庄刘露露
西安交通大学学报 2021年1期
关键词:剪枝滤波器权重

毛远宏,贺占庄,刘露露

(西安微电子技术研究所,710065,西安)

目前,基于深度学习的方法在目标跟踪领域得到了越来越多的应用,取得了很好的效果。但是,深度学习通常存在着参数过多和计算量过大的问题。目标跟踪任务在保证精度的前提下,通常也需要考虑到实时性要求。因此,如何让目标跟踪任务的深度模型在存储和计算资源有限的设备更快地运行,是一个迫切需要解决的问题。

目标跟踪中的神经网络模型主要是通过卷积网络来提取相应的特征。绝大部分的计算量和参数主要集中在卷积层。因此,如何减少卷积层的计算,是加快跟踪速度的重点。除了提高硬件的计算能力之外,还可以通过优化网络模型,减少跟踪网络的参数量和计算量,加快跟踪速度。

如何对于神经网络进行加速是目前业界研究的热点。在卷积层的加速上,采用更加轻量化的卷积结构替换传统的卷积结构是通常采用的办法。例如:SqueezeNet的Fire模块结构[1],GoogLeNet的Inception模块结构[2],MobileNet中的深度可分离卷积[3]等。深度可分离卷积是在目前轻量化网络中被广泛使用的一种卷积结构。它可以在不改变网络总体层次架构的情况下,将传统的卷积层依次替换为深度可分离卷积。通过在训练集上进行重新训练,通常能够有效地降低运算量和参数量。基于深度可分离卷积的跟踪网络,参数量和计算量已经进行了很大精简。在此基础上,如何采用网络剪枝的方法进一步加快运行速度,也更加具有挑战性。

剪枝作为网络压缩的一种重要方法而被广泛使用[4-5]。为了实验方便,之前大部分剪枝研究使用分类任务来评估方法效果,而在跟踪网络中的剪枝研究则很少涉及。因此,在实时性的要求下,跟踪网络剪枝非常有意义。网络剪枝按照裁剪的粒度,可以分为非结构化剪枝和结构化剪枝两种。非结构化剪枝方法[6-7]主要通过网络稀疏化来实现,将不重要的权重设置为0。但是,在卷积计算过程中,神经网络需要大量条件和额外空间来判断和表示非零参数及其位置,依赖于专门的运行库和硬件设备来进行加速。结构化剪枝方法[8-11]通过删除滤波器或者特征图等结构化信息,减少网络的计算。裁减后的网络无需专门的软硬件来进行支持,使得剪枝方法有很好的通用性。

在跟踪任务中,可以采用结构化剪枝的方法对跟踪网络进行进一步精简。在剪枝过程中,本文根据深度可分离卷积的特点,充分利用深度分离卷积模型中的先验信息,更加有针对性地进行剪枝操作。

深度分离卷积包含逐层卷积和逐点卷积两个部分,其中逐点卷积占据了大部分的计算。剪枝的过程中,1×1卷积被认为是对于输入特征图中不同通道的线性组合。在线性组合中,通常权重越大的特征图重要性越大,反之则重要性越小。在剪枝过程中,通过评估逐点卷积层中的权重大小,可以估计出输入通道的重要程度,从而将较小的权重及其关联的特征图裁减掉,降低网络的参数量和运算量。

逐层卷积中主要提取二维平面特征,不同的滤波器在空间平面上应该获取不同的特征信息。在深度可分离卷积中,逐层卷积的滤波器采用了单层的二维卷积结构,因此在滤波器相似性评估上更加简单。相似的滤波器获取的特征有相似之处,它们之间应该有相互替代的作用。通过K-L散度对于滤波器的相似性进行评估,删除相似的滤波器,从而减少卷积的计算量。

通过上述网络剪枝的方法对于以深度可分离卷积为主体的跟踪网络进行了精简。相比于其他剪枝方法,本文采用的剪枝方法在保证精度的前提下,能够更加有效地减少计算量,并在嵌入式设备NVIDIA TX2上取得较好的加速效果。

1 基于深度可分离卷积的SiameseFC网络

SiameseFC网络[12]是一种典型使用深度学习的跟踪网络,其通过两个卷积分支分别对于目标区域和整个图像进行特征提取,通过比较输出特征图的区域相似性来确定目标位置。SiameseFC网络的思想对于基于深度学习的目标跟踪方法产生过重要影响,并在此基础上衍生出众多的基于深度学习的网络,例如DASiamRPN[13],SiamRPN[14],SA-Siam[15]等。SiameseFC跟踪网络的基本框架结构如图1所示。

※—网络输出中目标所在的区域。图1 SiameseFC跟踪网络架构

在图1中,使用CNN代表了跟踪任务中的卷积分支。在SiameFC层中使用AlexNet[16]作为基本网络,在训练的过程中共享了两个网络分支的权重。

为了降低计算量和参数量,深度可分离卷积将传统的卷积分解为逐层卷积和逐点卷积两个部分。图2为深度可分离卷积的示意。在逐层卷积中,输入的M个通道特征图和M个滤波器分别各自进行卷积,输出M个特征图。在逐层卷积中,主要关注空间平面特征的提取,卷积计算仅限各个通道内部发生,通道之间的信息并不进行融合。在逐点卷积中,逐层卷积输出的M个特征图和1×1×M滤波器通过卷积操作输出一个特征图。由于在逐点卷积中有N个1×1×M卷积核,因此最终输出N个通道的特征图。在这个过程中,通过逐点卷积实现了输入特征图在通道层面的特征融合。深度可分离卷积主要改变了传统卷积的内部实现,对外依然可以保持之前输入和输出的特征维度。因此,可以在不修改网络层级结构的情况下,将相应的传统卷积依次替换为深度可分离卷积。

图2 深度可分离卷积结构示意

在计算量上,传统卷积的计算量为DKDKMNDFDF,其中,DK为卷积的大小,DF为输入特征图的大小。使用深度可分离卷积之后,传统的卷积被分解为逐层卷积和逐点卷积,其计算量为两者之和DKDKMDFDF+MNDFDF,其中,DKDKMDFDF是逐层卷积的计算量,MNDFDF是逐点卷积的计算量。优化后与优化前的计算量之比为

(1)

2 逐点卷积中基于权重的剪枝

在可分离卷积中,绝大部分的计算量还是集中在逐点卷积上。因此,首先将剪枝的重点放在逐点卷积上。

M个输入特征图(F1,F2,…,FM)和一个1×1×M滤波器(k1,k2,…,kM)的卷积过程可描述为

(2)

逐点卷积计算可以表示为特征图的线性组合。在多个1×1×M卷积中,若某通道对应的权重很小,则可以认为这个通道的重要性不强。在剪枝过程中,将不重要的特征图连同其权重裁减掉,如图3所示,图中1×1×M滤波器中,红色输入特征图对应的权重很小。

图3 对于权重小的输入特征图进行剪枝

在逐点卷积裁剪过程中,按照逐点卷积每层分别进行剪枝。先对于1×1滤波器权重进行归一化,再按照权重的大小对于特征图重要性进行排序。在剪枝过程中,以超参数α为比例,按照权重的大小进行剪枝。超参数α为通过实验获得的经验值。

3 逐层卷积中基于相似性的剪枝

在逐层卷积中,主要是针对图像的空间信息进行特征提取。在保持神经网络精度的前提下,功能相似的滤波器具有相互的补充作用。即使其中一个滤波器被删除,在重训练的过程中,剩余相似的滤波器依然可以保证网络精度。通过减少此种冗余,可以直接减少参与运算的滤波器,从而降低网络的复杂度。

采用两个滤波器之间的对称性K-L散度来评估其相似性,公式为

(3)

式中:P和Q表示待评估两个滤波器的概率分布;xi表示滤波器的值;p(xi)和q(xi)分别表示在滤波器相应位置上的权重占比。在对比过程中,首先将滤波器的权重进行归一化,然后将其权重按照所在位置进行排列,对于两个滤波器的权重分布进行相似性比较。

为了保留信息更加丰富的滤波器,通过交叉熵评估相似的滤波器。保留交叉熵较大的滤波器,裁减交叉熵比较小的滤波器。

空间逐层卷积中基于相似性的剪枝方法流程如下。

输入:逐层卷积的M个滤波器,剪枝超参数β

输出:被移除的Mβ个滤波器

步骤2对于M个滤波器进行两两之间K-L散度计算,并将按照K-L散度从小到大将滤波器进行排序。

步骤3以超参数β为比例,选择Mβ对相似的滤波器,作为待剪枝的滤波器。

步骤4对于待剪枝的滤波器对,分别计算两个滤波器的交叉熵,裁减交叉熵小的滤波器。

步骤5逐层卷积剪枝完成后,通过迭代训练恢复跟踪网络的精度。

在剪枝过程中以超参数β为比例进行剪枝处理,此参数是通过实验得出的最优比例。

4 实 验

4.1 数据集

在训练过程中,与原始SiameseFC网络保持一致,采用ImageNet视频训练集。此视频训练集包含4 000多段视频,超过百万具有标注的视频帧。对于跟踪任务的训练,它不仅包含了更多的视频片段,并且在目标和场景上也超过其他训练集。因此,ImageNet视频训练集非常适合用于训练基于深度学习的跟踪网络,避免出现过拟合情况。

在测试过程中,为了保证与原始SiameseFC跟踪网络相同的实验条件,同样使用VOT数据集[17]作为评估数据集。从2013年开始,VOT数据集成为了一个重要的单目标跟踪测试平台。VOT数据集不仅有大量的测试数据,并且综合考察了遮挡、形变、模糊、分辨率、运动等因素对于跟踪任务中的影响。

4.2 测试方法

在深度分离卷积为主的训练过程中,首先使用深度卷积网络替换传统网络,然后重新开始训练。采用Xavier[18]方法来初始化网络参数。采用随机梯度下降方法来优化跟踪网络,minibatch设置为8,执行50轮训练迭代,学习率从10-2到10-5按照迭代次数均匀下降。通过训练,得到了基于深度分离卷积的SiameseFC跟踪网络。

为了减少剪枝对于深度可分离卷积跟踪网络准确度的影响,在剪枝的过程中,采用逐次剪枝的方法,即每次进行少量剪枝,然后通过少量轮迭代训练,使得网络精度得到恢复,再进入下一轮剪枝。在网络剪枝中,逐点卷积剪枝超参数α设置为0.10,逐层卷积剪枝超参数β设置为0.05。将待裁剪的通道或者滤波器分散到10轮剪枝迭代中进行。每次剪枝后,进行2到3轮训练来恢复网络精度。

所有的训练在Nvidia TITAN XP GPU硬件设备上进行。使用Matlab的MatConvNet[19]进行训练。在测试过程中,由于TensorFlow平台对于深度可分离卷积实现上支持力度更好,因此将训练好的权重导入到TensorFlow环境中进行前向推理测试。

4.3 裁剪可视化

在逐点卷积的裁剪过程中发现,权重较大的特征图通常包含比较多的信息,相反,权重较小的特征图没有明显的特征。图4是SiameseFC网络中第3层卷积的输入特征图可视化结果。在图4b中,输入特征图按照其在逐点卷积中的权重大小进行从上到下、从左到右排序,上半部分为1×1卷积中大权重所对应的特征图,下半部分为较小权重的特征图。可以看出:权重较大的特征图一般特征信息都比较丰富,权重较小的特征图信息量通常比较缺乏。

(a)原始待(b)卷积过程中的输入特征图跟踪目标图4 逐点卷积中的输入特征图可视化

图5为逐层卷积的裁剪过程中,跟踪网络中第2个逐层卷积内K-L散度top5最小的滤波器对,图中一列为一组滤波器对。可以看出,这些滤波器对之间有明显的相似性。

图5 逐层卷积中相似的滤波器组可视化

4.4 测试结果

为了验证本文的剪枝方法,在不同的网络架构上进行了相应的对比实验,比较了计算量和精度。进行对比的网络架构如下。

(1)传统卷积SiameseFC网络。

(2)深度可分离卷积SiameseFC网络。Siamese FC网络的传统卷积被深度可分离卷积替代,剪枝操作以此作为基准。

(3)随机剪枝的深度可分离卷积SiameseFC网络[20]。

(4)在深度可分离卷积SiameseFC网络上,按照滤波器的权重绝对值大小(L1范数)进行剪枝[8]。将卷积层中权重绝对值大的滤波器保留下来,绝对值小的滤波器裁剪掉。

(5)在深度可分离卷积SiameseFC网络上,将激活层输出为0元素的平均百分比(APoZ)[11]作为评价滤波器是否重要的标准,进行剪枝。

(6)在深度可分离卷积SiameseFC网络的逐层卷积中,按照滤波器的方差大小逐层进行剪枝[21]。滤波器的方差越小,其作用越小,应该优先被裁剪掉。

本文方法和6种对比方法的性能比较如表1所示。

表1 不同SiameseFC网络的性能比较

在表1中,跟踪目标的准确率通过视频中预测框和真实区域的交并比平均值进行评估。交并比越大,准确率越高。失败率是每段视频中的平均失败帧数,用来衡量跟踪的鲁棒性。当交并比为0时,认为跟踪失败,跟踪网络将重新进行初始化。平均重叠期望(EAO)是考虑到准确性和鲁棒性的综合指标。EAO用来衡量在跟踪网络未发生失败情况下的平均准确率,是衡量跟踪网络性能最重要的指标。参数量是指CNN分支的参数量。由于两个CNN分支共享参数,因此在表1中的参数量是指单个网络的参数量。计算量是两个分支的卷积中乘加计算的数量。由于两个分支输入的图像大小不同,因此两个分支的计算量不同。表1中的计算量为两个分支的卷积计算量总和。

从表1可知,本文剪枝方法在跟踪精度和计算效率方面取得了良好的效果。相比于剪枝之前的深度可分离卷积SiameseFC网络,在网络性能没有下降的情况下,网络的参数量下降了22.54%,卷积层的计算量下降了17.8%。在保持精度的同时,将运算量降到了最少。

为了进一步证明本文剪枝方法的有效性,采用了NVIDIA TX2进行了进一步的实验。NVIDIA TX2是嵌入式移动设备中普遍使用的一款硬件。在Tensorflow平台上进行了测试验证,结果如表2所示。

表2 跟踪网络在NVIDIA TX2设备上的计算速度对比

从表2可以看出,在嵌入式设备上,相比于深度可分离卷积SiameseFC网络,本文方法剪枝后网络的计算速度在CPU上提升了14.95%,在GPU上提升了13.07%,在CPU和GPU的速度提升比例不完全相同。这是因为在GPU中,内存数据的访问频率和速度对于计算速度也会有较大的影响。

为了充分说明采用本文方法剪枝后网络的泛化能力,采用本文剪枝方法精简了网络,在OTB50数据集[22]上进行了测试验证。图6是SiameseFC网络剪枝前后在OTB50数据集上的指标对比。可以看出:当位置误差阈值为20时,本文方法、传统卷积、深度可分离卷积SiameseFC网络的准确率分别为0.692、0.682、0.613;当重叠阈值为0.5时,本文方法、传统卷积、深度可分离卷积SiameseFC网络的成功率分别为0.600、0.621、0.561;剪枝后网络的各指标均超过剪枝前的。

(a)准确率

(b)成功率图6 SiameseFC网络剪枝前后在OTB50数据集上的指标对比

通过对比剪枝前后的测试结果可以看出,剪枝后的网络在VOT数据集的EAO指标,以及OTB50数据集上的准确率和成功率指标都有所提升。从机器学习的理论分析,网络的泛化能力在一定程度上和网络自身的复杂度成反相关[23]。因此,适当的剪枝减少了参数量和计算量,降低了模型的复杂度,提升了跟踪网络的泛化能力。剪枝后网络在数据集上的精度超过了剪枝前网络的。

图7展示了本文方法剪枝后的网络在VOT数据集上的结果。可以看出:在前3行跟踪序列中,目标存在较大遮挡,剪枝后的跟踪网络依然能够保持很好的跟踪效果;第4行跟踪序列为有很大运动模糊的场景,第5行跟踪序列为光照变化剧烈的场景,第6行跟踪序列为跟踪物体尺度变化的场景,在这些场景中,剪枝后的网络都可以保持优异的性能。

图7 本文方法剪枝后网络在VOT数据集上的跟踪效果

5 结 论

随着深度学习在跟踪领域的广泛应用,众多的参数量和计算量对于跟踪实时性是一个巨大的挑战。深度可分离卷积相比传统卷积,计算量已经有较大精简,在此基础上进行剪枝更加具有挑战性。

本文根据深度可分离卷积的特点,有针对性地对网络进行剪枝,进行进一步加速。剪枝过程中,通过在逐点卷积上评估输入特征图通道的线性系数大小,将不重要的通道裁减掉。在逐层卷积中,衡量空间卷积滤波器的相似性,减少滤波器的冗余。在VOT数据集上的结果表明,相比未剪枝的网络,本文方法剪枝后的网络能够在精度没有下降的情况下,使网络参数量下降22.54%,计算量下降17.8%。在嵌入式设备NVIDIA TX2上,本文方法剪枝后的网络在CPU上的计算速度提升了14.95%,在GPU上提升了13.07%。

猜你喜欢
剪枝滤波器权重
浅谈有源滤波器分析及仿真
基于多模谐振器的超宽带滤波器设计
人到晚年宜“剪枝”
权重望寡:如何化解低地位领导的补偿性辱虐管理行为?*
利用KL散度度量通道冗余度的深度神经网络剪枝方法
基于YOLOv4-Tiny模型剪枝算法
权重常思“浮名轻”
一款用于无线通信系统的小型滤波器天线
为党督政勤履职 代民行权重担当
权重涨个股跌 持有白马蓝筹