[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] 虽然已经描述了本公开的一些实施例,但是这些实施例仅作为示例而呈现,而不打算限制本公开的范围。实际上,在本文中所描述的方法和系统可以采用多种其他形式来实施。另外,可以在不脱离本公开的范围的情况下,在本文中所描述的方法和装置的形式上做出各种省略、替换和改变。