掌桥专利:专业的专利平台
掌桥专利
首页

基于优化通道剪枝的快速目标检测方法及系统

文献发布时间:2023-06-19 10:08:35


基于优化通道剪枝的快速目标检测方法及系统

技术领域

本发明属于计算机视觉、图像处理、模式识别领域。具体涉及基于通道剪枝的图像快速目标检测技术。

背景技术

基于深度学习的目标检测方法,通常需要更大、更复杂的网络模型才能获得更好的检测精度。然而,较大的网络模型往往体积较大,这将影响检测效率,并且难以在资源有限的设备上部署网络模型进行实时检测和实际应用。

根据经验可知,较大的网络模型通常包含大量冗余信息,因此一些研究者提出了一些模型压缩方法,以减少模型体积,加快目标检测速度。在这些模型压缩方法中,结构剪枝,特别是通道剪枝,被广泛用于减少模型参数数量和计算复杂度。然而,现有的通道剪枝方法,通常为所有网络模型层设计一个预定义的全局通道剪枝阈值,或者为每层设计一个独立的局部通道剪枝阈值,以删除不重要的通道,实现节省模型内存占用和减少模型推理时间。值得注意的是,通道剪枝方法通常使用模型中批处理归一化(Batch Normalization)层的尺度因子来度量各通道的重要性,同时也根据该尺度因子来设计通道剪枝阈值。但在设计通道剪枝阈值时,上述方法要么只考虑全局尺度因子的大小分布情况,要么只考虑局部尺度因子在对应稀疏层的大小分布情况。所以之前的通道剪枝阈值不能同时达到针对所有层的全局最优,和针对每一层的局部最优。由此,之前的通道剪枝效果不是最优的。

因此,如何在不影响目标检测模型精度的前提下,发明一种更适合的、具有更优通道剪枝阈值的通道剪枝方法,实现更高效的模型压缩,提高图像目标检测速度,是目前亟待解决的问题。

发明内容

有鉴于此,本发明提供一种基于优化通道剪枝的快速目标检测方法及系统,以改进现有技术对目标检测中通道剪枝模型压缩不够合理的问题,提高图像目标检测速度。

为实现上述目的,本发明采用以下技术方案:

一种基于优化通道剪枝的快速目标检测方法,所述方法包括以下步骤:

(1)采用基于卷积神经网络(Convolutional Neural Network)的单阶段目标检测模型(YOLOv3)对待检测的目标图像进行稀疏训练。稀疏训练可以训练尺度因子,其中尺度因子训练结果的大小决定检测模型中稀疏层通道的重要程度。稀疏训练得到原始的稀疏检测模型,所述原始的稀疏检测模型中的每个卷积层后面都有一个BN层。

在结构化通道剪枝中,稀疏训练是获取剪枝层系数尺度因子的关键。而稀疏训练是模型检测精度和稀疏性的博弈过程。稀疏训练时,通常会设置一个惩罚因子,来使得模型在具有较高检测精度的同时,实现相对较高的稀疏性。为了实现高效的通道剪枝,本发明方法为每个剪枝层通道设置一个静态尺度因子,该静态尺度因子的绝对值表示该通道的重要性。更具体地说,除了检测头的最后一层之外,本发明方法的网络模型中的每个卷积层后面都有一个BN(Batch Normalization)层,用以加速训练收敛和提高模型泛化能力。因此,本发明方法使用BN层的尺度因子作为对应卷积层通道的尺度因子。BN层归一化卷积层的特征,如式(1)所示。

本发明方法直接使用BN层中尺度因子的绝对值来度量每个通道的重要性。为了更好地从不重要的通道中识别出重要的通道,本发明方法采用L1正则化的方法进行通道稀疏训练。

稀疏训练的损失函数如式(2)所示。

式中(x,y)表示训练输入和对应的真值目标,W为可训练权重,g(γ)=|γ|表示L1正则化,Γ表示BN层中所有尺度因子,μ表示平衡这两个损失的惩罚因子。第一个和项对应网络的常规训练损失,与基线YOLOv3一致。l为基线YOLOv3的损失函数。

(2)根据稀疏训练后模型的尺度因子分布,设计先进的层级加权通道剪枝阈值;

剪枝阈值对通道剪枝后的精简网络模型性能起着至关重要的作用。现有的通道剪枝阈值的设计方法要么只考虑各层的全局重要性分布并设置全局阈值,要么只考虑各层不同通道间的局部重要性分布并为各层设置独立的局部最优阈值。本发明方法用每个剪枝层的尺度因子绝对值的平均值(gamma_mean)来表示该层的重要性,gamma_mean的分布折线图如图1所示。从图1可以看出,不同层的重要性是不同的。另外,为了进一步分析不同通道剪枝阈值对各剪枝层的影响,本发明方法绘制了同一剪枝层不同阈值的分布图,如图2所示。从图2可以看出,不同阈值在不同层的分布情况是不同的。

全局阈值(global_threshold)是根据网络模型所有尺度因子的分布设置的,没有考虑各层局部尺度因子的具体分布情况。一方面,要实现高效的剪枝,很难设置一个与剪枝百分比相对应的全局阈值。例如,图2(a)表示第31个剪枝层,如果设置剪枝百分比为0.5或0.7时,少量的通道将会被剪枝,从而导致欠剪枝。但是如果将剪枝百分比设置为0.8,过多的通道将被修剪,从而导致过度剪枝。此外,有时某些层的所有通道会因为全局阈值过大而被全部删除,这会破坏网络的整体结构。另一方面,对于预先设置的全局阈值,不同层的剪枝效果也是不同的。例如,当剪枝百分比为0.8时,第31个剪枝层(图2(a))的全局阈值过高,可能导致过度剪枝。而第60个剪枝层(图2(b))的全局阈值偏低,可能导致剪枝不足。

另外,根据各层的尺度因子分布而设置的局部最优阈值(optimal_threshold)忽略了各层的全局重要性。因此,不能同时达到各层的局部最优和全局最优。例如,第30层和第32层的尺度因子的gamma_mean很低,如图1所示,因此这些层的全局表示不是很重要,从而需要设置较大的阈值来修剪更多的冗余通道。然而,从图2(c)和(d)可以看出,这两层的局部最优阈值相对较小,使得难以实现高效的通道剪枝。

基于上述分析,并且同时考虑尺度因子的局部和全局重要性,本发明方法提出一个更合适的层级加权阈值来进行通道剪枝。该发明方法在减少模型参数的同时基本保持了原来的检测精度,能够得到更精简的网络模型,实现更快的目标检测。具体方法如下:

(2.1)考虑各层局部尺度因子的分布情况,计算各层的剪枝阈值如公式(3)所示。

其中Γ表示每一层的所有尺度因子,θ是一个微不足道的分数,通常设置为1e-3,γ

(2.2)考虑到所有剪枝层的全局尺度因子分布情况,并且使每个剪枝层的阈值更合理、更有效,本发明方法在不等式(3)的右侧添加一个权重w。由此,提出层级加权通道剪枝阈值,以平衡所有层的全局重要性分布和每一层不同通道的局部重要性分布。该权重w由公式(4)计算得到。

上式中,|γ|为尺度因子的绝对值,c为对应层内的通道数,s为所有剪枝层数。|γ|为尺度因具体来说,本发明方法首先平均每个剪枝层的尺度因子的绝对值|γ|,以获得每层尺度因子的局部平均值

(2.3)计算用于通道剪枝的层级加权阈值γ

(3)根据设计的层级加权通道剪枝阈值,进行常规剪枝。

常规剪枝是指剪枝层不包括网络模型的残差快捷连接卷积层的通道剪枝方法。因为这种常规剪枝方法通常对准确率影响不大,所以本发明方法先根据设计的层级加权通道剪枝阈值,进行常规剪枝。即剪去稀疏剪枝层通道中尺度因子小于层级加权阈值的通道。此种剪枝方法无需微调直接得到剪枝后的精简模型。

或者,(4)根据设计的层级加权通道剪枝阈值,进行极限剪枝。并且,对极限剪枝后的模型进行微调。

极限剪枝是指剪枝层包含网络模型的残差快捷连接卷积层的通道剪枝方法。因此,该方法能够进一步减少模型的参数。但是,该极限剪枝方法一般也会在一定程度上影响剪枝后模型的检测精度。由此,本发明方法会对极限剪枝后的模型进行微调,以尽可能补偿损失的精度。

本发明进一步保护一种基于优化通道剪枝的快速目标检测系统,其包括:

(1)原始检测模块:采用稀疏训练,得到原始的稀疏目标检测模型;

(2)层级加权通道剪枝阈值设计模块:根据稀疏训练后的原始的稀疏检测模型的尺度因子分布,设计先进的层级加权通道剪枝阈值。

(2)常规剪枝模块:如果硬件设备存储较大,或者想减少训练时间,无需微调的情况下,选择采用根据设计的层级加权通道剪枝阈值进行常规剪枝;

(4)极限剪枝模块:如果需要进一步减少模型参数及体积,并提高检测速度,选择采用根据设计的层级加权通道剪枝阈值进行极限剪枝;

(5)微调模块:如果采用极限剪枝,则会再使用修剪后的模型权重参数初始化该精简网络,对获得的极限剪枝精简网络进行常规训练,即微调。

从以上对方法和系统的阐述可见,本发明提出了一种更精简的网络模型来实现更有效地检测目标。首先通过稀疏训练,得到原始的目标检测模型。稀疏训练可以训练尺度因子,其中尺度因子训练结果的大小决定检测模型中稀疏层通道的重要程度。然后,利用层级加权阈值进行通道剪枝。该层级加权阈值同时考虑了某个通道在对应网络层的重要程度,以及其在整个网络结构中的重要程度。通过合理的通道剪枝,本发明实现更有效的模型压缩,其目标检测网络模型的参数数量会大大降低,并且显著提高检测效率。实验结果表明,本发明与目前优秀的方法相比具有更先进的性能。

本发明具有很大的学术以及实用意义价值,同时,由于对图像实施快速目标检测广泛存在于科学研究、社会活动的各个方面,为此,本发明也具有很好的社会经济价值。

附图说明

图1:每个剪枝层的尺度因子绝对值的平均值(gamma_mean)分布图;

图2:不同剪枝层的尺度因子(gamma)、全局阈值(global_threshold)、局部最佳阈值(optimal_threshold)、本发明方法提出的层级加权阈值(weighted_threshold)分布图。其中,(a)-(d)图分别是第31、60、30、32个剪枝层;

图3:(a)稀疏训练前各层尺度因子分布图,(b)稀疏训练后各层尺度因子分布图;

图4:(a)不同阈值在各剪枝层的分布图,(b)尺度因子绝对值的平均值及不同阈值在各剪枝层的分布图;

图5:不同方法检测结果对比图。

具体实施方式

以下将结合附图,对本发明的优选实施例进行详细描述。优选实施例仅为了说明本发明,而不是为了限制本发明的保护范围。

实施例1:基于优化通道剪枝的快速目标检测系统

检测系统由图像获取模块、原始检测模块、层级加权通道剪枝阈值设计模块、常规剪枝模块、极限剪枝模块、微调模块构成。

图像获取模块:用于获得待检测的图像;

原始检测模块:采用稀疏训练,得到原始的稀疏目标检测模型;

层级加权通道剪枝阈值设计模块:根据稀疏训练后的原始的稀疏检测模型的尺度因子分布,设计先进的层级加权通道剪枝阈值;

常规剪枝模块:根据设计的层级加权通道剪枝阈值进行常规剪枝;

极限剪枝模块:根据设计的层级加权通道剪枝阈值进行极限剪枝;

微调模块:极限剪枝后,用修剪后的模型权重参数初始化该精简网络,对获得的极限剪枝精简网络进行常规训练。

实施例2:基于优化通道剪枝的快速目标检测方法

采用实施例1所述的系统进行检测,分为以下四个步骤:

首先采用图像获取模块获取待检测图像,并将该图像的训练样本,制作成待训练模型的输入格式;

然后原始检测模块对模型进行稀疏训练,得到原始的稀疏检测模型;

之后可选择常规剪枝模块采用设计的层级加权通道剪枝阈值进行常规剪枝;

或者可选择极限剪枝模块采用设计的层级加权通道剪枝阈值进行极限剪枝并采用微调模块微调。

以下详细说明过程:

一、对模型YOLOv3进行稀疏训练

根据由Darknet的PyTorch库提供的训练策略,对检测器模型YOLOv3以端到端的方式,在11G显存的Nvidia GTX 1080Ti GPU上进行稀疏训练。

稀疏正则化训练的损失函数的最优惩罚因子μ为1e-3。并通过反向梯度随机下降法(SGD)进行权重优化,其权重衰减设为0.0001,动量为0.9。

训练初始化阶段,采用COCO预训练模型对基线模型进行权重初始化。输入图像被调整为608像素以避免使用太多内存,其批处理图像数量设置为7。本发明方法总共训练了200个epochs,前140个epochs的学习率为1e-3,而后的40个epochs的学习率为1e-4,剩余的20个epochs的学习率为1e-5。

最后,得到稀疏训练前后的尺度因子直方图如图3所示。图3中的纵轴为卷积层的序数,横轴为各层对应的尺度因子分布图。从图3中可以看出,经过稀疏训练后,不重要通道的尺度因子趋于接近于零,这会更有利于通道剪枝。

二、设计先进的层级加权通道剪枝阈值:

通过公式(5)计算每个通道剪枝的层级加权阈值γ

其中Γ表示每一层的所有尺度因子,θ是一个微不足道的分数,通常设置为1e-3,w表示权重。当某个剪枝层的所有尺度因子升序排列,出现的第一个尺度因子的累积平方和大于或等于w×θ∑

权重w由公式(4)计算得到

式中,|γ|为尺度因子γ的绝对值,c为对应剪枝层内的通道数,s为所有剪枝层数。

二、常规剪枝

完成稀疏训练后,本发明方法应用提出的层级加权阈值来决定每一层中的每一个通道是否应该被修剪。即稀疏剪枝层通道中尺度因子小于层级加权阈值的通道将会被剪枝。实验中,本发明方法将公式(5)中的θ设置为1e-4。与之前方法相比,由于本发明方法为每一层设计的剪枝阈值合理地分布在尺度因子的最大值和最小值之间,因此本发明提出方法不会对每一层的所有通道都进行剪枝,不会破坏网络的整体结构。常规剪枝是指剪枝层忽略网络模型的残差快捷连接卷积层的通道剪枝方法。因为这种方法通常对准确率影响不大,所以本发明方法先根据设计的层级加权通道剪枝阈值,进行常规剪枝。

三、极限剪枝并微调

为了进一步减少模型的参数,本发明方法还可以选择使用极限剪枝,其中剪枝层包括残差快捷连接的卷积层。经过极限剪枝后,神经网络模型的检测精度可能会降低。因此,本发明方法通常需要对极限剪枝后的模型进行微调,以提高目标检测精度。具体来说,微调时使用修剪后的模型权重参数初始化该精简网络,对获得的极限剪枝精简网络进行常规训练,其他训练超参数与常规训练相同。常规训练的损失函数如式(6)所示。

式中(x,y)表示训练输入和对应的真值目标,W为可训练权重。该常规训练损失与基线模型YOLOv3一致。

综上,本发明实施例所提供的一种基于优化通道剪枝的快速目标检测方法,结合先进的卷积神经网络目标检测模型,能对图像中的目标物进行快速有效的检测。实验结果表明,本发明方法与目前优秀的方法相比具有最先进的性能。具体如下:

首先,为了分析本发明方法提出的层级加权阈值(WT:weighted_threshold)通道剪枝方法的合理性和有效性,本发明方法绘制了WT、局部最优阈值(OT:optimal_threshold)和多个全局阈值(GT:global_threshold)在不同剪枝层中的阈值分布,如图4(a)所示。从图中可以看出,WT和OT可以更好地匹配每一层的特点,实现更合理高效的剪枝。此外,本发明方法在图4(b)中显示了每个剪枝层的WT、OT和gamma_mean的分布。值得注意的是,gamma_mean越大,这一层的重要性就越大,因此应该设置更小的剪枝阈值,以便在这一层中保留更多的通道,反之亦然。从图4(b)可以看出,本发明提出的WT能够更好地拟合每个剪枝层的重要性分布。例如,在图4(b)中,第50至第60个剪枝层的gamma_mean相对较大,这表明这些层更重要,其剪枝阈值应该设置得更小。从图4(b)可以看出,在第50至第60个剪枝层中,本发明方法的WT比OT小,因此设计的WT更合适。此外,gamma_mean在第30层附近非常小,这表明这些层不那么重要,剪枝阈值应该设置得更大。从图4(b)可以看出,在这些剪枝层中,本发明方法的WT大于OT。因此,本发明方法提出的层级加权阈值通道剪枝方法更加合理和有效。

另外,为了进一步验证本发明方法提出的基于层级加权阈值(WT)通道剪枝的有效性,本发明方法在VisDrone-DET数据集上进行稀疏训练后,先采用常规剪枝方法对训练后的稀疏模型进行剪枝,并与全局阈值(GT)和局部最优阈值(OT)的剪枝结果进行了比较。对比结果见表1。从表1可以看出,基于平均精度(mAP:mean average precision)和网络模型参数之间的折中,本发明方法的WT优于GT和OT。具体来说,与OT相比,本发明方法的WT的mAP增量为1%,其参数减少量为19.4M。此外,为了进一步降低模型的参数,本发明方法还进行了极限剪枝。经过极限剪枝后,本发明方法对模型进行微调,并使用FWT表示微调后的修剪结果,如表1的最后一行所示。结果表明,FWT的模型参数可以降至4.4M,与原模型相比降低了93.1%,但其mAP仍然处于较高水平。最后,从图5中可以直观地看出,本发明的方法与其他先进方法相比,具有更高的检测精度和更快的检测速度,保留的参数也更少。

表1本发明方法与其他先进方法的对比检测结果。ST:稀疏训练,M:million,MB:mega byte,ms:millisecond。

以上所述仅为本发明的优选实施例,并不用于限制本发明,显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

相关技术
  • 基于优化通道剪枝的快速目标检测方法及系统
  • 一种基于网络模型进行通道剪枝优化系统的方法
技术分类

06120112436008