目标检测器的压缩方法、装置、介质以及电子设备与流程

文档序号:19572397发布日期:2019-12-31 19:04阅读:231来源:国知局
目标检测器的压缩方法、装置、介质以及电子设备与流程

本发明的实施方式涉及人工智能技术领域,更具体地,本发明的实施方式涉及一种目标检测器的压缩方法、装置、介质以及电子设备。



背景技术:

本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。

针对深度卷积神经网络的深度模型压缩技术,已经有比较成熟的应用。例如基于重训练的剪枝量化技术,通过对训练好的深度神经网络模型中的权重和数据进行剪枝与量化处理,并用剪枝与量化后的权重和数据计算损失函数,然后更新剪枝与量化前的权重与数据、以及迭代重训练,最终达到一定的压缩比和目标精度。



技术实现要素:

然而,本发明人发现,通常将现有技术直接应用于深度目标检测器,较难获得实际效益。当目标检测数据集规模较小时(比如pascalvoc检测集),剪枝之后的检测器主干较难借助数据集的微调以恢复特征提取能力;当目标检测数据集规模很大时(比如mscoco检测集),繁琐的剪枝细节将耗费较大的时间代价。另外,业界成熟的量化压缩技术,比如nvidiatensorrt的int8量化技术,应用于深度目标检测器的量化压缩时,通常会导致较大的精度损失,并且模型越复杂、精度损失越大,因而需要设计合理的重训练机制方能有效恢复精度。现有的深度模型压缩技术尚未有针对深度目标检测器的行之有效的模型压缩方法,尤其针对高计算复杂度、面向复杂应用场景的目标检测模型,缺乏简洁且有效的实施策略。

为此,非常需要一种改进的目标检测器的压缩方法,以使克服上述问题。

在本上下文中,本发明的实施方式期望提供一种目标检测器的压缩方法,以提供简洁有效的压缩方法,并降低目标检测器在压缩过程中的精度损失。

在本发明实施方式的第一方面中,提供了一种目标检测器的压缩方法,包括获得待压缩的基于深度神经网络模型的目标检测器,将所述目标检测器的网络结构划分为主干部分和枝干部分,其中,用于提取特征的部分被确定为主干部分,除主干部分以外的部分被确定为枝干部分,对包含与所述主干部分成分一致的分类网络,执行剪枝处理,获得剪枝处理后的基础网络,将所述基础网络迁移到所述目标检测器,以取代所述目标检测器的主干部分,以及对所述目标检测器的枝干部分进行精简化处理,并对精简化处理后的目标检测器进行训练,得到压缩后的目标检测器。

在本发明的一个实施例中,在将所述基础网络迁移到所述目标检测器之前,所述方法还包括对所述基础网络进行训练,以优化所述基础网络中的参数。

在本发明的另一个实施例中,所述对包含与所述主干部分成分一致的分类网络,执行剪枝处理包括通过基于余弦调整机制的网络纤细化,对包含与所述主干部分成分一致的分类网络进行正则化处理,以及基于预定的目标剪枝率对正则化处理后的分类网络执行剪枝处理。

在本发明的又一个实施例中,所述对所述目标检测器的枝干部分进行精简化处理包括在所述枝干部分包括过渡网络层的情况下,使用精简残差块结构替换所述过渡网络层,其中,所述精简残差块包括由三层网络构成的第一通路和由单层网络构成的第二通路。

在本发明的又一个实施例中,所述方法还包括在所述枝干部分不包括过渡网络层的情况下,在所述主干部分和所述枝干部分之间插入所述精简残差块结构。

在本发明的又一个实施例中,所述方法还包括按固定比例删除卷积层参数矩阵的输入/输出通道数。

在本发明的再一个实施例中,所述对精简化处理后的目标检测器进行训练,得到压缩后的目标检测器包括获得检测数据集,通过均衡目标采样,调整所述检测数据集的多个图像中的目标对象的尺寸,将原始目标检测器作为教师网络,将精简化处理后的目标检测器作为学生网络,通过知识蒸馏的方式对处理后的所述目标检测器进行训练,得到压缩后的目标检测器。

在本发明实施方式的第二方面中,提供了一种目标检测器的压缩装置,包括获得模块、划分模块、主干剪枝模块、主干迁移模块以及枝干精简化模块。获得模块,用于获得待压缩的基于深度神经网络模型的目标检测器。划分模块,用于将所述目标检测器的网络结构划分为主干部分和枝干部分,其中,用于提取特征的部分被确定为主干部分,除主干部分以外的部分被确定为枝干部分。主干剪枝模块,用于对包含与所述主干部分成分一致的分类网络,执行剪枝处理,获得剪枝处理后的基础网络。主干迁移模块,用于将所述基础网络迁移到所述目标检测器,以取代所述目标检测器的主干部分。枝干精简化模块,用于对所述目标检测器的枝干部分进行精简化处理,并对精简化处理后的目标检测器进行训练,得到压缩后的目标检测器。

在本发明实施方式的第三方面中,提供了一种介质,其上存储有可执行指令,所述指令被处理单元执行时使所述处理单元执行上述任一项所述的方法。

在本发明实施方式的第四方面中,提供了一种电子设备,包括处理单元以及存储单元。存储单元上存储有可执行指令,所述指令被所述处理单元执行时使所述处理单元执行如上所述的方法。

根据本发明实施方式的目标检测器的压缩方法、装置、介质以及电子设备,通过划分主干和枝干,通过对分类网络的剪枝技术对主干剪枝,再迁移到目标检测器上,可以有效降低目标检测器压缩过程中的精度损失。

附图说明

通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:

图1a和图1b示意性地示出了根据本发明示例性实施例的目标检测器的示意图;

图2示意性地示出了根据本发明示例性实施例的目标检测器的压缩方法的流程图;

图3示意性地示出了根据本发明示例性实施例的精简残差块的示意图;

图4示意性地示出了根据本发明示例性实施例的对精简化处理后的目标检测器进行训练,得到压缩后的目标检测器的流程图;

图5示意性地示出了根据本发明示例性实施例的目标检测器的压缩装置的框图;

图6示意性地示出了根据本发明示例性实施例的计算机可读存储介质的示意图;以及

图7示意性地示出了根据本发明示例性实施例的电子设备的方框图。

在附图中,相同或对应的标号表示相同或对应的部分。

具体实施方式

下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本发明更加透彻和完整,并且能够将本发明的范围完整地传达给本领域的技术人员。

本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本发明可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。

根据本发明的实施方式,提出了一种目标检测器的压缩方法、装置、系统、介质和电子设备。

此外,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。

下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。

发明概述

为了获得表现卓越的深度目标检测器,以应对复杂的应用场景(背景复杂,且包含更多小目标、模糊目标、遮挡目标等),通常会选择深且宽的分类网络作为主干,确保强特征提取能力,另外枝干也会包含更多功能模块(如过渡层、特征金字塔等),从而导致检测器的模型容量与计算复杂度变得更大,且网络拓扑结构也变得更复杂。

为了解决这一问题,本发明示例性实施例提供了一种目标检测器的压缩方法,通过主干剪枝、网络结构精简化等策略的组合使用,能够有效完成复杂的深度目标检测器的模型压缩,确保压缩后的检测器的主干仍具备较强的特征提取能力,检测精度的损失尽可能低,从而有助于检测模型在云侧与端侧平台的轻量化部署、并节省经济成本。模型压缩的整体操作步骤简单易用,可广泛应用于单次(single-shot)目标检测器与两级(two-stage)目标检测器的模型压缩与计算加速。通常在理想的精度损失范围内,压缩比与加速比能够做到3~4倍以上,一则在模型推理阶段有助于提升执行效率,二则在模型训练阶段有助于加快收敛、降低过拟合。

在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方式。

应用场景总览

首先参考图1a和图1b,图1a和图1b示意性地示出了可以适用本发明示例性实施例的方法的目标检测器的示意图。

如图1a所示,single-shot目标检测器的结构例如可以包括用于特征提取的部分,以及额外层、过渡层、特征金字塔与信息融合分支、检测分类预测分支等可包含的功能模块。该些功能模块例如可以用于增强网络的表征能力、融合特征信息,利用特征信息完成目标的定位与分类。根据本发明示例性实施例,可以将用于特征提取的部分确定为主干部分,而将其他部分确定为枝干部分。

如图1b所示,two-stage目标检测器的结构例如可以包括用于特征提取的部分、用于目标区域筛选与微调的区域候选网络以及用于目标精确定位与分类的精确预测网络。区域候选网络(regionproposalnetwork)能够完成目标区域的初步筛选与微调,为第二阶段的精确预测提供初始化状态更好的候选区域,同时能有效缓解样本不均衡问题。典型的two-stage检测器包括faster-rcnn与r-fcn等。类似地,根据本发明示例性实施例,可以将用于特征提取的部分确定为主干部分,而将其他部分确定为枝干部分。

需要注意的是,上述目标检测器仅是为了便于理解本发明的精神和原理而示出,本发明的实施方式在此方面不受任何限制。相反,本发明的实施方式可以应用于适用的多种目标检测器。

示例性方法

下面参考图2~图4描述根据本发明示例性实施方式的目标检测器的压缩方法。

图2示意性地示出了根据本发明示例性实施例的目标检测器的压缩方法的流程图。

如图2所示,该方法包括步骤s210~s240。

在步骤s210,获得待压缩的基于深度神经网络模型的目标检测器。该目标检测器例如可以是上文所述的single-shot检测器或two-stage检测器。

在步骤s220,将所述目标检测器的网络结构划分为主干部分和枝干部分,其中,用于提取特征的部分被确定为主干部分,除主干部分以外的部分被确定为枝干部分。请参考上文关于图1a和图1b的描述,此处不再赘述。

在步骤s230,对包含与所述主干部分成分一致的分类网络,执行剪枝处理,获得剪枝处理后的基础网络。根据本发明示例性实施例,剪枝处理的对象已经不是完整的目标分类器,而是与目标分类器中用于特征提取的部分成分一致的分类网络,对于该部分的剪枝,可以采用一些针对分类网络剪枝的相关技术。例如,本发明示例性实施例可以采用通道剪枝技术,以兼容现有的、成熟的深度学习框架,方便后续目标检测器的高效训练与推理部署。选择的精度调优策略例如可以包括学习率的余弦调整(cosineannealing)、样本标注平滑(labelsmoothing)、样本融合(mix-up)与知识蒸馏(knowledgedistillation)等,以提升剪枝网络的精度表现,从而更有效地恢复剪枝网络的特征提取能力。

根据本发明示例性实施例,所述对包含与所述主干部分成分一致的分类网络,执行剪枝处理包括通过基于余弦调整机制的网络纤细化(networkslimming),对包含与所述主干部分成分一致的分类网络进行正则化处理,以及基于预定的目标剪枝率对正则化处理后的分类网络执行剪枝处理。通过正则化约束,能够更好地发现深度分类网络的剪枝模板(pruningmask)或者子网络结构,进而更有效地控制剪枝比例、并实施自动通道剪枝,达到模型压缩与降低过拟合的作用。

通常地,在resnet或densenet结构中的每个卷积层后面包含了批标准化(bn:batchnormalization)层,卷积层输出特征fi经过bn层的信息传递转为fi+1的过程可表示为如下仿射变换:

其中,γ系数可以作为输出特征的开关系数,控制着网络信息的流通与闭合。应对该类型的预训练模型,本发明实施例通过对γ系数施加稀疏诱导的正则化约束,最终在数据集上完成分类网络的通道剪枝。网络纤细化通过对γ系数施加l1正则化约束,能够在训练过程中诱导γ系数趋于稀疏化,训练时的损失函数表示为:

其中(x,y)表示训练样本与标注,w表示网络参数,l(·)表示标准的交叉熵损失,g(γ)=|γ|表示引入的l1辅助损失,λ为平衡因子(通常取值为1)。本发明在正则化过程中引入了学习率的余弦调整机制:

其中lr,0表示初始学习率,epochmax表示最大训练周期,t为当前训练周期。结合cosineannealing,bn层的γ系数经过l1正则化之后,能够获得更好的正则化效果。基于上述公式确定的学习率对训练参数进行设定,能够更平缓、更有效地诱导γ系数的稀疏化过程。

完成预训练模型的正则化之后,根据全局目标剪枝率p(比如p=0.7)以及|γ|的跨层排序,可以获得剪枝阈值thre=|γ|p=0.7,进而可获得第1个bn层的剪枝模板ml与实际剪枝率pl:

其中[|γ|≥thre]表示阈值比较之后获得的二值剪枝模板,模板中取值为0表示删除相应的通道,取值为1表示保留相应的通道,例如,以四个通道的简化模型为例,(1,0,0,0)表示仅保留第一个通道,删除其他三个通道。如果a≠0,i(a)=1,否则i(a)=0。k表示第1个bn层的第k个γ系数,也表示该bn层之前的卷积层的第k个卷积核。阈值比较之后,由于每一层的实际剪枝率存在差别,需要删除的输出通道数并不相同。

根据本发明示例性实施例,可以设定不同的剪枝率,如剪枝率=50%、60%或80%,用以获得一系列可迁移的轻量化剪枝主干,以应对不同计算平台的资源约束需求。比如剪枝率=50%的主干可应用于数据中心平台的模型部署,剪枝率=80%的主干可应用于移动端的模型部署。

相比于结合学习率的阶梯调整机制(stepdecay)的网络纤细化,在相同的压缩比条件下,结合余弦调整机制的网络纤细化能够获得更高精度表现的剪枝分类网络。

特别地,针对包含残差块结构的分类网络,由于残差块之间的输出通道数需要保持一致,可以对每个残差块中直接连接到输出的bn层的剪枝模板进行处理,将该bn层的剪枝模板执行逻辑或处理,在保留优化的子网络结构的同时,能够最大化模型压缩的容量。例如,第一个残差块的第一个通道的输出bn层的剪枝模板为(1,0,0,1),第一个残差块的第二个通道的输出bn层的剪枝模板为(1,0,0,0),第二个残差块的输出bn层的剪枝模板为(0,0,1,1),那么最终匹配出的不同残差块的输出通道的剪枝模板为(1,0,1,1)。

根据本发明示例性实施例,除了采用基于余弦调整机制的网络纤细化对分类网络执行剪枝处理以外,还可以采取其他的策略。例如,在本发明一示例性实施例中,可以根据卷积核的重要性准则,计算分类网络中每一个卷积层的不同卷积核的重要性,然后引导卷积层输入/输出通道的剪枝,卷积核的重要性可定义为l1范数、l2范数等。又如,在本发明另一示例性实施例中,可以通过选择当前卷积层中最优的输出通道组合,确保下一层输出特征的重建误差最小,然后删除当前层中除最优通道之外的输出通道,并逐层实施相同的通道选择策略。

根据本发明示例性实施例,在将所述基础网络迁移到所述目标检测器之前,所述方法还包括对所述基础网络进行训练,以优化所述基础网络中的参数。可采取例如学习率的余弦调整、样本标注平滑(labelsmoothing)、样本融合(mix-up)与知识蒸馏(knowledgedistillation)等策略,有效地恢复剪枝网络的分类精度与特征提取能力。

余弦调整策略能够以平缓的速度更新网络参数,可以避免阶梯调整机制遇到的参数更新停滞问题,也就是在阶梯调整机制的最后一个阶梯状态,由于学习率非常小,通常会导致网络参数几乎不怎么更新,使得模型训练陷入一个较差的局部优化解。

样本标注平滑首先将样本的硬标注做软化处理,获得的概率分布如下:

其中ε通常取0.1~0.2之间的数值;k表示分类数。显然在真实标注位置,概率取值为1-ε,而在其他位置,概率取值都非常小,并确保总的概率之和为1。实施样本标注平滑策略之后,需要在硬标注软化之后的概率分布与分类网络预测输出的概率分布之间计算k-l散度,作为新的损失函数。

样本融合策略通过将两次采样获得的样本与标注予以融合,生成新的样本与标注,融合第i次采样与第j次采样的样本融合策略具体表示如下:

其中表示从beta分布获得的融合系数。通常,融合获得的新样本位于非线性决策边界、较难鉴别,因而有助于提升网络的分类精度与泛化能力。

知识蒸馏借助教师网络输出的软标注或中间层特征,能够有效诱导学生网络的训练学习。本发明实施例以未剪枝的预训练深度分类网络作为教师网络,以剪枝网络作为学生网络,确保教师网络与学生网络具有同质的网络结构,例如都是resnet结构或densenet结构。并以教师网络分类层输出的软标注、以及中间层的特征图或注意力映像作为监督信息,用以诱导剪枝网络的训练,达到有效恢复剪枝网络精度表现的作用。

在步骤s240,将所述基础网络迁移到所述目标检测器,以取代所述目标检测器的主干部分。根据本发明示例性实施例,在数据集上完成深度分类网络的剪枝与微调之后,将具备较强特征提取能力的剪枝网络作为基础网络模型,将其特征提取部分迁移至目标检测器的主干部分,用于轻量化的目标检测器的设计与常规训练。因此本发明设计的模型压缩流水线非常简洁且有效,尤其针对高计算复杂度、面向复杂应用场景的深度目标检测模型。适用的深度目标检测器,包括但不限于single-shot检测器与two-stage检测器。

在步骤s250,对所述目标检测器的枝干部分进行精简化处理,并对精简化处理后的目标检测器进行训练,得到压缩后的目标检测器。精简化处理用于在保留了各组成模块的结构特点与功能作用的前提下尽可能地压缩目标检测器的枝干部分。本发明示例性实施例可以采用精简残差块以及枝干网络层的固定比例通道剪枝的方式对枝干部分进行精简化处理。

根据本发明示例性实施例,所述对所述目标检测器的枝干部分进行精简化处理可以包括在所述枝干部分包括过渡网络层的情况下,使用精简残差块结构替换所述过渡网络层,可实现网络结构的精简化。其中,所述精简残差块包括由三层网络构成的第一通路和由单层网络构成的第二通路。

根据本发明示例性实施例,精简残差块例如可以实现为参考图3所示的结构,左侧分支作为残差信号的传送路径,可以将输入特征的通道数转为128,而残差块的输出特征通道数设定为256。

根据本发明示例性实施例,所述方法还可以包括在所述枝干部分不包括过渡网络层的情况下,在所述主干部分和所述枝干部分之间插入所述精简残差块结构,以增强所提取特征的表征能力。

根据本发明示例性实施例,所述方法还包括按固定比例删除卷积层参数矩阵的输入/输出通道数。由于枝干网络层存在一定的参数冗余,可以按固定比例(如50%、70%等)删除卷积层参数矩阵的输入/输出通道数,而剩余枝干层参数按照随机方式予以初始化。固定比例通道剪枝并未整体性的删除某个功能模块,而是采用适当的剪枝比例完成了枝干网络层的参数去冗余,精简化后的枝干仍然保留了各组成模块的结构特点与功能作用。

经剪枝主干迁移与枝干精简化之后,可获得纤细、轻量化的深度检测器,通常在理想的精度损失范围内,压缩比与加速比能够做到3~4倍以上,一则在模型推理阶段有助于提升执行效率,二则在模型训练阶段有助于加快收敛、降低过拟合,最终达到模型容量压缩、计算加速与节约经济成本的目的。

根据本发明示例性实施例,完成深度目标检测器的剪枝主干迁移与枝干精简化之后,在目标检测数据集上训练指定的周期数,并在训练过程中可以采取适当的调优策略以确保检测精度。可选择的调优策略包括但不限于均衡目标采样、知识蒸馏、focalloss等。

图4示意性地示出了根据本发明一示例性实施例的对精简化处理后的目标检测器进行训练,得到压缩后的目标检测器的流程图。

如图4所示,该方法包括步骤s410~s430。

在步骤s410,获得检测数据集。

在步骤s420,通过均衡目标采样,调整所述检测数据集的多个图像中的目标对象的尺寸。当检测数据集包含的大、中、小尺度目标的比例分布不均衡时,会影响检测模型在样本量少的目标上的精度表现,比如检测数据集mscoco中包含了更多的小目标(将近50%),而大、中目标的比例相对较低。为了实现均衡目标采样,可以按一定比例将包含小目标的图片放大,然后执行目标采样,有助于增加大、中尺度目标的样本数量,并丰富样本多样性,从而提升检测模型在不同尺度目标上的整体精度表现,确保模型具备良好的泛化性。

在步骤s430,将原始目标检测器作为教师网络,将精简化处理后的目标检测器作为学生网络,通过知识蒸馏的方式对处理后的所述目标检测器进行训练,得到压缩后的目标检测器。

深度目标检测器的知识蒸馏包含了分类层、位置回归层的监督引导以及中间层特征的迁移。本发明示例性实施例以剪枝主干迁移的、枝干精简化且随机初始化的深度目标检测器为学生网络,采用主干未剪枝、枝干未精简化、具备同质结构且预训练的深度目标检测器为教师网络,在目标检测数据集上完成学生网络的引导训练。以single-shot目标检测器为例,引入知识蒸馏后,总体损失函数表示为:

其中lcls是分类损失,lloc是位置回归损失,lat是注意力转移损失;n是召回的正样本数量,α,β是平衡因子(通常设置为1.0)。

lcls分类损失包含了真实标注的硬标注损失与教师网络的软标注损失,作用于所有正负样本:

其中lhard表示学生网络分类预测输出与真实标注之间的损失距离(如交叉熵损失),lsoft表示学生网络分类预测输出与教师网络软标注之间的损失距离(如k-l散度);对于背景类,ωc设置为1.5,对于前景类,ωc设置为1.0;μ初始化为0.9、且每隔60个训练周期乘以0.5。

lloc位置回归损失包含了真实标注的smoothl1损失与教师网络的l2损失,只作用于正样本:

lloc=lsmooth_l1(rs,yloc)+vlb(rs,rt,yloc)

其中lsmooth_l1是学生网络位置回归输出与真实边框之间的smoothl1损失,lb是学生网络位置回归输出与教师网络位置回归输出之间的l2损失,v通常设置为0.5。

lat注意力转移损失用于引导教师网络与学生网络之间中间层特征的迁移:

其中分别是从教师网络与学生网络收集的第i个特征图映像,且只收集枝干网络层的特征图映像,因为学生网络的主干通过imagenet数据集的微调,已经具备较强的特征提取能力;另外

focalloss通过对前景类的分类损失乘以(1-ps)m,而对背景类的分类损失乘以能够显著减少易鉴别的简单样本的损失,其中ps表示剪枝后检测模型的前景类的预测概率,且m通常取值为2.0。对于目标检测任务而言,尤其是single-shot检测器的学习训练,通常会在训练过程中召回大量的简单负样本(背景类样本),通过引入focalloss这一调优策略,可以显著减少量多类别(背景类)的损失,让模型更关注前景类样本以及难样本的学习,有助于缓解类别不均衡问题,并提升检测精度。

示例性装置

在介绍了本发明示例性实施方式的方法之后,接下来,参考图5对本发明示例性实施方式的目标检测器的压缩装置进行说明。

图5示意性地示出了根据本发明示例性实施例的目标检测器的压缩装置500的框图。

如图5所示,目标检测器的压缩装置500包括获得模块510、划分模块520、主干剪枝模块530、主干迁移模块540以及枝干精简化模块550。

获得模块510,例如执行上文参考图2描述的操作s210,用于获得待压缩的基于深度神经网络模型的目标检测器。

划分模块520,例如执行上文参考图2描述的操作s220,用于将所述目标检测器的网络结构划分为主干部分和枝干部分,其中,用于提取特征的部分被确定为主干部分,除主干部分以外的部分被确定为枝干部分。

主干剪枝模块530,例如执行上文参考图2描述的操作s230,用于对包含与所述主干部分成分一致的分类网络,执行剪枝处理,获得剪枝处理后的基础网络。

主干迁移模块540,例如执行上文参考图2描述的操作s240,用于将所述基础网络迁移到所述目标检测器,以取代所述目标检测器的主干部分。

枝干精简化模块550,例如执行上文参考图2描述的操作s250,用于对所述目标检测器的枝干部分进行精简化处理,并对精简化处理后的目标检测器进行训练,得到压缩后的目标检测器。

根据本发明示例性实施例,在将基础网络迁移到目标检测器之前,枝干剪枝模块530还用于对所述基础网络进行训练,以优化所述基础网络中的参数。

根据本发明示例性实施例,主干剪枝模块530用于通过基于余弦调整机制的网络纤细化,对包含与所述主干部分成分一致的分类网络进行正则化处理,以及基于预定的目标剪枝率对正则化处理后的分类网络执行剪枝处理。

根据本发明示例性实施例,枝干精简化模块550可以用于在所述枝干部分包括过渡网络层的情况下,使用精简残差块结构替换所述过渡网络层,其中,所述精简残差块包括由三层网络构成的第一通路和由单层网络构成的第二通路。

根据本发明示例性实施例,枝干精简化模块550还可以用于在所述枝干部分不包括过渡网络层的情况下,在所述主干部分和所述枝干部分之间插入所述精简残差块结构。

根据本发明示例性实施例,枝干精简化模块550还可以用于按固定比例删除卷积层参数矩阵的输入/输出通道数。

根据本发明示例性实施例,枝干精简化模块550可以用于获得检测数据集,通过均衡目标采样,调整所述检测数据集的多个图像中的目标对象的尺寸,将原始目标检测器作为教师网络,将精简化处理后的目标检测器作为学生网络,通过知识蒸馏的方式对处理后的所述目标检测器进行训练,得到压缩后的目标检测器。

根据本发明示例性实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本发明示例性实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本发明示例性实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本发明示例性实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。

例如,获得模块510、划分模块520、主干剪枝模块530、主干迁移模块540以及枝干精简化模块550中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本发明的实施例,获得模块510、划分模块520、主干剪枝模块530、主干迁移模块540以及枝干精简化模块550中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,获得模块510、划分模块520、主干剪枝模块530、主干迁移模块540以及枝干精简化模块550中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。

示例性介质

在介绍了本发明示例性实施方式的系统之后,接下来,参考图6对本发明示例性实施方式的一种计算机可读存储介质进行说明。本发明示例性实施方式提供了一种计算机可读存储介质,其上存储有可执行指令,所述指令被处理单元执行时使所述处理单元执行上文所述的方法。

在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在电子设备上运行时,所述程序代码用于使所述电子设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的用于图表的数据处理方法中的步骤,例如,所述电子设备可以执行如图2中所示的步骤s210,获得待压缩的基于深度神经网络模型的目标检测器;步骤s220,将所述目标检测器的网络结构划分为主干部分和枝干部分,其中,用于提取特征的部分被确定为主干部分,除主干部分以外的部分被确定为枝干部分;步骤s230,对包含与所述主干部分成分一致的分类网络,执行剪枝处理,获得剪枝处理后的基础网络;步骤s240,将所述基础网络迁移到所述目标检测器,以取代所述目标检测器的主干部分;步骤s250,对所述目标检测器的枝干部分进行精简化处理,并对精简化处理后的目标检测器进行训练,得到压缩后的目标检测器。

所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。

如图6所示,描述了根据本发明的实施方式的程序产品600,其可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在电子设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆,rf等等,或者上述的任意合适的组合。可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言——诸如java,c++等,还包括常规的过程式程序设计语言——诸如“c”,语言或类似的程序设计语言。程序代码可以完全地在用户电子设备上执行、部分在用户电子设备上部分在远程电子设备上执行、或者完全在远程电子设备或服务器上执行。在涉及远程电子设备的情形中,远程电子设备可以通过任意种类的网络——包括局域网(lan)或广域网(wan)——连接到用户电子设备,或者,可以连接到外部电子设备(例如利用因特网服务提供商来通过因特网连接)。

示例性电子设备

在介绍了本发明示例性实施方式的方法、系统和介质之后,接下来,参考图7对本发明示例性实施方式的电子设备进行说明。

本发明实施例还提供了一种电子设备。所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。

在一些可能的实施方式中,根据本发明的电子设备可以至少包括至少一个处理单元、以及至少一个存储单元。其中,所述存储单元存储有程序代码,当所述程序代码被所述处理单元执行时,使得所述处理单元执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的目标检测器的压缩方法中的步骤。例如,所述处理单元可以执行如图2中所示的步骤s210,获得待压缩的基于深度神经网络模型的目标检测器;步骤s220,将所述目标检测器的网络结构划分为主干部分和枝干部分,其中,用于提取特征的部分被确定为主干部分,除主干部分以外的部分被确定为枝干部分;步骤s230,对包含与所述主干部分成分一致的分类网络,执行剪枝处理,获得剪枝处理后的基础网络;步骤s240,将所述基础网络迁移到所述目标检测器,以取代所述目标检测器的主干部分;步骤s250,对所述目标检测器的枝干部分进行精简化处理,并对精简化处理后的目标检测器进行训练,得到压缩后的目标检测器。

下面参照图7来描述根据本发明的这种实施方式的目标检测器的压缩电子设备700。如图7所示的电子设备700仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图7所示,电子设备700以通用电子设备的形式表现。电子设备700的组件可以包括但不限于:上述至少一个处理单元710、上述至少一个存储单元720、连接不同系统组件(包括存储单元720和处理单元710)的总线730。

总线730包括数据总线、地址总线和控制总线。

存储单元720可以包括易失性存储器,例如随机存取存储器(ram)721和/或高速缓存存储器722,还可以进一步包括只读存储器(rom)723。

存储单元720还可以包括具有一组(至少一个)程序模块724的程序/实用工具725,这样的程序模块724包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。

电子设备700也可以与一个或多个外部设备740(例如键盘、指向设备、蓝牙设备等)通信,这种通信可以通过输入/输出(i/o)接口750进行。并且,电子设备700还可以通过网络适配器760与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器760通过总线730与电子设备700的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备700使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。

应当注意,尽管在上文详细描述中提及了目标检测器的压缩系统的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。

此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。

虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1