用于检测特征的方法和装置转让专利

申请号 : CN201811068512.6

文献号 : CN109284782B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张史梁何建忠杨铭

申请人 : 北京地平线机器人技术研发有限公司

摘要 :

公开了一种用于检测特征的方法和装置,该方法包括:对输入张量串行执行至少两个分组的卷积,每个分组包括串行执行的至少两个卷积;根据每个分组中的每个卷积的结果,确定针对每个分组的第一融合结果和第二融合结果;确定基于每个分组的第一检测结果和第二检测结果;以及融合所有的第一检测结果和第二检测结果。通过该方法,能够以相对较小的处理成本、高效率且准确地实现输入张量中的关注特征的检测。

权利要求 :

1.一种用于检测特征的方法,包括:

对输入张量串行执行至少两个分组的卷积,所述至少两个分组中的每个分组包括串行执行的至少两个卷积;

根据所述至少两个分组中的每个分组中的每个卷积的结果,确定针对所述至少两个分组中的每个分组的第一融合结果和第二融合结果;

确定基于所述至少两个分组中的每个分组的第一检测结果和第二检测结果,基于所述至少两个分组中的任一非最先分组的第一检测结果取决于针对所述非最先分组的第一融合结果和基于所述至少两个分组中在所述非最先分组之前执行的至少一个分组的第一检测结果,并且基于所述至少两个分组中的任一非最后分组的第二检测结果取决于针对所述非最后分组的第二融合结果和基于所述至少两个分组中在所述非最后分组之后执行的至少一个分组的第二检测结果;以及融合所有的第一检测结果和第二检测结果,以确定关于所述特征的最终检测结果;

其中,所述输入张量是图像、视频或音频,所述特征是所述输入张量中的关注对象的特征。

2.根据权利要求1所述的方法,其中,确定针对所述至少两个分组中的任一第一分组的第一融合结果和第二融合结果包括:确定与所述第一分组中的每个卷积的结果相对应的每个中间张量;

对与所述第一分组有关的所有中间张量执行第一融合;以及对与所述第一分组有关的所有中间张量执行第二融合。

3.根据权利要求2所述的方法,其中,确定针对所述至少两个分组中的任一第一分组的第一融合结果和第二融合结果还包括:对所述第一融合的输出执行第一1×1卷积;和/或

对所述第一融合的输出执行第二1×1卷积。

4.根据权利要求3所述的方法,其中,确定针对所述至少两个分组中的任一第一分组的第一融合结果和第二融合结果还包括:对所述第一1×1卷积的结果执行第一尺寸调整;和/或

对所述第二1×1卷积的结果执行第二尺寸调整。

5.根据权利要求2所述的方法,其中,确定与所述第一分组中的任一第一卷积的结果相对应的第一中间张量包括:将所述第一卷积的结果确定为与所述第一中间张量。

6.根据权利要求2所述的方法,其中,确定与所述第一分组中的任一第一卷积的结果相对应的第一中间张量包括:对所述第一卷积的结果执行第二卷积。

7.根据权利要求6所述的方法,其中,确定与所述第一分组中的任一第一卷积的结果相对应的第一中间张量还包括:对所述第二卷积的结果执行1×1卷积。

8.根据权利要求2所述的方法,其中,确定与所述第一分组中的任一第一卷积的结果相对应的第一中间张量包括:对所述第一卷积的结果执行第二卷积;

对所述第二卷积的结果执行至少一个感受野调整;以及

对所述第二卷积的结果和所述至少一个感受野调整中的每个感受野调整的结果执行第三融合。

9.根据权利要求8所述的方法,其中,所述至少一个感受野调整包括至少一个膨胀卷积,所述至少一个膨胀卷积中的每个膨胀卷积的膨胀卷积核的数量等于所述至少一个膨胀卷积中的膨胀卷积的数量,并且所述至少一个膨胀卷积中的每个膨胀卷积的膨胀率取决于膨胀率因子和所述至少一个膨胀卷积中的膨胀卷积的数量。

10.根据权利要求9所述的方法,其中,所述至少一个膨胀卷积中的每个膨胀卷积具有在所述至少一个膨胀卷积中相应的唯一序号,所述唯一序号的值的范围是从1至所述至少一个膨胀卷积中的膨胀卷积的数量,并且所述至少一个膨胀卷积中的每个膨胀卷积的膨胀率等于所述膨胀率因子与相应的唯一序号的乘积以及数值1之中的最大者。

11.根据权利要求9所述的方法,其中,所述至少一个膨胀卷积中的膨胀卷积的数量大于1。

12.根据权利要求9所述的方法,其中,所述膨胀率因子等于4,并且所述至少一个膨胀卷积中的膨胀卷积的数量等于3。

13.根据权利要求8所述的方法,其中,确定与所述第一分组中的任一第一卷积的结果相对应的第一中间张量还包括:对所述第三融合的结果执行1×1卷积。

14.根据权利要求1所述的方法,其中,

基于所述至少两个分组中的最先分组的第一检测结果是针对所述最先分组的第一融合结果,基于所述非最先分组的第一检测结果是针对所述非最先分组的第一融合结果和基于所述非最先分组的前一个分组的第一检测结果的融合结果,基于所述至少两个分组中的最后分组的第二检测结果是针对所述最后分组的第二融合结果,并且基于所述非最后分组的第二检测结果是针对所述非最后分组的第二融合结果和基于所述非最后分组的后一个分组的第二检测结果的融合结果。

15.根据权利要求1所述的方法,其中,融合所有的第一检测结果和第二检测结果包括:使用至少一个1×1卷积融合所有的第一检测结果和第二检测结果。

16.根据权利要求1所述的方法,还包括:

对所述至少两个分组中的第一分组中的最后卷积的结果执行第一池化;以及将所述第一池化的结果提供给所述至少两个分组中在所述第一分组之后的下一个分组。

17.根据权利要求16所述的方法,其中,如果所述下一个分组对应于所述最后分组,则所述第一池化的步长为1,否则所述第一池化的步长为2。

18.根据权利要求1至17中的任一项所述的方法,还包括:根据所述最终检测结果和预先设置的真值表,确定与融合所有的第一检测结果和第二检测结果有关的融合损失;

根据每个第一检测结果和所述真值表中的对应的第一真值,确定每个第一单侧损失;

根据每个第二检测结果和所述真值表中的对应的第二真值,确定每个第二单侧损失;

根据所有的第一单侧损失和第二单侧损失的总和以及所述融合损失,确定与检测所述特征有关的总损失;以及根据所述融合损失、所有的第一单侧损失和第二单侧损失的总和以及所述总损失,调整与所述至少两个分组的卷积有关的参数、与确定针对所述至少两个分组中的每个分组的第一融合结果和第二融合结果有关的参数、与确定基于所述至少两个分组中的每个分组的第一检测结果和第二检测结果有关的参数以及与融合所有的第一检测结果和第二检测结果有关的参数中的一个或多个。

19.根据权利要求18所述的方法,其中,使用类平衡交叉熵损失评估确定所述融合损失、所述第一单侧损失和所述第二单侧损失中的一个或多个。

20.一种计算机可读的非临时性存储介质,在其上存储有程序指令,所述程序指令在被执行时执行根据权利要求1至19中的任一项所述的方法。

21.一种用于检测特征的装置,包括:

处理器,被配置为在启动时至少执行根据权利要求1至19中的任一项所述的方法。

22.一种用于检测特征的装置,包括:

乘加器阵列,被配置为对输入张量串行执行至少两个分组的卷积,所述至少两个分组中的每个分组包括串行执行的至少两个卷积;

至少两个第一融合器,被配置为根据所述至少两个分组中的每个分组中的每个卷积的结果,确定针对所述至少两个分组中的每个分组的第一融合结果;

至少两个第二融合器,被配置为根据所述至少两个分组中的每个分组中的每个卷积的结果,确定针对所述至少两个分组中的每个分组的第二融合结果;

至少一个第三融合器,被配置为确定基于所述至少两个分组中的每个分组的第一检测结果,基于所述至少两个分组中的任一非最先分组的第一检测结果取决于针对所述非最先分组的第一融合结果和基于所述至少两个分组中在所述非最先分组之前执行的至少一个分组的第一检测结果;

至少一个第四融合器,被配置为确定基于所述至少两个分组中的每个分组的第二检测结果,基于所述至少两个分组中的任一非最后分组的第二检测结果取决于针对所述非最后分组的第二融合结果和基于所述至少两个分组中在所述非最后分组之后执行的至少一个分组的第二检测结果;以及第五融合器,被配置为融合所有的第一检测结果和第二检测结果,以确定关于所述特征的最终检测结果;

其中,所述输入张量是图像、视频或音频,所述特征是所述输入张量中的关注对象的特征。

说明书 :

用于检测特征的方法和装置

技术领域

[0001] 本公开总体上涉及神经网络的技术领域,并且具体地涉及一种用于检测特征的方法和装置。

背景技术

[0002] 基于神经网络的深度学习技术已经被广泛地应用于图像识别、视频分析、自然语言处理、辅助驾驶等不同的领域。
[0003] 针对不同的应用场景或需求,可以设计出不同的神经网络结构。然后,可以将诸如图像等张量数据输入到神经网络中,并通过神经网络获得关于张量数据中的一个或多个关注特征(例如,边缘、纹理等)的检测或预测结果。例如,边缘检测的目的可以是从自然场景图像中提取关注对象的边界和/或能够被明显感知的边缘。
[0004] 可以使用基于卷积神经网络的方法检测输入张量中的一个或多个关注特征。然而,例如,如果在单个图像中的关注特征(例如,边缘)同时包括对象级别的边界和有意义的局部细节,则需要采用多尺度表示方式来应对关注特征的多样性。
[0005] 为此,可以增加卷积神经网络的深度(层数),例如,设计更多的卷积层。然而,模型越深,需要训练的模型参数越多,从而导致更高的运算成本和训练成本。相应地,卷积神经网络加速器处理在处理这样的卷积神经网络数据时需要执行更多数量的操作指令,需要更长的运算时间,并消耗更多的硬件资源。
[0006] 另外,在上述模型的训练过程中,可以使用一个通用真值表训练卷积神经网络的单侧输出。然而,由于在不同的层中存在不同尺度的学习目标,所以使用相同的监督无法针对不同的层获得令人满意的训练效果。虽然可以针对不同的中间层监督设置标签,但是这样将涉及复杂的预处理。
[0007] 因此,期望能够以相对较小的处理成本、高效率且准确地实现输入张量中的关注特征的检测。

发明内容

[0008] 一方面,本公开提供了一种用于检测特征的方法。该方法可以包括:对输入张量串行执行至少两个分组的卷积,前述至少两个分组中的每个分组包括串行执行的至少两个卷积;根据前述至少两个分组中的每个分组中的每个卷积的结果,确定针对前述至少两个分组中的每个分组的第一融合结果和第二融合结果;确定基于前述至少两个分组中的每个分组的第一检测结果和第二检测结果,基于前述至少两个分组中的任一非最先分组的第一检测结果取决于针对前述非最先分组的第一融合结果和基于前述至少两个分组中在前述非最先分组之前执行的至少一个分组的第一检测结果,并且基于前述至少两个分组中的任一非最后分组的第二检测结果取决于针对前述非最后分组的第二融合结果和基于前述至少两个分组中在前述非最后分组之后执行的至少一个分组的第二检测结果;以及融合所有的第一检测结果和第二检测结果,以确定关于前述特征的最终检测结果。
[0009] 在一个实施例中,确定针对前述至少两个分组中的任一第一分组的第一融合结果和第二融合结果可以包括:确定与前述第一分组中的每个卷积的结果相对应的每个中间张量;对与前述第一分组有关的所有中间张量执行第一融合;以及对与前述第一分组有关的所有中间张量执行第二融合。
[0010] 在一个实施例中,确定针对前述至少两个分组中的任一第一分组的第一融合结果和第二融合结果还可以包括:对前述第一融合的输出执行第一1×1卷积;和/或对前述第一融合的输出执行第二1×1卷积
[0011] 在一个实施例中,确定针对前述至少两个分组中的任一第一分组的第一融合结果和第二融合结果还可以包括:对前述第一1×1卷积的结果执行第一尺寸调整;和/或对前述第二1×1卷积的结果执行第二尺寸调整。
[0012] 在一个实施例中,确定与前述第一分组中的任一第一卷积的结果相对应的第一中间张量可以包括:将前述第一卷积的结果确定为与前述第一中间张量。
[0013] 在一个实施例中,确定与前述第一分组中的任一第一卷积的结果相对应的第一中间张量可以包括:对前述第一卷积的结果执行第二卷积。
[0014] 在一个实施例中,确定与前述第一分组中的任一第一卷积的结果相对应的第一中间张量还可以包括:对前述第二卷积的结果执行1×1卷积。
[0015] 在一个实施例中,确定与前述第一分组中的任一第一卷积的结果相对应的第一中间张量可以包括:对前述第一卷积的结果执行第二卷积;对前述第二卷积的结果执行至少一个感受野调整;对前述第二卷积的结果和前述至少一个感受野调整中的每个感受野调整的结果执行第三融合。
[0016] 在一个实施例中,前述至少一个感受野调整包括至少一个膨胀卷积,前述至少一个膨胀卷积中的每个膨胀卷积的膨胀卷积核的数量等于前述至少一个膨胀卷积中的膨胀卷积的数量,并且前述至少一个膨胀卷积中的每个膨胀卷积的膨胀率取决于膨胀率因子和前述至少一个膨胀卷积中的膨胀卷积的数量。
[0017] 在一个实施例中,前述至少一个膨胀卷积中的每个膨胀卷积具有在前述至少一个膨胀卷积中相应的唯一序号,前述唯一序号的值的范围是从1至前述至少一个膨胀卷积中的膨胀卷积的数量,并且前述至少一个膨胀卷积中的每个膨胀卷积的膨胀率等于前述膨胀率因子与相应的唯一序号的乘积以及数值1之中的最大者。
[0018] 在一个实施例中,前述至少一个膨胀卷积中的膨胀卷积的数量大于1。
[0019] 在一个实施例中,前述膨胀率因子等于4,并且前述至少一个膨胀卷积中的膨胀卷积的数量等于3。
[0020] 在一个实施例中,确定与前述第一分组中的任一第一卷积的结果相对应的第一中间张量还可以包括:对前述第三融合的结果执行1×1卷积。
[0021] 在一个实施例中,基于前述至少两个分组中的最先分组的第一检测结果是针对前述最先分组的第一融合结果,基于前述非最先分组的第一检测结果是针对前述非最先分组的第一融合结果和基于前述非最先分组的前一个分组的第一检测结果的融合结果,基于前述至少两个分组中的最后分组的第二检测结果是针对前述最后分组的第二融合结果,并且基于前述非最后分组的第二检测结果是针对前述非最后分组的第二融合结果和基于前述非最后分组的后一个分组的第二检测结果的融合结果。
[0022] 在一个实施例中,融合所有的第一检测结果和第二检测结果可以包括:使用至少一个1×1卷积融合所有的第一检测结果和第二检测结果。
[0023] 在一个实施例中,上述方法还可以包括:对前述至少两个分组中的第一分组中的最后卷积的结果执行第一池化;以及将前述第一池化的结果提供给前述至少两个分组中在前述第一分组之后的下一个分组。
[0024] 在一个实施例中,如果前述下一个分组对应于前述最后分组,则前述第一池化的步长为1,否则前述第一池化的步长为2。
[0025] 在一个实施例中,上述方法还可以包括:根据前述最终检测结果和预先设置的真值表,确定与融合所有的第一检测结果和第二检测结果有关的融合损失;根据每个第一检测结果和前述真值表中的对应的第一真值,确定每个第一单侧损失;根据每个第二检测结果和前述真值表中的对应的第二真值,确定每个第二单侧损失;根据所有的第一单侧损失和第二单侧损失的总和以及前述融合损失,确定与检测前述特征有关的总损失;以及根据前述融合损失、所有的第一单侧损失和第二单侧损失的总和以及前述总损失,调整与前述至少两个分组的卷积有关的参数、与确定针对前述至少两个分组中的每个分组的第一融合结果和第二融合结果有关的参数、与确定基于前述至少两个分组中的每个分组的第一检测结果和第二检测结果有关的参数以及与融合所有的第一检测结果和第二检测结果有关的参数中的一个或多个。
[0026] 在一个实施例中,使用类平衡交叉熵损失评估确定前述融合损失、前述第一单侧损失和前述第二单侧损失中的一个或多个。
[0027] 另一方面,本公开还提供了一种计算机可读的非临时性存储介质,在其上存储有程序指令,前述程序指令在被执行时执行上述方法。
[0028] 另一方面,本公开还提供了一种用于检测特征的装置。该装置可以包括处理器。该装置中的处理器可以被配置为在启动时至少执行上述方法。
[0029] 另一方面,本公开还提供了一种用于检测特征的装置。该装置可以包括乘加器阵列、至少两个第一融合器、至少两个第二融合器、至少一个第三融合器、至少一个第四融合器和第五融合器。
[0030] 在一个实施例中,前述至少两个第一融合器可以被配置为根据前述至少两个分组中的每个分组中的每个卷积的结果,确定针对前述至少两个分组中的每个分组的第一融合结果。
[0031] 在一个实施例中,前述至少两个第二融合器可以被配置为根据前述至少两个分组中的每个分组中的每个卷积的结果,确定针对前述至少两个分组中的每个分组的第二融合结果。
[0032] 在一个实施例中,前述至少一个第三融合器可以被配置为确定基于前述至少两个分组中的每个分组的第一检测结果,基于前述至少两个分组中的任一非最先分组的第一检测结果取决于针对前述非最先分组的第一融合结果和基于前述至少两个分组中在前述非最先分组之前执行的至少一个分组的第一检测结果。
[0033] 在一个实施例中,前述至少一个第四融合器可以被配置为确定基于前述至少两个分组中的每个分组的第二检测结果,基于前述至少两个分组中的任一非最后分组的第二检测结果取决于针对前述非最后分组的第二融合结果和基于前述至少两个分组中在前述非最后分组之后执行的至少一个分组的第二检测结果。
[0034] 在一个实施例中,第五融合器可以被配置为融合所有的第一检测结果和第二检测结果,以确定关于前述特征的最终检测结果。
[0035] 通过根据本公开的实施例的方法和装置,能够以相对较小的处理成本、高效率且准确地实现输入张量中的关注特征的检测。
[0036] 另外,通过根据本公开的实施例的方法,还能够提供一种轻量级且易于训练的卷积神经网络,通过该卷积神经网络能够获得较高的特征检测效率和准确性。

附图说明

[0037] 图1示出根据本公开的实施例的示例方法的流程图。
[0038] 图2示出根据本公开的实施例的方法的执行示例和相应网络结构示例。
[0039] 图3示出根据本公开的实施例的方法的执行示例和相应网络结构示例。
[0040] 图4示出根据本公开的实施例的方法的执行示例和相应网络结构示例。
[0041] 图5示出根据本公开的实施例的方法的执行示例和相应网络结构示例。
[0042] 图6示出根据本公开的实施例的尺度增强的示例。
[0043] 图7示出根据本公开的实施例的尺度增强的示例。
[0044] 图8示出根据本公开的实施例的尺度增强的示例。
[0045] 图9示出根据本公开的实施例的尺度增强的示例。
[0046] 图10示出根据本公开的实施例的尺度增强的示例。
[0047] 图11示出根据本公开的实施例的尺度增强的示例。
[0048] 图12示出根据本公开的实施例的方法的执行示例和相应网络结构示例。
[0049] 图13示出根据本公开的实施例的方法中的每个增量学习过程的示例。
[0050] 图14示出根据本公开的实施例的装置的示例。
[0051] 图15示出根据本公开的实施例的装置的示例。
[0052] 图16示出根据本公开的实施例的装置中的处理器的示例。

具体实施方式

[0053] 如图1所示,根据本公开的实施例的示例方法100可以开始于步骤S110,对输入张量串行执行至少两个分组的卷积,其中,每个分组的卷积包括串行执行的至少两个卷积。
[0054] 根据不同的实施例,输入张量可以是任何类型、任何形式、表示任何含义的特征数据,例如,诸如彩色图像、单色图像、视频、音频等可被人通过视觉或听觉等感知的数据,或者具有至少一个维度并包含与诸如纹理、边界等关注特征有关的信息的抽象数据。本公开不局限于输入张量的类型、形式、形状、含义等。
[0055] 根据不同的实施例,要通过示例方法100检测的特征可以是输入张量中包含的任何关注特征。例如,如果输入张量为图像或视频,则关注特征可以是图像或视频中的关注对象的边界、纹理、色调、类型等特征。
[0056] 在本文中,诸如“至少两个”、“多个”(等同于“至少两个”)、“两个”等明确指示数量多于一个的修饰词用于强调被修饰的对象具有复数形式。诸如“一个”、“每个”、“任何一个”、“任一”等明确指示数量等于一个的修饰词用于强调被修饰的对象具有单数形式。诸如“至少一个”、“一个或多个”等修饰词用于强调被修饰的对象可以具有复数形式,也可以具有单数形式。
[0057] 在没有上述修饰词的情况下,意味着本公开的技术方案不关注或不局限于所描述的对象的特定数量,并且可以根据上下文,将所描述的对象理解为可以具有单数形式或复数形式。例如,表述“对输入张量串行执行至少两个分组的卷积”中的“输入张量”的数量可以是一个或多个。为了简洁和方便,在本文中描述或图示的示例中,可能只示出单个这样的对象。
[0058] 另外,在本文中,“串行执行”的至少两个分组的卷积或者至少两个卷积旨在表示各个分组或各个卷积的执行次序并且后一个分组或后一个卷积的输入应当基于前一个分组或前一个卷积的输出。
[0059] 然而,“串行执行”不表示必须将前一个分组或前一个卷积的输出直接用作后一个分组或后一个卷积的输入。在一个实施例中,可以将前一个分组或前一个卷积的输出直接用作后一个分组或后一个卷积的输入。在另外的实施例中,可以先对前一个分组或前一个卷积的输出执行其他处理(例如,池化处理),然后将处理结果用作后一个分组或后一个卷积的输入。
[0060] 如图2所示,在该示例中,通过示例方法100的步骤S110,可以对输入张量FIN串行执行至少两个分组G1至GN(N≥2)的卷积,其中,每个分组Gi(1≤i≤N)可以包括串行执行的至少两个卷积CONVi,1至CONVi,Mi(Mi≥2。对于不同的i,Mi的值可以相同或不同。换句话说,每个分组Gi中的卷积的数量可以相同或不同。
[0061] 在图2的示例中,对于每个分组Gi中的任何两个卷积CONVi,j和CONVi,j+1(1≤j
[0062] 另外,在图2的示例中,分组G1的输出(更确切地,分组G1中最后串行执行的卷积CONV1,M1的输出T1,M1)在经过池化处理POOL1之后再传递给在分组G1之后的分组G2(更确切地,分组G1中最先串行执行的卷积CONV2,1),从而串行地执行分组G1和G2。
[0063] 在步骤S110中涉及池化操作的情况下,可以根据需要来适当地设置池化操作的步长。在一个实施例中,池化操作的步长可以是1或2。例如,可以在最后分组GN之后执行步长为1的池化操作,而在其他非最后分组之后执行步长为1或2(例如,可以均为2)的池化操作。在一个实施例中,可以省略步长为1的池化操作。
[0064] 根据不同的实施例,池化处理可以是最大池化、最小池化、平均池化等适当的池化操作,并且在步骤S110中可以包括相同类型或不同类型的一个或多个池化处理。
[0065] 应当理解,图2的示例中的池化处理POOL1仅为示例,任何相邻的两个分组Gk和Gk+1(1≤k
[0066] 在本文中,为了方便,将最先被串行执行的分组称为最先分组,例如,图2的示例中的分组G1;将最后被串行执行的分组称为最后分组,例如,图2的示例中的分组GN;将最先分组之外的分组称为非最先分组,例如,图2的示例中的G2、……、GN等;将最后分组之外的分组称为非最后分组,例如,图2的示例中的G1、G2、……、GN-1(图2中未示出)等。
[0067] 类似地,在每个分组Gi内,将最先被串行执行的卷积称为该分组中的最先卷积,例如图2的示例中的分组G1中的CONV1,1;将最后被串行执行的卷积称为该分组中的最后卷积,例如图2的示例中的分组G1中的CONV1,M1。
[0068] 然后,示例方法100可以继续到步骤S120,根据每个分组中的每个卷积的结果,确定针对每个分组的两个融合结果。
[0069] 在下文中,针对每个分组的两个融合结果也可以被称为针对每个分组的第一融合结果和第二融合结果。在本文中,诸如“第一”、“第二”、“第三”等不带量词的充数词旨在用于区分不同的元素/元件/部件等,而不是用于强调次序或重要程度,而诸如“第一个”、“第二个”、“第三个”等带有量词的充数词可以用于表示一个序列中的不同元素或实体的次序或所在位置或重要程度。
[0070] 在图2的示例中,分别对于每个分组Gi(1≤i≤N)中的每个卷积CONVi,j(1≤j≤Mi)的结果Ti,j执行第一融合FUSEi,1和第二融合FUSEi,2。例如,可以针对T1,1、T1,2、……、T1,M1执行第一融合FUSE1,1,并获得针对分组G1的第一融合结果F1,1;并且可以针对T1,1、T1,2、……、T1,M1执行第二融合FUSE1,2,并获得针对分组G1的第二融合结果F1,2。类似地,可以获得针对任一分组Gi的第一融合结果Fi,1和第二融合结果Fi,2。
[0071] 第一融合FUSEi,1和第二融合FUSEi,2可以被视为不同的分类器。例如,在检测图像中的关注对象的边缘的情况下,第一融合FUSEi,1和第二融合FUSEi,2中的一个可以被设置为不需要关注小尺度的边缘,并且另一个可以被设置为不需要关注大尺度的边缘。
[0072] 根据不同的实施例,第一融合FUSEi,1和第二融合FUSEi,2中的每一个可以通过例如逐加点操作、1×1卷积操作等方式来实现。
[0073] 关于步骤S120以及其中的第一融合FUSEi,1和第二融合FUSEi,2的更多的实施例将在后文描述。
[0074] 然后,示例方法可以继续到步骤S130,以确定基于每个分组的第一检测结果和第二检测结果,其中,基于任一非最先分组的第一检测结果取决于针对该非最先分组的第一融合结果和基于在该非最先分组之前执行的至少一个分组的第一检测结果,并且基于任一非最后分组的第二检测结果取决于针对该非最后分组的第二融合结果和基于在该非最后分组之后执行的至少一个分组的第二检测结果。
[0075] 在一个实施例中,基于最先分组的第一检测结果可以是针对最先分组的第一融合结果,基于任一非最先分组的第一检测结果可以是针对该非最先分组的第一融合结果和基于该非最先分组的前一个分组的第一检测结果的融合结果,基于最后分组的第二检测结果可以是针对最后分组的第二融合结果,并且基于任一非最后分组的第二检测结果可以是针对该非最后分组的第二融合结果和基于该非最后分组的后一个分组的第二检测结果的融合结果。
[0076] 例如,在图2的示例中,针对最先分组G1的第一融合结果F1,1直接作为基于分组G1的第一检测结果D1,1。
[0077] 对于任一非最先分组Gk’(1
[0078] 例如,基于分组G2的第一检测结果D2,1对应于通过融合操作FUSE’2,1融合针对分组G2的第一融合结果F2,1和基于分组G1的第一检测结果D1,1所获得的结果,并且基于分组GN的第一检测结果DN,1对应于通过融合操作FUSE’N,1融合针对分组GN的第一融合结果FN,1和基于分组GN-1,1(图2中未示出)的第一检测结果DN-1,1所获得的结果。
[0079] 同时,在图2的示例中,针对最后分组GN的第二融合结果FN,2直接作为基于分组GN的第二检测结果DN,2。
[0080] 对于任一非最后分组Gk(1≤k
[0081] 例如,基于分组G1的第二检测结果D1,2对应于通过融合操作FUSE’1,2融合针对分组G1的第二融合结果F1,2和基于分组G2的第二检测结果D2,2所获得的结果,并且基于分组G2的第二检测结果D2,2对应于通过融合操作FUSE’2,2融合针对分组G2的第二融合结果F2,2和基于分组G3,2(图2中未示出)的第二检测结果D3,2所获得的结果。
[0082] 在另外的实施例中,基于任一非最先分组的第一检测结果可以是针对该非最先分组的第一融合结果和基于在该非最先分组之前执行的至少一个分组(可以是先前的任意数量的分组,而不局限于前一个分组)的第一检测结果,并且基于任一非最后分组的第二检测结果取决于针对该非最后分组的第二融合结果和基于在该非最后分组之后执行的至少一个分组(可以是在后的任意数量的分组,而不局限于后一个分组)的第二检测结果。
[0083] 根据不同的实施例,融合操作FUSE’k’,1和FUSE’k,2中的每一个可以通过例如逐加点操作、1×1卷积、特征矩阵之间的拼接级联等各种适当的融合方式来实现。
[0084] 然后,示例方法可以继续到步骤S140,并融合所有的第一检测结果和第二检测结果,以确定关于要检测或预测的特征的最终检测结果。
[0085] 例如,如图2所示,可以通过融合操作FUSE”融合所有的第一检测结果Di,1和第二检测结果Di,2(1≤i≤N),并获得关于要检测的特征(例如,图像中的关注对象的边缘)的最终检测结果FOUT。
[0086] 根据不同的实施例,可以通过任何适当的融合操作融合所有的第一检测结果和第二检测结果,以确定关于要检测或预测的特征的最终检测结果。例如,可以通过逐点加操作融合所有的第一检测结果和第二检测结果,也可以使用至少一个1×1卷积融合所有的第一检测结果和第二检测结果,还可以通过特征矩阵之间的拼接级联等方式来实现所有的第一检测结果和第二检测结果的融合。
[0087] 另一方面,通过示例方法100也可以构建出一种能够用于检测特征的双向级联卷积神经网络。
[0088] 例如,如图2的示例中,串行执行的每个分组Gi中的每个卷积CONVi,Mi(对应于示例方法100的步骤S110)可以对应于根据本公开的实施例的双向级联卷积神经网络中的卷积层,池化处理POOL1可以对应于双向级联卷积神经网络中的池化层,各个融合操作FUSE(省略下标)、FUSE’(省略下标)和FUSE”可以对应于双向级联卷积神经网络中的融合层。根据不同的实施例,融合层可以包括逐点加运算块、拼接块、1×1卷积块等。
[0089] 图3示出基于图2的示例中的双向级联卷积神经网络的一种配置示例。然而,应当理解,根据本公开的实施例的双向级联卷积神经网络的层数不局限于图3中的特定结构。
[0090] 在图3的示例中,与示例方法100中的步骤S110相对应地,根据本公开的实施例的双向级联卷积神经网络可以包括至少两个分组的卷积层(在图3的示例中,分组数量为4),其中,分组G1中的卷积层CONV1,1和CONV1,2均使用64个3×3卷积核,分组G2中的卷积层CONV2,1和CONV2,2均使用128个3×3卷积核,分组G3中的卷积层CONV3,1、CONV3,2和CONV3,3均使用256个3×3卷积核,并且分组G4中的卷积层CONV4,1、CONV4,2和CONV4,3均使用512个3×3卷积核。
[0091] 在图3中,卷积块(层)中的例如“3×3-64”这样的注示表示该卷积块(层)使用64个3×3卷积核。池化块(层)中的例如“2×2”这样的注示表示该池化块(层)的池化核的大小为
2×2。
[0092] 在图3的示例中,在分组G1和G2之间设置有使用2×2池化核的池化层POOL1,在分组G2和G3之间设置有使用2×2池化核的池化层POOL2,并且在分组G3和G4之间设置有使用2×2池化核的池化层POOL3,以便使根据本公开的实施例的双向级联卷积神经网络的不同的层能够描述不同的尺度。
[0093] 如前文所述,在相邻的两个分组之间也可以不设置池化层,也可以采用其他方式,以使根据本公开的实施例的双向级联卷积神经网络的不同的层能够描述不同的尺度。例如,代替池化层POOL1,可以设置使用1×1卷积块或膨胀卷积块等。
[0094] 如图3所示,与示例方法100中的步骤S120相对应地,卷积层CONV1,1和CONV1,2的输出提供给逐点加运算块(表示为图3中的FUSE1,1框中的带圆圈的加号),从而实现步骤S120中的第一融合FUSE1,1;同时,卷积层CONV1,1和CONV1,2的输出还提供给另一逐点加运算块(表示为图3中的FUSE1,2框中的带圆圈的加号),从而实现步骤S120中的第二融合FUSE1,2。在图3的示例中,FUSE2,1、FUSE2,2、FUSE3,1、FUSE3,2、FUSE4,1和FUSE4,2采用类似的方式实现,在此不再赘述。
[0095] 如前文所述,确定针对每个分组的第一融合结果和第二融合结果的方式可以不局限于使用图3的示例中的逐点加运算块。
[0096] 在图3的示例中,还将FUSE1,1的输出提供给一个1×1卷积块CONV’1,1,即,对第一融合FUSE1,1的输出执行第一1×1卷积,从而获得相应的第一融合结果F1,1,并且还将FUSE1,2的输出提供给另一个1×1卷积块,即,对第二融合FUSE1,2的输出执行第二1×1卷积,从而获得相应的第二融合结果F1,2。类似地,还可以对FUSE2,1、FUSE2,2、FUSE3,1、FUSE3,2、FUSE4,1和FUSE4,2中的一个或多个执行相应的一个1×1卷积。
[0097] 1×1卷积有利于信息的整合并可以实现通道的降维和升维。对于前述第一融合(例如,FUSE1,1)和/或第二融合(例如,FUSE1,2)的输出执行1×1卷积,能够融合包含不同尺度的信息,并有利于进一步确定基于每个分组的第一检测结果和第二检测结果(即,步骤S130)。
[0098] 在另外的示例中,图3的示例中的所有或部分的1×1卷积可以省略。
[0099] 然后,与示例方法100中的步骤S130相对应地,在图3的示例中,每个融合操作FUSE’(省略下标)通过逐点加运算块来实现。
[0100] 然后,与示例方法100中的步骤S140相对应地,在图3的示例中,通过逐点加运算实现融合操作FUSE”,从而融合所有的检测结果D(省略下标)并获得关于特征的最终检测结果FOUT。如前文所述,在另外的实施例中,例如,也可以使用1×1卷积融合所有的检测结果D(省略下标)并获得关于特征的最终检测结果FOUT。
[0101] 如图3所示,根据本公开的实施例的示例方法100构建的卷积神经网络是一种双向级联卷积神经网络,并且包括多个“层”(例如,由图3的示例中的垂直的粗实线分割的各个部分)。
[0102] 按照惯例,将按照G1→G2→G3→G4确定的次序称为在“从浅到深”方向上的次序,并且将反过来的次序称为在“从深到浅”方向上的次序。
[0103] 第i个层将其输出Di,1和Di,2分别传播给相邻的下一层(更深的层)和上一层(更浅的层),使得在每一层中均能够以增量的方式检测/预测输入张量FIN中的关注特征(例如,边缘),并且可以包括多个尺度的信息。
[0104] 相比于图3的示例,在图4的示例中,每个1×1卷积CONV’(省略下标)的输出进一步地提供给相应的采样块SA(省略下标),以便进行尺寸调整,并将尺寸调整的结果作为相应的融合结果F(省略下标)。例如,1×1卷积CONV’2,1的输出可以进一步地提供给采样块SA2,1,并将采样块SA2,1的输出作为融合结果F2,1。
[0105] 相应地,在示例方法100的步骤S120中,还可以包括针对相应的1×1卷积的结果执行相应的尺寸调整的操作。
[0106] 根据不同的实施例,尺寸调整可以包括对张量进行上采样(或放大)和/或下采样(或缩小)等,例如,将各个中间张量的大小调整为相同。用于实现尺寸调整的采样块SA(省略下标)可以通过池化操作、1×1卷积、膨胀卷积等各种适当的方式来实现。
[0107] 用于实现尺寸调整的采样块SA(省略下标)可以省略。例如,在某个融合操作FUSE(省略下标)或1×1卷积CONV’(省略下标)的输出结果具有与FIN的大小或指定大小相同的情况下,可以省略相应的采样块SA(省略下标);例如,在所有的1×1卷积CONV’(省略下标)的输出结果具有相同的大小的情况下,可以省略所有的采样块SA(省略下标)。例如,在图4的示例中,可以省略SA1,1和SA1,2。
[0108] 在图2至图4的示例中,第一融合FUSEi,1和第二融合FUSEi,2(1≤i≤N)均直接针对对应的分组Gi中的每个卷积CONVi,j(1≤j≤Mi)的输出执行处理。
[0109] 在另外的实施例中,可以针对每个卷积CONVi,j的输出进行相应的尺度增强,并获得分别与每个卷积CONVi,j的结果相对应的每个中间张量,然后可以基于与分组Gi中的每个卷积CONVi,j的结果相对应的每个中间张量,执行相应的第一融合FUSEi,1和第二融合FUSEi,2。
[0110] 图5示出根据本公开的实施例的方法的执行过程的另一个示例。图5的示例同样可以被视为是根据本公开的实施例的双向级联卷积神经网络的另一个示例。
[0111] 在图5的示例中,在示例方法100的步骤S120中,针对每个分组Gi(1≤i≤N)中的每个卷积CONVi,j(1≤j≤Mi)的结果Ti,j,先执行相应的尺度增强SEBi,j,以丰富Ti,j中的多尺度表示,并获得相应的中间张量T’i,j。然后,对与分组Gi有关的所有中间张量T’i,j执行第一融合FUSEi,1,并且对与分组Gi有关的所有中间张量T’i,j执行第二融合FUSEi,2。
[0112] 例如,在步骤S120中,可以先对分组G1中的卷积CONV1,1的结果T1,1执行相应的尺度增强SEB1,1,以获得相应的中间张量T’1,1,……,并且可以对CONV1,M1的结果T1,M1执行相应的尺度增强SEB1,M1,以获得相应的中间张量T’1,M1。然后,对与分组G1有关的所有中间张量T’1,1至T’1,M1执行第一融合FUSEi,1,并且对与分组G1有关的所有中间张量T’1,1至T’1,M1执行第二融合FUSEi,2。
[0113] 图2至图4的示例可以被视为图5的示例的一种情况,其中,如果图5中的每个尺度增强SEBi,j不包括任何操作,或者每个尺度增强SEBi,j中的处理是将输入直接作为输出,则可以得到图2至图4的示例的情况。
[0114] 在图5的示例中,在每个FUSEi,1还跟随着相应的后处理POSTi,1,并且在每个FUSEi,2还跟随着相应的后处理POSTi,2。例如,在FUSE1,1还跟随着相应的后处理POST1,1,并且在每个FUSEi,2还跟随着相应的后处理POST1,2。
[0115] 根据不同的实施例,后处理POSTi,1和POSTi,2是可选的,或者可以包括适合适当的后处理操作。例如,参照图2的示例,可以包括后处理POSTi,1和POSTi,2;参照图3的示例,后处理POSTi,1和POSTi,2中的任一个或每一个可以包括1×1卷积;参照图4的示例,后处理POSTi,1和POSTi,2中的任一个或每一个还可以包括采样处理以便进行尺寸调整。
[0116] 在图5中,使用粗虚线框表示可选的操作或可选的块,例如,池化块(层)POOL(省略下标)、尺度增强块SEB(省略下标)和后处理块POST(省略下标)。另外,在包括这样的操作或块时,例如在包括尺度增强块SEB时,也可以不必在每个分支上均包括这样的操作或块,并且每个分支上的这样的操作或块中的实现方式和/或处理可以相同或不同。
[0117] 另外,如前文所述,在步骤S130中的双向级联的构成方式也不局限于图2至图5中的示例的情况。在另外的实施例中,基于任一非最先分组Gk’(1≤k’
[0118] 下面描述根据本公开的实施例的尺度增强块或尺度增强操作SEB(省略下标)。
[0119] 如前文所述,根据本公开的实施例的尺度增强块或尺度增强操作SEB(省略下标)可以不包括任何操作,并将输入直接作为输出,例如,图2至图4的示例的情况。
[0120] 在另一个实施例中,如图6所示,与分组Gi中的卷积CONVi,j的输出Ti,j相对应的尺度增强块或尺度增强操作SEBi,j可以包括卷积块或卷积操作CONV_SEi,j,即,可以对CONVi,j的输出Ti,j执行另一卷积CONV_SEi,j,从而获得相应的中间张量T’i,j。
[0121] 在图7的示例中,在SEBi,j中,还可以对卷积CONV_SEi,j的输出进一步地执行一个1×1卷积CONV1_SEi,j。如前文所述,1×1卷积有利于信息的整合并可以实现通道的降维和升维,并且可以加入非线性激励,从而提升网络的表达能力。
[0122] 在另一个实施例中,如图8所示,在SEBi,j中,可以对卷积CONV_SEi,j的结果执行至少一个感受野调整RFAi,j,1、……、RFAi,j,R(R≥1),从而对卷积CONV_SEi,j的结果的感受野执行至少一个调整(例如,扩大或缩小)。
[0123] 然后,可以通过融合操作FUSE_SEi,j融合卷积CONV_SEi,j的结果以及前述每个RFAi,j,r(1≤r≤R)的结果,以获得中间张量T’i,j。类似于前文所述的其他融合处理,根据不同的实施例,融合操作FUSE_SEi,j可以通过逐点加、1×1卷积等任何适当的融合方式来实现。
[0124] 根据不同的需求,在不同实施例中,可以通过任何适当的方式来实现RFAi,j,r。例如,在需要缩小卷积CONV_SEi,j的结果的感受野的情况下,RFAi,j,r可以通过池化处理、普通卷积、1×1卷积等方式实现。例如,在需要扩大卷积CONV_SEi,j的结果的感受野的情况下,RFAi,j,r可以通过膨胀卷积、1×1卷积、上采样、插值等方式来实现。
[0125] 另外,RFAi,j,r的数量、每个RFAi,j,r的参数可以根据不同的需求训练获得。关于训练根据本公开的实施例的方法中的各个步骤或操作所涉及的参数或者根据本公开的实施例的双向级联网络中的各个层或块的相关参数的细节,将在后文描述。
[0126] 图9示出使用膨胀卷积DCONVi,j,r来实现每个RFAi,j,r的示例。通过使用膨胀卷积,能够在不降低张量的分辨率或者不增加新的参数的情况下扩大感受野。
[0127] 在图9的示例中,DCONVi,j,r中的卷积核(在本文中,为了与普通卷积的卷积核区域,也称为“膨胀卷积核”)的数量等于R。例如,如果SEBi,j中包括1个膨胀卷积DCONVi,j,1,即,R=1,则该膨胀卷积DCONVi,j,1也使用一个卷积核执行膨胀卷积运算;如果SEBi,j中包括2个膨胀卷积DCONVi,j,1和DCONVi,j,2,即,R=2,则DCONVi,j,1和DCONVi,j,2均使用2个卷积核执行相应的膨胀卷积运算。
[0128] 另外,每个膨胀卷积DCONVi,j,r的膨胀率er可以根据膨胀率因子α和SEBi,j中的膨胀卷积DCONVi,j,r的数量R来确定。
[0129] 在一个实施例中,如果按照从1至R的次序将SEBi,j中的所有膨胀卷积DCONVi,j,r视为一个序列(应当理解,“序列”的引入仅是为了便于描述,而并不意味着必须将所有膨胀卷积级组织成这样的序列),其中,r可以表示膨胀卷积DCONVi,j,r在该序列中的唯一序号,则可以将膨胀卷积DCONVi,j,r的膨胀率er设置为er=max(1,α×r)。例如,DCONVi,j,1的膨胀率e1=max(1,α),DCONVi,j,2的膨胀率e2=max(1,2α),……,以此类推,DCONVi,j,R的膨胀率eR=max(1,α×R)。如果一个膨胀卷积的膨胀率为1,则该膨胀卷积实际上对应于一个普通卷积。
[0130] 在不同的实施例中,可以根据训练结果(在后文详细描述)确定适当的R和α。例如,可以设置R>1,即,设置至少两个膨胀卷积DCONVi,j,r。在另外的示例中,可以设置α=4并且R=3。
[0131] 如图10所示,在另外的和例中,还可以对融合操作FUSE_SEi,j的结果进一步地执行一个1×1卷积CONV1_SEi,j,以便进一步提升网络的表达能力。
[0132] 图11示出可以与图2至图5中的示例结合使用的尺度增强块或尺度增强操作SEBi,j的示例。在该示例中,卷积CONV_SEi,j使用32个3×3卷积核,每个膨胀卷积DCONVi,j,r使用32个3×3卷积核并且分别具有上述的膨胀率er,融合操作FUSE_SEi,j使用逐点加操作来实现,并且1×1卷积CONV1_SEi,j使用21个1×1卷积核。
[0133] 应当理解,图11仅为根据本公开的实施例的尺度增强块或尺度增强操作SEBi,j的示例。在不同的实施例中,可以根据需要设置或选择SEBi,j中的操作或块,并且SEBi,j中的各个操作或块所涉及的参数(例如,卷积核的大小、数量、步长、膨胀率等)均可以通过后述的训练过程来设置和/或调整。
[0134] 通过根据本公开的实施例的尺度增强块或尺度增强操作SEBi,j,能够不显著增加网络参数,并且能够避免分别在多个输入图像上的重复特征检测/预测,更有利于通过轻量级的处理过程或网络结构来生成多尺度特征,而不必考虑或采用更深的网络结构,能够极大地提高处理效率并节省硬件资源。
[0135] 如图12所示,示例方法100的步骤S110和S120实现了一种增量学习过程。相应地,可以将根据本公开的实施例的双向级联网络视为由双向级联的N个增量学习块ILB构成。
[0136] 每个增量学习块ILBi包括分组Gi中的Mi个卷积CONVi,1至CONVi,Mi、可选的Mi个尺度增强SEBi,1至、SEBi,Mi、第一融合FUSEi,1、第二融合FUSEi,2以及可选的后处理POST i,1和POST i,2,并且可以具有三个输出Ti,Mi、Fi,1和Fi,2,然后通过相应的FUSE’i,1和/或FUSE’i,2进一步融合来自更浅层或更深层的检测结果,获得相应的两个局部检测/预测结果Di,1和Di,2。
[0137] 由此,每个增量学习块ILBi或者双向级联网络的每一层能够通过轻量级的处理过程或网络结构来生成多尺度特征,并且每个增量学习块ILBi或者双向级联网络的每一层能够接受来自不同增量学习块或不同层的不同尺度的局部检测/预测结果的不同监督,而不是来自不同层或所有层的相同监督。
[0138] 图13示出根据本公开的实施例的双向级联网络的检测结果的示例。在图13的示例中,根据本公开的实施例的双向级联网络包括5个ILB,并且检测8个不同的输入图像FIN中的关注对象的边缘。
[0139] 如图13所示,较浅层的增量学习块ILB块能够对局部细节产生强响应,而较深层的增量学习块ILB对具有较大尺度的特征(例如,边缘)更敏感。
[0140] 通过根据本公开的实施例的方法或者根据本公开的实施例的网络结构,能够以轻量级的操作或结构(例如,在图13的示例中仅包括5个ILB)获得优良的检测/预测效果,并且不需要诸如事先标注等复杂的预处理过程。
[0141] 对于每个增量学习块ILBi,可以使用分别来自该增量学习块ILBi两侧的两个单侧局部检测/预测结果作为监督,来训练该增量学习块ILBi。
[0142] 为了描述上的方便,使用(X,Y)表示训练集T中的一个样本,其中,X={xj,j=1,…,|X|}可以表示原始的输入张量FIN(例如,图像),并且Y={yj,j=1,…,|X|}是预先设置的真值表。例如,真值表可以是二元真值表,即,yj∈{0,1}。在另外的示例中,真值表也可以是多元真值表。
[0143] Y中的特征(例如,边缘)可以根据它们所描述的对象的尺度而被分解为N个特征图(例如,边缘图),即:
[0144] Y=Σi=1:NYi  (1)
[0145] 其中,Yi包括与增量学习块ILBi所关注的尺度相对应的标注特征。
[0146] 于是,对于增量学习块ILBf(1≤f≤N),可以根据其局部检测/预测结果分别为Df,1和Df,2定义相应的真值表如下:
[0147] Yf,1=Y-Σi
[0148] Yf,2=Y-Σi>fDi,2  (3)
[0149] 在根据本公开的实施例的网络中,使用Df,1和Df,2来近似Yf,1和Yf,2,即[0150] Df,1+Df,2~Y-ΣifDi,2  (4)
[0151] 进一步地,在训练过程中,可以根据最终检测结果和预先设置的真值表,确定与融合所有的检测结果Di,1和检测结果Di,2有关的融合损失Lfuse(D,Y)。
[0152] 然后,可以根据每个检测结果Di,1和真值表中的对应的真值Yi,1,确定每个单侧损失L(Di,1,Yi,1),并且可以可以根据每个检测结果Di,2和真值表中的对应的真值Yi,2,确定每个单侧损失L(Di,2,Yi,2)。
[0153] 然后,可以根据所有的单侧损失L(Di,1,Yi,1)和单侧损失L(Di,2,Yi,2)的总和Lside以及融合损失Lfuse(D,Y),确定与检测特征有关的总损失L。例如,如下式所示:
[0154] L=wside×Lside+wfuse×Lfuse(D,Y)  (5)
[0155] Lside=Σi=1:N[L(Di,1,Yi,1)+L(Di,2,Yi,2)]  (6)
[0156] 其中,wside和wfuse分别是单侧损失的权重和融合损失的权重。
[0157] 在一个实施例中,可以使用类平衡交叉熵损失(class-balanced cross-entropy loss)评估确定融合损失Lfuse(D,Y)、单侧损失[L(Di,1,Yi,1)和单侧损失L(Di,2,Yi,2)中的一个或多个。
[0158] 例如,对于真值表Y={yj,j=1,…,|X|},假设yj∈{0,1},并且可以定义正样本集合Y+={yj,yi>γ}和负样本集合Y-={yj,yi=0},其中,γ为用于确定正样本的阈值,并且在损失计算中仅考虑与Y+和Y-相对应的体素(例如,图像中的像素),则
[0159] L(Y’,Y)=-αΣj∈Y-log(1-y’j)-βΣj∈Y+log(y’j)  (7)
[0160] 其中,Y’={y’j,j=1,…,|Y’|}(y’j∈{0,1})表示作为检测/预测结果的特征图,α=λ|Y+|/(|Y+|+|Y-|),β=|Y-|/(|Y+|+|Y-|),并且λ是用于控制正、负样本的权重。
[0161] 应当理解,根据本公开的实施例的方法或模型的训练过程不局限于使用类平衡交叉熵损失确定各种损失。在另外的实施例中,也使用诸如多类支持向量机损失函数、SoftMax分类器等确定所关注的各种损失。
[0162] 然后,根据计算出的融合损失Lfuse(D,Y)、单侧损失的总和Lside以及总损失L,调整与每个ILBi有关的参数,这样的参数例如可以包括下列中的一个或多个:
[0163] -与每个ILBi中的分组Gi中的各个卷积CONVi,j有关的参数,例如,卷积核的数量、大小、步长、体素值等;
[0164] -与确定融合结果Fi,1和Fi,2有关的参数,例如,是否设置尺度增强块、尺度增强块的结构、尺度增强块中的膨胀卷积的数量、尺度增强块中的各个卷积的权重参数、融合块FUSEi,1和FUSEi,2的参数、可选的后处理块POSTi,1和POSTi,2的参数等;
[0165] -与确定检测结果(或者局部检测/预测结果)Di,1和Di,2有关的参数;以及[0166] -融合层FUSE”的参数。
[0167] 另外,在训练过程中,还可以结合性能测试的结果来调整尺度增强块中的例如膨胀卷积的数量和膨胀系数等。例如,在膨胀卷积的数量大于1的情况下,可以获得显著的性能提升,并且相应地可以将膨胀卷积的数量设置为大于1,例如3个、4个、8个等。
[0168] 根据本公开的实施例的双向级联卷积神经网络是一种轻量级的网络结构,相比于其他常规的特征检测网络(例如VGG16、ResNet50等卷积神经网络或者例如带孔空间金字塔池化ASPP等检测模型)具有少得多的层数。而且,通过本公开的实施例的双向级联卷积神经网络进行特征检测或者通过使用根据本公开的实施例的方法进行特征检测,相比于其他常规的特征检测网络或检测手段,能够获得更高的F-measure评价值。
[0169] 例如,针对BSDS500、NYUDv2和Multicue等数据集,根据本公开的实施例的方法或网络模型能够获得例如0.828的ODS F-measure评价值,相比于其他常规的特征检测网络(例如VGG16、ResNet50等卷积神经网络或者例如带孔空间金字塔池化ASPP等检测模型)至少高出1.3%。
[0170] 图14示出根据本公开的实施例的用于检测特征的装置的示例200。如图14所示,示例装置200包括乘加器阵列MA。乘加器阵列MA可以包括多个乘加器(也称为“乘法累加器”),其中,每个乘法累加器可以在例如一个时钟周期内完成一次乘、加运算。在另外的实施例中,乘加器阵列MA还可以包括累加输出寄存器。
[0171] 在一个实施例中,乘加器阵列MA可以例如在控制器(未示出)的控制下,对输入张量FIN串行卷积运算,从而实现例如示例方法100的步骤S110。
[0172] 示例装置200还包括至少两个第一融合器FUSEi,1(1≤i≤N)、至少两个第二融合器FUSEi,2、至少一个第三融合器FUSE’j,1(1
[0173] 根据不同的实施例,上述融合器中的任何一个或多个可以通过任何适当的方式来实现。例如,在融合操作包括逐点加操作的情况下,示例装置200中的融合器可以包括逐点累加运算器。例如,在融合操作包括1×1卷积的情况下,示例装置200中的融合器可以包括一个或多个乘加器,或者借助于示例装置200中的乘加器阵列完成相应的融合操作。例如,在融合操作包括拼接操作的情况下,示例装置200中的融合器可以包括存储器,并借助于数据存储的连续性,在存储数据时直接完成数据的拼接,也可以包括专用的数据整合器,用于按照指定格式生成目标数据。
[0174] 第一融合器FUSEi,1可以例如在控制器(未示出)的控制下,根据每个卷积的结果,确定针对每个分组的第一融合结果。第二融合器FUSEi,2可以例如在控制器(未示出)的控制下,根据每个卷积的结果,确定针对每个分组的第二融合结果。第三融合器FUSE’j,1可以例如在控制器(未示出)的控制下,确定基于每个分组的第一检测结果,其中,基于任一非最先分组的第一检测结果可以取决于针对该非最先分组的第一融合结果和基于在该非最先分组之前执行的至少一个分组的第一检测结果。第四融合器FUSE’j’,2可以例如在控制器(未示出)的控制下,确定基于每个分组的第二检测结果,其中,基于任一非最后分组的第二检测结果可以取决于针对该非最后分组的第二融合结果和基于在该非最后分组之后执行的至少一个分组的第二检测结果。第五融合器FUSE”可以融合所有的第一检测结果和第二检测结果,以确定关于特征的最终检测结果。
[0175] 应当理解,图14所示的示例装置200仅是示例性,而非限制性的。根据本公开的实施例的装置还可以具有其他部件和/或结构。
[0176] 图15示出根据本公开的实施例的装置的结构的另一个示例300。
[0177] 如图15所示,示例装置300可以包括一个或多个处理器PU。处理器PU可以是具有数据处理能力和/或指令执行能力的任何形式的处理单元,例如通用处理器CPU、图形处理器GPU、现场可编程门阵列FPGA等,也可以是专用的神经网络处理器或加速器等。
[0178] 例如,处理器PU可以是如图16所示的卷积神经网络加速器。该卷积神经网络加速器CA可以包括输入缓冲器IB、权重缓冲器WB、控制器CTL、计算核心电路CC和输出缓冲器OB等部件。计算核心电路CC可以包括输入寄存器IR、一个或多个卷积引擎CE以及一个或多个输出寄存器OR等部件,其中,每个卷积引擎CE可以包括处理器阵列PA,例如可以是乘加器阵列。另外,卷积神经网络加速器CA的计算核心电路CC还包括用于池化操作的一个或多个池化电路PL。
[0179] 处理器PU可以被配置为在启动(例如,通电)时至少执行根据本公开的实施例的方法的步骤。
[0180] 另外,处理器PU可以通过总线系统和/或其他形式的连接机构与存储器MEM以及I/O接口相连。
[0181] 存储器MEM可以包括各种形式的计算机可读写存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪速存储器等。可读写存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。
[0182] I/O接口可以用于向处理器PU提供参数或数据并且输出经过处理器PU处理的结果数据。
[0183] 另外,在一个实施例中,可以在一个或多个计算机可读取的非临时性存储介质上存储或实施能够执行根据本公开的实施例的方法的各个步骤的程序指令,使得这样的非临时性存储介质能够在被计算机或其他计算装置(例如处理器)读取时提供相应的程序指令,并使得计算机或其他计算装置能够根据所读取的程序指令执行相应的操作。根据不同的实施例,程序指令能够以诸如源代码、二进制代码、中间代码等各种形式或各种形式的不同组合而实施或存储在非临时性存储介质上。
[0184] 贯穿说明书和权利要求书,除非上下文清楚地另有要求,否则措词“包括”、“包含”等应当以与排他性或穷尽性的意义相反的包括性的意义来解释,也就是说,应当以“包括但不限于”的意义来解释。另外,措词“在本文中”、“上文”、“下文”以及相似含义的措词在本申请中使用时应当指作为整体的本申请,而不是本申请的任何具体部分。在上下文允许时,在使用单数或复数的以上描述中的措词也可以分别包括复数或单数。关于在提及两个或多个项目的列表时的措词“或”,该措词涵盖该措词的以下解释中的全部:列表中的任何项目,列表中的所有项目,以及列表中的项目的任何组合。
[0185] 虽然已经描述了本公开的一些实施例,但是这些实施例仅作为示例而呈现,而不打算限制本公开的范围。实际上,在本文中所描述的方法和系统可以采用多种其他形式来实施。另外,可以在不脱离本公开的范围的情况下,在本文中所描述的方法和装置的形式上做出各种省略、替换和改变。