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

目标检测模型的网络结构搜索方法、目标检测方法和装置

文献发布时间:2023-06-19 19:30:30


目标检测模型的网络结构搜索方法、目标检测方法和装置

技术领域

本申请涉及人工智能领域,更具体地,涉及一种目标检测模型的网络结构搜索方法、目标检测方法和装置。

背景技术

通过网络结构搜索能够从搜索空间中搜索得到性能较优的网络结构,从而自动生成神经网络结构。网络结构搜索的方法包括多种,例如用于目标检测的神经架构搜索(Detection Neural architecture search,DetNAS)、神经架构搜索(NeuralArchitecture Search,NAS)-特征金字塔网络(Feature Pyramid Networks,FPN)等。但是,目前网络结构搜索过程复杂,时间开销大。

发明内容

本申请实施例提供一种目标检测模型的网络结构搜索方法、目标检测方法和装置,可以快速搜索到所需的目标检测模型的网络结构。

本申请实施例提供一种目标检测模型的网络结构搜索方法,包括:

采用样本集合对第一目标检测模型的权重参数和结构参数进行交叉迭代训练,得到收敛的结构参数;

根据该收敛的结构参数对该第一目标检测模型进行网络结构搜索,得到第二目标检测模型;其中,该第二目标检测模型中包括该第一目标检测模型中部分的层内算子和/或层间连接。

本申请实施例提供一种目标检测方法,应用于终端设备,该目标检测方法包括:

将待处理图像输入搜索得到的目标检测模型,得到该待处理图像中的目标检测结果;

其中,该搜索得到的目标检测模型包括采用上述目标检测模型的网络结构搜索方法得到的第二目标检测模型。

本申请实施例提供一种目标检测模型的网络结构搜索装置,包括:

训练单元,用于采用样本集合对第一目标检测模型的权重参数和结构参数进行交叉迭代训练,得到收敛的结构参数;

搜索单元,用于根据该收敛的结构参数对该第一目标检测模型进行网络结构搜索,得到第二目标检测模型;其中,该第二目标检测模型中包括该第一目标检测模型中部分的层内算子和/或层间连接。

本申请实施例提供一种目标检测装置,应用于终端设备,该目标检测装置包括:

输入单元,用于将待处理图像输入搜索得到的目标检测模型,得到该待处理图像中的目标检测结果;

其中,该搜索得到的目标检测模型包括采用上述目标检测模型的网络结构搜索装置得到的第二目标检测模型。

本申请实施例提供一种电子设备,包括处理器和存储器。该存储器用于存储计算机程序,该处理器用于调用并运行该存储器中存储的计算机程序,以使该电子设备执行本申请实施例中的目标检测模型的网络结构搜索方法和/或目标检测方法。

本申请实施例提供一种芯片,用于实现上述的目标检测模型的网络结构搜索方法和/或目标检测方法。

具体地,该芯片包括:处理器,用于从存储器中调用并运行计算机程序,使得安装有该芯片的设备执行本申请实施例中的目标检测模型的网络结构搜索方法和/或目标检测方法。

本申请实施例提供一种计算机可读存储介质,用于存储计算机程序,当该计算机程序被设备运行时使得该设备执行本申请实施例中的目标检测模型的网络结构搜索方法和/或目标检测方法。

本申请实施例提供一种计算机程序产品,包括计算机程序指令,该计算机程序指令使得计算机执行本申请实施例中的目标检测模型的网络结构搜索方法和/或目标检测方法。

本申请实施例提供一种计算机程序,当其在计算机上运行时,使得计算机执行本申请实施例中的目标检测模型的网络结构搜索方法和/或目标检测方法。

本申请实施例,可以在目标检测模型的层内算子和/或层间连接中快速搜索,从而快速搜索到所需的目标检测模型的网络结构。

附图说明

图1是根据本申请一实施例的目标检测模型的网络结构搜索方法的示意性流程图。

图2是根据本申请实施例中第一目标网络模型的结构示意图。

图3是根据本申请实施例中混合算子的示意图。

图4是根据本申请实施例中特征金字塔网络的示意图。

图5是根据本申请另一实施例的目标检测模型的网络结构搜索方法的示意性流程图。

图6是根据本申请另一实施例的目标检测模型的网络结构搜索方法的示意性流程图。

图7是根据本申请另一实施例的目标检测模型的网络结构搜索方法的示意性流程图。

图8是根据本申请一实施例的目标检测方法的示意性流程图。

图9是根据本申请一实施例的第一目标检测模型的整体框架的示意图。

图10是根据本申请一实施例的MixOP的示意图。

图11是根据本申请一实施例的残差块的示意图。

图12是根据本申请一实施例的可分离块的示意图。

图13是根据本申请一实施例的卷积块的示意图。

图14是根据本申请一实施例的FPN拓扑结构的示意图。

图15是根据本申请一实施例的目标检测模型的网络结构搜索装置的示意性结构图。

图16是根据本申请另一实施例的目标检测模型的网络结构搜索装置的示意性结构图。

图17是根据本申请一实施例的目标检测装置的示意性结构图。

图18是根据本申请一实施例的电子设备的示意性框图。

图19是根据本申请一实施例的芯片的示意性框图。

具体实施方式

下面详细描述本申请的实施方式,该实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本申请,而不能理解为对本申请的限制。

在本申请的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请的描述中,“多个”的含义是两个或两个以上,除非另有明确具体地限定。

应理解,本文中术语“系统”和“网络”在本文中常被可互换使用。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。

在本申请实施例的描述中,术语“对应”可表示两者之间具有直接对应或间接对应的关系,也可以表示两者之间具有关联关系,也可以是指示与被指示、配置与被配置等关系。

为便于理解本申请实施例的技术方案,以下对本申请实施例的相关技术进行说明,以下相关技术作为可选方案与本申请实施例的技术方案可以进行任意结合,其均属于本申请实施例的保护范围。

DetNAS是一种搜索物体检测主干网络(Backbone)的方法,基于ShuffleNetv2设计搜索块(block)。ShuffleNetv2是一种高效轻量级的卷积网络架构,包含通道分离(channelsplit)与通道随机混合(channel shuffle)操作。

例如,DetNAS可以包括以下步骤:

1.在ImageNet(一种图像数据库)上预训练超网(SuperNet)。采用逐路径方案,在每次迭代过程中,只有单个路径会被采样进行前馈与反馈传播,该过程中超网图上的其他路径或节点的梯度与权重都不会进行更新。

2.在检测数据集上微调超网。该过程也是以逐路径方式进行。将预训练好的超网上加上检测头(head),在目标检测数据集下进行训练。

3.用进化算法在超网上进行搜索。在搜索过程中,不同的子网络会在超网中逐路径进行采样,并进行训练评估。

NAS-FPN是针对检测FPN的搜索方法,使用强化学习在给定搜索空间中选择最佳的FPN架构。NAS-FPN的目标是更好地学习可扩展FPN结构,用于目标检测。在一个覆盖所有交叉尺度连接的可扩展搜索空间中,采用神经网络结构搜索发现更好的FPN架构。在本文中,“架构”也可以称为结构,神经架构搜索也可以称为神经结构搜索、神经网络结构搜索、网络结构搜索、网络架构搜索等。

大多数可微分架构搜索(Differentiable Architecture Search)方法在检测类模型的搜索任务上,存在如下特点:

1.只针对主干网络(Backbone)、FPN中的一个进行搜索。

2.如果以多节点的单元(cell)作为搜索目标,堆叠形成Backbone或FPN,单元的多节点例如多算子会显著增加数据搬运开销。

3.使用进化算法或强化学习进行搜索优化算法,时间开销大。

图1是根据本申请一实施例的目标检测模型的网络结构搜索方法100的示意性流程图。该方法可以在服务器例如云端执行。该方法包括以下内容的至少部分内容。

S110、采用样本集合对第一目标检测模型的权重参数和结构参数进行交叉迭代训练,得到收敛的结构参数;

S120、根据该收敛的结构参数对该第一目标检测模型进行网络结构搜索,得到第二目标检测模型;其中,该第二目标检测模型中包括该第一目标检测模型中部分的层内算子和/或层间连接。

在本申请实施例中,可以将第一目标检测模型的网络结构作为搜索空间,在该搜索空间的候选网络结构中搜索得到较优的候选网络结构作为第二目标检测模型。第一目标检测模型可以包括多层。一层内可以包括多个候选算子,多层之间可以包括多种连接。对第一目标检测模型的权重参数和结构参数进行交叉迭代训练后,可以基于收敛的结构参数对该第一目标检测模型的层内算子和/或层间连接进行搜索,可以快速确定所需的层内算子和/或层间连接,从而快速搜索到所需的目标检测模型的网络结构。与采用多节点例如多算子堆叠形成搜索空间相比,层内算子和/或层间连接能够降低搜索空间的复杂度,从而减少数据搬运开销,加快搜索速度。

在本申请实施例中,采用目标检测模型的网络结构搜索方法得到的第二目标检测模型,可以检测目标包括多种,例如图像或视频中的编码图形、人物、物体等目标。编码图形可以包括二维码、条形码等。

在一种实施方式中,该第一目标检测模型包括输入层、主干网络、特征金字塔网络和头部网络;

其中,该主干网络包括多个主干网络层,一个主干网络层连接该输入层,另一个主干网络层连接该特征金字塔网络;

该特征金字塔网络包括多个搜索层和多个上采样层,每个搜索层与每个上采样层两两相连,每个上采样层连接该头部网络。

在本申请实施例中,输入层可以包括一个或多个卷积块。例如,输入层包括一个卷积核大小和空洞大小固定的卷积块。如图2所示,输入层可以连接主干(Backbone)网络,具体可以连接主干网络的第一个主干网络层。主干网络的最后一个主干网络层可以连接FPN,具体可以连接FPN的第一个搜索层。

在一种实施方式中,一个主干网络层包括至少两个混合算子,一个搜索层包括至少一个混合算子,每个混合算子中包括多个候选算子,每个候选算子具有对应的第一结构参数。

在一些示例中,一个主干网络层可以由两个混合算子堆叠而成,这两个混合算子,一个可以用于特征提取,一个可以用于下采样。这两个混合算子的步幅(stride)可以不同。例如,混合算子MixOP1的步幅为1,用于特征提取;混合算子MixOP2的步幅为2,用于下采样。再如,混合算子MixOP1的步幅为1,用于特征提取;混合算子MixOP2的步幅为4,用于下采样。上述示例中,步幅为1可以使得图像特征的高度h和宽度w不变,步幅为2可以使得图像特征的h和w分别减半,步幅为4可以使得图像特征的h和w分别除以4。

在一些示例中,如果主干网络包括3个主干网络层,一个主干网络层具有2个混合算子,则该主干网络总共具有6个混合算子。如果主干网络包括5个主干网络层,一个主干网络层具有3个混合算子,则该主干网络总共具有15个混合算子。

在一些示例中,一个混合算子包括的候选算子的数量可以基于混合算子包括的网络结构确定。一个候选算子可以具有一个对应的第一结构参数。一个混合算子的所有候选算子的第一结构参数可以等于1,这种情况下候选算子对应的第一结构参数也可以理解为该候选算子的结构权重。

在一种实施方式中,该混合算子由多种类型的候选算子融合而成;

该混合算子中包括残差块的N1个候选算子、可分离块的N2个候选算子和卷积块的N3个候选算子,其中,N1、N2和N3为正整数;

该混合算子的输出特征根据该混合算子包括的每个候选算子及其对应的第一结构参数得到。

在本申请实施例中,混合算子中可以包括残差块、可分离块和卷积块的一种或多种。其中,可分离块也可以称为可分离卷积块。根据残差块、可分离块和卷积块的网络结构,可以得到残差块、可分离块和卷积块各自的候选算子。

在一种实施方式中,该混合算子的输出特征基于该混合算子包括的每个候选算子的输出特征融合确定,其中,一个候选算子的输出特征等于该候选算子的输入特征乘该候选算子对应的第一结构参数的激活值。例如,第l层候选算子o的输入特征可以等于第l-1层候选算子o的输出特征。

在一些示例中,如果混合算子包括残差块的N1个候选算子、可分离块的N2个候选算子和卷积块的N3个候选算子,该混合算子的输出特征基于N1个候选算子、可分离块的N2个候选算子和卷积块的N3个候选算子的输出特征融合确定。如果一个候选算子o

在一种实施方式中,参见图3,该残差块中包括第一卷积层、第一深度卷积层和第二卷积层,该残差块中的候选算子的数量N1根据该第一深度卷积层的卷积核大小、空洞大小和通道比例确定。

在一种实施方式中,参见图3,该可分离块中包括第二卷积层和第二深度卷积层,该可分离块中的候选算子的数量N2根据该第二深度卷积层的卷积核大小和空洞大小确定。

在一种实施方式中,参见图3,该卷积块中包括第三卷积层,该卷积块中的候选算子的数量N3根据该第三卷积层的卷积核大小和空洞大小确定。

在一些示例中,混合算子中的残差块可以自上而下包括第一卷积层、第一深度卷积层和第二卷积层。其中,第一卷积层和第二卷积层可以是单层的,第一深度卷积层可以是多层的。残差块中的候选算子的数量N1可以主要根据第一深度卷积层确定。例如,如果第一深度卷积层的卷积核大小为k1、空洞大小为d1,并且通道比例为r1,则可以根据N1=k1×d1×r1,计算残差块中的候选算子的数量。

在一些示例中,混合算子中的可分离块可以自上而下包括第二深度卷积层和第二卷积层。其中,第二卷积层可以是单层的,第二深度卷积层可以是多层的。可分离块中的候选算子的数量N2可以主要根据该第二深度卷积层确定。例如,如果第二深度卷积层的卷积核大小为k2,并且空洞大小为d2,则可以根据N2=k2×d2,计算可分离块中的候选算子的数量。

在一些示例中,混合算子中卷积块的第三卷积层可以是多层的。卷积块中的候选算子的数量N3可以主要根据该第三卷积层确定。例如,如果第三卷积层的卷积核大小为k3,并且空洞大小为d3,则可以根据N3=k3×d3,计算卷积块中的候选算子的数量。

根据上述示例,混合算子中候选算子的总数的计算公式可以为N=N1+N2+N3=k1×d1×r1+k2×d2+k3×d3。一个混合算子可以将其内部的候选算子的计算结果融合例如相加,得到融合计算结果。

在一种实施方式中,该特征金字塔网络的每个搜索层与每个上采样层之间的连接具有对应的第二结构参数。

在本申请实施例中,如图4所示,特征金字塔网络可以包括A个搜索层和B个上采样层。A和B的数量可以相同,也可以不同。A个搜索层自上而下包括C

在一种实施方式中,该特征金字塔网络的上采样层的输入特征包括以下至少之一:

在该搜索层的层数等于该上采样层的层数的情况下,采用单层卷积层乘该搜索层与该上采样层的连接对应的第二结构参数的激活值,将该搜索层的输出特征映射到该上采样层的输入特征;

在该搜索层的层数小于该上采样层的层数的情况下,采用多层卷积层乘该搜索层与该上采样层的连接对应的第二结构参数的激活值,将该搜索层的输出特征降采样到该上采样层的输入特征;

在该搜索层的层数大于该上采样层的层数的情况下,采用双线性调整层乘该搜索层与上采样层的连接对应的第二结构参数的激活值,将该搜索层的输出特征上采样到该上采样层的输入特征。

例如,如果搜索层为C

再如,如果搜索层为C

再如,如果搜索层为C

在一种实施方式中,该特征金字塔网络的每个上采样层分别连接该头部网络的检测框分类器和检测框回归器。

如图2所示,第一目标检测模型的头部网络可以包括检测框分类器(box_classifier)和检测框回归器(box_regressor)。检测框分类器和检测框回归器可以包括卷积层。检测框分类器和检测框回归器包括的卷积层的参数例如卷积核大小和/或步幅,可以相同,也可以不同。

在本申请实施例中,可以第一目标检测模型的主干网络和特征金字塔网络内都可以包括层内的候选算子,特征金字塔网络还可以包括层间的候选连接。因此,基于第一目标检测模型形成的搜索空间搜索网络结构,可以对主干网络和特征金字塔网络均进行搜索,得到更多可能的网络结构。

在本申请实施例中,混合算子可以融合残差块、可分离块和卷积块等多种类型的网络结构,实现多尺度融合建模,得到更多的特征融合可能性。

图5是根据本申请另一实施例的目标检测模型的网络结构搜索方法500的示意性流程图。在一种实施方式中,S110采用样本集合对第一目标检测模型的权重参数和结构参数进行交叉迭代训练,得到收敛的结构参数,包括:迭代地执行以下操作,直至得到该收敛的结构参数:

S510、固定权重参数,并采用第一样本集合对该第一目标检测模型的结构参数进行至少一次训练;

S520、固定结构参数,并采用第二样本集合对该第一目标检测模型的权重参数进行至少一次训练。

在本申请实施例中,样本集合中可以包括若干的已标注的图像样本。已标注的图像样本中可以包括需要检测的目标例如编码图形、人物、物体等是否存在,以及该目标的位置等。第一样本集合和第二样本集合可以是总样本集合的子集。第一样本集合和第二样本集合中的图像样本可以不重叠。

在一些示例中,在迭代过程中,可以先执行S510,再基于S510的结果执行S520,然后再基于S520的结果执行S510,依次类推,直到结构参数收敛后停止迭代。

在一些示例中,在迭代过程中,可以先执行S520,再基于S520的结果执行S510,然后再基于S510的结果执行S520,依次类推,直到结构参数收敛后停止迭代。

当然,也可以设置迭代次数,通过迭代次数控制停止迭代的时机,并且将停止迭代后得到结构参数作为收敛的结构参数。

在S510中,主干网络和FPN中的权重参数w不变,采用第一样本集合,并采用随机梯度下降法(Stochastic Gradient Descent,SGD)对主干网络和FPN的结构参数α进行优化。该优化过程可以包括对结构参数的一次训练过程,也可以包括对结构参数的多次训练过程。在对结构参数的多次训练过程中,每一次训练过程的梯度可以直接用于结构参数的更新,也可以根据多次训练的梯度累计后,再对结构参数进行更新。基于执行S510后的主干网络和FPN中的权重参数和结构参数,执行S520。

在S520中,主干网络和FPN中的结构参数α不变,采用第一样本集合,并采用随机梯度下降法对主干网络和FPN的权重参数w进行优化。该优化过程可以包括对权重参数的一次训练过程,也可以包括对权重参数的多次训练过程。在对权重参数的多次训练过程中,每一次训练过程的梯度可以直接用于权重参数的更新,也可以根据多次训练的梯度累计后,再对权重参数进行更新。基于执行S520后的主干网络和FPN中的权重参数和结构参数,执行S510。

图6是根据本申请另一实施例的目标检测模型的网络结构搜索方法600的示意性流程图。该实施例的方法可以包括上述实施例的方法中一个或多个特征。在一种实施方式中,S120根据该结构参数对该第一目标检测模型进行网络结构搜索,得到第二目标检测模型,包括:

S610、根据该层内算子对应的第一结构参数,删除该第一目标检测模型的层内的混合算子中的部分候选算子;其中,一个混合算子中保留至少一个候选算子。

在本申请实施例中,结构参数可以包括层内的混合算子对应第一结构参数,以及层间连接对应的第二结构参数。利用层内的混合算子对应第一结构参数可以对层内的混合算子进行搜索。

根据训练完成后第一目标检测模型的层内的混合算子对应的第一结构参数,可以从一个混合算子的多个候选算子中删除部分候选算子,保留部分候选算子作为第二目标检测模型的一部分。例如,可以保留一个混合算子中第一结构参数最大的候选算子,删除其余候选算子。再如,可以保留一个混合算子中第一结构参数最大和次大的候选算子,删除其余候选算子。再如,可以保留一个混合算子中第一结构参数从大到小的多个例如3个候选算子,删除其余候选算子。如果仅保留混合算子中的少量候选算子,例如仅保留一个候选算子,能够使得第二目标检测模型的结构更加轻量化,便于将第二目标检测模型部署到终端设备例如移动端上使用,能够减少模型复杂度,提高模型运行速度。

在一种实施方式中,根据该层内算子对应的第一结构参数,删除该第一目标检测模型的层内的混合算子中的部分候选算子,包括以下至少之一:

方式一:根据该第一目标检测模型的主干网络层的第一混合算子的第一结构参数,删除该第一混合算子中的部分候选算子后,至少保留该第一混合算子中第一结构参数最大的候选算子。

方式二:根据该第一目标检测模型的主干网络层的第二混合算子的第一结构参数,删除该第二混合算子中的部分候选算子后,至少保留该第二混合算子中第一结构参数最大的候选算子。

方式三:根据该第一目标检测模型的特征金字塔网络的搜索层的第三混合算子的第一结构参数,删除该第三混合算子中的部分候选算子后,至少保留该第三混合算子中第一结构参数最大的候选算子。

在本申请实施例中,主干网络的主干网络层和特征金字塔网络的搜索层内可以包括一个或多个混合算子,可以分别对这些混合算子进行搜索。

在一些示例中,如果一个主干网络层包括一个混合算子,可以对该混合算子进行搜索,删除该混合算子中的部分候选算子,保留混合算子中所需的候选算子。如果一个主干网络层包括两个或更多个混合算子,可以分别对这两个或更多个混合算子进行搜索,删除混合算子中的部分候选算子,保留混合算子中所需的候选算子。

在本申请实施例中,能够对主干网络和特征金字塔网络的混合算子进行搜索,搜索得到的目标检测模型的拓扑结构包括的算子具有更多的可能性。

图7是根据本申请另一实施例的目标检测模型的网络结构搜索方法700的示意性流程图。该实施例的方法可以包括上述实施例的方法中一个或多个特征。在一种实施方式中,S120根据该结构参数对该第一目标检测模型进行网络结构搜索,得到第二目标检测模型,包括:

S710、根据该层间连接对应的第二结构参数,删除该第一目标检测模型的特征金字塔网络中搜索层与上采样层之间的部分连接。

在本申请实施例中,结构参数可以包括层内的混合算子对应第一结构参数,以及层间连接对应的第二结构参数。利用层间连接对应第二结构参数可以对特征金字塔网络中的层间连接进行搜索。

在一种实施方式中,根据该层间连接对应的第二结构参数,删除该第一目标检测模型的特征金字塔网络中搜索层与上采样层之间的部分连接,包括:

根据多个搜索层与一个上采样层之间的连接对应的第二结构参数,删除该多个搜索层与该一个上采样层之间的部分连接,至少保留该多个搜索层与该一个上采样层之间的第二结构参数最大的连接。

例如,FPN包括A个搜索层和B个上采样层。其中A个搜索层与一个上采样层之间具有A个连接。每个连接具有一个第二结构参数。针对该上采样层可以仅保留第二结构参数最大的连接,也可以仅保留第二结构参数最大和次大的连接,也可以仅保留第二结构参数从大到小的多个例如3个的连接。如果仅保留搜索层与上采样层之间的少量连接,例如仅保留一个输入上采样层的连接,能够使得第二目标检测模型的结构更加轻量化,便于将第二目标检测模型部署到终端设备例如移动端上使用,能够减少模型复杂度,提高模型运行速度。

图8是根据本申请一实施例的目标检测方法800的示意性流程图。该方法包括以下内容的至少部分内容。

S810、将待处理图像输入搜索得到的目标检测模型,得到该待处理图像中的目标检测结果;

其中,该搜索得到的目标检测模型包括采用上述目标检测模型的网络结构搜索方法得到的第二目标检测模型。具体地网络结构搜索方法可以参见上述方法100、500、600以及700的中关于的相关描述,为了简洁,在此不再赘述。

在本申请实施例中,该搜索得到的目标检测模型可以部署到终端设备例如移动端上。该目标检测方法可以由移动端执行。由于该搜索得到的目标检测模型结构更加轻量化,能够减少模型复杂度,提高移动端模型运行速度,提高目标检测速度。在一些示例中,如果需要检测目标是图像中的二维码,本申请实施例的目标检测方法可以适用于移动端快速扫码功能。

本申请实施例的网络结构搜索方法中的第一目标检测模型的网络的整体框架的示例如图9所示。该网络的整体框架是一种适用于移动端快速扫码功能的网络自动搜索框架。基于该网络的整体框架可以实现对主干网络(Backbone)和FPN的自动搜索。

1.整体框架:

网络接收一张图像作为输入(input),第一层的块0(block0)可以对图像(image)进行初步的映射。例如,block0可以为一个固定卷积核大小(kernel size)、空洞(dilation)等参数的卷积(convolution)层。模块B1、B2、B3组成网络的主干网络(Backbone)。Backbone中的每个模块可以由多个例如两个混合算子(Mix Operator,MixOP)堆叠而成,MixOP的步幅(stride)可以分别是1和2。MixOP的具体拆解见后文描述。

搜索层C1-C6和上采样层M1-M6组成网络的FPN。C1-C6中每个模块由一个MixOP组成,C和M两两相连(例如,C

上采样层M1-M6的数据分别送入头部网络(Head)部分的检测框分类器(box_classifier)和检测框回归器(box_regressor)以改变形状(Reshape)。例如,检测框分类器和检测框回归器二者可以均为kernel size=3、stride=1的卷积层(convolutionlayer),参见图9中的Conv3×3_s1。检测框分类器通过焦点损失(Focal_loss)进行损失计算,检测框回归器通过平滑损失(Smooth_l1)进行损失计算。

2.MixOP:

一种示例的MixOP可以由30种候选算子融合而成,这些算子可以归为三种类型,分别是残差块(Residual block)、可分离块(Separable block)和卷积块(Convolutionblock)。按照不同卷积核大小(kernel size)、空洞(dilation)等参数设置块(block),可以最终形成30种候选算子。其中,算子参数可以保持较小值,有利于得到移动端友好型的网络结构。本示例中候选算子数量可以随着网络结构的变化而改变,具体数值不做限定。

如图10所示,残差块(Residual block)可以由1×1卷积(convolution)、k×k深度卷积(depthwise convolution)、1×1卷积(convolution)堆叠而成。若残差块的输入(input)与输出(output)的形状(shape)相同,则可以进行加法(add)运算。残差块的可变参数可以包括kernel size、dilation、信道速率(channel rate)等,可分别用k、d、r来指代。其中,k表示中间层即k×k深度卷积的卷积核大小,d表示中间层的dilation大小,channelrate表示中间层通道(channel)占第一层1×1卷积的通道的比例。例如,k=[1,3],d=[1,2,3],r=[0.25,0.5,0.75],则残差块共有2×3×3=18种候选算子。

如图11所示,可分离块可以由k×k深度卷积(depthwise convolution)、1×1卷积(convolution)堆叠而成。若可分离块的输入与输出的形状(shape)相同,则进行加法运算。可分离块的可变参数可以包括kernel size、dilation,可分别用k、d来指代,含义参考残差块。例如,k=[1,3],d=[1,2,3],则可分离块共有2×3=6种候选算子。

如图12所示,卷积块(Convolution block)由一个k×k卷积(convolution)组成。若卷积块输入与输出的形状相同,则进行加法运算。卷积块的可变参数可以包括kernelsize、dilation,可用k、d来指代,含义参考残差块。例如,k=[1,3],d=[1,2,3],则卷积块共有2×3=6种候选算子。

上述的图10至图12中,1×1(group)Conv表示1×1卷积可以为分组卷积,k×k(Dilated)DWConv表示k×k深度卷积可以为空洞卷积。k×k(Dilated)Conv表示k×k卷积可以为空洞卷积。BN表示批归一化(BatchNormalization,BN),ReLU表示修正线性单元(Rectified Linear Unit,ReLU)。

综上,不同参数下,三种块共可形成N=18+6+6=30种候选算子,每个候选算子具有单独的权重α,即结构参数α

MixOP的融合计算结果xl可由下式表示,其中o表示单个候选算子,O

3.FPN:多尺度特征融合搜索

FPN的搜索不仅可以包括MixOP对候选算子的搜索,还可以包括对多尺度特征融合方式的搜索。传统的FPN为相邻尺度间进行特征融合,本申请实施例提出的特征融合搜索可以包含跨尺度特征融合,使得模型拓扑结构拥有更多的可能性。

如图14所示,以C1-C6、M1-M6组成网络的FPN拓扑结构为例,C和M两两相连(例如,C

当m=n时,可以使用1×1Convolution乘以经过激活层(softmax)激活的α

当m<n时,可以使用3×3Convolution乘以经过softmax激活的α

当m>n时,可以使用双线性调整(BILINEAR Resize)乘以经过softmax激活的α

4.优化方法&&保留策略

优化方法:由于权重参数w与结构参数α均可导,所以采用梯度优化(GradientOptimization)结合二次优化的方法对参数进行优化,具体过程如下:

a.基于验证集,固定权重参数w,采用随机梯度下降法(Stochastic GradientDescent,SGD)对结构参数α进行优化。

b.基于训练集,固定结构参数α,采用随机梯度下降法(Stochastic GradientDescent,SGD)对权重参数w进行优化。

c.不断重复上述a和b的交叉迭代过程,直至收敛得到最终的结构参数α。

保留策略:

a.包含MixOP的B1-B3、C1-C6,保留每个MixOP中结构参数α最大的候选算子,删除其余候选算子。

b.C1-C6、M1-M6中C和M两两相连组成的FPN拓扑结构,对每个M的多个输入,保留结构参数α最大的输入连接,删除其余的输入连接。

通过上述保留策略,得到搜索结果模型。使用该搜索结果模型可以进行目标检测,例如在移动端利用搜索结构模型识别图像中是否包括二维码。

本申请实施例提出的网络结构搜索方法是一种可微分的搜索方法,可以对Backbone、FPN同时进行搜索,且包括对FPN的多尺度特征融合方式,有利于降低移动端的开销。并且,采用轻量级参数的块(block)作为Backbone、FPN的基础组件,可快速搜索出适用于移动端的目标检测模型例如扫码网络模型。因此,本申请实施例的方案能够自动搜索移动端快速扫码网络的模型结构,能够对FPN进行多尺度融合建模,提升多尺度融合性能。

图15是根据本申请一实施例的目标检测模型的网络结构搜索装置1500的示意性结构图。该目标检测模型的网络结构搜索装置1500可以包括:

训练单元1510,用于采用样本集合对第一目标检测模型的权重参数和结构参数进行交叉迭代训练,得到收敛的结构参数;

搜索单元1520,用于根据该收敛的结构参数对该第一目标检测模型进行网络结构搜索,得到第二目标检测模型;其中,该第二目标检测模型中包括该第一目标检测模型中部分的层内算子和/或层间连接。

图16是根据本申请另一实施例的目标检测模型的网络结构搜索装置1600的示意性结构图。该装置1600可以包括装置1500的一个或多个特征,在一种实施方式中,该训练单元1610,包括:

迭代子单元1610,用于迭代地执行以下操作,直至得到该收敛的结构参数:

第一训练子单元1620,用于固定权重参数,并采用第一样本集合对该第一目标检测模型的结构参数进行至少一次训练;

第二训练子单元1630,用于固定结构参数,并采用第二样本集合对该第一目标检测模型的权重参数进行至少一次训练。

在一种实施方式中,如图16所示,该搜索单元1520,包括:

第一删除子单元1640,用于根据该层内算子对应的第一结构参数,删除该第一目标检测模型的层内的混合算子中的部分候选算子;其中,一个混合算子中保留至少一个候选算子。

在一种实施方式中,该第一删除子单元1640,还用于以下至少之一:

根据该第一目标检测模型的主干网络层的第一混合算子的第一结构参数,删除该第一混合算子中的部分候选算子后,至少保留该第一混合算子中第一结构参数最大的候选算子;

根据该第一目标检测模型的主干网络层的第二混合算子的第一结构参数,删除该第二混合算子中的部分候选算子后,至少保留该第二混合算子中第一结构参数最大的候选算子;

根据该第一目标检测模型的特征金字塔网络的搜索层的第三混合算子的第一结构参数,删除该第三混合算子中的部分候选算子后,至少保留该第三混合算子中第一结构参数最大的候选算子。

在一种实施方式中,如图16所示,该搜索单元1520,还包括:

第二删除子单元1650,用于根据该层间连接对应的第二结构参数,删除该第一目标检测模型的特征金字塔网络中搜索层与上采样层之间的部分连接。

在一种实施方式中,该第二删除子单元1650,还用于:

根据多个搜索层与一个上采样层之间的连接对应的第二结构参数,删除该多个搜索层与该一个上采样层之间的部分连接,至少保留该多个搜索层与该一个上采样层之间的第二结构参数最大的连接。

在一种实施方式中,该第一目标检测模型包括输入层、主干网络、特征金字塔网络和头部网络;

其中,该主干网络包括多个主干网络层,一个主干网络层连接该输入层,另一个主干网络层连接该特征金字塔网络;

该特征金字塔网络包括多个搜索层和多个上采样层,每个搜索层与每个上采样层两两相连,每个上采样层连接该头部网络。

在一种实施方式中,一个主干网络层包括至少两个混合算子,一个搜索层包括至少一个混合算子,每个混合算子中包括多个候选算子,每个候选算子具有对应的第一结构参数。

在一种实施方式中,该混合算子由多种类型的候选算子融合而成;

该混合算子中包括残差块的N1个候选算子、可分离块的N2个候选算子和卷积块的N3个候选算子,其中,N1、N2和N3为正整数;

该混合算子的输出特征根据该混合算子包括的每个候选算子及其对应的第一结构参数得到。

在一种实施方式中,该混合算子的输出特征基于该混合算子包括的每个候选算子的输出特征融合确定,其中,一个候选算子的输出特征等于该候选算子的输入特征乘该候选算子对应的第一结构参数的激活值。

在一种实施方式中,该残差块中包括第一卷积层、第一深度卷积层和第二卷积层,该残差块中的候选算子的数量N1根据该第一深度卷积层的卷积核大小、空洞大小和通道比例确定;

该可分离块中包括第二卷积层和第二深度卷积层,该可分离块中的候选算子的数量N2根据该第二深度卷积层的卷积核大小和空洞大小确定;

该卷积块中包括第三卷积层,该卷积块中的候选算子的数量N3根据该第三卷积层的卷积核大小和空洞大小确定。

在一种实施方式中,该特征金字塔网络的每个搜索层与每个上采样层之间的连接具有对应的第二结构参数。

在一种实施方式中,该特征金字塔网络的上采样层的输入特征包括以下至少之一:

在该搜索层的层数等于该上采样层的层数的情况下,采用单层卷积层乘该搜索层与该上采样层的连接对应的第二结构参数的激活值,将该搜索层的输出特征映射到该上采样层的输入特征;

在该搜索层的层数小于该上采样层的层数的情况下,采用多层卷积层乘该搜索层与该上采样层的连接对应的第二结构参数的激活值,将该搜索层的输出特征降采样到该上采样层的输入特征;

在该搜索层的层数大于该上采样层的层数的情况下,采用双线性调整层乘该搜索层与上采样层的连接对应的第二结构参数的激活值,将该搜索层的输出特征上采样到该上采样层的输入特征。

在一种实施方式中,该特征金字塔网络的每个上采样层分别连接该头部网络的检测框分类器和检测框回归器。

图17是根据本申请一实施例的目标检测装置1700的示意性结构图。该目标检测装置1700可以包括:

输入单元1710,用于将待处理图像输入搜索得到的目标检测模型,得到该待处理图像中的目标检测结果;

其中,该搜索得到的目标检测模型包括采用上述目标检测模型的网络结构搜索装置得到的第二目标检测模型。上述目标检测模型的网络结构搜索装置执行的上述目标检测模型的网络结构搜索方法可以参见上述网络结构搜索方法实施例的相关描述。

在本申请实施例中,上述装置的各单元可以是以软件,或硬件,或软件与硬件相结合的形式实现各单元的功能。在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其他的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其他的形式。

作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

图18示出了本申请一个示例性实施例提供的电子设备的结构方框图。本申请中的电子设备可以包括一个或多个如下部件:处理器1810和存储器1820。其可以实现成为上述实施例中的服务器或终端设备。

处理器1810可以包括一个或者多个处理核心。处理器1810利用各种接口和线路连接整个电子设备内的各个部分,通过运行或执行存储在存储器1820内的指令、程序、代码集或指令集,以及调用存储在存储器1820内的数据,执行电子设备的各种功能和处理数据。可选地,处理器1810可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器1810可集成中央处理器(CentralProcessing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)、神经网络处理器(Neural-network Processing Unit,NPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责触摸显示屏所需要显示的内容的渲染和绘制;NPU用于实现人工智能(Artificial Intelligence,AI)功能;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器1810中,单独通过一块芯片进行实现。

存储器1820可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory,ROM)。可选地,该存储器1820包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器1820可用于存储指令、程序、代码、代码集或指令集。存储器1820可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等;存储数据区可存储根据电子设备的使用所创建的数据(比如音频数据、电话本)等。

此外,电子设备还可以包括显示组件1830,该显示组件1830可以包括用于进行画面显示的显示屏。

除此之外,本领域技术人员可以理解,上述附图所示出的电子设备的结构并不构成对电子设备的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。比如,电子设备中还包括射频电路、输入单元、传感器、音频电路、扬声器、麦克风、电源等部件,在此不再赘述。

图19是根据本申请实施例的芯片1900的示意性结构图。该芯片1900包括处理器1910,处理器1910可以从存储器中调用并运行计算机程序,以实现本申请实施例中的方法。

在一种实施方式中,芯片1900还可以包括存储器1920。其中,处理器1910可以从存储器1920中调用并运行计算机程序,以实现本申请实施例中由终端设备或者服务器执行的方法。

其中,存储器1920可以是独立于处理器1910的一个单独的器件,也可以集成在处理器1910中。

在一种实施方式中,该芯片1900还可以包括输入接口1930。其中,处理器1910可以控制该输入接口1930与其他设备或芯片进行通信,具体地,可以获取其他设备或芯片发送的信息或数据。

在一种实施方式中,该芯片1900还可以包括输出接口1940。其中,处理器1910可以控制该输出接口1940与其他设备或芯片进行通信,具体地,可以向其他设备或芯片输出信息或数据。

在一种实施方式中,该芯片可应用于本申请实施例中的服务器例如云端服务器,并且该芯片可以实现本申请实施例的各个方法中由服务器实现的相应流程,为了简洁,在此不再赘述。

在一种实施方式中,该芯片可应用于本申请实施例中的终端设备例如移动端,并且该芯片可以实现本申请实施例的各个方法中由终端设备实现的相应流程,为了简洁,在此不再赘述。

应用于服务器和终端设备的芯片可以是相同的芯片或不同的芯片。

应理解,本申请实施例提到的芯片还可以称为系统级芯片,系统芯片,芯片系统或片上系统芯片等。

上述提及的处理器可以是通用处理器、数字信号处理器(digital signalprocessor,DSP)、现成可编程门阵列(field programmable gate array,FPGA)、专用集成电路(application specific integrated circuit,ASIC)或者其他可编程逻辑器件、晶体管逻辑器件、分立硬件组件等。其中,上述提到的通用处理器可以是微处理器或者也可以是任何常规的处理器等。

上述提及的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM)。

应理解,上述存储器为示例性但不是限制性说明,例如,本申请实施例中的存储器还可以是静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synch link DRAM,SLDRAM)以及直接内存总线随机存取存储器(Direct Rambus RAM,DR RAM)等等。也就是说,本申请实施例中的存储器旨在包括但不限于这些和任意其它适合类型的存储器。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例中的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(Digital Subscriber Line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。

本申请实施例还提供了一种计算机可读存储介质,该存储介质存储有至少一条指令,至少一条指令用于被处理器执行以实现如上述实施例的方法。

本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例提供的方法。

应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

以上所述仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以该权利要求的保护范围为准。

相关技术
  • 一种目标检测的分类模型建立方法、装置和目标检测设备
  • 利用多任务目标检测模型执行目标检测的方法和系统
  • 训练样本的生成方法、目标检测方法和装置
  • 一种二值化目标检测神经网络结构和模型的训练方法
  • 基于隐马尔可夫模型的目标检测模型的搜索方法
技术分类

06120115936230