CN111985617B - 3d卷积神经网络在神经网络处理器上的处理方法和装置 - Google Patents

3d卷积神经网络在神经网络处理器上的处理方法和装置 Download PDF

Info

Publication number
CN111985617B
CN111985617B CN202010820483.5A CN202010820483A CN111985617B CN 111985617 B CN111985617 B CN 111985617B CN 202010820483 A CN202010820483 A CN 202010820483A CN 111985617 B CN111985617 B CN 111985617B
Authority
CN
China
Prior art keywords
pooling
spliced
convolution
feature
neural network
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010820483.5A
Other languages
English (en)
Other versions
CN111985617A (zh
Inventor
黄斌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Hikvision Digital Technology Co Ltd
Original Assignee
Hangzhou Hikvision Digital Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Hikvision Digital Technology Co Ltd filed Critical Hangzhou Hikvision Digital Technology Co Ltd
Priority to CN202010820483.5A priority Critical patent/CN111985617B/zh
Publication of CN111985617A publication Critical patent/CN111985617A/zh
Application granted granted Critical
Publication of CN111985617B publication Critical patent/CN111985617B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Image Analysis (AREA)
  • Complex Calculations (AREA)

Abstract

本申请提供3D卷积神经网络在神经网络处理器上的处理方法和装置。本申请中,将图序列在时间维度上拆分后与P3D卷积层的第一卷积核进行第一次卷积运算,得到多个第一2D特征图,然后将第一2D特征图划分后再拼接到通道维度上,得到多个2D拼接图;同时,将P3D卷积层的第二卷积核在时间维度上的数据拼接到通道维度上,得到2D拼接卷积核,并基于该2D拼接图和2D拼接卷积核进行第二次卷积运算。由此,神经网络处理器实现了支持3D神经网络的卷积处理。同时,本申请还将P3D池化层进行池化操作步骤的转换,分别进行了第一池化操作和第二次池化操作,实现了神经网络处理器支持3D卷积神经网络的池化处理。

Description

3D卷积神经网络在神经网络处理器上的处理方法和装置
技术领域
本申请涉及图像处理领域,尤其涉及3D卷积神经网络在神经网络处理器上的处理方法和装置。
背景技术
卷积神经网络(Convolutional Neural Networks,CNN)是一类包含卷积计算且具有深度结构的前馈神经网络(Feedforward Neural Networks),被广泛地应用于图像识别、语音识别、自然语言识别等各个领域。
在卷积神经网络应用中,神经网络处理器由于具有更快的处理速度,因此成为应用中的首选,特别是在一些对实时性要求较高的应用场景中,更倾向于采用神经网络处理器来实现卷积神经网络。
然而,由于神经网络处理器的硬件结构是固定的,一般只支持卷积核为二维的卷积神经网络(简称二维卷积神经网络,也称2D卷积)。在设计神经网络处理器时未考虑扩展,神经网络处理器往往仅支持二维卷积神经网络(也称2D卷积),不支持卷积核为三维的卷积神经网络(简称三维卷积神经网络,也称3D卷积),这导致三维卷积神经网络不能被应用在神经网络处理器,限制了三维卷积神经网络的应用。
发明内容
有鉴于此,本申请提供一种3D卷积神经网络在神经网络处理器上的处理方法和装置。
根据本申请实施例的第一方面,提供一种3D卷积神经网络在神经网络处理器上的处理方法,所述神经网络处理器支持2D卷积神经网络的运行,不支持所述3D卷积神经网络的运行,所述3D卷积神经网络为P3D网络,所述P3D网络包括P3D卷积层和P3D池化层,所述P3D卷积层包括第一卷积核和第二卷积核,所述第一卷积核在时间维度参数为1;所述第二卷积核在时间维度参数为L2;所述方法包括:
步骤1:接收时间维度参数为L1的图序列,将所述图序列拆分成时间维度参数为1的L1个图,将所述L1个图输入到P3D卷积层并分别与所述第一卷积核进行卷积运算,输出L1个第一2D特征图;
步骤2:将所述L1个第一2D特征图按照所述第二卷积核的时间维度参数L2划分成L个子序列,每个子序列包括按照时间顺序排列的L2个第一2D特征图;并针对所述L个子序列中的每一个,将所述L2个第一2D特征图沿通道维度方向上按顺序进行图拼接,将其转换成时间维度参数为1但通道维度方向上存在拼接的一个2D拼接图,最终得到L个2D拼接图;其中,所述L=(L1-L2+2×Pad_L2)/Stride_L2+1,其中,L2为第二卷积核时间维度参数,Pad_L2为第二卷积核用于卷积运算的加窗参数,Stride_L2为第二卷积核用于卷积运算的步长参数;
步骤3:将时间维度参数为L2的第二卷积核转换成时间维度参数为1但通道维度方向存在L2个第二卷积核拼接的一个2D拼接卷积核;然后将步骤2中得到的L个2D拼接图与所述2D拼接卷积核分别进行卷积运算,输出L个第二2D特征图,所述L个第二2D特征图为P3D卷积层的输出,并输入到所述P3D池化层;
步骤4:先将所述P3D池化层进行池化操作的维度转换,其中,所述C3D池化层进行池化操作的时间维度参数由L3转换成1,所述C3D池化层执行池化操作的数量维度参数由1转换为L3,数量维度参数由1转换为L3;然后将输入到所述P3D池化层的所述L个第二2D特征图先执行L次时间维度参数为1的第一池化操作,得到L个初步压缩的第一池化特征图,再将所述L个第一池化特征图进行二次池化操作,得到再次压缩的K个特征图,其中,K小于L,所述第一池化操作是将输入的每个所述第二2D特征图滑窗并按设定取值方式进行取值的操作;所述设定取值方式为取平均值或取最大值。
根据本申请实施例的第二方面,提供一种3D卷积神经网络在神经网络处理器上的处理装置,所述神经网络处理器支持2D卷积神经网络的运行,不支持所述3D卷积神经网络的运行,所述3D卷积神经网络为P3D网络,所述P3D网络包括P3D卷积层和P3D池化层,所述P3D卷积层包括第一卷积核和第二卷积核,所述第一卷积核在时间维度参数为1;所述第二卷积核在时间维度参数为L2;所述装置包括:
第一卷积单元,用于:
接收时间维度参数为L1的图序列,将所述图序列拆分成时间维度参数为1的L1个图,将所述L1个图输入到P3D卷积层并分别与所述第一卷积核进行卷积运算,输出L1个第一2D特征图;
拼接处理单元,用于:
将所述L1个第一2D特征图按照所述第二卷积核的时间维度参数L2划分成L个子序列,每个子序列包括按照时间顺序排列的L2个第一2D特征图;并针对所述L个子序列中的每一个,将所述L2个第一2D特征图沿通道维度方向上按顺序进行图拼接,将其转换成时间维度参数为1但通道维度方向上存在拼接的一个2D拼接图,最终得到L个2D拼接图;其中,所述L=(L1-L2+2×Pad_L2)/Stride_L2+1,其中,L2为第二卷积核时间维度参数,Pad_L2为第二卷积核用于卷积运算的加窗参数,Stride_L2为第二卷积核用于卷积运算的步长参数;
第二卷积单元,用于:
将时间维度参数为L2的第二卷积核转换成时间维度参数为1但通道维度方向存在L2个第二卷积核拼接的一个2D拼接卷积核;然后将步骤2中得到的L个2D拼接图与所述2D拼接卷积核分别进行卷积运算,输出L个第二2D特征图,所述L个第二2D特征图为P3D卷积层的输出,并输入到所述P3D池化层;
池化处理单元,用于:
先将所述P3D池化层进行池化操作的维度转换,其中,所述C3D池化层进行池化操作的时间维度参数由L3转换成1,所述C3D池化层执行池化操作的数量维度参数由1转换为L3;然后将输入到所述P3D池化层的所述L个第二2D特征图先执行L次时间维度参数为1的第一池化操作,得到L个初步压缩的第一池化特征图,再将所述L个第一池化特征图进行二次池化操作,得到再次压缩的K个特征图,其中,K小于L,所述第一池化操作是将输入的每个所述第二2D特征图滑窗并按设定取值方式进行取值的操作;所述设定取值方式为取平均值或取最大值。
根据本申请实施例的第三方面,提供一种神经网络处理器,所述神经网络处理器支持2D卷积神经网络的运行,所述神经网络处理器执行上述第一方面所述的方法。
根据本申请实施例的第四方面,提供一种芯片,所述芯片包括可读存储介质和神经网络处理器;
其中,所述可读存储介质,用于存储机器可执行指令;
所述神经网络处理器,支持2D卷积神经网络的运行,用于读取所述可读存储介质上的所述机器可执行指令,并执行所述指令以实现上述第一方面所述的方法。
本申请中,将图序列在时间维度上拆分后与P3D卷积层的第一卷积核进行第一次卷积运算,得到多个第一2D特征图,然后将第一2D特征图划分后再拼接到通道维度上,得到多个2D拼接图;同时,将P3D卷积层的第二卷积核在时间维度上的数据拼接到通道维度上,得到2D拼接卷积核,并基于该2D拼接图和2D拼接卷积核进行第二次卷积运算。由此,神经网络处理器实现了支持3D神经网络的卷积处理。同时,本申请还将P3D池化层进行池化操作步骤的转换,将输入到池化层的数据降低时间维度增加数量维度,进行多次第一池化操作,然后沿高度或宽度对数据进行拼接后进行第二次池化操作,实现了神经网络处理器支持3D卷积神经网络的池化处理。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1a是本申请一示例性实施例示出的一种P3D卷积神经网络中卷积运算的方法示意图。
图1b是本申请一示例性实施例示出的一种3D卷积神经网络在神经网络处理器上的处理方法的流程示意图。
图2是本申请一示例性实施例示出的一种沿通道方向进行图拼接的方法示意图。
图3是本申请一示例性实施例示出的另一种卷积运算的方法示意图。
图4是本申请一示例性实施例示出的另一种沿通道方向进行图拼接的方法示意图。
图5是本申请一示例性实施例示出的一种将第二卷积核转换成2D拼接卷积核的方法示意图。
图6是本申请一示例性实施例示出的另一种卷积运算的方法示意图。
图7是本申请一示例性实施例示出的一种池化操作的方法示意图。
图8是本申请一示例性实施例示出的另一种池化操作的方法示意图。
图9是本申请一示例性实施例示出的另一种池化操作的方法示意图。
图10是申请一示例性实施例示出的另一种池化操作的方法示意图。
图11是申请一示例性实施例示出的一种芯片的一结构示意图。
图12是本申请一示例性实施例示出的一种3D卷积神经网络在神经网络处理器上的处理装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
在本申请实施例中,会用到一些特定的技术术语,为方便叙述,以下先对这些技术术语进行说明:
1)神经网络处理器:
神经网络处理器为用于处理神经网络的处理器芯片。相比软件神经网络处理器的神经网络处理速度更快。这里,神经网络处理器可为专门针对深度学习网络设计的,其可为ASIC处理器芯片。
2)卷积神经网络:
卷积神经网络通常包括有多个卷积层和多个卷积层连接的池化层。
其中,卷积层用于对输入到该卷积层的输入特征图进行特征提取。卷积层中包括多个卷积核。卷积层被配置对应的卷积层参数,其可包括卷积核系数、步长参数和填充值。卷积核系数可以包括权重系数和偏置值。
池化层通常连接于卷积层之后,用于对卷积层输出的特征图进行特征压缩。池化层被配置对应的池化层参数,其可包括池化窗口大小、池化步长和加窗参数。
在卷积神经网络中,可以按照实际需求部署卷积层和池化层。例如,可以在每个卷积层后连接一个池化层;或者,可以在多个连续的卷积层后连接一个池化层等,本实施例并不具体限定。
本文中出现的3D卷积神经网络特指多维度(维度大于2)神经网络,相比传统的二维神经网络,多维度神经网络会在二维神经网络基础上,再加入一个或多个维度,比如在视频处理中引入时间维度,输入多帧视频数据进行卷积。
C3D(Convolutional 3D)模型在传统的二维卷积神经网路的空间域的基础上,增加了一个时间的维度,能够更好的提取行为的时间特征,而且相对双流法等有较快的速度。虽然用C3D卷积进行特征提取可以同时考虑到空间和时间维度的特征,但是计算成本和模型存储还是太大,所以P3D(Pseudo-3D ResNet)网络对三维卷积进行了改造,将一个t×m×n的卷积核分为时间域上的t×1×1的卷积核和空间域上的1×m×n的卷积核,可以减少计算量和储存量,这样就允许在更大的基础网络模型上训练三维神经网络。
3)P3D卷积神经网络:
P3D卷积神经网络是一种被广泛应用的三维卷积神经网络模型。在P3D卷积神经网络中的卷积层,包括两类卷积核,第一类卷积核中的第一卷积核支持宽度和高度两个维度,第二类卷积核中的第二卷积核支持时间维度。
为方便理解,下面结合图1a来介绍P3D卷积神经网络中的卷积运算过程。
P3D卷积神经网络的卷积层中,输入卷积层的图序列可以表示为W1*H1*C1*L1*N1,其中,W1表示宽度维度参数,H1表示高度维度参数,C1表示通道维度参数,L1表示时间维度参数,N1表示数量维度参数。
P3D网络卷积层中的第一卷积核可以表示为W2*H2*C2*N2。其中,W2表示宽度维度参数,H2表示高度维度参数,C2表示通道维度参数,N2表示数量维度参数;第二卷积核可以表示为C2'*L2*N2'。其中,C2'表示通道维度参数,L2表示时间维度参数,N2'表示数量维度参数。
针对输入卷积层的每一个图序列W1*H1*C1*L1,将其按照时间维度索引拆分成L1个图,并将每个图W1*H1*C1分别与每一个第一卷积核W2*H2*C2*L2进行2D卷积运算,从而提取该图序列在高度维度、宽度维度特征,得到L1个第一2D特征图,该第一2D特征图可以表示为W1'*H1'*C1',其中,W1'表示宽度维度参数,H1'表示高度维度参数,C1'表示通道维度参数。
然后将该L1个第一2D特征图按照第二卷积核的时间维度参数L2划分成L个子序列,将每个子序列分别与第二卷积核进行卷积运算,从而提取土畜了在时间维度特征,得到L个第二2D特征图。
为便于描述,这里以图序列在数量维度参数N1、P3D第一卷积核在数量维度参数N2、以及P3D第二卷积核在数量维度参数N2'均为1为例。如图1a所示,图序列101可以表示为6*6*100*5(对应于W1*H1*C1*L1),P3D第一卷积核102可以表示为3*3*100(对应于W2*H2*C2),P3D第二卷积核104可以表示为1*3*1(对应于C2'*L2*N2)。将图序列101拆分成5个图后,分别与第一卷积核进行卷积运算,可以得到5个第一2D特征图103。然后按照第二卷积核104在时间维度参数3将第一2D特征图103划分成3个子序列,并将其中的每个子序列分别与第二卷积核104进行卷积运算。由此,可以得到在时间维度参数为3的第二2D特征图105,该2D特征图可以表示为4*4*3,表示在高度维度和宽度维度上参数均为4,在时间维度上参数为3。
可以理解的是,这里只是对P3D卷积神经网络中的卷积方法做简要说明,具体可以参照现有技术,这里不再赘述。
P3D卷积神经网络模型被应用于智能监控领域中的行为分析及其相关产品中。本发明的目的是为了在具体深度学习处理器上能够部署相关产品,因此也涉及深度学习专属处理器相关领域。
目前传统的神经网络处理器,尤其是为深度学习网络设计的ASIC处理器芯片,这种处理器由于设计时未考虑扩展,往往不支持多维卷积,往往只支持二维卷积神经网络,不支持P3D卷积神经网络。为了能在现有的神经网络处理器上实现P3D卷积神经网络和多维卷积神经网络的功能,本发明实施例提供了一种3D卷积神经网络在神经网络处理器上的处理方法,可应用在用于智能分析的摄像机设备或与摄像机设备相连接的处理设备中执行智能分析功能。
本申请带来的收益效果如下:
1、从技术角度看,P3D卷积神经网络相比2D卷积神经网络有更好的算法性能,如果不做2D网络转换,在神经网络处理器中无法运行,故在做行为分析等应用中不能取得更好的算法效果。通过本发明的P3D网络的转换,可在较为低端的神经网络处理器上拥有较高的算法效果。
2、从产品角度看,在较低成本的处理器上部署效果更好的算法,并且本文的方法对于内存消耗没有增加,可提升行为分析相关产品的竞争力。
参见图1b,图1b为本申请一示例性实施例示出的一种3D卷积神经网络在神经网络处理器上的处理方法的流程示意图。其中,神经网络处理器支持2D卷积神经网络的运行,不支持3D卷积神经网络的运行。本实施例中,3D卷积神经网络为P3D网络,该P3D网络包括P3D卷积层和P3D池化层;所述P3D卷积层包括第一卷积核和第二卷积核,其中第一卷积核在时间维度参数为1,第二卷积核在时间维度参数为L2。
如图1b所示,该流程可包括以下步骤:
步骤S101:接收时间维度参数为L1的图序列,将所述图序列拆分成时间维度参数为1的L1个图,将所述L1个图输入到P3D卷积层并分别与所述第一卷积核进行卷积运算,输出L1个第一2D特征图。
本实施例中,图序列可以是包括多帧图像的视频流,或者也可以是卷积层或池化层处理后输出的特征图。图序列的参数可以包括宽度维度、高度维度和时间维度。
在一个例子中,图序列可以表示为W1*H1*C1*L1*N1。其中,W1表示宽度维度参数,H1表示高度维度参数,C1表示通道维度参数,L1表示时间维度参数,N1表示数量维度参数。其中,W1*H1可以表示图像在空间维度上的特征,例如6*6的图像可以表示该图像在每个通道上包括36个元素;C1可以表示图像的通道数,例如常见的彩色图像可以由R、G、B三个通道来分别表示红、绿、蓝三个颜色;L1可以表示图序列中时间维度上不同索引的图像的数量,例如一段视频流中可以包括5个不同时刻(例如时间戳分别为t0-t4,即时间维度上索引分别为t0-t4)的视频图像,则该视频流L1=5;N1可以表示图序列的数量。
由于每个图序列的处理方式类似,为方便描述,下文均以N1=1为例进行说明。当然,N1也可以大于1,这里只是示例性说明,并不进行限定。
本实施例中,图序列中包括时间维度上索引值不同、且从小到大排序的L1个图,按照不同的索引值对该图序列进行拆分,可以得到L1个图。其中,每个图可以表示为W1*H1*C1。例如,对于时间维度上索引值分别为t0-t4的图序列,可以按照时间维度上不同的索引值拆分成5个图。
本实施例中,P3D网络卷积层中的第一卷积核可以表示为W2*H2*C2*N2。其中,W2表示宽度维度参数,H2表示高度维度参数,C2表示通道维度参数,N2表示数量维度参数(即第一卷积核数量)。这里参数的具体含义与图序列中各参数的含义类似,这里不再赘述。需要说明的是,通道维度参数C2的数值与图序列中通道维度参数C1数值相同。
由于每个卷积核的处理方式类似,为方便描述,下文均以N2=1为例进行说明。当然,N2也可以大于1,这里只是示例性说明,并不进行限定。
本实施例中,将拆分后得到的L1个图分别与第一卷积核进行卷积运算,输出L1个第一2D特征图。这里,卷积运算时可以参照P3D卷积层中的步长参数和加窗参数进行处理,卷积运算的具体方法可以参照现有技术,这里不再赘述。
本实施例中,每个第一2D特征图可以表示为W1'*H1'*C1',其中,W1'表示宽度维度参数,H1'表示高度维度参数,C1'表示通道维度参数。
步骤S102:将所述L1个第一2D特征图按照所述第二卷积核的时间维度参数L2划分成L个子序列,每个子序列包括按照时间顺序排列的L2个第一2D特征图;并针对所述L个子序列中的每一个,将所述L2个第一2D特征图沿通道维度方向上按顺序进行图拼接,将其转换成时间维度参数为1但通道维度方向上存在拼接的一个2D拼接图,最终得到L个2D拼接图。
其中,所述L=(L1-L2+2*Pad_L2)/Stride_L2+1,其中,L2为第二卷积核时间维度参数,Pad_L2为第二卷积核用于卷积运算的加窗参数,Stride_L2为第二卷积核用于卷积运算的步长参数。
本实施例中,针对步骤S101中得到的L1个第一2D特征图,可以按照P3D第二卷积核时间维度参数L2对该L1个第一2D特征图进行划分,得到L个子序列。其中,每个子序列包括按照时间顺序排列的L2个第一2D特征图。
在一个例子中,可以按照P3D卷积层中设定的加窗参数Pad_L2、以及步长参数Stride_L2对该L1个第一2D特征图进行划分,得到L个子序列。其中,L的值可以采用公式(1)来计算:
L=(L1 - L2 + 2 * Pad_L2)/ Stride_L2+ 1 (1)
其中,L1为第一2D特征图的数量;L2为C3D卷积核在时间维度上的参数;Pad_L2为第二卷积核用于卷积运算的加窗参数;Stride_L2为第二卷积核用于卷积运算的步长参数。需要说明的是,这里的加窗参数Pad_L2和步长参数Stride_L2为根据P3D第二卷积核在进行卷积运算时的加窗参数和步长参数确定的。若采用公式(1)计算的结果不为整数,则对计算结果向下取整数作为L的值。
本实施例中,划分子序列的方法可以有多种,例如可以采用滑窗的方式将该L1个第一2D特征图划分成L个子序列。至于滑窗的具体方法,本申请将在下文结合图4进行介绍,在此暂不赘述。
本实施例中,基于上述划分操作得到的L个子序列,可以针对L个子序列中的每一个,将该序列中的L2个图沿通道维度方向上按顺序进行图拼接,将其转换成时间维度参数为1,且通道维度方向上存在拼接的一个2D拼接图。对该L个子序列分别进行拼接,可以得到L个2D拼接图。其中,每个2D拼接图可以表示为W1'*H1'*(C1'*L2),其中C1'*L2表示在该2D拼接图通道维度参数值。
在一个例子中,针对每个子序列中的L2个图,可以将第2个图沿通道方向拼接到第1个图之后,再将第3个图沿通道方向拼接到第2个图之后,以此类推,直到将该第L2个图拼接到第L2-1个图之后。
可以理解的是,在卷积神经网络的卷积层中,一般不在通道维度上进行特征提取,卷积核通道维度参数与输入该卷积层的特征图相同。因此,本实施例通过步骤S101先进行高度维度和宽度维度的卷积,得到L个第一2D特征图;然后再通过步骤S102将数量维度的数据拼接到通道维度,得到2D拼接图,以使神经网络处理器可以对2D拼接图进行处理。
下面以图2为例对本步骤中沿通道方向按顺序进行图拼接的具体方法进行说明。
如图2所示,假设一个子序列中包括2个图,其中每个图在时间维度上的索引值按顺序分别为t0、t1、t2,且每个图在通道维度上的参数为2(分别为R、G、B三个通道)。
例如在图2中,时间维度上索引值为t0的图,在R通道上的数据块为x0,在G通道上的数据块为y0,在B通道上的数据块为z0;同理,时间维度上索引值为t1的图在R、G、B三个通道上的数据块分别为x1、y1、z1,时间维度上索引值为t2的图在R、G、B三个通道上的数据块分别为x2、y2、z2。
其中,每个图在各通道上的数据块用于表示该图在高度维度和宽度维度上的数据,该数据块可以表示为H*W,其中H表示该图的高度维度参数,W表示该图的宽度维度参数。例如,对于时间维度上索引值为t0、在R通道上的数据块x0,其参数可以为2*2,对应于H*W,表示在高度维度H上参数为2,在宽度维度W上参数为2,该数据块的数据如201所示,分别为a00、a01、a10、a11。
在对图2中的三个图进行拼接时,将t1对应的图中的各数据块,按照R、G、B的通道顺序,叠加到t0对应的图的通道方向上;将t2对应的图也按照R、G、B的通道顺序,叠加到t1对应的图的通道方向上。
由此,可以得到如202所示的2D拼接图。该2D拼接图在通道方向上的维度值为9(t0、t1、t2对应的三个图的通道维度参数之和),依次包括x0、y0、z0、x1、y1、z1、x2、y2、x2这9个数据块。
步骤S103:将时间维度参数为L2的第二卷积核转换成时间维度参数为1但通道维度方向存在L2个第二卷积核拼接的一个2D拼接卷积核;然后将步骤2中得到的L个2D拼接图与所述2D拼接卷积核分别进行卷积运算,输出L个第二2D特征图,所述L个第二2D特征图为P3D卷积层的输出,并输入到所述P3D池化层。
本实施例中,P3D网络卷积层中的第二卷积核可以表示为C2'*L2*N2'。其中,C2'表示通道维度参数,L2表示时间维度参数,N2'表示数量维度参数(即第二卷积核数量)。这里参数的具体含义与图序列中各参数的含义类似,这里不再赘述。需要说明的是,通道维度参数C2'的数值与步骤S101中得到的第一2D特征图通道维度参数C1'数值相同。
可以理解的是,本实施例中在步骤S101中以第一卷积核数量N2=1为例,则输出的第一2D特征图通道维度参数C1'为1。继而,本实施例中,第二卷积核通道维度参数C2'也为1。
由于每个第二卷积核的处理方式类似,为方便描述,下文均以N2'=1为例进行说明。当然,N2'也可以大于1,这里只是示例性说明,并不进行限定。
本实施例中,可以按照与步骤S101类似的方法将P3D第二卷积核转换为2D拼接卷积核。首先,将P3D第二卷积核按照在时间维度上索引值不同拆分成L2个2D卷积核,拆分后的每个卷积核在时间维度参数为1;然后,将该L2个卷积核按照顺序在通道维度方向上进行拼接,得到通道维度方向上存在L2个2D卷积核拼接的2D拼接卷积核。
可以理解的是,该2D拼接卷积核在通道维度的参数为L2*C2',在时间维度的参数为1;与步骤S102中得到的2D拼接图在通道维度和时间维度的参数相同。
本实施例中,可以将步骤S102中得到的L个2D拼接图分别与2D拼接卷积核进行卷积运算,得到L个第二2D特征图。
需要说明的是,本申请中的神经网络处理器可以实现上述2D拼接图与2D拼接卷积核的卷积运算,运算时可以参照P3D卷积层中的步长参数和加窗参数进行处理,卷积运算的具体方法可以参照现有技术,这里不再赘述。
本实施例中,可以将上述卷积运算得到的L个第二2D特征图输入到P3D池化层进行特征压缩。
步骤S104:先将所述P3D池化层的时间维度参数和数量维度参数进行转换,其中,时间维度参数L3转换成1,数量维度参数由1转换为L;然后将输入到所述P3D池化层的所述L个第二2D特征图先执行L次时间维度参数为1的第一池化操作,得到L个初步压缩的第一池化特征图,再将所述L个第一池化特征图进行二次池化操作,得到再次压缩的K个特征图,其中,K小于L,所述第一池化操作是将输入的每个所述第二2D特征图滑窗并按设定取值方式进行取值的操作;所述设定取值方式为取平均值或取最大值。
P3D池化层中可以包括一个池化窗口,可以表示为W3*H3*L3。其中,W3表示宽度维度参数,H3表示高度维度参数,L3表示时间维度参数。
本实施例中,对该池化窗口的时间维度参数和数量维度参数进行转换。首先,将该池化窗口时间维度参数L3转换为1,得到第一池化窗口,可以表示为W3*H3。同时,将该池化窗口的数量维度参数由1转换为L3,得到二次池化窗口。其中,二次池化窗口在宽度维度、高度维度和通道维度的参数为1。
基于上述第一池化窗口将步骤S103中得到的第二2D特征图进行第一池化操作,得到L个初步压缩的第一池化特征图;然后基于二次池化窗口,对L个第一池化特征图进行二次池化操作,得到再次压缩的K个特征图。
下面说明进行池化操作的具体方法。
本实施例中,第一池化窗口在数量维度参数为1,也就是说基于第一池化窗口对L个第二2D特征图中的每一个分别进行第一池化操作。
首先,按照第一池化窗口大小,以及预设的步长参数和填充参数对该第二2D特征图在高度维度和宽度维度上进行滑窗分组;
然后,将滑窗所处位置中包含的多个数据视为一个分组,将该分组中的多个数据压缩为一个数据,作为本次滑窗分组的压缩结果。在一个例子中,数据压缩的方式可以是取该多个数据的平均值或最大值;
接着,按照设定的步长参数移动滑窗,并将该滑窗所处位置中包含的数据进行压缩,重复这一过程,直到滑窗移动到该第二2D特征图的另一端,最终完成对该第二2D特征图的初步压缩,得到一个第一池化特征图。
采用上述方法分别对L个第二2D特征图分别进行初步压缩,得到L个第一池化特征图。
基于该L个第一池化特征图,本实施例可以采用二次池化窗口对其进行二次池化操作,得到再次压缩的K个特征图。首先将该L个第一池化特征图分成K个分组,例如可以按照滑窗的方式依次选取多个第一池化特征图分为一组等;然后基于K组第一池化特征图,将多个第一池化特征图压缩成1个特征图,针对该K个分组分别进行压缩,可以得到再次压缩的K个特征图。
二次池化操作的具体方法将在将下文结合图8-图10,以及3个具体的实施例进行说明,这里暂不赘述。
经过步骤S104,可以得到K个特征图。本实施例中,可以将该K个特征图视为在时间维度参数为K的图序列。针对该图序列,可以根据P3D卷积神经网络的模型结构继续进行处理,例如可以将该在时间维度参数为K的图序列输入下一个卷积层,并根据图1b所示流程对该图序列进行处理。
至此,完成了图1b所示的流程。在图1b所示的流程中,将图序列在时间维度上拆分后与P3D卷积层的第一卷积核进行第一次卷积运算,得到多个第一2D特征图,然后将第一2D特征图划分后再拼接到通道维度上,得到多个2D拼接图;同时,将P3D卷积层的第二卷积核在时间维度上的数据拼接到通道维度上,得到2D拼接卷积核,并基于该2D拼接图和2D拼接卷积核进行第二次卷积运算。由此,神经网络处理器实现了支持3D神经网络的卷积处理。同时,本申请还将P3D池化层进行池化操作步骤的转换,将输入到池化层的数据降低时间维度增加数量维度,进行多次第一池化操作,然后沿高度或宽度对数据进行拼接后进行第二次池化操作,实现了神经网络处理器支持3D卷积神经网络的池化处理。
下面结合图3-图6,对步骤S101-步骤S103进行具体介绍。
按照步骤S101,将接收到的图序列在时间维度上拆分后与P3D第一卷积核进行卷积运算。包括以下步骤:
步骤A1:针对接收到的图序列,根据在时间维度上索引值不同,将图序列拆分成L1个图,其中每个图在时间维度上参数为1。
如图3所示,图序列301可以表示为6*6*100*5*1,对应于W1*H1*C1*L1*N1,表示该图序列301在高度维度和宽度维度上的参数W1、H1均为6;在通道维度参数C1为100;在时间维度上的参数L1为5;在数量维度上的参数N1为1。本步骤中,将该图序列301拆分成如302所示的5个图,其中每个图可以表示为6*6*100(对应于W1*H1*C1)。
步骤A2:将步骤A1中得到的L1个图输入到P3D卷积层并分别与第一卷积核进行卷积运算,输出L1个第一2D特征图。
本实施例中,P3D网络卷积层中的第一卷积核可以表示为W2*H2*C2*N2。其中,W2表示宽度维度参数,H2表示高度维度参数,C2表示通道维度参数,N2表示数量维度参数(即第一卷积核数量)。
需要说明的是,第一卷积核在时间维度参数为1,通道维度参数C2的数值与图序列中通道维度参数C1数值相同。
以图3为例,P3D第一卷积核如图3中的303,可以表示为3*3*100,对应于W2*H2*C2。将302所示的5个第一2D特征图分别与该第一卷积核303进行卷积运算,可以得到如304所示的5个第一2D特征图。卷积计算的具体方法可以参照现有技术,这里不再赘述。需要说明的是,这里的303即为P3D卷积神经网络卷积层中的第一卷积核,即图1a中的102。
需要说明的是,本实施例中仅以一个第一卷积核为例。在实际应用中,P3D卷积层中可以包括多个第一卷积核,得到多通道的第一2D特征图,本实施例并不进行限定。
按照步骤S102:针对步骤S101得到的L1个第一2D特征图,将其划分后再拼接到通道维度上。
步骤B1:按照滑窗的方式将该L1个第一2D特征图划分成L个子序列,可以包括如下步骤:
步骤B1a:按照加窗参数Pad_L2在数量维度上对该L1个图进行加窗操作,例如,可以在该L1个图的任意一端增加Pad_L2个各元素数值均为0的图,得到(L1+Pad_L2)个图;
步骤B1b:基于预设的滑窗窗口和步长参数Stride_L2,对步骤B1a中加窗后的L1+Pad_L2个图进行滑窗分组。
其中,滑窗窗口在数量维度上的参数N2与卷积层中第二卷积核时间维度参数L2相等,在其他维度上的大小与上述L1个第一2D特征图在对应维度的参数相同。例如,若将该L1个第一2D特征图表示为W1'*H1'*C1',则滑窗窗口的大小可以为W1'*H1'*C1'*N2(N2=L2)。
在滑窗分组时,首先将滑窗窗口置于该L1+Pad_L2个图的一端,该位置下,滑窗窗口可以包含L2个图,则将该位置下滑窗窗口中所包含的L2个图划分成一个子序列。然后,基于步长参数Stride_L2移动该滑窗,并将该移动后的滑窗窗口中所包含的L2个图划分为另一个子序列。重复这一过程,直到滑窗移动到该L1+Pad_L2个图的另一端,最终可以得到L个子序列,且每个子序列中包含按照时间顺序排序的L2个第一2D特征图。
如图4所示,假设第二卷积核时间维度参数L2为3,卷积层步长参数Stride_L2为1,填充参数Pad_L2为0。对于步骤S101得到的5个第一2D特征图304,从该5个图的一端开始,以1为步长移动该滑窗,直到滑窗处于另一端,最终得到3个子序列305(包括3051、3052和3053)。
这里,根据公式(1)L=(L1-L2+2*Pad_L2)/Stride_L2+1,可以确定L=3,即得到305中的3个序列。
步骤B2:针对L个子序列中的每一个,将该子序列中的L2个第一2D特征图沿通道维度方向上按顺序进行图拼接,最终得到L个2D拼接图。
以图4中的子序列3051为例,将3051中的第二个图拼接到第一个图通道维度方向之后,再将3051中的第三个图拼接到第二个图通道维度方向之后,得到2D拼接图3061,该2D拼接图在时间维度维度值为1,通道维度方向上存在拼接。采用类似的方法,可以将图序列3052拼接得到2D拼接图3062;将图序列3053拼接得到2D拼接图3063。
按照步骤S103,可以将P3D第二卷积核时间维度的数据拼接到通道维度上,得到2D拼接卷积核,再将步骤S102中得到的L个2D拼接图与2D拼接卷积核分别进行卷积运算。具体地,可以包括以下步骤:
步骤C1:将P3D第二卷积核时间维度的数据拼接到通道维度上,得到2D拼接卷积核。
本实施例中,P3D卷积层的第二卷积核可以表示为C2'*L2*N2'。其中,C2'表示通道维度参数,L2表示时间维度参数,N2'表示数量维度参数(即第二卷积核数量)。需要说明的是,P3D卷积层的第二卷积核在高度维度和宽度维度参数均为1,通道维度参数C2'与步骤S101中得到的第一2D特征图通道维度参数C1'数值相同。
以图5为例,P3D第二卷积核如图5中的501,可以表示为1*3,对应于C2'*L2。首先按照在时间维度上索引值,将该卷积核拆分成3个卷积核502,每个卷积核在时间维度参数为1,可以表示为1*1(对应于C2'*L2)。然后将该3个卷积核在通道维度上进行拼接,例如将502中的第二个卷积核拼接到第一个卷积核通道维度方向之后,再将第三个卷积核拼接到第二个卷积核通道维度方向之后,得到2D拼接卷积核503。可以理解的是,该2D拼接卷积核在通道维度参数数值与C2'*L2相等,即1*3。需要说明的是,这里的501即为P3D卷积神经网络卷积层中的第二卷积核,即图1a中的104。
步骤C2:将L个2D拼接图与2D拼接卷积核分别进行卷积运算。
本实施例中,2D拼接图和2D拼接卷积核时间维度参数均为1,通道维度参数为C1'*L2(C1'=C2'),可以按照2D卷积运算的方法进行卷积运算,得到L个2D特征图。
需要说明的是,本实施例中仅以一个卷积核为例。在实际应用中,P3D卷积层中可以包括多个第二卷积核,每个第二卷积核可以转换成一个2D拼接卷积核,这里不再赘述。
如图6所示,306中的3个2D拼接图分别为3061、3062和3063,503为2D拼接卷积核,将该3个2D拼接图分别与2D拼接卷积核进行卷积运算,可以得到如307所示的3个第二2D特征图(分别为3071、3072、3073)。卷积计算的具体方法可以参照现有技术,这里不再赘述。
下面结合图7-图10,对步骤S104中的池化操作进行具体介绍。
按照步骤S104,将P3D池化层的时间维度参数和数量维度参数进行转换,然后对L个第二2D特征图分别进行第一池化操作和第二池化操作,具体包括以下步骤:
步骤D1:池化层的池化窗口在时间维度参数为L3,数量维度参数为1。本步骤中,先将池化窗口在时间维度参数L3转换为1,得到第一池化窗口;同时将数量维度参数转换为1,得到二次池化窗口。
举例来说,假设C3D池化层的池化窗口为2*2*2(对应于H3*W3*L3)。其中,H3表示池化窗口在高度维度参数,W3表示池化窗口在宽度维度参数,L3表示池化窗口在时间维度参数。转换后,可以得到第一池化窗口2*2(对应于H3*W3);以及第二池化窗口1*1*2(表示在高度维度和宽度维度参数为1,数量维度参数为2)。
步骤D2:针对L个第二2D特征图中的每一个,根据第一池化窗口进行第一池化操作,得到L个第一池化特征图。
以第一池化窗口为2*2(对应于H3*W3)为例,第一池化步长参数为0,填充参数为0,可以按照图7的方法进行池化操作。
如图7所示,图7中的307示出了3个第二2D特征图。以第二2D特征图3071为例,其参数可以表示为4*4(表示在高度维度和宽度维度参数均为4),该第二2D特征图中包括16个数据,假设该16个数据表示为aij,其中i表示在高度维度上的索引值,j表示在宽度维度上的索引值,分别为a00、a01、a02、a03、a10、a11、a12、a13、a20、a21、a22、a23、a30、a31、a32、a33。
先将该16个数据进行分组,然后对每组中的数据进行压缩,得到一个压缩后的数据,假设压缩后数据为bmn,其中m表示在高度维度上的索引值,n表示在宽度维度上的索引值。
在一个实施例中,可以根据第一池化窗口进行滑窗分组。先将第一池化窗口置于第二2D特征图在高度维度和宽度维度的起始端,该滑窗可包含4个数据(例如为a00、a01、a10、a11),将该4个数据作为一组,按照指定方法压缩为一个数据b00;然后根据步长参数移动该第一池化窗口,将该位置下第一池化窗口中包含的4个数据(例如为a01、a02、a11、a1)按照相同的方法压缩为一个数据b01,以此类推,分别沿高度维度和宽度维度移动该第一池化窗口,直到第一池化窗口移动到该第二2D特征图的另一端。由此,可以得到9个压缩后的数据,分别为b00、b01、b02、b10、b11、b12、b20、b21、b22,该6个数据可以按组成第一池化特征图,如图7中的3081所示。
可选地,上述按照指定方法压缩数据是指对每组中的多个数据取平均值,或者对每组中的多个数据取最大值等,本实施例不进行限定。
采用相同的方法对第二2D特征图3072、3073进行处理,分别可以得到第一池化特征图3082和3083。
步骤D3:针对步骤D2中得到的L个第一池化特征图,根据二次池化窗口进行二次池化操作,得到K个二次池化特征图。其中,二次池化窗口在数量维度参数为L3。
本步骤中,二次池化操作可以通过多种方式来实现,下面结合图8-10分别介绍3个具体实施例。
实施例1:将所述L个第一池化特征图沿数量维度方向进行第二池化操作,得到再次压缩的所述K个特征图,其中,所述第二池化操作是在所述L个第一池化特征图之间滑窗并按设定取值方式进行取值的操作。需要说明的是,这里设定取值方式可以是取平均值或取最大值,本实施例中以取最大值为例进行说明。
本实施例中,可以按照二次池化窗口在时间维度的参数来对该L个第一池化特征图进行分组,得到K个组,每组中包括L3个第一池化特征图。在一个例子中,可以通过滑窗的方式进行分组,分组数量K可以通过公式(2)计算。
K=(L - L3 +2*Pad_L3)/ STRIDE_L3+ 1 (2)
其中,L3为C3D池化层时间维度参数,Pad_L3为C3D池化层加窗参数,STRIDE_L3为C3D池化层步长参数。若采用公式(2)计算的结果不为整数,则对计算结果向下取整数作为K的值。
针对所述K个组中的每一个,将该组中的L3个第一池化特征图在各个对应位置上的L3个数据压缩为1个数据,例如取其中的最大值,或者也可以取其平均值等。其中,对应位置的数据为在各维度上索引值相同的数据,例如在高度维度和宽度维度索引值均为0的两个数据称为对应位置数据。
针对每组中的两个第一池化特征图,假设其数据分别为bmn和b’mn,输出的目标池化结果为cmn,其中,m为在高度维度上的索引值,n为在宽度维度上的索引值。分别获取在高度维度和宽度维度索引值相同的两个点,进行压缩处理,将压缩后的数据作为输出结果中对应点的数据值。
以图8为例,本实施例中可以获取3081中高度维度和宽度维度上索引值均为0的位置的数据b00,再获取3082中高度维度和宽度维度上索引值均为0的位置的数据b’00,输出b00和b’00的最大值,作为二次池化特征图中高度维度和宽度维度上索引值均为0的位置的数据c00。
本实施例中,在实现时,可以在第一池化特征图中根据二次池化窗口(1*1*L3,对应于H3*W3*N3,N3表示数量维度参数)进行滑窗,在该L个第一池化特征图的一端将窗口中包含的L3个数据压缩成一个数据,接着按照步长移动该窗口,并采用同样的方法将进行压缩,直到移动到该L个第一池化特征图的另一端,继而可以得到K个二次池化特征图。
参见图8,图8中的308表示3个第一池化特征图,分别为3081、3082、3083。假设二次池化窗口在数量维度参数为2,C3D池化层加窗参数Pad_L3为0,C3D池化层步长参数STRIDE_L3为1。
按照滑窗取最大值的方式进行压缩,可以将第一池化特征图3081和3082压缩成第二池化特征图3091;将第一池化特征图3082和3083压缩成二次池化特征图3092。
至此,完成了实施例1的流程。
实施例2:将所述L个第一池化特征图先沿W方向进行拼接,得到沿W方向拼接后的池化拼接特征图,然后对所述沿W方向拼接后的池化拼接特征图进行第三池化操作,得到再次压缩的K个特征图;所述第三池化操作是将所述沿W方向拼接后的池化拼接特征图滑窗并按设定取值方式进行取值的操作,所述W方向为宽度维度方向。需要说明的是,这里设定取值方式可以是取平均值或取最大值,本实施例中以取最大值为例进行说明。
本实施例中,先将L个第一池化特征图沿宽度维度方向进行拼接,得到池化拼接特征图。
在实现时,可以按照高度维度索引值从小到大的顺序进行拼接,例如将高度维度索引值为1的若干个数据拼接到高度维度索引值为0的3个数据在宽度维度方向之后;再将高度维度索引值为2的若干个数据拼接到高度维度索引值为1的3个数据在宽度维度方向之后,直到拼接完所有数据。
参见图9,图9中的308表示3个第一池化特征图,分别为3081、3082、3083。以3081为例,可以表示为3*3(表示高度维度参数和宽度维度参数均为3),包括9个数据,将该9个数据在宽度维度方向上进行拼接,也就是将第二排的3个数据拼接到第一排的3个数据之后,再将第三排的3个数据拼接到第2排的3个数据之后,直到将高度维度上的数据均拼接到宽度维度上,得到池化拼接特征图31011,可以表示为1*9(表示高度维度参数为1,宽度维度参数为9)。
采用同样的方法对第一池化特征图3082和3083也沿宽度维度方向进行拼接,分别得到池化拼接特征图31012和31013。
本实施例中,针对沿宽度维度方向拼接后的L个池化拼接特征图进行第三池化操作,得到再次压缩的K个特征图。
在一个例子中,可以根据二次池化窗口,通过滑窗的方式来对该L个第一池化特征图进行分组,得到K个组,每组中包括L3个第一池化特征图。其中,分组数量K可以通过公式(3)计算。
K=(L - L3 +2*Pad_L3)/ STRIDE_L3+ 1 (3)
其中,L3为C3D池化层时间维度参数,Pad_L3为C3D池化层加窗参数,STRIDE_L3为C3D池化层步长参数。若采用公式(3)计算的结果不为整数,则对计算结果向下取整数作为K的值。
针对所述K个组中的每一个,将该组中L3个池化拼接特征图在对应位置上的L3个数据压缩为1个数据,例如取其中的最大值,或者也可以取其平均值等。其中,对应位置的数据为在各维度上索引值相同的数据,例如在高度维度和宽度维度索引值均为0的两个数据称为对应位置数据。具体方法可以参见实施例1,这里不再赘述。
仍以图9为例,针对3101所示的3个池化拼接特征图31011、31012、31013。假设第二池化窗口在数量维度参数为2,C3D池化层加窗参数Pad_L3为0,C3D池化层步长参数STRIDE_L3为1。
按照滑窗取最大值的方式进行压缩,可以将池化拼接特征图31011和31012压缩成特征图31021;将池化拼接特征图31012和31013压缩成特征图31022。
本实施例中,针对第三池化操作后特征图,还可以将其拼接到在宽度维度上的数据转换回高度维度。以31021为例,按照第一池化特征图在宽度维度上的参数3,将31021拆分成3组数据,每组数据中包括3个数据,然后将该3组数据在高度维度上进行拼接,得到转换后的特征图31031。采用同样的方法对31022进行转换,可以得到特征图31032。
至此,完成了实施例2的流程。
实施例3:将所述L个第一池化特征图沿H方向进行拼接,得到沿H方向拼接后的池化拼接特征图,然后对所述沿H方向拼接后的池化拼接特征图进行第四池化操作,得到再次压缩的K个特征图,所述第四池化操作是将所述沿H方向拼接后的池化拼接特征图滑窗并按设定取值方式进行取值的操作,所述H方向为高度维度方向。需要说明的是,这里设定取值方式可以是取平均值或取最大值,本实施例中以取最大值为例进行说明。
本实施例中,先将L个第一池化特征图沿高度维度方向进行拼接,得到池化拼接特征图。
在实现时,可以按照宽度维度索引值从小到大的顺序进行拼接,例如将宽度维度索引值为1的若干个数据拼接到宽度维度索引值为0的3个数据在高度维度方向之后;再将宽度维度索引值为2的若干个数据拼接到宽度维度索引值为1的3个数据在高度维度方向之后,直到拼接完所有数据。
参见图10,图10中的308表示3个第一池化特征图,分别为3081、3082、3083。以3081为例,可以表示为3*3(表示高度维度参数和宽度维度参数均为3),包括9个数据,将该9个数据在高度维度方向上进行拼接,也就是将第二列的3个数据拼接到第一列的3个数据之后,再将第三列的3个数据拼接到第2列的3个数据之后,直到将宽度维度上的数据均拼接到高度维度上,得到池化拼接特征图31111,可以表示为9*1(表示高度维度参数为9,宽度维度参数为1)。
采用同样的方法对第一池化特征图3082和3083也沿宽度维度方向进行拼接,分别得到池化拼接特征图31112和31113。
本实施例中,针对沿高度维度方向拼接后的L个池化拼接特征图进行第四池化操作,得到再次压缩的K个特征图。
在一个例子中,可以根据二次池化窗口,通过滑窗的方式来对该L个第一池化特征图进行分组,得到K个组,每组中包括L3个第一池化特征图。其中,分组数量K可以通过公式(4)计算。
K=(L - L3 +2*Pad_L3)/ STRIDE_L3+ 1 (4)
其中,L3为C3D池化层时间维度参数,Pad_L3为C3D池化层加窗参数,STRIDE_L3为C3D池化层步长参数。若采用公式(4)计算的结果不为整数,则对计算结果向下取整数作为K的值。
针对所述K个组中的每一个,将该组中L3个池化拼接特征图在对应位置上的L3个数据压缩为1个数据,例如取其中的最大值,或者也可以取其平均值等。其中,对应位置的数据为在各维度上索引值相同的数据,例如在高度维度和宽度维度索引值均为0的两个数据称为对应位置数据。具体方法可以参见实施例1,这里不再赘述。
仍以图10为例,针对3111所示的3个池化拼接特征图31111、31112、31113。假设二次池化窗口在数量维度参数为2,C3D池化层加窗参数Pad_L3为0,C3D池化层步长参数STRIDE_L3为1。
按照滑窗取最大值的方式进行压缩,可以将池化拼接特征图31111和31112压缩成特征图31121;将第一池化特征图31112和31113压缩成特征图31022。
本实施例中,针对第四池化操作后特征图3112,还可以将其拼接到在高度维度上的数据转换回宽度维度,得到特征图3113。以31121为例,按照第一池化特征图在宽度维度上的参数3,将31121拆分成3组数据,每组数据中包括3个数据,然后将该3组数据在宽度维度上进行拼接,得到转换后的特征图31131。采用同样的方法对31122进行转换,可以得到特征图31132。
至此,完成实施例3所示的流程。需要说明的是,上述实施例示出的3种方法得到的再次压缩后的K个特征图是相同的,只是处理方法不同。上述实施例中,在进行第一池化操作和二次池化操作时,滑窗压缩数据仅以取最大值为例,在实际应用中也可以取平均值,本实施例不进行限定。当然,还可以采用其他方式来进行池化处理,本实施例并不进行限定。
与前述3D卷积神经网络在神经网络处理器上的处理方法的实施例相对应,本申请还提供了3D卷积神经网络在神经网络处理器上的处理装置的实施例。
本申请卷积神经网络的处理装置的实施例可以应用在芯片上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在芯片的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图11所示,为本申请卷积神经网络处理装置所在芯片的一种硬件结构图,除了图11所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的11通常根据该芯片的实际功能,还可以包括其他硬件,对此不再赘述。
与前述3D卷积神经网络在神经网络处理器上的处理方法的实施例相对应,本申请还提供了3D卷积神经网络在神经网络处理器上的处理装置的实施例。
本申请3D卷积神经网络在神经网络处理器上的处理装置的实施例可以应用在芯片上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在芯片的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图11所示,为本申请卷积神经网络处理装置所在芯片的一种硬件结构图,除了图11所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的11通常根据该芯片的实际功能,还可以包括其他硬件,对此不再赘述。
图12是本申请一示例性实施例示出的一种3D卷积神经网络在神经网络处理器上的处理装置的框图。
请参考图12,所述3D卷积神经网络在神经网络处理器上的处理装置1200可以应用在前述图11所示的芯片中,所述神经网络处理器支持2D卷积神经网络的运行,不支持所述3D卷积神经网络的运行,所述3D卷积神经网络为P3D网络,所述P3D网络包括P3D卷积层和P3D池化层,所述P3D卷积层包括第一卷积核和第二卷积核,所述第一卷积核在时间维度参数为1;所述第二卷积核在时间维度参数为L2,该装置包括有:
第一卷积单元1101,用于:
接收时间维度参数为L1的图序列,将所述图序列拆分成时间维度参数为1的L1个图,将所述L1个图输入到P3D卷积层并分别与所述第一卷积核进行卷积运算,输出L1个第一2D特征图;
拼接处理单元1102,用于:
将所述L1个第一2D特征图按照所述第二卷积核的时间维度参数L2划分成L个子序列,每个子序列包括按照时间顺序排列的L2个第一2D特征图;并针对所述L个子序列中的每一个,将所述L2个第一2D特征图沿通道维度方向上按顺序进行图拼接,将其转换成时间维度参数为1但通道维度方向上存在拼接的一个2D拼接图,最终得到L个2D拼接图;其中,所述L=(L1-L2+2*Pad_L2)/Stride_L2+1,其中,L2为第二卷积核时间维度参数,Pad_L2为第二卷积核用于卷积运算的加窗参数,Stride_L2为第二卷积核用于卷积运算的步长参数;
第二卷积单元1103,用于:
将时间维度参数为L2的第二卷积核转换成时间维度参数为1但通道维度方向存在L2个第二卷积核拼接的一个2D拼接卷积核;然后将步骤2中得到的L个2D拼接图与所述2D拼接卷积核分别进行卷积运算,输出L个第二2D特征图,所述L个第二2D特征图为P3D卷积层的输出,并输入到所述P3D池化层;
池化处理单元1104,用于:
先将所述P3D池化层进行池化操作的维度转换,其中,所述C3D池化层进行池化操作的时间维度参数由L3转换成1,所述C3D池化层执行池化操作的数量维度参数由1转换为L3;然后将输入到所述P3D池化层的所述L个第二2D特征图先执行L次时间维度参数为1的第一池化操作,得到L个初步压缩的第一池化特征图,再将所述L个第一池化特征图进行二次池化操作,得到再次压缩的K个特征图,其中,K小于L,所述第一池化操作是将输入的每个所述第二2D特征图滑窗并按设定取值方式进行取值的操作;所述设定取值方式为取平均值或取最大值。
其中,可选地,所述再将所述L个第一池化特征图进行二次池化操作,得到再次压缩的K个特征图,包括:
将所述L个第一池化特征图沿数量维度方向进行第二池化操作,得到再次压缩的所述K个特征图,其中,所述第二池化操作是在所述L个第一池化特征图之间滑窗并按设定取值方式进行取值的操作。
可选地,所述再将所述L个第一池化特征图进行二次池化操作,得到再次压缩的K个特征图,包括:
将所述L个第一池化特征图先沿W方向进行拼接,得到沿W方向拼接后的池化拼接特征图,然后对所述沿W方向拼接后的池化拼接特征图进行第三池化操作,得到再次压缩的K个特征图;所述第三池化操作是将所述沿W方向拼接后的池化拼接特征图并按设定取值方式进行取值的操作;所述W方向为宽度维度方向。
可选地,所述再将所述L个第一池化特征图进行二次池化操作,得到再次压缩的K个特征图,包括:
将所述L个第一池化特征图沿H方向进行拼接,得到沿H方向拼接后的池化拼接特征图,然后对所述沿H方向拼接后的池化拼接特征图进行第四池化操作,得到再次压缩的K个特征图,所述第四池化操作是将所述沿H方向拼接后的池化拼接特征图滑窗并按设定取值方式进行取值的操作,所述H方向为高度维度方向。
可选地,通过如下公式确定特征图数量K:
K=(L-L3+2*Pad_L3)/STRIDE_L3+1;
其中,L3为C3D池化层时间维度参数,Pad_L3为C3D池化层步长参数,STRIDE_L3为C3D池化层加窗参数。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
与前述3D卷积神经网络在神经网络处理器上的处理方法的实施例相对应,本申请还提供一种神经网络处理器,该神经网络处理器被促使执行以下步骤:
步骤1:接收时间维度参数为L1的图序列,将所述图序列拆分成时间维度参数为1的L1个图,将所述L1个图输入到P3D卷积层并分别与所述第一卷积核进行卷积运算,输出L1个第一2D特征图;
步骤2:将所述L1个第一2D特征图按照所述第二卷积核的时间维度参数L2划分成L个子序列,每个子序列包括按照时间顺序排列的L2个第一2D特征图;并针对所述L个子序列中的每一个,将所述L2个第一2D特征图沿通道维度方向上按顺序进行图拼接,将其转换成时间维度参数为1但通道维度方向上存在拼接的一个2D拼接图,最终得到L个2D拼接图;其中,所述L=(L1-L2+2*Pad_L2)/Stride_L2+1,其中,L2为第二卷积核时间维度参数,Pad_L2为第二卷积核用于卷积运算的加窗参数,Stride_L2为第二卷积核用于卷积运算的步长参数;
步骤3:将时间维度参数为L2的第二卷积核转换成时间维度参数为1但通道维度方向存在L2个第二卷积核拼接的一个2D拼接卷积核;然后将步骤2中得到的L个2D拼接图与所述2D拼接卷积核分别进行卷积运算,输出L个第二2D特征图,所述L个第二2D特征图为P3D卷积层的输出,并输入到所述P3D池化层;
步骤4:先将所述P3D池化层进行池化操作的维度转换,其中,所述C3D池化层进行池化操作的时间维度参数由L3转换成1,所述C3D池化层执行池化操作的数量维度参数由1转换为L3;然后将输入到所述P3D池化层的所述L个第二2D特征图先执行L次时间维度参数为1的第一池化操作,得到L个初步压缩的第一池化特征图,再将所述L个第一池化特征图进行二次池化操作,得到再次压缩的K个特征图,其中,K小于L,所述第一池化操作是将输入的每个所述第二2D特征图滑窗并按设定取值方式进行取值的操作;所述设定取值方式为取平均值或取最大值。
其中,可选地,所述再将所述L个第一池化特征图进行二次池化操作,得到再次压缩的K个特征图,包括:
将所述L个第一池化特征图沿数量维度方向进行第二池化操作,得到再次压缩的所述K个特征图,其中,所述第二池化操作是在所述L个第一池化特征图之间滑窗并按设定取值方式进行取值的操作。
可选地,所述再将所述L个第一池化特征图进行二次池化操作,得到再次压缩的K个特征图,包括:
将所述L个第一池化特征图先沿W方向进行拼接,得到沿W方向拼接后的池化拼接特征图,然后对所述沿W方向拼接后的池化拼接特征图进行第三池化操作,得到再次压缩的K个特征图;所述第三池化操作是将所述沿W方向拼接后的池化拼接特征图滑窗并按设定取值方式进行取值的操作;所述W方向为宽度维度方向。
可选地,所述再将所述L个第一池化特征图进行二次池化操作,得到再次压缩的K个特征图,包括:
将所述L个第一池化特征图沿H方向进行拼接,得到沿H方向拼接后的池化拼接特征图,然后对所述沿H方向拼接后的池化拼接特征图进行第四池化操作,得到再次压缩的K个特征图,所述第四池化操作是将所述沿H方向拼接后的池化拼接特征图滑窗并按设定取值方式进行取值的操作,所述H方向为高度维度方向。
可选地,通过如下公式确定特征图数量K:
K=(L-L3+2*Pad_L3)/STRIDE_L3+1;
其中,L3为C3D池化层时间维度参数,Pad_L3为C3D池化层步长参数,STRIDE_L3为C3D池化层加窗参数。
上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

Claims (12)

1.一种3D卷积神经网络在神经网络处理器上的处理方法,所述神经网络处理器支持2D卷积神经网络的运行,不支持所述3D卷积神经网络的运行,所述3D卷积神经网络为P3D网络,所述P3D网络包括P3D卷积层和P3D池化层,其特征在于,所述P3D卷积层包括第一卷积核和第二卷积核,所述第一卷积核在时间维度参数为1;所述第二卷积核在时间维度参数为L2;所述方法包括:
步骤1:接收时间维度参数为L1的图序列,所述图序列是包含多帧图像的视频流;将所述图序列拆分成时间维度参数为1的L1个图,将所述L1个图输入到P3D卷积层并分别与所述第一卷积核进行卷积运算,输出L1个第一2D特征图;
步骤2:将所述L1个第一2D特征图按照所述第二卷积核的时间维度参数L2划分成L个子序列,每个子序列包括按照时间顺序排列的L2个第一2D特征图;并针对所述L个子序列中的每一个,将所述L2个第一2D特征图沿通道维度方向上按顺序进行图拼接,将其转换成时间维度参数为1但通道维度方向上存在拼接的一个2D拼接图,最终得到L个2D拼接图;其中,所述L=(L1-L2+2×Pad_L2)/Stride_L2+1,其中,L2为第二卷积核时间维度参数,Pad_L2为第二卷积核用于卷积运算的加窗参数,Stride_L2为第二卷积核用于卷积运算的步长参数;
步骤3:将时间维度参数为L2的第二卷积核转换成时间维度参数为1但通道维度方向存在L2个第二卷积核拼接的一个2D拼接卷积核;然后将步骤2中得到的L个2D拼接图与所述2D拼接卷积核分别进行卷积运算,输出L个第二2D特征图,所述L个第二2D特征图为P3D卷积层的输出,并输入到所述P3D池化层;
步骤4:先将所述P3D池化层进行池化操作的维度转换,其中,所述P3D池化层进行池化操作的时间维度参数由L3转换成1,所述P3D池化层执行池化操作的数量维度参数由1转换为L3;然后将输入到所述P3D池化层的所述L个第二2D特征图先执行L次时间维度参数为1的第一池化操作,得到L个初步压缩的第一池化特征图,再将所述L个第一池化特征图进行二次池化操作,得到再次压缩的K个特征图,其中,K小于L,所述第一池化操作是将输入的每个所述第二2D特征图滑窗并按设定取值方式进行取值的操作;所述设定取值方式为取平均值或取最大值。
2.根据权利要求1所述的方法,其特征在于,所述再将所述L个第一池化特征图进行二次池化操作,得到再次压缩的K个特征图,包括:
将所述L个第一池化特征图沿数量维度方向进行第二池化操作,得到再次压缩的所述K个特征图,其中,所述第二池化操作是在所述L个第一池化特征图之间滑窗并按设定取值方式进行取值的操作。
3.根据权利要求1所述的方法,其特征在于,所述再将所述L个第一池化特征图进行二次池化操作,得到再次压缩的K个特征图,包括:
将所述L个第一池化特征图先沿W方向进行拼接,得到沿W方向拼接后的池化拼接特征图,然后对所述沿W方向拼接后的池化拼接特征图进行第三池化操作,得到再次压缩的K个特征图;所述第三池化操作是将所述沿W方向拼接后的池化拼接特征图滑窗并按设定取值方式进行取值的操作,所述W方向为宽度维度方向。
4.根据权利要求1所述的方法,其特征在于,所述再将所述L个第一池化特征图进行二次池化操作,得到再次压缩的K个特征图,包括:
将所述L个第一池化特征图沿H方向进行拼接,得到沿H方向拼接后的池化拼接特征图,然后对所述沿H方向拼接后的池化拼接特征图进行第四池化操作,得到再次压缩的K个特征图,所述第四池化操作是将所述沿H方向拼接后的池化拼接特征图滑窗并按设定取值方式进行取值的操作,所述H方向为高度维度方向。
5.根据权利要求2-4中任一项所述的方法,其特征在于,通过如下公式确定特征图数量K:
K=(L-L3+2×Pad_L3)/STRIDE_L3+1;
其中,L3为P3D池化层时间维度参数,Pad_L3为P3D池化层步长参数,STRIDE_L3为P3D池化层加窗参数。
6.一种3D卷积神经网络在神经网络处理器上的处理装置,所述神经网络处理器支持2D卷积神经网络的运行,不支持所述3D卷积神经网络的运行,所述3D卷积神经网络为P3D网络,所述P3D网络包括P3D卷积层和P3D池化层,其特征在于,所述P3D卷积层包括第一卷积核和第二卷积核,所述第一卷积核在时间维度参数为1;所述第二卷积核在时间维度参数为L2;所述装置包括:
第一卷积单元,用于:
接收时间维度参数为L1的图序列,所述图序列是包含多帧图像的视频流;将所述图序列拆分成时间维度参数为1的L1个图,将所述L1个图输入到P3D卷积层并分别与所述第一卷积核进行卷积运算,输出L1个第一2D特征图;
拼接处理单元,用于:
将所述L1个第一2D特征图按照所述第二卷积核的时间维度参数L2划分成L个子序列,每个子序列包括按照时间顺序排列的L2个第一2D特征图;并针对所述L个子序列中的每一个,将所述L2个第一2D特征图沿通道维度方向上按顺序进行图拼接,将其转换成时间维度参数为1但通道维度方向上存在拼接的一个2D拼接图,最终得到L个2D拼接图;其中,所述L=(L1-L2+2×Pad_L2)/Stride_L2+1,其中,L2为第二卷积核时间维度参数,Pad_L2为第二卷积核用于卷积运算的加窗参数,Stride_L2为第二卷积核用于卷积运算的步长参数;
第二卷积单元,用于:
将时间维度参数为L2的第二卷积核转换成时间维度参数为1但通道维度方向存在L2个第二卷积核拼接的一个2D拼接卷积核;然后将步骤2中得到的L个2D拼接图与所述2D拼接卷积核分别进行卷积运算,输出L个第二2D特征图,所述L个第二2D特征图为P3D卷积层的输出,并输入到所述P3D池化层;
池化处理单元,用于:
先将所述P3D池化层进行池化操作的维度转换,其中,所述P3D池化层进行池化操作的时间维度参数由L3转换成1,所述P3D池化层执行池化操作的数量维度参数由1转换为L3;然后将输入到所述P3D池化层的所述L个第二2D特征图先执行L次时间维度参数为1的第一池化操作,得到L个初步压缩的第一池化特征图,再将所述L个第一池化特征图进行二次池化操作,得到再次压缩的K个特征图,其中,K小于L,所述第一池化操作是将输入的每个所述第二2D特征图滑窗并按设定取值方式进行取值的操作;所述设定取值方式为取平均值或取最大值。
7.根据权利要求6所述的装置,其特征在于,所述再将所述L个第一池化特征图进行二次池化操作,得到再次压缩的K个特征图,包括:
将所述L个第一池化特征图沿数量维度方向进行第二池化操作,得到再次压缩的所述K个特征图,其中,所述第二池化操作是在所述L个第一池化特征图之间滑窗并按设定取值方式进行取值的操作。
8.根据权利要求6所述的装置,其特征在于,所述再将所述L个第一池化特征图进行二次池化操作,得到再次压缩的K个特征图,包括:
将所述L个第一池化特征图先沿W方向进行拼接,得到沿W方向拼接后的池化拼接特征图,然后对所述沿W方向拼接后的池化拼接特征图进行第三池化操作,得到再次压缩的K个特征图;所述第三池化操作是将所述沿W方向拼接后的池化拼接特征图滑窗并按设定取值方式进行取值的操作;所述W方向为宽度维度方向。
9.根据权利要求6所述的装置,其特征在于,所述再将所述L个第一池化特征图进行二次池化操作,得到再次压缩的K个特征图,包括:
将所述L个第一池化特征图沿H方向进行拼接,得到沿H方向拼接后的池化拼接特征图,然后对所述沿H方向拼接后的池化拼接特征图进行第四池化操作,得到再次压缩的K个特征图,所述第四池化操作是将所述沿H方向拼接后的池化拼接特征图滑窗并按设定取值方式进行取值的操作,所述H方向为高度维度方向。
10.根据权利要求7-9任一项所述的装置,其特征在于,通过如下公式确定特征图数量K:
K=(L-L3+2×Pad_L3)/STRIDE_L3+1;
其中,L3为P3D池化层时间维度参数,Pad_L3为P3D池化层步长参数,STRIDE_L3为P3D池化层加窗参数。
11.一种神经网络处理器,所述神经网络处理器支持2D卷积神经网络的运行,其特征在于,所述神经网络处理器执行权利要求1-5任一方法的步骤。
12.一种芯片,其特征在于,所述芯片包括可读存储介质和神经网络处理器;
其中,所述可读存储介质,用于存储机器可执行指令;
所述神经网络处理器,支持2D卷积神经网络的运行,用于读取所述可读存储介质上的所述机器可执行指令,并执行所述指令以实现权利要求1-5任一所述方法的步骤。
CN202010820483.5A 2020-08-14 2020-08-14 3d卷积神经网络在神经网络处理器上的处理方法和装置 Active CN111985617B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010820483.5A CN111985617B (zh) 2020-08-14 2020-08-14 3d卷积神经网络在神经网络处理器上的处理方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010820483.5A CN111985617B (zh) 2020-08-14 2020-08-14 3d卷积神经网络在神经网络处理器上的处理方法和装置

Publications (2)

Publication Number Publication Date
CN111985617A CN111985617A (zh) 2020-11-24
CN111985617B true CN111985617B (zh) 2023-09-26

Family

ID=73433952

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010820483.5A Active CN111985617B (zh) 2020-08-14 2020-08-14 3d卷积神经网络在神经网络处理器上的处理方法和装置

Country Status (1)

Country Link
CN (1) CN111985617B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115221102B (zh) * 2021-04-16 2024-01-19 中科寒武纪科技股份有限公司 用于优化片上系统的卷积运算操作的方法和相关产品
CN113837104B (zh) * 2021-09-26 2024-03-15 大连智慧渔业科技有限公司 基于卷积神经网络的水下鱼类目标检测方法、装置及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109102070A (zh) * 2018-08-22 2018-12-28 地平线(上海)人工智能技术有限公司 卷积神经网络数据的预处理方法和装置
WO2019055093A1 (en) * 2017-09-18 2019-03-21 Microsoft Technology Licensing, Llc EXTRACTION OF SPATIO-TEMPORAL CHARACTERISTICS FROM A VIDEO
CN109766949A (zh) * 2019-01-17 2019-05-17 北京海印博识智能科技有限公司 卷积神经网络轻量化方法、装置及电子设备
CN109886358A (zh) * 2019-03-21 2019-06-14 上海理工大学 基于多时空信息融合卷积神经网络的人体行为识别方法
CN110427807A (zh) * 2019-06-21 2019-11-08 诸暨思阔信息科技有限公司 一种时序事件动作检测方法
CN111046821A (zh) * 2019-12-19 2020-04-21 东北师范大学人文学院 一种视频行为识别方法、系统及电子设备
CN111209774A (zh) * 2018-11-21 2020-05-29 杭州海康威视数字技术股份有限公司 目标行为识别及显示方法、装置、设备、可读介质
CN111428699A (zh) * 2020-06-10 2020-07-17 南京理工大学 伪3d卷积神经网络与注意力机制结合的驾驶疲劳检测方法及系统

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019055093A1 (en) * 2017-09-18 2019-03-21 Microsoft Technology Licensing, Llc EXTRACTION OF SPATIO-TEMPORAL CHARACTERISTICS FROM A VIDEO
CN109102070A (zh) * 2018-08-22 2018-12-28 地平线(上海)人工智能技术有限公司 卷积神经网络数据的预处理方法和装置
CN111209774A (zh) * 2018-11-21 2020-05-29 杭州海康威视数字技术股份有限公司 目标行为识别及显示方法、装置、设备、可读介质
CN109766949A (zh) * 2019-01-17 2019-05-17 北京海印博识智能科技有限公司 卷积神经网络轻量化方法、装置及电子设备
CN109886358A (zh) * 2019-03-21 2019-06-14 上海理工大学 基于多时空信息融合卷积神经网络的人体行为识别方法
CN110427807A (zh) * 2019-06-21 2019-11-08 诸暨思阔信息科技有限公司 一种时序事件动作检测方法
CN111046821A (zh) * 2019-12-19 2020-04-21 东北师范大学人文学院 一种视频行为识别方法、系统及电子设备
CN111428699A (zh) * 2020-06-10 2020-07-17 南京理工大学 伪3d卷积神经网络与注意力机制结合的驾驶疲劳检测方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
《时空双路3D残差卷积网络的视频烟雾检测》;谢宏 等;《计算机工程与应用》;第56卷(第18期);全文 *
Residual Frames with Efficient Pseudo-3D CNN for Human Action Recognition;Jiawei Chen 等;《https://arxiv.org/pdf2008.01057v1.pdf》;全文 *

Also Published As

Publication number Publication date
CN111985617A (zh) 2020-11-24

Similar Documents

Publication Publication Date Title
AU2017338783B2 (en) Efficient data layouts for convolutional neural networks
WO2020062894A1 (en) Computer-implemented method using convolutional neural network, apparatus for generating composite image, and computer-program product
CN109978756B (zh) 目标检测方法、系统、装置、存储介质和计算机设备
CN111798400B (zh) 基于生成对抗网络的无参考低光照图像增强方法及系统
CN107358293B (zh) 一种神经网络训练方法及装置
CN109996023B (zh) 图像处理方法和装置
CN111985617B (zh) 3d卷积神经网络在神经网络处理器上的处理方法和装置
CN110533712A (zh) 一种基于卷积神经网络的双目立体匹配方法
KR20190048073A (ko) 뉴럴 네트워크의 컨볼루션 연산을 수행하는 방법 및 장치
CN108376387A (zh) 基于聚合膨胀卷积网络的图像去模糊方法
CN109670574B (zh) 用于同时执行激活和卷积运算的方法和装置及其学习方法和学习装置
CN110874636B (zh) 一种神经网络模型压缩方法、装置和计算机设备
CN111835983B (zh) 一种基于生成对抗网络的多曝光图高动态范围成像方法及系统
CN110084309B (zh) 特征图放大方法、装置和设备及计算机可读存储介质
CN110809126A (zh) 一种基于自适应可变形卷积的视频帧插值方法及系统
CN110147252A (zh) 一种卷积神经网络的并行计算方法及装置
CN111652921A (zh) 一种单目深度预测模型的生成方法及单目深度预测方法
CN110781912A (zh) 一种基于通道扩张倒置卷积神经网络的图像分类方法
CN110334800A (zh) 一种用于视频识别的轻量级3d卷积网络系统
CN112950640A (zh) 视频人像分割方法、装置、电子设备及存储介质
CN109782906A (zh) 一种广告机的手势识别方法、交互方法、装置和电子设备
CN107748913A (zh) 一种深度神经网络的通用小型化方法
CN111951171A (zh) Hdr图像生成方法、装置、可读存储介质及终端设备
CN114677286A (zh) 一种图像处理方法、装置、存储介质及终端设备
CN111985618B (zh) 3d卷积神经网络在神经网络处理器上的处理方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant