CN109117940B - 基于卷积神经网络的目标检测方法、装置、终端及存储介质 - Google Patents

基于卷积神经网络的目标检测方法、装置、终端及存储介质 Download PDF

Info

Publication number
CN109117940B
CN109117940B CN201810630842.3A CN201810630842A CN109117940B CN 109117940 B CN109117940 B CN 109117940B CN 201810630842 A CN201810630842 A CN 201810630842A CN 109117940 B CN109117940 B CN 109117940B
Authority
CN
China
Prior art keywords
layer
convolution
splicing
neural network
convolution kernel
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
CN201810630842.3A
Other languages
English (en)
Other versions
CN109117940A (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201810630842.3A priority Critical patent/CN109117940B/zh
Publication of CN109117940A publication Critical patent/CN109117940A/zh
Application granted granted Critical
Publication of CN109117940B publication Critical patent/CN109117940B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/08Learning methods

Landscapes

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

Abstract

本发明提出一种卷积神经网络前向加速方法,所述方法包括在卷积神经网络结构中:将卷积神经网络中的四个顺序向前层:卷积层、批次标准化层、缩放层和非线性激活层拼接构成一个串行卷积层;和/或,拼接卷积层中同层、同体积的卷积核,以使得所述同层、同体积的卷积核被拼接成为一个并行卷积核;和/或,提取具有二倍数维度关系的特征图,对提取的特征图进行分组,对分组中的特征图进行级数拼接。

Description

基于卷积神经网络的目标检测方法、装置、终端及存储介质
技术领域
本发明涉及人工智能技术领域,特别涉及一种基于卷积神经网络的目标检测方法、装置、终端及存储介质。
背景技术
随着人工智能(AI,Artificial Intelligence)的发展,现有技术中出现了各种神经网络卷积模型,包括:LeNet-5模型、AlexNet模型、VGGNet模型、GoogleNet模型、ResNet模型等等。每个神经网络模型有其特点,例如:
LeNet-5模型是第一个成功应用于数字识别的卷积神经网络模型,卷积层自带激励函数。
AlexNet模型为较为经典的卷积神经网络模型,其结构通常为:输入层→(卷积层→池化层)→全连接层→输出层,AlexNet卷积层的卷积核边长为5或3,池化层的窗口边长为3。
VGGNet模型和AlexNet模型在结构上没多大变化,在卷积层部位增加了多个卷积层。
GoogleNet模型使用了多个不同分辨率的卷积核,最后再对它们得到的特征图(feature map)按深度融合在一起。
但是,目前随着人工智能使用领域的日趋广泛,卷积神经网络的反应速度逐渐成为了制约其应用的瓶颈。因此,需要改进现有的卷积神经网络以提高其处理速度。
发明内容
为了解决现有技术中存在的技术问题,本发明实施例提供了一种基于卷积神经网络的目标检测方法、装置、终端及存储介质。所述技术方案如下:
一方面,提供基于卷积神经网络的目标检测方法,所述方法由终端执行,所述卷积神经网络包括输入层、串行卷积层、池化层和输出层;所述串行卷积层由卷积层、批次标准化层、缩放层和非线性激活层拼接构成,所述串行卷积层的卷积核包括多种尺寸卷积核,且每种尺寸的卷积核为由同层、同体积的卷积核拼接而成的并行卷积核,所述方法包括:
将图像输入所述卷积神经网络的输入层中,将所述串行卷积层的多种尺寸的并行卷积核分别与所述输入层的图像进行卷积,得到多种尺寸的特征图;
从所述多种尺寸的特征图中提取尺寸具有二倍数维度关系的特征图,对提取的特征图进行分组,对分组中的特征图进行级数拼接;
利用所述卷积神经网络中池化层对级数拼接后的特征图进行池化处理,得到池化特征图;
在所述卷积神经网络的输出层中,基于所述池化特征图进行目标检测,输出目标检测结果。
另一方面,提供一种基于卷积神经网络的目标检测装置,所述装置设置于终端,所述卷积神经网络包括输入层、串行卷积层、池化层和输出层;所述串行卷积层由卷积层、批次标准化层、缩放层和非线性激活层拼接构成,所述串行卷积层的卷积核包括多种尺寸卷积核,且每种尺寸的卷积核为由同层、同体积的卷积核拼接而成的并行卷积核,所述装置包括:
图像输入单元,用于将图像输入所述卷积神经网络的输入层中;
卷积单元,用于将所述串行卷积层的多种尺寸的并行卷积核分别与所述输入层的图像进行卷积,得到多种尺寸的特征图;
分组拼接单元,用于从所述多种尺寸的特征图中提取尺寸具有二倍数维度关系的特征图,对提取的特征图进行分组,对分组中的特征图进行级数拼接;
池化处理单元,用于利用所述卷积神经网络中池化层对级数拼接后的特征图进行池化处理,得到池化特征图;
目标检测结果输出单元,用于在所述卷积神经网络的输出层中,基于所述池化特征图进行目标检测,输出目标检测结果。
另一方面,提供一种终端,所述终端包括存储器和处理器,所述存储器用于存储软件程序,所述软件程序由处理器加载并执行以实现上述的方法。
另一方面,提供一种存储介质,所述存储介质包含指令,所述指令被执行用于实施前述的方法。
本发明实施例提供的技术方案带来的有益效果包括:本发明能够去前向神经网络卷积进行显著加速,使得加速后的神经网络卷积更加适用于安防、工业自动化、汽车自动驾驶等需要快速检测和目标识别的场景。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的卷积神经网络Inception模块结构示意图;
图2是本发明实施例提供的卷积层感受视野原理示意图;
图3是本发明实施例卷积过程中GPU与内存之间的信息交互示意图;
图4是本发明实施例卷积过程中串行拼接加速后GPU与内存之间的信息交互示意图;
图5是本发明实施例中一个卷积核的示意图;
图6是本发明实施例中经过并行拼接后的卷积核的示意图;
图7是本发明实施例对特征进行分组的过程示意图;
图8是本发明实施例对分组结果进行极数拼接的示意图;
图9是本发明实施例提供的卷积神经网络执行主体结构示意图;
图10是本发明实施例提供的卷积神经网络执行主体结构示意图;
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
GoogLeNet架构是由Christian Szegedy等人开发的。来自Google Research,通过低于前5名7%的错误率,赢得了ILSVRC 2014的挑战赛。这个伟大的表现很大程度上来自Inception模块,它比以前卷积神经网络(CNN)具有更深的网络。这是通过称为初始模块的子网络实现的,这使得GoogLeNet比以前的架构更有效地使用参数,从实际参数数值上看,GoogLeNet的参数比AlexNet少了10倍(约600万而不是6000万)。
图1描述了GoogleNet神经网络卷积构架中的Inception模块。符号“3×3+2(S)”表示该层使用3×3内核,步幅2和相同填充。在该模块中,输入信号首先被复制并馈送到四个不同的层,所有卷积层都使用ReLU激活功能。其中,第二组卷积层使用不同的内核大小(1×1,3×3和5×5),允许它们以不同的比例捕获图案。此外,每一层都使用1和SAME填充的跨度(即使是最大的池化层),所以它们的输出全都具有与其输入相同的高度和宽度。这使得有可能连接最终深度连续层中沿着深度维度的所有输出(即,堆叠来自所有四个顶部卷积层的特征映射)。这个连接层可以在TensorFlow中使用concat操作实现,其中axis=3(axis 3是深度)。初始模块中具有1×1内核的卷积层,1×1内核的卷积层被配置为输出比输入少得多的特征图,它们作为瓶颈层,意味着降低了维度。在3×3和5×5卷积之前,这是特别有用的,因为这些在计算上是非常耗费内存的层。
总体而言,Inception模块可以被视为类固醇卷积层,能够输出捕捉各种尺度复杂模式的特征映射。每个卷积层的卷积核的数量是一个超参数,不过这意味着需要六个超参数来调整添加的每个初始层。所有的卷积层都使用ReLU激活功能。
可见,Inception模块CNN的构架深度非常深,这导致了在进行诸如安防、自动驾驶、工控自动化等实时性特别高的计算过程中,反应速度成为了制约应用的瓶颈。例如,广受关注的汽车辅助驾驶领域,目标检测能够可以实现精确的检测车身周围的人、车辆、路牌等信息,实时报警等,这需要非常快的运算速度,但是这与Inception模块的模块构架产生了冲突。因此需要提高Inception模块的速度,进而提升CNN的响应速度。发明人在对Inception模型进行结构时发现其存在如下问题:
第一,在卷积神经网络层次结构中,每次进行卷积、批次标准化、缩放和非线性激活,需要耗费时间在启动这四个层和读写这四个层需要的数据上。
第二,现有的多尺度目标技术方案,在目标特征图处理时,有两种方案,一种是使用图像金字塔的方式,将图像进行缩放,每种尺度的图像串行通过卷积神经网络。这样的做法需要串行地跑多遍图像,并行度差,成倍地增加了目标检测时间。另一种方式是将缩放后的图像用“0”填充四周,组成一个批次相同大小的图片组一次送入卷积神经网络。这种方法虽然并行度高,但是因需要计算很多空白“0”值,耗时仍很高。
因此,在一个可能的实施例中,卷积神经网络构架如下:卷积层(Convolutionlayer),批次标准化层(Batch Normlizaiton layer),缩放层(Scale layer),非线性激活层(Relu layer),这四个层构成了串行向前的结构。
卷积层(Convolution layer)通过感受视野(local receptive fields)和共享权值的方式(shared weights)实现对输入图像的采样。如图2所示,假设输入的是一个28×28的二维神经元,我们定义5×5的感受视野(local receptive fields),那么隐藏层的神经元与输入层的5×5个神经元相连。可类似看作:隐藏层中的神经元具有一个5×5固定大小的感受视野去感受上一层的部分特征。在全连接神经网络中,隐藏层中的神经元的感受视野足够大乃至可以看到上一层的所有特征。而在卷积神经网络中,隐藏层中的神经元的感受视野比较小,只能看到上一次的部分特征,上一层的其他特征可以通过平移感受视野来得到同一层的其他神经元,由同一层其他神经元来看:设移动的步长为1:从左到右扫描,每次移动1格,扫描完之后,再向下移动一格,再次从左到右扫描。
可看出卷积层的神经元是只与前一层的部分神经元节点相连,每一条相连的线对应一个权重ω。一个感受视野带有一个卷积核,我们将感受视野中的权重ω矩阵称为卷积核;将感受视野对输入的扫描间隔称为步长(stride);当步长比较大时(stride>1),为了扫描到边缘的一些特征,感受视野可能会“出界”,这时需要对边界扩充(pad),边界扩充通常使用0来填充。卷积核的大小由用户来定义,即定义的感受视野的大小;卷积核的权重矩阵的值,便是卷积神经网络的参数,为了有一个偏移项,卷积核可附带一个偏移项,它的初值可以随机来生成,可通过训练进行变化。因此感受视野扫描时可以计算出下一层神经元的值为(ωij为卷积核,xij为原图坐标):
Figure GDA0002743667670000061
对下一层的所有神经元来说,它们从不同的位置去探测了上一层神经元的特征。可以通过一个带有卷积核的感受视野扫描生成的下一层神经元矩阵称为一个特征图(feature map)。
经过卷积层之后,可以通过批次标准化层(Batch Normalization Layer)实现在神经网络层的中间进行预处理的操作,即在上一层的输入归一化处理后再进入网络的下一层,这样可有效地防止“梯度弥散”,加速网络训练。批次标准化层的计算可以按照如下算法进行计算(Input表示输入,Output表示输出):
Figure GDA0002743667670000071
每次训练时,取batch_size大小的样本进行训练,在批次标准化层(BN)中,将一个神经元看作一个特征,batch_size个样本在某个特征维度会有batch_size个值,然后在每个神经元xi维度上的进行这些样本的均值和方差,通过公式得到xi’,再通过参数γ和β进行线性映射得到每个神经元对应的输出yi’。在批次标准化层(BN)层中,可以看出每一个神经元维度上,都会有一个参数γ和β,它们同权重ω一样可以通过训练进行优化。
在卷积神经网络中进行批量归一化时,一般对未进行非线性激活的特征图(feature map)进行批量归一化,输出后再作为激励层的输入,可达到调整激励函数偏导的作用。
一种做法是将特征图(feature map)中的神经元作为特征维度,参数γ和β的数量和则等于:2×fmapwidth×fmaplength×fmapnum,这样做的话参数的数量会变得很多。
另一种做法是把一个特征图看做一个特征维度,一个特征图上的神经元共享这个特征图的参数γ和β,参数γ和β的数量和则等于2×fmapnum,计算均值和方差则在batch_size个训练样本在每一个特征图维度上的均值和方差。fmapnum指的是一个样本的特征图数量,特征图跟神经元一样也有一定的排列顺序。在训练过程中,我们每次都会将batch_size数目大小的训练样本放入到CNN网络中进行训练,在BN层中自然可以得到计算输出所需要的均值和方差;而在测试过程中,我们往往只会向CNN网络中输入一个测试样本,这是在BN层计算的均值和方差会均为0,因为只有一个样本输入,因此BN层的输入也会出现很大的问题,从而导致CNN网络输出的错误。所以在测试过程中,我们需要借助训练集中所有样本在BN层归一化时每个维度上的均值和方差,当然为了计算方便,我们可以在batch_num次训练过程中,将每一次在BN层归一化时每个维度上的均值和方差进行相加,最后再进行求一次均值即可。
在一个可选的实施例中,当输入经过卷积层时,若感受视野比较小,步长(stride)比较小,得到的特征图(feature map)还是比较大,可以通过池化层(Max Pooling)来对每一个feature map进行降维操作,输出的深度还是不变的,依然为feature map的个数。
池化层也有一个“池化视野(filter)”来对feature map矩阵进行扫描,对“池化视野(filter)”中的矩阵值进行计算,一般有两种计算方式:
Max pooling:取“池化视野”矩阵中的最大值
Average pooling:取“池化视野”矩阵中的平均值
扫描的过程中同样地会涉及的扫描布长stride,扫描方式同卷积层一样,先从左到右扫描,结束则向下移动布长大小,再从左到右。
在一个可能的实施例中,如前所述,发明人发现卷积神经网络构架为:卷积层(Convolution layer),批次标准化层(Batch Normlizaiton layer),缩放层(Scalelayer),非线性激活层(Relu layer)时,在启动四个层的每个层时,GPU都需要执行启动层、从内存调取数据、将结果数据返回内存。具体地,在一个执行过程中,如图3所示,GPU启动卷积层(Convolution layer),从内存调取数据,执行卷积操作,将卷积结果返回到内存;启动批次标准化层(Batch Normlizaiton layer),从内存调取卷积结果数据,执行归一化操作,将归一化结果返回到内存;启动缩放层(Scale layer),读取归一化结果数据,对归一化结果进行比例缩放和位移,将经过比例缩放和位移后的数据返回到内存;启动非线性激活层(Relu layer),读取比例缩放和位移后的数据,对数据进行非线性激活操作,将经过非线性激活后的数据返回到内存。在上述过程中,每个层都需要进行启动操作,同时数据进行了四次读取和四次返回。在需要极高反应速度的场景下,例如前面提到的无人驾驶场景和安防场景,这种耗费是一个极大的时间耗费。因此,从卷积神经网络的模型出发,可以进行如下改进:
将卷积层(Convolution layer)、批次标准化层(Batch Normlizaiton layer)、缩放层(Scale layer)和非线性激活层(Relu layer)四个顺序向前结构拼接成为一层。
拼接原理如下:
卷积层(Convolution layer)的卷积核为N×N矩阵形式,例如2×2、3×3、4×5、5×5、6×6、7×7、8×8等等。
批次标准化层(Batch Normlizaiton layer)和缩放层(Scale layer)通常一起使用,二者共同实现了:输入归一化和对归一化的数值进行比例缩放和位移。其中,输入归一化基于公式1实现:
公式1:x_norm=(x-u)/std,其中u和std累计计算的均值和方差。
对归一化后的数值进行比例缩放和位移基于公式2实现:
公式2:y=alpha×x_norm+beta,其中alpha和beta是通过迭代学习的。
其中,批次标准化层(Batch Normlizaiton layer)实现了对于输入的归一化,缩放层(Scale layer)实现了对归一化后的输入进行比例缩放和位移。其中对于缩放层(Scale layer)的参数设定包括将bias_term设置为True,并且bias_term中的偏置对应了公式2中的beta。
非线性激活层(Relu layer)中通过线性整流函数(Relu函数)增加神经网络各层之间的非线性关系。在一个可能的实施例中,线性整流函数(Relu函数)具有如下表达:
Figure GDA0002743667670000101
其中,λ是一个取自连续性均匀分布U(l,u)概率模型的随机变量,l<u且,u∈[0,1)。
这四个前向结构中,批次标准化层(Batch Normlizaiton layer)中的累计计算的均值和方差,缩放层(Scale layer)中的比例缩放和位移因子均可以作为量化参数加入到卷积核中。而线性整流函数虽然是一个分段函数,由于其是一个一次项函数,也可以通过卷积的形式与卷积核进行合并。可见,在原理上,可以将四个顺序向前结构拼接成为一层。
卷积层(Convolution layer),用于通过卷积核与输入对象进行卷积,并输出特征图(feature map);
批次标准化层(Batch Normlizaiton layer),用于卷积层的输出结果执行归一化操作;
缩放层(Scale layer),用于对归一化后的输入进行比例缩放和位移。
非线性激活层(Relu layer),用于增加神经网络各层之间的非线性关系。
提取卷积层(Convolution layer)的卷积核,该卷积核可以是2×2、3×3、4×5、5×5、6×6、7×7、8×8等等。
提取批次标准化层(Batch Normlizaiton layer)中累计计算的均值和方差,当然也可以提取与均值和方差等价的参数。
提取缩放层(Scale layer)的比例缩放因子和位移因子;
提取非线性激活层(Relu layer)中的线性整流函数;
上述4个提取过程的顺序不会对发明的实施产生影响,所以本实施例不限定上述4个提取过程的顺序。
通过所述累计计算的均值和方差、比例缩放因子和位移因子以及线性整流函数将所述卷积核重构为第二卷积核;将所述第二卷积核作为串行卷积层的卷积核。
在一个可能的实施例中,拼接卷积层(Convolution layer)中同层、同体积的卷积核,以使得所述同层、同体积的卷积核被拼接成为一个并行卷积核。如图5所示,在卷积层的Inception模型中,包含三个3×3卷积核,并且这三个3×3卷积核在同一个层上,根据之前对卷积层原理的介绍,三个3×3卷积核实质上是利用3个3×3的感受视野(localreceptive fields),去与输入层的3个3×3神经元相连。要完成这个卷积,3个3×3卷积核要按照步长遍历整个输入层。如果按照正常过程,3个3×3阵列要遍历三次输入输入层,这显然是一种时间成本的耗费。因此,对于同层、同体积的卷积核可以进行并行拼接。如图6所示,图5中的3个3×3的卷积核的被并行拼接在一起,这样卷积层只需要读取一次输入层的内容,其时间耗费仅仅相当于进行一次9×3的卷积,一方面减少了卷积层的启动时间;另一方面,减少了卷积的总时间,大大低于进行三次3次3×3卷积的总时间。在一个实例中,将4个3×3的卷积核的被并行拼接在一起,这样卷积层只需要读取一次输入层的内容,其时间耗费仅仅相当于进行一次12×3的卷积,一方面减少了卷积层的启动时间;另一方面,减少了卷积的总时间,大大低于进行三次4次3×3卷积的总时间。通过该实施例可知,可以将M个同层N×N的矩阵并行拼接在一起,时间耗费相当于执行了一次MN×N的卷积,能够节省M-1次卷积启动的时间,卷积时间耗费也略低于M次N×N卷积的时间。即,通过并行拼接技术能够大大减少时间的损耗。
对于1×1的卷积核,在对输入层捕获时不能捕获任何功能,其作用只是捕获一个像素,但是1×1的卷积核被配置为输出比输入少得多的特征图,所以它们作为瓶颈层,意味着它们降低了维度。因此1×1卷积核配置在在3×3和5×5卷积核之前是特别有用的,因为3×3、5×5、N×N的卷积在计算上是非常耗费内存的层。
不失一般性地,拼接同层卷积核还包含M×N的卷积核,例如拼接3个4×3的卷积核,其同样可以带来时间成本的节约。
在一个可能的实施例中,对具有2倍数关系的特征图(feature map)进行提取和分组,对每个分组中具有2倍数关系的特征图(feature map)进行级数拼接。对于输出的各个特征图而言,因为卷积核不同,输出特征图尺寸不同,例如2×2、3×3、4×4、3×3、6×6、8×8、12×12、2×2、……,如果使用图像金字塔的方式,将图像进行缩放,每种尺度的图像串行通过卷积神经网络。这样的做法需要串行地跑多遍图像,并行度差,成倍地增加了目标检测时间。如果将缩放后的图像用“0”填充四周,组成一个批次相同大小的图片组一次送入卷积神经网络,这种方法虽然并行度高,但是因需要计算很多空白“0”值,耗时仍很高。因此,采用分组的方式对特征图进行处理,一种分组方式是将具有二倍关系的特征图进行分组,例如:提取2×2、4×4、8×8、16×16,……的所有特征图,然后从大到小依次排序,之后按照从大到小的2倍关系对特征图进行拼接,如图7所示,4a×4a、2a×2a、a×a为一系列维度具有2倍关系的特征图,按照极数关系排列,其余内容使用0进行填充。根据等比数列的极限计算,无论如何排列,参与计算的特征值面积都会小于24a2,也即,特征图的拼接后的尺寸具有收敛的结果。在这种情况下可以确定,对于边长是2na的特征图,其必然小于(2n+2n-1)×2na2,如此可以确定拼接特征图的最大尺寸,不必担心由于分组中的特征图数量过多而超过拼接模板导致信息丢失。同时,通过分组、提取和排序,能够减少运算的次数和运算量。
综上所述,可以通过将卷积神经网络中的四个顺序向前层:卷积层(Convolutionlayer)、批次标准化层(Batch Normlizaiton layer)、缩放层(Scale layer)和非线性激活层(Relu layer)拼接构成一个串行卷积层;拼接卷积层(Convolution layer)中同层、同体积的卷积核,以使得所述同层、同体积的卷积核被拼接成为一个并行卷积核;对维度具有2倍数关系的特征图(feature map)进行提取和分组,对每个分组中维度具有2倍数关系的特征图(feature map)进行级数拼接三种方式提高卷积神经网络的效率,提高其在需要快速响应场景下的反应速度。这三种方式可以单独使用,也可以使用其中两种,当然当三种方式同时使用时,能够极大程度地提高卷积神经网络的前向加速。
在一个实施例中,提供一种卷积神经网络前向加速方法,所述方法包括在卷积神经网络结构中:
将卷积神经网络中的四个顺序向前层:卷积层(Convolution layer)、批次标准化层(Batch Normlizaiton layer)、缩放层(Scale layer)和非线性激活层(Relu layer)拼接构成一个串行卷积层;
和/或,拼接卷积层(Convolution layer)中同层、同体积的卷积核,以使得所述同层、同体积的卷积核被拼接成为一个并行卷积核;
和/或,提取具有二倍数维度关系的特征图(feature map),对提取的特征图(feature map)进行分组,对分组中的特征图(feature map)进行级数拼接。
在一个实施例中,提供一种卷积神经网络前向加速装置,所述装置包括如下单元:
第一前向加速单元,用于将卷积神经网络中的四个顺序向前层:卷积层(Convolution layer)、批次标准化层(Batch Normlizaiton layer)、缩放层(Scalelayer)和非线性激活层(Relu layer)拼接构成一个串行卷积层;
和/或,第二前向加速单元,用于拼接卷积层(Convolution layer)中同层、同体积的卷积核,以使得所述同层、同体积的卷积核被拼接成为一个并行卷积核;
和/或,第三前向加速单元,对维度具有2倍数关系的特征图(feature map)进行提取和分组,对每个分组中维度具有2倍数关系的特征图(feature map)进行级数拼接。
以下通过实验数据来说明使用本发明实施例的前向加速方法的技术效果,将拼接串行卷积列加速记为第Ⅰ类加速:将拼接并行卷积列加速记为第Ⅱ类加速,将拼接特征图加速记为第Ⅲ类加速。
表一为三类加速在嵌入式平台下的加速效果,使用加速后和千速前用时的比值(加速比)来衡量加速的效果。分别列出只使用一种加速、使用两种加速和三种加速一起使用的数据。
表一、三类加速在嵌入式平台下的测试结果
Figure GDA0002743667670000141
表二、三类加速在云平台下的测试结果
Figure GDA0002743667670000142
Figure GDA0002743667670000151
根据以上实验数据,三类加速可以将嵌入式平台下执行的卷积神经网络时间比提高2-3倍,在云平台下的加速时间比可以提高5倍以上。同时可以看出,第Ⅰ类加速的加速比基本是恒定的,即串行前向加速具有较为温度的加速效果;第Ⅱ类加速中,拼接同层卷积核数量依次增加,加速效果逐渐增强,但是随着并行卷积核数量的增加,加速效果的增速逐渐变缓;第三类加速的与第一类加速比较类似,对于相同的输入层,输出的加速结果较为恒定。而且三种加速之间的线性度较高,证明三种加速相互之间的影响比较小。
请参考图9,其示出了本发明一个实施例提供执行主体的结构示意图。该用户端用于执行神经网络卷积方法。具体来讲:
终端(执行主体)1100可以包括RF(Radio Frequency,射频)电路1110、包括有一个或一个以上计算机可读存储介质的存储器1120、输入单元1130、显示单元1140、视频传感器1150、音频电路1160、WiFi(wireless fidelity,无线保真)模块1170、包括有一个或者一个以上处理核心的处理器1180、以及电源990等部件。本领域技术人员可以理解,图9中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
存储器1120可用于存储软件程序以及模块,处理器1180通过运行存储在存储器1120的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器1120可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端1100的使用所创建的数据(比如视频数据、电话本等)等。此外,存储器1120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器1120还可以包括存储器控制器,以提供处理器1180和输入单元1130对存储器1120的访问。
输入单元1130可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,输入单元1130可包括图像输入设备1131以及其他输入设备1132。图像输入设备1131可以是摄像头,也可以是光电扫描设备。除了图像输入设备1131,输入单元1130还可以包括其他输入设备1132。具体地,其他输入设备1132可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元1140可用于显示由用户输入的信息或提供给用户的信息以及终端1100的各种图形用户接口。
处理器1180是终端1100的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器1120内的软件程序和/或模块,以及调用存储在存储器1120内的数据,执行终端1100的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器1180可包括一个或多个处理核心;优选的,处理器1180可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。
可以理解的是,上述调制解调处理器也可以不集成到处理器1180中。
终端1100还包括给各个部件供电的电源990(比如电池),优选的,电源可以通过电源管理系统与处理器1180逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源990还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
请参考图10,其示出了本发明一个实施例提供的服务器的结构示意图。该服务器用于实施上述实施例中提供的神经网络卷积方法。具体来讲:
所述服务器1200包括中央处理单元(CPU)1201、包括随机存取存储器(RAM)1202和只读存储器(ROM)1203的系统存储器1204,以及连接系统存储器1204和中央处理单元1201的系统总线1205。所述服务器1200还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(I/O系统)1206,和用于存储操作系统1213、应用程序1214和其他程序模块1215的大容量存储设备1207。
所述基本输入/输出系统1206包括有用于显示信息的显示器1208和用于用户输入信息的诸如鼠标、键盘之类的输入设备1209。其中所述显示器1208和输入设备1209都通过连接到系统总线1205的输入输出控制器1210连接到中央处理单元1201。所述基本输入/输出系统1206还可以包括输入输出控制器1210以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器1210还提供输出到显示屏、打印机或其他类型的输出设备。
所述大容量存储设备1207通过连接到系统总线1205的大容量存储控制器(未示出)连接到中央处理单元1201。所述大容量存储设备1207及其相关联的计算机可读介质为服务器1200提供非易失性存储。也就是说,所述大容量存储设备1207可以包括诸如硬盘或者CD-ROM驱动器之类的计算机可读介质(未示出)。
不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM、EEPROM、闪存或其他固态存储其技术,CD-ROM、DVD或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器1204和大容量存储设备1207可以统称为存储器。
根据本发明的各种实施例,所述服务器1200还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即服务器1200可以通过连接在所述系统总线1205上的网络接口单元1211连接到网络1212,或者说,也可以使用网络接口单元1211来连接到其他类型的网络或远程计算机系统(未示出)。
所述存储器还包括一个或者一个以上的程序,所述一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行。上述一个或者一个以上程序包含用于执行上述后台服务器侧的方法的指令。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器,上述指令可由终端的处理器执行以完成上述方法实施例中发送方客户端或接收方客户端侧的各个步骤,或者上述指令由服务器的处理器执行以完成上述方法实施例中后台服务器侧的各个步骤。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种基于卷积神经网络的目标检测方法,其特征在于,所述方法由终端执行,所述卷积神经网络包括输入层、串行卷积层、池化层和输出层;所述串行卷积层由卷积层、批次标准化层、缩放层和非线性激活层拼接构成,所述串行卷积层的卷积核包括多种尺寸卷积核,且每种尺寸的卷积核为由同层、同体积的卷积核拼接而成的并行卷积核,所述方法包括:
将图像输入所述卷积神经网络的输入层中,将所述串行卷积层的多种尺寸的并行卷积核分别与所述输入层的图像进行卷积,得到多种尺寸的特征图;
从所述多种尺寸的特征图中提取尺寸具有二倍数维度关系的特征图,对提取的特征图进行分组,对分组中的特征图进行级数拼接;
利用所述卷积神经网络中池化层对级数拼接后的特征图进行池化处理,得到池化特征图;
在所述卷积神经网络的输出层中,基于所述池化特征图进行目标检测,输出目标检测结果。
2.根据权利要求1所述的方法,其特征在于,所述串行卷积层包括采用下述方法拼接构成:
提取所述卷积层的第一卷积核;
提取所述批次标准化层中累计计算的均值和方差;
提取所述缩放层的比例缩放因子和位移因子;
提取所述非线性激活层中的线性整流函数;
通过所述累计计算的均值和方差、所述比例缩放因子和位移因子以及所述线性整流函数将所述第一卷积核重构为第二卷积核;
将所述第二卷积核作为所述串行卷积层的卷积核。
3.根据权利要求2所述的方法,其特征在于,所述并行卷积核包括采用下述方法拼接得到:将M个同层的N×N卷积核拼接为并行卷积核。
4.根据权利要求1所述的方法,其特征在于,所述从所述多种尺寸的特征图中提取尺寸具有二倍数维度关系的特征图,对提取的特征图进行分组,对分组中的特征图进行级数拼接包括:
提取特征图中尺寸具有二倍数维度关系的特征图;
将提取的尺寸具有二倍数维度关系的特征图按照尺寸维度降幂的方式排序,并作为一个的分组;
按照排序拼接每个分组中的特征图。
5.一种基于卷积神经网络的目标检测装置,其特征在于,所述装置设置于终端,所述卷积神经网络包括输入层、串行卷积层、池化层和输出层;所述串行卷积层由卷积层、批次标准化层、缩放层和非线性激活层拼接构成,所述串行卷积层的卷积核包括多种尺寸卷积核,且每种尺寸的卷积核为由同层、同体积的卷积核拼接而成的并行卷积核,所述装置包括:
图像输入单元,用于将图像输入所述卷积神经网络的输入层中;
卷积单元,用于将所述串行卷积层的多种尺寸的并行卷积核分别与所述输入层的图像进行卷积,得到多种尺寸的特征图;
分组拼接单元,用于从所述多种尺寸的特征图中提取尺寸具有二倍数维度关系的特征图,对提取的特征图进行分组,对分组中的特征图进行级数拼接;
池化处理单元,用于利用所述卷积神经网络中池化层对级数拼接后的特征图进行池化处理,得到池化特征图;
目标检测结果输出单元,用于在所述卷积神经网络的输出层中,基于所述池化特征图进行目标检测,输出目标检测结果。
6.根据权利要求5所述的装置,其特征在于,所述串行卷积层包括采用下述单元得到:
第一提取子单元,用于提取所述卷积层的第一卷积核;
第二提取子单元,用于提取所述批次标准化层中累计计算的均值和方差;
第三提取子单元,用于提取所述缩放层的比例缩放因子和位移因子;
第四提取子单元,用于提取所述非线性激活层中的线性整流函数;
卷积核重构子单元,用于通过所述累计计算的均值和方差、所述比例缩放因子和位移因子以及所述线性整流函数将所述第一卷积核重构为第二卷积核;并将所述第二卷积核作为所述串行卷积层的卷积核。
7.根据权利要求5所述的装置,其特征在于,所述并行卷积核包括采用下述单元得到:
并行拼接子单元,用于将M个同层的N×N卷积核拼接为并行卷积核。
8.根据权利要求5所述的装置,其特征在于,所述分组拼接单元包括:
特征图提取子单元,用于提取特征图中尺寸具有二倍数维度关系的特征图;
排序和分组模块,用于将提取的尺寸具有二倍数维度关系的特征图按照尺寸维度降幂的方式排序,并作为一个的分组;
拼接子模块,用于按照排序拼接每个分组中的特征图。
9.一种终端,其特征在于,所述终端包括存储器和处理器,所述存储器用于存储软件程序,所述软件程序由处理器加载并执行以实现如权利要求1至4任一所述的方法。
10.一种存储介质,其中存储有指令,其特征在于,所述指令被执行用于实施权利要求1-4之一所述的方法。
CN201810630842.3A 2018-06-19 2018-06-19 基于卷积神经网络的目标检测方法、装置、终端及存储介质 Active CN109117940B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810630842.3A CN109117940B (zh) 2018-06-19 2018-06-19 基于卷积神经网络的目标检测方法、装置、终端及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810630842.3A CN109117940B (zh) 2018-06-19 2018-06-19 基于卷积神经网络的目标检测方法、装置、终端及存储介质

Publications (2)

Publication Number Publication Date
CN109117940A CN109117940A (zh) 2019-01-01
CN109117940B true CN109117940B (zh) 2020-12-15

Family

ID=64822782

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810630842.3A Active CN109117940B (zh) 2018-06-19 2018-06-19 基于卷积神经网络的目标检测方法、装置、终端及存储介质

Country Status (1)

Country Link
CN (1) CN109117940B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110353693A (zh) * 2019-07-09 2019-10-22 中国石油大学(华东) 一种基于WiFi的手写字母识别方法及系统
CN110443357B (zh) * 2019-08-07 2020-09-15 上海燧原智能科技有限公司 卷积神经网络计算优化方法、装置、计算机设备及介质
WO2022135599A1 (zh) * 2020-12-25 2022-06-30 中科寒武纪科技股份有限公司 融合分支结构的装置、板卡、方法及可读存储介质
CN113378858A (zh) * 2021-06-28 2021-09-10 北京百度网讯科技有限公司 图像检测方法、装置、设备、车辆和介质
CN117389748A (zh) * 2023-12-11 2024-01-12 融鼎岳(北京)科技有限公司 一种基于并行计算的bp神经网络算法的提速方法和系统

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106875012A (zh) * 2017-02-09 2017-06-20 武汉魅瞳科技有限公司 一种基于fpga的深度卷积神经网络的流水化加速系统
CN107066239A (zh) * 2017-03-01 2017-08-18 智擎信息系统(上海)有限公司 一种实现卷积神经网络前向计算的硬件结构
CN107316307A (zh) * 2017-06-27 2017-11-03 北京工业大学 一种基于深度卷积神经网络的中医舌图像自动分割方法
CN107491809A (zh) * 2017-08-21 2017-12-19 郑州云海信息技术有限公司 一种fpga实现残差网络中激活函数的方法
CN107491787A (zh) * 2017-08-21 2017-12-19 珠海习悦信息技术有限公司 局部二值化cnn的处理方法、装置、存储介质及处理器
CN107563495A (zh) * 2017-08-04 2018-01-09 深圳互连科技有限公司 面向嵌入式低功耗卷积神经网络方法
CN107862378A (zh) * 2017-12-06 2018-03-30 芯原微电子(上海)有限公司 基于多核的卷积神经网络加速方法及系统、存储介质及终端
CN107862650A (zh) * 2017-11-29 2018-03-30 中科亿海微电子科技(苏州)有限公司 加速计算二维图像cnn卷积的方法
EP3301617A1 (fr) * 2016-09-30 2018-04-04 Safran Identity & Security Procédés d'apprentissage sécurisé de paramètres d'un réseau de neurones à convolution, et de classification sécurisée d'une donnée d'entrée

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017015649A1 (en) * 2015-07-23 2017-01-26 Mireplica Technology, Llc Performance enhancement for two-dimensional array processor
US9633282B2 (en) * 2015-07-30 2017-04-25 Xerox Corporation Cross-trained convolutional neural networks using multimodal images

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3301617A1 (fr) * 2016-09-30 2018-04-04 Safran Identity & Security Procédés d'apprentissage sécurisé de paramètres d'un réseau de neurones à convolution, et de classification sécurisée d'une donnée d'entrée
CN106875012A (zh) * 2017-02-09 2017-06-20 武汉魅瞳科技有限公司 一种基于fpga的深度卷积神经网络的流水化加速系统
CN107066239A (zh) * 2017-03-01 2017-08-18 智擎信息系统(上海)有限公司 一种实现卷积神经网络前向计算的硬件结构
CN107316307A (zh) * 2017-06-27 2017-11-03 北京工业大学 一种基于深度卷积神经网络的中医舌图像自动分割方法
CN107563495A (zh) * 2017-08-04 2018-01-09 深圳互连科技有限公司 面向嵌入式低功耗卷积神经网络方法
CN107491809A (zh) * 2017-08-21 2017-12-19 郑州云海信息技术有限公司 一种fpga实现残差网络中激活函数的方法
CN107491787A (zh) * 2017-08-21 2017-12-19 珠海习悦信息技术有限公司 局部二值化cnn的处理方法、装置、存储介质及处理器
CN107862650A (zh) * 2017-11-29 2018-03-30 中科亿海微电子科技(苏州)有限公司 加速计算二维图像cnn卷积的方法
CN107862378A (zh) * 2017-12-06 2018-03-30 芯原微电子(上海)有限公司 基于多核的卷积神经网络加速方法及系统、存储介质及终端

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Going deeper with convolutions;Christian Szegedy等;《Computer Vision and Pattern Recognition》;20140917;第1-9页 *
Xception: Deep Learning with Depthwise Separable Convolutions;Francois Chollet;《Computer Vision and Pattern Recognition》;20171231;第1800-1807页 *
卷积神经网络的并行化研究;凡保磊;《中国优秀硕士学位论文全文数据库 信息科技辑》;20131115(第11期);第I140-33页 *

Also Published As

Publication number Publication date
CN109117940A (zh) 2019-01-01

Similar Documents

Publication Publication Date Title
CN109117940B (zh) 基于卷积神经网络的目标检测方法、装置、终端及存储介质
US20190095212A1 (en) Neural network system and operating method of neural network system
JP6393058B2 (ja) 情報処理装置、情報処理方法
US11507829B2 (en) Greedy approach for obtaining an artificial intelligence model in a parallel configuration
WO2017116924A1 (en) Neural network training performance optimization framework
CN110473137A (zh) 图像处理方法和装置
CN112200295B (zh) 稀疏化卷积神经网络的排序方法、运算方法、装置及设备
Bose et al. Fully embedding fast convolutional networks on pixel processor arrays
JP7414930B2 (ja) 情報処理装置、情報処理方法
CN111768458A (zh) 一种基于卷积神经网络的稀疏图像处理方法
CN111008631A (zh) 图像的关联方法及装置、存储介质和电子装置
JP2023541350A (ja) 表畳み込みおよびアクセラレーション
CN111709415B (zh) 目标检测方法、装置、计算机设备和存储介质
CN115344805A (zh) 素材审核方法、计算设备及存储介质
JP2017068577A (ja) 演算装置、方法及びプログラム
CN117217274B (zh) 向量处理器、神经网络加速器、芯片及电子设备
CN110135428A (zh) 图像分割处理方法和装置
CN110502975B (zh) 一种行人重识别的批量处理系统
CN112150612A (zh) 三维模型构建方法、装置、计算机设备及存储介质
US20220180187A1 (en) Method and apparatus for performing deep learning operations
CN117063182A (zh) 一种数据处理方法和装置
CN111797972A (zh) 应用卷积神经网络处理数据的方法、装置和电子系统
DE112020005140T5 (de) Dreidimensionale faltung im prozessor eines neuronalen netzwerks
WO2023165290A1 (zh) 数据处理方法及装置、电子设备和存储介质
KR20200061154A (ko) 시각 및 텍스트 정보를 포함하는 다이어그램의 분석 방법 및 장치

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