CN115600652B - 卷积神经网络处理装置、高速目标探测方法以及设备 - Google Patents

卷积神经网络处理装置、高速目标探测方法以及设备 Download PDF

Info

Publication number
CN115600652B
CN115600652B CN202211505839.1A CN202211505839A CN115600652B CN 115600652 B CN115600652 B CN 115600652B CN 202211505839 A CN202211505839 A CN 202211505839A CN 115600652 B CN115600652 B CN 115600652B
Authority
CN
China
Prior art keywords
module
value
input
processing
characteristic
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
CN202211505839.1A
Other languages
English (en)
Other versions
CN115600652A (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.)
Shenzhen Vision Technology Co Ltd
Original Assignee
Shenzhen Vision 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 Shenzhen Vision Technology Co Ltd filed Critical Shenzhen Vision Technology Co Ltd
Priority to CN202211505839.1A priority Critical patent/CN115600652B/zh
Publication of CN115600652A publication Critical patent/CN115600652A/zh
Application granted granted Critical
Publication of CN115600652B publication Critical patent/CN115600652B/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/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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

本发明提出一种卷积神经网络处理装置、高速目标探测方法以及设备。卷积神经网络处理装置包括:处理模块、累加模块、激活模块和存储模块。处理模块,用于根据输入特征值与输入权重值进行融合得到中间特征值,其中,处理模块包括呈阵列结构排布的多个处理单元,阵列结构为具有行、列、通道三个维度的阵列结构;累加模块与处理模块连接,用于根据中间特征值进行累加得到累加结果;激活模块与累加模块连接,用于根据累加结果进行激活处理得到输出特征值;存储模块与激活模块、处理模块分别连接,用于存储输入特征值、输入权重值以及输出特征值。本发明有利于提高卷积神经网络的处理速度。

Description

卷积神经网络处理装置、高速目标探测方法以及设备
技术领域
本发明涉及卷积神经网络领域,尤其是涉及了一种卷积神经网络处理装置、高速目标探测方法以及设备。
背景技术
深度学习在目标检测、人脸识别、自动驾驶、文字识别等领域得到越来越广泛的应用。其中,卷积神经网络(Convolution Neural Network,CNN)由于其参数共享和局部感知的特点极大降低了深度神经网络的复杂度,深受研究人员和开发人员的关注。在高速目标检测等复杂目标检测场景中,需要研发一种检测精度和检测实时性具有良好的目标检测装置,以实现对目标进行快速且准确地检测,从而满足客户的需求。
发明内容
本发明提出一种卷积神经网络处理装置、高速目标探测方法以及设备,有利于提高卷积神经网络的处理速度。
第一方面,提供一种卷积神经网络处理装置,其中,包括:
处理模块,用于根据输入特征图中的输入特征值与卷积核中的输入权重值进行融合得到中间特征值,其中,所述处理模块包括呈阵列结构排布的多个处理单元,所述阵列结构为具有行、列、通道三个维度的阵列结构;
累加模块,与所述处理模块连接,用于根据所述中间特征值进行累加得到累加结果;
激活模块,与所述累加模块连接,用于根据所述累加结果进行激活处理得到输出特征值;
存储模块,与所述激活模块、所述处理模块分别连接,用于存储所述输入特征值、所述输入权重值以及所述输出特征值;
其中,所述存储模块与各个所述处理单元分别连接;和/或,所述存储模块与所述阵列结构最后一行和第一列的各个处理单元分别连接,且通道序号相同、行序号相同、列序号相邻的两个所述处理单元之间相互连接,以及通道序号相同、行序号相邻、列序号相邻的两个所述处理单元之间按照行序号减小和列序号增大的方向依次连接。
其中的一个实施方式中,所述的卷积神经网络处理装置,其中,所述累加模块包括多个累加单元,所述累加单元排布形成一行,且每一个所述累加单元对应一列所述处理单元,所述累加单元与对应列的各个所述处理单元连接;
所述累加单元中包括:累加值存储器,用于存储对应所述卷积核中的一行的累加值;其中,每个所述累加单元中所述累加值存储器的数量大于或等于所述卷积核列数减去1的值与所述阵列结构的通道数量的积。
其中的一个实施方式中,所述的卷积神经网络处理装置,其中,所述阵列结构的行数与所述卷积核的行数之比R1大于等于1,所述阵列结构的行数列数之和与所述输入特征图中行数之比R2大于1,所述阵列结构的通道数与所述卷积核的通道数之比R3大于等于1,则,和/或,和/或
或,所述阵列结构的行数与所述卷积核的行数之比R1小于1,所述阵列结构的行数列数之和与所述输入特征图中行数之比R2小于1,所述阵列结构的通道数与所述卷积核的通道数之比R3小于1,则,和/或,和/或
其中的一个实施方式中,所述的卷积神经网络处理装置,其中,所述卷积核的行数为所述阵列结构行数的整数倍,所述输入特征图的行数为所述阵列结构的列数与所述卷积核行数之和再减1得到的值的整数倍,所述卷积核通道数为所述阵列结构的通道数的整数倍。
其中的一个实施方式中,所述的卷积神经网络处理装置,其中,还包括:
池化模块,与所述激活模块连接,用于对所述输出特征值进行池化处理;
填充模块,与所述池化模块连接,以及与所述存储模块连接,用于获取填充特征值并根据所述填充特征值进行填充处理;
控制模块,与所述存储模块连接,用于根据中断优先级控制所述存储模块的读写;
二值化模块,与所述激活模块连接,用于对所述输出特征值进行二值化处理。
其中的一个实施方式中,所述的卷积神经网络处理装置,其中,所述存储模块包括:
权重值存储单元,用于存储所述输入权重值;
特征值存储单元,用于存储所述输入特征值和所述输出特征值;
存储控制器,用于进行存储控制接口与传输总线接口之间的切换;
位宽转换器,用于调整传输数据的位宽;
其中,所述权重值存储单元与所述处理模块连接,所述特征值存储单元的存储容量大于所述权重值存储单元的存储容量;
所述特征值存储单元由多个特征值存储区块组成;所述多个特征值存储区块包括第一特征值存储区块421和第二特征值存储区块422;
所述第一特征值存储区块421具有第一端口和第二端口,所述第一端口的位宽大于所述第二端口的位宽,所述第一端口与所述处理模块连接,所述第二端口依次与所述存储控制器、所述位宽转换器、所述控制模块连接;
所述第二特征值存储区块422具有第三端口和第四端口,所述第三端口的位宽大于所述第四端口的位宽,所述第三端口与所述处理模块连接,所述第四端口依次与所述存储控制器、所述位宽转换器、所述控制模块连接。
其中的一个实施方式中,所述的卷积神经网络处理装置,其中,所述池化模块,包括:
第一选择器,用于按照预设选择方法从第一组特征值中选择得到一个或多个第一特征值,以及从第二组特征值中选择得到一个或多个第二特征值,其中,第一特征值的数量少于所述第一组特征值中特征值的数量,第二特征值的数量少于所述第二组特征值中特征值的数量;
第一存储器,与所述第一选择器连接,用于存储所述第一特征值;
第二存储器,与所述第一选择器连接,用于存储所述第二特征值;
第二选择器,与所述第一存储器和所述第二存储器均连接,用于按照预设选择方法从所述第一特征值和所述第二特征值中选择得到一个或多个第三特征值,其中,所述第三特征值的数量少于所述第一特征值的数量与所述第二特征值的数量之和。
其中的一个实施方式中,所述的卷积神经网络处理装置,其中,所述处理单元为乘法处理单元、异或处理单元中的一种。
第二方面,提供一种目标探测方法,包括:
获取探测信息;
通过如上所述的卷积神经网络处理装置对所述探测信息进行卷积处理,提取所述探测信息中的目标物特征;
根据所述目标物特征,得到目标探测结果。
第三方面,提供一种电子设备,包括存储装置和处理器,所述存储装置存储有可在处理器上运行的计算机程序,其中,当所述处理器执行所述程序时,实现如上所述的目标探测方法的步骤,其中,所述处理器包括如上所述的卷积神经网络处理装置。
本发明中多个处理单元排布形成具有行、列和通道的三个维度的阵列结构,可以实现多输入特征图、多通道、多卷积核的通用性卷积并行计算,有利于提高了卷积神经网络的运算速度。
附图说明
通过阅读下文优选的具体实施方式中的详细描述,本发明各种其他的优点和益处对于本领域普通技术人员来说将变得清楚明了。说明书附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。显而易见地,下面描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来说,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是本发明一个实施例的卷积神经网络处理装置的结构示意图;
图2是本发明一个实施例的卷积神经网络处理装置的另一结构示意图;
图3是本发明一个实施例的卷积神经网络处理装置中池化模块的结构示意图;
图4是本发明一个实施例的卷积神经网络处理装置中二值化模块的连接关系示意图;
图5是本发明一个实施例的目标探测方法的流程示意图;
图6为本发明一个实施例的电子设备的结构示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互结合,下面结合附图和具体实施例对本发明作进一步详细说明。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本申请的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
为了使本技术领域的人员更好地理解本申请方案,下面将结合附图,对本申请实施例中的技术方案进行清楚、完整地描述。
实施例一
在一些高速目标探测或红外图像彩色还原的场景中,通常采用卷积神经网络处理采集的图像等信息,实现高速目标探测或红外图像彩色还原,为了满足用户的实时性要求,本实施例通过提供一种卷积神经网络处理装置提高卷积神经网络的运算速度。
图1为本实施中卷积神经网络处理装置的结构示意图。请参阅图1,该卷积神经网络处理装置,包括:处理模块10、累加模块20、激活模块30以及存储模块40。
处理模块10,用于根据输入特征图中的输入特征值与卷积核中的输入权重值进行融合得到中间特征值,其中,处理模块10包括呈阵列结构排布的多个处理单元101,阵列结构为具有行、列、通道三个维度的阵列结构。
处理模块10能够对输入特征值与输入权重值按照预设规则进行计算,将输入特征值与输入权重值进行融合,形成中间特征值。例如处理模块10根据输入特征值与输入权重值进行乘法运算或进行异或逻辑运算,产生中间特征值。输入特征图为卷积计算前的特征图,作为卷积计算的输入值,包括多个输入特征值,多个输入特征值具有行、列、通道三个维度;卷积核包括多个输入权重值,多个权重值具有行、列、通道三个维度。
如图1及图2所示,处理模块10包括多个处理单元101,其中,多个处理单元101具有阵列结构,形成阵列结构。阵列结构具有三个维度,即行、列、通道三个维度。为方便说明,将处理单元101按照行、列、通道三个维度进行编号,例如处理单元PEijk,代表第i行第j列第k通道的处理单元101,i、j、k分别为阵列结构中行、列、通道的序号。可选地,第i行的处理单元101与第i+1行的处理单元101相邻,第j列的处理单元101与第j+1列的处理单元101相邻,第k通道的处理单元101与第k+1通道的处理单元101相邻。
阵列结构具有阵列规模可调、处理单元计算位宽可调、处理单元内部存储可调的特点。具体地,采用高度参数化的卷积计算电路生成器(基于Chisel3语言的电路生成器)生成多个处理单元101,并对处理单元101的数量、位宽和存储进行调整和设置。
累加模块20,与处理模块10连接,用于根据中间特征值进行累加得到累加结果。
累加模块20能够对中间特征值进行累加得到累加结果。具体地,当累加模块20将卷积窗口对应的所有中间特征值累加完成时输出该累加值,完成该卷积窗口在当前格的卷积运算,卷积窗口继续滑动至下一格循环操作上述卷积过程。
激活模块30,与累加模块20连接,用于根据累加结果进行激活处理得到输出特征值。
激活模块30与累加模块20连接,从而接收来自累加模块20的累加值,并对其进行非线性激活。激活函数的本质是向神经网络中引入非线性,表达输入到输出之间的非线性映射关系。同时,激活函数能够将输出限制到一定范围内,一般是[0,1]或者[-1,1]范围内,有利于神经网络传播算法的优化提速。可选地,激活模块30包含一个比较器,即第一比较器,能够对输入的累加值进行比较判断,进而实现非线性激活。可选地,激活函数为ReLU函数激活。
存储模块40,与激活模块30、处理模块10分别连接,用于存储输入特征值、输入权重值以及输出特征值。
存储模块40中含有多个寄存器,可以进行数据的存取。存储模块40能够存储特征值,例如存储初始特征值或者上一卷积循环的输出特征值,并在当前卷积循环中实现当前循环的输入特征值的读取,将当前循环的输入特征值输入到处理单元101中。
存储模块40按照预设存储顺序对输入权重值进行存储与读取,以及按照预设存储顺序对输入特征值进行存储与读取。具体地,在输入权重值排序时,输入权重值的卷积核序号优先增加,当输入权重值的卷积核序号到最大时则输入权重值的通道序号增加1并重置输入权重值卷积核序号,当输入权重值的通道序号到最大时则输入权重值的列序号增加1并重置输入权重值的卷积核序号和输入权重值的通道序号,当输入权重值的列序号最大时则输入权重值的行序号增加1并重置输入权重值的卷积核序号、输入权重值的通道序号和输入权重值的列序号。在输入特征值排序时,输入特征值的通道序号优先增加,当输入特征值的通道序号到最大时则输入特征值的列序号增加1并重置输入特征值的通道序号,当输入特征值的列序号到最大时则输入特征值的特征图序号增加1并重置输入特征值的通道序号和输入特征值的列序号,当输入特征值的特征图序号最大时则输入特征值的行序号增加1并重置输入特征值的通道序号、输入特征值的列序号和输入特征值的特征图序号。
在一个实施例中,存储模块40与各个处理单元101分别连接。也即是,存储模块40与处理模块10中所有处理单元101均连接,从而实现将存储模块40中的输入权重值和输入特征值同时传输至对应的处理单元101中,所有处理单元101可以同时对数据进行处理,有利提高卷积计算的速度。
在一个卷积计算过程中,根据卷积核行序号,将卷积核中的输入权重值送入处理单元101中,具体地,依次将卷积核的第一行的各个输入权重值同时输入到阵列结构第一行的各个处理单元101中,使得阵列结构第一行的各个处理单元101均遍历所有卷积核第一行输入权重值,如此在进行以上步骤的同时采用相同的方式将卷积核的剩余行输入至对应行的处理单元101中。举例地,卷积核为有多行、多列、多个通道的卷积核,Wabc代表一个输入权重值,a、b、c代表卷积核的行序号、列序号以及通道序号,将输入权重值Wabc输入到处理单元PEijk中,其中,a=i,c=k,随着输入权重值读取次数的增加b的取值依次增加,对于每个b的取值同时对应j的所有取值,如在3×5×3的阵列结构中将W111同时输入处理单元PE111、PE121、PE131、PE141、PE151中。
在卷积核中的输入权重值按照行序号送入处理单元101中的同时,按照特征图行序号将输入特征图中的输入特征值送入处理单元101中。具体地,将输入特征值送入处理单元101中,使得处理单元101行序号与列序号之和等于特征图行序号加1,从而实现输入特征值与对应的输入权重值进行融合。举例地,输入特征图为有多行、多列、多个通道的特征图,Idef代表一个输入特征值,d、e、f代表输入特征图的行序号、列序号以及通道序号,将输入特征值Idef输入到处理单元PEijk中,其中,d+1=i+j,f=k,随着输入特征值读取次数的增加e的取值依次增加,且对于每个e的取值同时对应满足i+j=d+1的所有i、j取值,如在3×5×3的阵列结构中将I322同时输入处理单元PE312、PE222、PE132中。
在一个实施例中,存储模块40与阵列结构最后一行和第一列的各个处理单元101分别连接,且通道序号相同、行序号相同、列序号相邻的两个处理单元101之间相互连接,以及通道序号相同、行序号相邻、列序号相邻的两个处理单元101之间按照行序号减小和列序号增大的方向依次连接。本实施例可以实现输入权重值和输入特征值可以在处理单元101按照预设规则流动,可以减少存储模块40中数据读取次数,有利提高卷积计算的速度。
换句话说,存储模块40与多个处理单元PEijk连接,其中,i=imax或j=1,imax代表i的最大值。将PEijk与PEi(j+1)k相连接,将PEijk与PE(i-1)(j+1)k相连接。
在一个卷积计算过程中,根据卷积核行序号,将输入权重值送入处理单元101中,具体地,依次将卷积核的第一行的各个输入权重值分别输入到阵列结构第一行的第一列处理单元101中,然后各个输入权重值依次进入第一行第二列、第一行第三列……直至第一行最后一列,使得阵列结构第一行的各个处理单元101均遍历所有卷积核第一行输入权重值,如此在进行以上步骤的同时采用相同的方式将卷积核的剩余行输入至对应行的处理单元101中,可见输入权重值保持行序号和通道序号不变的情况下按照列序号增加的方向依次进入处理单元101。举例地,将输入权重值Wabc输入到处理单元PEijk中,其中,a=i,c=k,随着输入权重值读取次数的增加b的取值依次增加,对于每个b的取值依次遍历j的所有取值,如在3×5×3的阵列结构中将W111按照列序号依次输入处理单元PE111、PE121、PE131、PE141、PE151中。
在输入权重值按照行序号送入处理单元101中的同时,按照特征图行序号将输入特征图中的输入特征值送入处理单元101中。具体地,先将输入特征值送入第一列和最后一行的处理单元101中,然后输入特征值按照行序号减小和列序号增大的方向依次进入下一个处理单元101,其中,处理单元101行序号与列序号之和等于输入特征图行序号加1,从而实现输入特征值与对应的输入权重值进行融合。举例地,将输入特征值Idef输入到处理单元PEijk中,其中,d+1=i+j,f=k,随着输入特征值读取次数的增加e的取值依次增加,且对于每个e的取值确定对应满足i+j=d+1的所有i、j取值,输入特征值按照行i减小和j号增大的方向依次进入下一个处理单元101,如在3×5×3的阵列结构中将I322先进入处理单元PE312后,再进入PE222,最后进入PE132中。
在一个实施例中,存储模块40与各个处理单元101分别连接,且通道序号相同、行序号相同、列序号相邻的两个处理单元101之间相互连接,以及通道序号相同、行序号相邻、列序号相邻的两个处理单元101之间按照行序号减小和列序号增大的方向依次连接,可以减少数据的读取时间,有利于提高卷积计算速度。
在一个卷积计算过程中,根据卷积核行序号,将卷积核中的输入权重值送入处理单元101中,举例地,第一步,按照读取规则,将输入权重值Wabc输入到处理单元101中,各个处理单元101完成一次计算;第二步,输入权重值Wabc送入到阵列结构第一行的第一列处理单元101中,计算完成后再各个处理单元101中的输入权重值Wabc传输至下一个处理单元101,至最后一列处理单元101。其中,将输入权重值Wabc输入到处理单元PEijk中,a=i,c=k,随着输入权重值读取次数的增加b的取值依次增加,对于每个b的取值依次遍历j的所有取值,如在3×5×3的阵列结构中将W111按照列序号依次输入处理单元PE111、PE121、PE131、PE141、PE151中。
在输入权重值按照行序号送入处理单元101中的同时,按照特征图行序号将输入特征值送入处理单元101中。举例地,第一步,按照读取规则,将输入特征值Idef分别输入到阵列结构的所有处理单元101中,各个处理单元101完成一次计算;第二步,将输入特征值送入第一列和最后一行的处理单元101中,然后各个处理单元101的输入特征值按照行序号减小和列序号增大的方向依次进入下一个处理单元101,处理单元101行序号与列序号之和等于输入特征图行序号加1。其中,将输入特征值Idef输入到处理单元PEijk中,d+1=i+j,f=k,随着输入特征值读取次数的增加e的取值依次增加,且对于每个e的取值确定对应满足i+j=d+1的所有i、j取值,输入特征值按照行i减小和j号增大的方向依次进入下一个处理单元101。
本发明中多个处理单元101排布形成具有行、列和通道的三个维度的阵列结构,可以实现多输入特征图、多通道、多卷积核的通用性卷积并行计算,有利于提高了卷积神经网络的运算速度。
其中的一个实施例中,卷积神经网络处理装置,其中,累加模块20包括多个累加单元201,累加单元201排布形成一行,且每一个累加单元201对应一列处理单元101,累加单元201与对应列的各个处理单元101连接。
如图1及图2所示,多个累加单元201排列成一行,位于多个处理单元101的一侧,每一个累加单元201对应一列处理单元101。或者说,每列处理单元101的一侧设置一个累加单元201。
累加单元201与对应列的各个处理单元101连接,将处理单元101输出的中间特征值送至累加单元201中进行累加。每个累加单元201中具有多个存储位置,每个存储位置对应存储相应通道的累加值,从而将中间特征值按照通道进行分别累加,得到多个累加结果。对应于处理单元101,按列对累加单元201进行编号,第k列的累加单元201中各个存储位置与第k列的处理单元101各个通道一一对应。
可选地,累加单元201中包括:累加值存储器,用于存储卷积神经网络卷积核中的一行对应的累加值;其中,每个累加单元201中累加值存储器的数量大于或等于卷积神经网络卷积核列数减去1的值与阵列结构的通道数量的积。
举例地,每个累加单元201包括加法器和多个累加值存储器,加法器与各个累加值存储器连接,从而实现中间特征值的累加计算。加法器用于执行加法计算。累加值存储器用于存储计算得到的累加值,也称为累加值存储位置。每个累加单元201中,累加值存储器的数量大于等于阵列结构的通道数量或卷积核列数减去1的值与阵列结构的通道数量的积。每个累加单元201中,累加值存储器的数量等于卷积核列数减去1的值与阵列结构的通道数量的积时,阵列结构的一列通道对应卷积核列数减去1个累加值存储器,从而将累加值存储在相应的累加值存储器中。
在卷积过程中,通过计数器中的累加次数或输入权重值的读取次数等计数次数,判断是否可以输出累加值,得到一个卷积窗口总的累加结果。例如,一列通道对应卷积核列数减去1个累加值存储器时,在累加过程中将卷积核每行的累加值存储在相应的各个存储器中,当卷积核列数减去1个累加值存储器时全部填满(可以通过计数器的计数次数判断)时说明当前卷积核只剩最后一行的累加值未获得及存储,则继续累加得到卷积最后一行的累加值,并将卷积最后一行的累加值与相应的各个存储器之前存储的各个累加值相加得到当前卷积窗口总的累加值,输出该总的累加结果,删除相应的存储器最先存储的累加值(当前卷积核对应第一行的累加值),中间行的累加值依次向前移动一个位置,将最后一行的累加值写入最后一行的累加结果存储位置,保留中间行的累加值,可以提高中间累加值的复用率。
其中的一个实施例中,阵列结构的行数与卷积核的行数之比R1大于等于1,阵列结构的行数列数之和与输入特征图中行数之比R2大于1,阵列结构的通道数与卷积核的通道数之比R3大于等于1,则,和/或,和/或。其中,行数是指总行数,列数是指总列数,通道数是指总通道数。例如,阵列结构的行数是指阵列结构的所有行的总数。
可选地,,和/或,和/或
本实施例对阵列结构的行数进行设置,使得阵列结构的行数与卷积核的行数相接近,阵列结构的行数列数之和与输入特征图中行数相接近,阵列结构的通道数与卷积核的通道数相接近,有利于充分利用阵列结构的计算资源,提高卷积神经网络的运行速度。
其中的一个实施例中,阵列结构的行数与卷积核的行数之比R1小于1,阵列结构的行数列数之和与输入特征图中行数之比R2小于1,阵列结构的通道数与卷积核的通道数之比R3小于1,则,和/或,和/或。其中,代表对向下取整。
可选地,,和/或,和/或
当阵列结构的尺寸小于卷积核尺寸或小于输入特征图尺寸时,则可以对输入特征图进行拆分,进行分批卷积。具体地,根据处理单元101阵列尺寸和当前循环的输入特征图的尺寸,对输入特征图进行拆分,得到拆分后的输入特征图。根据拆分后的输入特征图进行分批卷积计算,得到多个批次卷积结果。根据多个批次卷积结果,得到输出特征图。
在卷积计算过程中,根据处理单元101阵列尺寸和特征图的尺寸,对输入特征图进行拆分;根据拆分后的输入特征图进行分批卷积计算,得到输出特征图(最终的卷积结果)。由于处理单元101阵列尺寸的限制会导致对于一次卷积运算过程中最大通道数和最大行数的限制。举例地,对于处理单元101阵列尺寸为3×14×64时,如果卷积的最大通道数大于64或者输入特征图的行数大于16,则需要考虑将大卷积拆分成小卷积,根据拆分后的输入特征图进行分批卷积计算,从而获得最终的卷积结果。具体地,假设卷积的通道数为128,则在通道方向将计算划分为2次,一次计算前64个通道的卷积结果,一次计算后64个通道的卷积结果,最后将二者累加即最终的卷积结果。
可选地,每个分批卷积计算的计算量相等或两者相差不大于该计算量的10%,或者,各个拆分后的输入特征图的数据量相等或两者相差不大于该特征图的数据量的10%。
本实施例通过对阵列结构的行数进行设置,使得卷积核的行数与阵列结构的行数的整数倍相接近,输入特征图中行数与阵列结构的行数列数之和的整数倍相接近,卷积神经网络中卷积核的通道数与阵列结构的通道数的整数倍相接近,有利于充分利用阵列结构的计算资源。
在其中的一个实施例中,卷积神经网络中卷积核的行数Sfh为阵列结构的行数Sph的整数倍,Sfh=Qh×Sph,Qh为整数;输入特征图的行数Sgh为阵列结构的列数Spl与卷积神经网络中卷积核行数Sph之和再减1的值的整数倍,Sgh=Ql×(Sph+Spl-1),Ql为整数;卷积神经网络中卷积核通道数Sft为阵列结构的通道数Spt的整数倍,Sft=Qt×Spt,Qt为整数,从而可以在将数据分成整数批时,有利于充分处理单元101阵列的计算资源,从而提高卷积神经网络的运行速度。
可选地,阵列结构的行数Sph与卷积神经网络中卷积核的行数Sfh相等,Sph=Sfh;阵列结构的列数Spl与行数Sph之和等于输入特征图的行数Sgh加1,Spl+Sph=Sgh+1;阵列结构的通道数Spt与卷积神经网络中卷积核通道数Sft相等,也与特征图通道数Sgt相等,Spt=Sft=Sgt
需要说明的是,阵列结构是依据卷积核和输入特征图的结构确定的,例如,卷积核通道为单通道时,阵列结构的通道数也为1。此时,从形式看阵列结构相当于多个处理单元101排布形成一个两维阵列结构,实际上仍然可以认为是一种特殊的三维阵列结构,第三维的通道数量只是为1而已。
其中的一个实施例中,卷积神经网络处理装置,还包括:池化模块50(也称为最大池化模块50),与激活模块30连接,用于对输出特征值进行池化处理。
通过在连续的卷积层中插入池化层,对输出特征图进行池化处理,压缩输出特征图的尺寸大小后再进入下一个卷积循环中,有利于减少过拟合现象的出现。可选地,池化模块50可以包含一个比较器,即第二比较器。举例地,通过将激活模块30输出的特征值与预设值比较,根据预设池化规则对输出的特征值进行取舍,从而完成池化过程。
其中的一个实施例中,卷积神经网络处理装置,还包括:填充模块60,与池化模块50连接,以及与存储模块40连接,用于获取填充特征值并根据填充特征值对输出特征图进行填充处理。
填充模块60用于实现卷积神经网络中像素填充层(padding)的功能。通过在输入特征图四周分别填充一行或者一列边缘特征值,增加特征图的尺寸,减少图像的边缘信息的丢失。
其中的一个实施例中,请参阅图2,卷积神经网络处理装置,还包括:控制模块70,与存储模块40连接,用于根据中断优先级控制存储模块40的读写。
可选地,卷积神经网络处理装置还包括:计数模块。其中,计数模块包括权重值读取计数器、新特征值读取次数计数器、计算次数计数器等多个计数器。通过以上计数器与控制模块70互相配合以达到产生正确控制信号的目的,这些控制信号主要涉及到输入权重值和输入特征值数据的读写控制。
控制模块70通过传输总线710与存储模块40以及计数模块连接。传输总线710用于实现控制信号和数据的传输。可选地,传输总线710为AXI3总线。
可选地,控制信号可以为一种中断信号,实现输入权重值和输入特征值数据的读写控制。举例地,根据计数器的计数,当获取新特征值的次数达到预设次数时会产生相应的新中断信号;控制模块70检测到该新中断信号,控制模块70首先响应该新中断信号判断新中断与当前中断的优先级关系,如果新中断优先级较高,则根据中断信号来源确定中断号,再从中断向量表中找到该中断号对应的程序入口地址,将其取到相应计数器PC中,再根据PC值去该地址取出中断程序的读取指令,读取相应的输入特征值。其中,预设次数为特征图的宽度与卷积核的宽度之差除以步长后再加1得到的值。
可选地,在中断向量表中,包括中断优先级,数字越小代表优先级越高,其中优先级小于0的中断信号对应的是控制模块70内部异常的中断信号,优先级大于等于0的中断信号是来自外部的中断。在卷积计算过程中,当需要读取新的特征值时,控制模块70根据中断源产生中断信号,其中,中断源为计数模块,且中断信号对应的中断优先级设为0,即在中断向量表中基于计数器产生的中断信号是除控制模块70内部异常的中断信号外的其他中断信号中最优先处理的中断信号,或者说是除控制模块70内部异常的中断信号外的其他中断信号中优先级最高的中断信号。
在一个特征图卷积计算过程中,通过计数模块计数的方式可以判断神经网络的第一卷积层是否计算完毕,当卷积层计算完毕时,控制模块70根据计数模块产生一个中断请求信号,从而在第二层卷积层计算开始前、第三层卷积层计算开始前、直至最后一层卷积层开始前,控制模块70对存储模块40进行卷积信息的配置。由于上述中断过程是控制模块70基于计数器中断源产生的中断请求(定义该中断源的中断号为16,优先级为0),进入相应的中断程序,读取相应的输入特征值及输入权重值。
可选地,为了能够判断监测到的中断信号是哪一卷积层计算结束后发出的,从而转入到相应的中断处理子程序中,可以设置一个全局变量h,每当处理该中断源发起的中断信号时,h自加1,然后根据h的值判断跳转到哪一段处理程序中,变量h由一个计数器统计确定。
其中的一个实施例中,卷积神经网络处理装置,其中,存储模块40包括:权重值存储单元410、特征值存储单元420、存储控制器430和位宽转换器440。
权重值存储单元410(也称为Filter BRAM),用于存储卷积神经网络中卷积核中的权重值。具体地,权重值存储单元410与处理模块10中的处理单元101连接,使得处理单元101能够读取权重值存储单元410中存储的权重值。可选地,权重值存储单元410与阵列结构中的所有处理单元101分别连接,和/或权重值存储单元410与阵列结构中第一列的各个处理单元101分别连接。
可选地,权重值存储单元410包括权重值循环移位存储器,可以在卷积过程中对输入权重值进行重复循环读取,提高输入权重值的复用次数,有利于提高卷积计算的速度。
可选地,循环移位存储器中具有一个选择器(第五选择器)和一个移位存储器,其中,该选择器包括两个输入端(第一输入端和第二输入端)和一个输出端,移位存储器包括一个输入端和两个输出端(第一输出端和第二输出端),移位存储器的第一输出端与第五选择器的第一输入端连接,第五选择器的输出端与移位存储器连接。第五选择器可以响应循环移位控制信号将移位存储器的第一输出端与移位存储器的输入端连接,从而实现循环移位的数据读写,保持内部数据顺序不变。以及,第五选择器可以响应移位控制信号断开移位存储器的第一输出端与移位存储器的输入端之间的连接,从而实现先进先出的数据读写。移位存储器是一种基于先进先出规则的存储器。其中,第二输入端用于写入新数据,第二输出端用于外部单元读取数据。
特征值存储单元420,用于存储输入特征值和输出。特征值存储单元420与处理单元101连接,使得处理单元101能够读取输入特征图中的输入特征值。可选地,特征值存储单元420与阵列结构中的所有处理单元101分别连接,和/或特征值存储单元420与阵列结构中第一列和最后一行的各个处理单元101分别连接。
可选地,特征值存储单元420包括特征值循环移位存储器,可以卷积过程中对特征值进行重复循环读取,提高特征值的复用次数,从而提高卷积计算的速度。特征值循环移位存储器与权重值循环移位存储器的结构相同。
可选地,按照顺序存储权重值和特征值,即根据权重值写逻辑、特征值重排序和写回逻辑存储权重值和特征值,包括:步骤921和步骤922。
步骤921、按照预设权重值排序,将当前循环的卷积核中的输入权重值依次写入权重值存单元中,其中,预设权重值排序为:根据卷积核序号、通道序号、列序号以及行序号自初始的输入权重值开始对输入权重值进行排序,当输入权重值的卷积核序号小于输入权重值的最大卷积核序号时使输入权重值的卷积核序号自加1,当输入权重值的卷积核序号增加至输入权重值的最大卷积核序号时使输入权重值的通道序号自加1并重置输入权重值的卷积核序号,当输入权重值的通道序号增加至输入权重值的最大通道序号时使输入权重值的列序号自加1并重置输入权重值的通道序号以及重置输入权重值的卷积核序号,当输入权重值的列序号增加至输入权重值的最大列序号时使输入权重值的行序号自加1并重置输入权重值的列序号、重置输入权重值的通道序号以及重置输入权重值的卷积核序号。
步骤922、按照预设特征值排序,将当前循环的输入特征图中的输入特征值写入特征值存储单元420中,其中,预设特征值排序为:根据通道序号、列序号、卷积核序号以及行序号自初始的输入特征值开始对输入特征值进行排序,当输入特征值的通道序号小于输入特征值的最大通道序号时则使输入特征值的通道序号自加1,当输入特征值的通道序号增加至输入特征值的最大通道序号时使输入特征值的列序号自加1并重置输入特征值的通道序号,当输入特征值的列序号增加至输入特征值的最大列序号时使输入特征值的特征图序号自加1并重置是特征值的列序号以及重置输入特征值的通道序号,当输入特征值的特征图序号增加至输入特征值的最大特征图序号时使输入特征值的行序号自加1并重置输入特征值的特征图序号、重置输入特征值的列序号以及重置输入特征值的通道序号。
可选地,根据循环移位次数对卷积计算进行控制,即权重值读逻辑和特征值读逻辑,包括:步骤923和步骤924。
步骤923、依次读取当前循环的卷积核中的一行输入权重值并写入权重值循环移位寄存器中,依次读取当前循环的输入特征图的输入特征值并写入特征值循环移位寄存器中,其中,特征值循环移位寄存器中的输入特征值的数量为当前循环的卷积核宽度与当前循环的卷积核通道数量的乘积,且特征值循环移位寄存器中的输入特征值与权重值循环移位寄存器中的输入权重值具有卷积对应关系。
步骤924、对权重值循环移位寄存器中的输入权重值进行一次或多次移位循环,当权重值循环移位寄存器的移位循环次数为n+1时则对特征值循环移位寄存器中的输入特征值进行一次移位循环,当权重值循环移位寄存器的移位循环次数为m+1时则从待写入寄存器中获取新输入特征值并将新输入特征值写入特征值循环移位寄存器中,当获取新输入特征值的次数为输入特征图的宽度与卷积核的宽度之差除以步长后再加1得到的值时则清空权重值循环移位寄存器和特征值循环移位寄存器中的数据并返回至读取步骤923,其中,n为当前循环的卷积核数量的整数倍,m为权重值循环移位寄存器中输入权重值数量的整数倍,新输入特征值的数量根据卷积步长进行确定,以及在将新输入特征值写入特征值循环移位寄存器中时通过第五选择器断开寄存器元件的输入端和输出端之间的连接之后再写入新输入特征值并删除与新输入特征值数量相等数量的原特征值。
存储控制器430,用于存储控制接口与传输总线接口之间的切换,如将存储控制接口转换为传输总线接口,从而实现控制模块70对存储模块40的读写进行控制。存储控制器430的位宽比传输总线710的位宽大,有利于提高卷积计算中数据读写的速度。可选地,存储控制器430的位宽为1024bit。
位宽转换器440,用于调整传输数据的位宽。通过调整传输数据的位宽,使得存储控制器430的位宽与传输总线710位宽相匹配。举例地,当传输总线710的位宽小于存储控制器430的位宽,需要通过位宽转换器440减小存储控制器430输出的数据位宽后再输入传输总线710中。可选地,传输总线710的位宽为32bit。
可选地,特征值存储单元420的存储容量大于权重值存储单元410的存储容量,可以适应卷积计算中特征值数据量相对较大的特点,有利于提高卷积计算速度。同时,特征值存储单元420读写数据的位宽大于权重值存储单元410读写数据的位宽,有利于提高卷积计算的速度。可选地,特征值存储单元420的存储容量为16M。特征值存储单元420读写数据的位宽为8192bit,权重值存储单元410读写数据的位宽为512bit。
可选地,特征值存储单元420由多个特征值存储区块组成,可以增加特征值的存储容量,有利于提高卷积计算速度。具体地,多个特征值存储区块包括第一特征值存储区块421(也称为Feature URAM1)和第二特征值存储区块422(也称为Feature URAM2)。
可选地,第一特征值存储区块421具有第一端口和第二端口,第一端口的位宽大于第二端口的位宽,第一端口与处理单元101连接,第二端口依次与存储控制器430、位宽转换器440、控制模块70连接;第二特征值存储区块422具有第三端口和第四端口,第三端口的位宽大于第四端口的位宽,第三端口与处理单元101连接,第四端口依次与存储控制器430、位宽转换器440、控制模块70连接。
在一个实施例中,控制模块70为基于MCU的控制模块70,控制模块70连接AXI3总线接口,地址和数据总线都是32位的。特征值存储单元420分为2块进行设计,每个特征值存储区块的容量为8MB,设置成简单双口模式,两个口的位宽不一致,第一端口(A口)的位宽4096bit,两个特征值存储区块的A口拼接在一起构成8192bit位宽的输出;第二端口(B口)的位宽512bit,两个特征值存储区块的B口的总位宽1024bit,经存储控制器430(AXI BRAMController),将原始的存储控制接口转换成传输总线710接口,然后再通过位宽转换器440(AXI Dwith Converter)将数据位宽由1024bit转为32bit,接到AXI传输总线710,再与控制模块70连接,沿着上述数据链路可以实现控制模块70对存储单元中的数据进行读写。
在其中的一个实施例中,请参阅图3,池化模块50包括:第一选择器501、第一存储器511、第二存储器512、第二选择器502。
第一选择器501,用于按照预设选择方法从第一组特征值中选择得到一个或多个第一特征值,以及从第二组特征值中选择得到一个或多个第二特征值,其中,第一特征值的数量少于第一组特征值中特征值的数量,第二特征值的数量少于第二组特征值中特征值的数量。
第一组特征值、第二组特征值是为激活模块30输出特征图中的输出特征值,这些通常是目标特征图中相邻的特征值或相距小于预设距离的特征值,可以理解为特征图某个目标区域内特征值。例如,取特征图中相邻的两个特征作为第一组特征值,取特征图中相邻的两个特征作为第二组特征值,其中,第一组特征值与第二组特征也相邻。
预设选择方法可以是基于平均值或者最大值的计算方法,即计算各个特征值的平均值或通过比较各个特征值获取其中的最大值。通过计算卷积运算后的特征图某个区域内的平均值或者最大值,获得第一特征值和第二特征值。
第一存储器511用于存储第一特征值。第一存储器511与第一选择器501连接从而可以接收来自第一选择器501的第一特征值,并对第一特征值进行存储。
第二存储器512用于存储第二特征值。第二存储器512与第一选择器501连接,从而可以接收来自第一选择器501的第二特征值,并对第二特征值进行存储。可选地,第一存储器511和第二存储器512均为一种先进先出的移位寄存器。
第二选择器502,与第一存储器511和第二存储器512均连接,用于按照预设选择方法从第一特征值和第二特征值中选择得到一个或多个第三特征值,其中,第三特征值的数量少于第一特征值的数量与第二特征值的数量之和。
举例地,使用三个周期完成目标特征图的池化操作。第一周期取得第一组特征值(两个特征值)中较大的数,即第一周期特征值,存入第一寄存器中;第二周期取得第二组特征值(另外两个特征值)较大的数,即第二周期特征值,存入第二寄存器中;第三周期将前两个周期的数据(第一周期特征值和第二周期特征值)进行比较输出,同时第一寄存器和第二寄存器接受新的数据进行存储,至此完成一组特征值数据的池化,并开始下次池化操作的第一周期。
可选地,池化模块50还包括:第三选择器503、第四选择器504和第三存储器513。第三选择器503的输出端与第一存储器511的输入端连接,第三选择器503的一个输入端与第一选择器501输出端连接,第三选择器503的另一个输入端与第一存储器511的输出端连接。第四选择器504的输出端与第二存储器512的输入端连接,第四选择器504的一个输入端与第二选择器502的输出端连接,第四选择器504的另一个输入端与第二存储器512的输出端连接。第三存储器513的输入端与第二选择的输出端连接。该池化模块50完成数据分组池化过程,并有利于数据处理的稳定性。
通过在连续的卷积层中插入池化层,对特征图进行池化处理可以压缩目标特征图的尺寸大小后再进入下一个卷积循环中,有利于减少过拟合现象的出现。
本实施例对池化过程进行了优化,不仅可以压缩目标特征图的尺寸大小,还能够提高池化处理的速度。
在其中的一个实施例中,处理单元101为乘法处理单元101、异或处理单元101中的一种。
对于乘法处理单元101来说,乘法处理单元101可以实现输入权重值和输入特征值的乘法运算,得到中间特征值的步骤,再通过累加单元201对中间特征值输出卷积计算结果,完成卷积计算过程。
对于异或处理单元101来说,当卷积神经网络为二值化的卷积神经网络时,可以通过异或处理单元101和累加单元201完成二值化的卷积神经网络中卷积计算,降低DSP资源的使用率,有利于提高卷积计算速度。
举例地,假设输入特征值为[-1,1,-1,-1,1,-1],输入权重值为[1,1,-1,1,1,-1],通过异或处理单元101将输入特征值和输入权重值对应位置元素进行异或处理得到异或处理结果[1,0,0,1,0,0],通过累加单元201得到处理结果中“1”的个数中为2,则卷积结果为(y-2x),其中,y为异或处理结果中所有元素的个数,x为异或处理结果中“1”的个数,即2×(-1)+(6-2)×(+1)=2。
可选地,请参阅图4,卷积神经网络处理装置还包括:二值化模块80,与激活模块30连接,用于对输出特征值进行二值化处理,得到二值化的输出特征值。具体地,二值化模块80包括第三比较器和第四比较器,第三比较器用于完成对各个输出特征值进行归一化操作得到归一化的输出特征值,第四比较器用于对归一化的输出特征值与预设值进行比较,实现归一化的输出特征值的二值化,得到二值化的输出特征值。
可选地,如图4所示,二值化模块80还与池化模块50、填充模块60、存储模块40分别连接。具体地,二值化模块80中还具有第四选择器504,与第三比较器、池化模块50、填充模块60、存储模块40分别连接,用于在卷积计算过程中响应控制信号调整二值化模块80与激活模块30、池化模块50、填充模块60、存储模块40之间的数据传输。
举例地,在进行卷积过程中,当输入权重值和输入特征值为非二值化的数据时,则将输入权重值和输入特征值通过二值化模块80进行二值化处理,得到二值化的输入权重值和二值化的输入特征值,再将二值化的输入权重值和二值化的输入特征值分别写入权重值存储单元410和特征值存储单元420。当不需要进行池化和填充处理时,激活模块30输出的特征值被送入二值化模块80中进行二值化,再传输至特征值存储单元420进行存储。当需要进行池化和填充处理时,激活模块30输出特征图经过池化模块50进行池化处理;再将得到的池化后的特征图送入二值化模块80中进行二值化,之后传输至特征值存储单元420进行存储。激活模块30输出特征值经过池化模块50、填充模块60进行池化处理及填充处理;再将得到的填充后的特征值送入二值化模块80中进行二值化,之后传输至特征值存储单元420进行存储。
实施例二
图5是本实施例一种目标探测方法的流程示意图,如图5所示,该提供一种目标探测方法,包括:步骤910、步骤920和步骤930。
步骤910、获取探测信息。
探测信息可以是图像信息,如红外图像信息或可见光图像信息。具体地,可以通过摄像头或红外摄像头对目标区域进行信息采集,得到红外图像信息或可见光图像信息。
步骤920、通过如上卷积神经网络处理装置对探测信息进行卷积处理,提取探测信息中的目标物特征。
采用卷积神经网络处理装置执行目标探测神经网络模型对探测信息卷积处理可以提取探测信息中的目标物特征,从而可以判断目标区域中是否存在目标物。其中,目标探测神经网络模型是一种基于深度学习的卷积神经网络模型。训练后的目标探测神经网络模型能够提取探测信息中的目标物特征,实现目标物的检测。
在一些高速目标探测或红外图像彩色还原的场景中,处理的数据量较大,为此,本实施例采用卷积神经网络处理装置可以提高卷积中数据的复用率,降低数据的读写次数,从而提高卷积处理速度,以满足用户的实时性要求。
步骤930、根据目标物特征,得到目标探测结果。
采用卷积神经网络处理装置中的控制器执行卷积神经网络根据目标物特征得到目标探测结果的步骤,其中,目标探测结果包括目标探测结论以及可视化的图像结果。
本实施例目标探测方法中,卷积神经网络处理装置对图像进行卷积处理,其中,卷积神经网络处理装置中多个处理单元101排布形成具有行、列和通道的三个维度的阵列结构,可以实现多输入特征图、多通道、多卷积核的通用性卷积并行计算,有利于提高了卷积神经网络的运算速度。
可选地,卷积处理包括:根据卷积核行序号,将卷积核中的输入权重值送入处理单元101中,举例地,第一步,按照读取规则,将输入权重值Wabc输入到处理单元101中,各个处理单元101完成一次计算;第二步,输入权重值Wabc输入到阵列结构第一行的第一列处理单元101中,计算完成后再各个处理单元101中的输入权重值Wabc传输至下一个处理单元101,至最后一列处理单元101。其中,将输入权重值Wabc输入到处理单元PEijk中,a=i,c=k,随着输入权重值读取次数的增加b的取值依次增加,对于每个b的取值依次遍历j的所有取值,如在3×5×3的阵列结构中将W111按照列序号依次输入处理单元PE111、PE121、PE131、PE141、PE151中。
可选地,卷积处理包括:在卷积核中的输入权重值按照行序号送入处理单元101中的同时,按照特征图行序号将特征图中的特征值送入处理单元101中。举例地,第一步,按照读取规则,将输入权重值Wabc分别输入到阵列结构的所有处理单元101中,各个处理单元101完成一次计算;第二步,将特征图中的特征值送入第一列和最后一行的处理单元101中,然后各个处理单元101特征值按照行序号减小和列序号增大的方向依次进入下一个处理单元101,处理单元101行序号与列序号之和等于特征图行序号加1。其中,将特征值Idef输入到处理单元PEijk中,d+1=i+j,f=k,随着特征值读取次数的增加e的取值依次增加,且对于每个e的取值确定对应满足i+j=d+1的所有i、j取值,特征值按照行i减小和j号增大的方向依次进入下一个处理单元101。
可选地,卷积处理包括:通过计数器中的累加次数或输入权重值的读取次数等计数次数,判断是否可以输出累加值,得到一个卷积窗口总的累加结果。例如,一列通道对应卷积核列数减去1个累加值存储器时,在累加过程中将卷积核每行的累加值存储在相应的各个存储器中,当卷积核列数减去1个累加值存储器时全部填满时说明当前卷积核只剩最后一行的累加值未获得及存储,则继续累加得到卷积最后一行的累加值,并将卷积最后一行的累加值与相应的各个存储器之前存储的各个累加值相加得到当前卷积窗口总的累加值,输出该总的累加结果,删除相应的存储器最先存储的累加值,再写入最后一行的累加结果,保留中间行的累计值,可以提高中间累加值的复用率。
可选地,卷积处理包括:按照顺序存储权重值和特征值。
可选地,卷积处理包括:根据循环移位次数对卷积计算进行控制。
可选地,卷积处理包括:根据处理单元101阵列尺寸和特征图的尺寸,对特征图进行拆分;根据拆分后的特征图进行分批卷积计算,得到输出特征图。
可选地,卷积处理包括:通过将激活模块30输出的特征值与预设值比较,根据预设池化规则对输出的特征值进行取舍,从而完成池化过程。
可选地,卷积处理包括:通过在输入特征图四周分别填充一行或者一列边缘特征值,增加特征图的尺寸,减少图像的边缘信息的丢失。
可选地,卷积处理包括:计数模块通过计数的方式可以判断神经网络的第一卷积层是否计算完毕,当卷积层计算完毕时,控制模块70根据计数模块产生一个中断请求信号,从而在第二层卷积层计算开始前、第三层卷积层计算开始前、直至最后一层卷积层开始前,控制模块70需要对加速器寄存器进行卷积信息的配置。
可选地,卷积处理包括:使用三个周期完成目标特征图的池化操作。第一周期取得第一组特征值中较大的数,即第一周期特征值,存入第一寄存器中;第二周期取得第二组特征值较大的数,即第二周期特征值,存入第二寄存器中;第三周期将前两个周期的数据进行比较输出,同时第一寄存器和第二寄存器接受新的数据进行存储,至此完成一组特征值数据的池化,并开始下次池化操作的第一周期。
可选地,卷积处理包括:当输入权重值和输入特征值为非二值化的数据时,则将输入权重值和输入特征值通过二值化模块80进行二值化处理,得到二值化的输入权重值和二值化的输入特征值,再将二值化的输入权重值和二值化的输入特征值分别写入权重值存储单元410和特征值存储单元420。当不需要进行池化和填充处理时,激活模块30输出的激活后的特征值被送入二值化模块80中进行二值化,再传输至特征值存储单元420进行存储。当需要进行池化和填充处理时,激活模块30输出特征图经过池化模块50进行池化处理;再将得到的池化后的特征图送入二值化模块80中进行二值化,之后传输至特征值存储单元420进行存储。激活模块30输出特征值经过池化模块50、填充模块60进行池化处理及填充处理;再将得到的填充后的特征值送入二值化模块80中进行二值化,之后传输至特征值存储单元420进行存储。
可选地,卷积处理包括:假设特征值为[-1,1,-1,-1,1,-1],输入权重值为[1,1,-1,1,1,-1],通过异或处理单元101将特征值和输入权重值对应位置元素进行异或处理得到异或处理结果[1,0,0,1,0,0],即中间特征值;再通过累加单元201得到处理结果中“1”的个数中为2,则卷积结果为(y-2x),其中,y为异或处理结果中所有元素的个数,x为异或处理结果中“1”的个数,即2×(-1)+(6-2)×(+1)=2。
需要说明的是,本实施例的目标探测方法中,卷积神经网络处理装置对探测信息进行卷积处理的过程,可以参考上述卷积神经网络处理装置的运行原理,因此不再赘述。
实施例三
图6是本发明一种电子设备的结构示意图。该电子设备包括存储装置和处理器,存储装置存储有可在处理器上运行的计算机程序,当处理器执行程序时,实现如上目标探测方法的步骤,其中,处理器包括如上卷积神经网络处理装置。
电子设备包括通过系统总线700相互通信连接存储装置400、处理器100。需要指出的是,图中仅示出了具有组件100、组件400、组件700的电子设备,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的电子设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的电子设备,其硬件包括但不限于微处理器、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable GateArray,FPGA)、数字处理器 (Digital Signal Processor,DSP)、嵌入式设备等。
电子设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
存储装置400至少包括一种类型的可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储装置400可以是设备的内部存储装置,例如该设备的硬盘或内存。在另一些实施例中,存储装置400也可以是设备的外部存储设备,例如该设备上配备的插接式硬盘,智能存储卡(Smart Media Card, SMC),安全数字(Secure Digital, SD)卡,闪存卡(Flash Card)等。当然,存储装置400还可以既包括设备的内部存储单元也包括其外部存储设备。本实施例中,存储装置400通常用于存储安装于设备的操作系统和各类应用软件,例如目标探测方法的计算机可读指令等。此外,存储装置400还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器100在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器100通常用于控制设备的总体操作。本实施例中,处理器100用于运行存储器400中存储的计算机可读指令或者处理数据,例如运行目标探测方法的计算机可读指令。
实施例四
本实施例提供一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现如上的目标探测方法的步骤。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例的方法。
显然,以上所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例,附图中给出了本申请的较佳实施例,但并不限制本申请的专利范围。本申请可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本申请的公开内容的理解更加透彻全面。尽管参照前述实施例对本申请进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本申请说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本申请专利保护范围之内。

Claims (9)

1.一种卷积神经网络处理装置,其特征在于,包括:
处理模块,用于根据输入特征图中的输入特征值与卷积核中的输入权重值进行融合得到中间特征值,其中,所述处理模块包括呈阵列结构排布的多个处理单元,所述阵列结构为具有行、列、通道三个维度的阵列结构;
累加模块,与所述处理模块连接,用于根据所述中间特征值进行累加得到累加结果;
激活模块,与所述累加模块连接,用于根据所述累加结果进行激活处理得到输出特征值;
存储模块,与所述激活模块、所述处理模块分别连接,用于存储所述输入特征值、所述输入权重值以及所述输出特征值;
其中,所述存储模块与各个所述处理单元分别连接;和/或,所述存储模块与所述阵列结构最后一行和第一列的各个处理单元分别连接,且通道序号相同、行序号相同、列序号相邻的两个所述处理单元之间相互连接,以及通道序号相同、行序号相邻、列序号相邻的两个所述处理单元之间按照行序号减小和列序号增大的方向依次连接;
所述阵列结构的行数与所述卷积核的行数之比R1大于等于1,所述阵列结构的行数列数之和与所述输入特征图中行数之比R2大于1,所述阵列结构的通道数与所述卷积核的通道数之比R3大于等于1,则 ,和/或,和/或
或,所述阵列结构的行数与所述卷积核的行数之比R1小于1,所述阵列结构的行数列数之和与所述输入特征图中行数之比R2小于1,所述阵列结构的通道数与所述卷积核的通道数之比R3小于1,则,和/或,和/或
2.根据权利要求1所述的卷积神经网络处理装置,其特征在于,所述累加模块包括多个累加单元,所述累加单元排布形成一行,且每一个所述累加单元对应一列所述处理单元,所述累加单元与对应列的各个所述处理单元连接;
所述累加单元中包括:累加值存储器,用于存储对应所述卷积核中的一行的累加值;其中,每个所述累加单元中所述累加值存储器的数量大于或等于所述卷积核列数减去1的值与所述阵列结构的通道数量的积。
3.根据权利要求1所述的卷积神经网络处理装置,其特征在于,所述卷积核的行数为所述阵列结构行数的整数倍,所述输入特征图的行数为所述阵列结构的列数与所述卷积核行数之和再减1得到的值的整数倍,所述卷积核通道数为所述阵列结构的通道数的整数倍。
4.根据权利要求1所述的卷积神经网络处理装置,其特征在于,还包括:
池化模块,与所述激活模块连接,用于对所述输出特征值进行池化处理;
填充模块,与所述池化模块连接,以及与所述存储模块连接,用于获取填充特征值并根据所述填充特征值进行填充处理;
控制模块,与所述存储模块连接,用于根据中断优先级控制所述存储模块的读写;
二值化模块,与所述激活模块连接,用于对所述输出特征值进行二值化处理。
5.根据权利要求4所述的卷积神经网络处理装置,其特征在于,所述存储模块包括:
权重值存储单元,用于存储所述输入权重值;
特征值存储单元,用于存储所述输入特征值和所述输出特征值;
存储控制器,用于进行存储控制接口与传输总线接口之间的切换;
位宽转换器,用于调整传输数据的位宽;
其中,所述权重值存储单元与所述处理模块连接,所述特征值存储单元的存储容量大于所述权重值存储单元的存储容量;
所述特征值存储单元由多个特征值存储区块组成;所述多个特征值存储区块包括第一特征值存储区块和第二特征值存储区块;
所述第一特征值存储区块具有第一端口和第二端口,所述第一端口的位宽大于所述第二端口的位宽,所述第一端口与所述处理模块连接,所述第二端口依次与所述存储控制器、所述位宽转换器、所述控制模块连接;
所述第二特征值存储区块具有第三端口和第四端口,所述第三端口的位宽大于所述第四端口的位宽,所述第三端口与所述处理模块连接,所述第四端口依次与所述存储控制器、所述位宽转换器、所述控制模块连接。
6.根据权利要求4所述的卷积神经网络处理装置,其特征在于,所述池化模块,包括:
第一选择器,用于按照预设选择方法从第一组特征值中选择得到一个或多个第一特征值,以及从第二组特征值中选择得到一个或多个第二特征值,其中,第一特征值的数量少于所述第一组特征值中特征值的数量,第二特征值的数量少于所述第二组特征值中特征值的数量;
第一存储器,与所述第一选择器连接,用于存储所述第一特征值;
第二存储器,与所述第一选择器连接,用于存储所述第二特征值;
第二选择器,与所述第一存储器和所述第二存储器均连接,用于按照预设选择方法从所述第一特征值和所述第二特征值中选择得到一个或多个第三特征值,其中,所述第三特征值的数量少于所述第一特征值的数量与所述第二特征值的数量之和。
7.根据权利要求1所述的卷积神经网络处理装置,其特征在于,所述处理单元为乘法处理单元、异或处理单元中的一种。
8.一种目标探测方法,其特征在于,包括:
获取探测信息;
通过如权利要求1至7任一项所述的卷积神经网络处理装置对所述探测信息进行卷积处理,提取所述探测信息中的目标物特征;
根据所述目标物特征,得到目标探测结果。
9.一种电子设备,包括存储装置和处理器,所述存储装置存储有可在处理器上运行的计算机程序,其特征在于,当所述处理器执行所述程序时,实现如权利要求8所述的目标探测方法的步骤,其中,所述处理器包括如权利要求1至7任一项所述的卷积神经网络处理装置。
CN202211505839.1A 2022-11-29 2022-11-29 卷积神经网络处理装置、高速目标探测方法以及设备 Active CN115600652B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211505839.1A CN115600652B (zh) 2022-11-29 2022-11-29 卷积神经网络处理装置、高速目标探测方法以及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211505839.1A CN115600652B (zh) 2022-11-29 2022-11-29 卷积神经网络处理装置、高速目标探测方法以及设备

Publications (2)

Publication Number Publication Date
CN115600652A CN115600652A (zh) 2023-01-13
CN115600652B true CN115600652B (zh) 2023-04-07

Family

ID=84853290

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211505839.1A Active CN115600652B (zh) 2022-11-29 2022-11-29 卷积神经网络处理装置、高速目标探测方法以及设备

Country Status (1)

Country Link
CN (1) CN115600652B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN214586992U (zh) * 2021-03-26 2021-11-02 绍兴埃瓦科技有限公司 神经网络加速电路、图像处理器及三维成像电子设备
CN115034351A (zh) * 2021-03-04 2022-09-09 杭州海康威视数字技术股份有限公司 数据处理方法、卷积神经网络训练方法、装置和fpga

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9449257B2 (en) * 2012-12-04 2016-09-20 Institute Of Semiconductors, Chinese Academy Of Sciences Dynamically reconstructable multistage parallel single instruction multiple data array processing system
FR3085517B1 (fr) * 2018-08-31 2020-11-13 Commissariat Energie Atomique Architecture de calculateur d'une couche de convolution dans un reseau de neurones convolutionnel
CN110097174B (zh) * 2019-04-22 2021-04-20 西安交通大学 基于fpga和行输出优先的卷积神经网络实现方法、系统及装置
CN110543934B (zh) * 2019-08-14 2022-02-01 北京航空航天大学 一种用于卷积神经网络的脉动阵列计算结构及方法
US20200134417A1 (en) * 2019-12-24 2020-04-30 Intel Corporation Configurable processor element arrays for implementing convolutional neural networks
CN113919477A (zh) * 2020-07-08 2022-01-11 嘉楠明芯(北京)科技有限公司 一种卷积神经网络的加速方法及装置
KR20220010362A (ko) * 2020-07-17 2022-01-25 삼성전자주식회사 뉴럴 네트워크 장치 및 그의 동작 방법
WO2022027172A1 (zh) * 2020-08-03 2022-02-10 深圳市大疆创新科技有限公司 数据处理装置、方法和系统以及神经网络加速器
KR20220095532A (ko) * 2020-12-30 2022-07-07 주식회사 쿠오핀 네트워크 환경에서의 디바이스와 서버 간의 인공지능 처리 기능 분할방법
CN112734827A (zh) * 2021-01-07 2021-04-30 京东鲲鹏(江苏)科技有限公司 一种目标检测方法、装置、电子设备和存储介质
CN113255898B (zh) * 2021-06-16 2022-08-02 合肥工业大学 基于Winograd算法的卷积神经网络硬件加速器及计算方法
CN113361695B (zh) * 2021-06-30 2023-03-24 南方电网数字电网研究院有限公司 卷积神经网络加速器
CN113298241B (zh) * 2021-07-27 2021-10-22 北京大学深圳研究生院 一种深度可分离卷积神经网络加速方法和加速器
CN113807509B (zh) * 2021-09-14 2024-03-22 绍兴埃瓦科技有限公司 神经网络加速装置、方法和通信设备
CN113762483B (zh) * 2021-09-16 2024-02-09 华中科技大学 一种用于心电信号分割的1D U-net神经网络处理器

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115034351A (zh) * 2021-03-04 2022-09-09 杭州海康威视数字技术股份有限公司 数据处理方法、卷积神经网络训练方法、装置和fpga
CN214586992U (zh) * 2021-03-26 2021-11-02 绍兴埃瓦科技有限公司 神经网络加速电路、图像处理器及三维成像电子设备

Also Published As

Publication number Publication date
CN115600652A (zh) 2023-01-13

Similar Documents

Publication Publication Date Title
CN112214726B (zh) 运算加速器
CN109740534B (zh) 图像处理方法、装置及处理设备
CN109543832B (zh) 一种计算装置及板卡
CN111860398B (zh) 遥感图像目标检测方法、系统及终端设备
CN111950723A (zh) 神经网络模型训练方法、图像处理方法、装置及终端设备
CN112633490B (zh) 执行神经网络模型的数据处理装置、方法及相关产品
CN111914908B (zh) 一种图像识别模型训练方法、图像识别方法及相关设备
CN111353591A (zh) 一种计算装置及相关产品
US11537860B2 (en) Neural net work processing
CN112214402A (zh) 一种代码验证算法的选择方法、装置及存储介质
CN109447943B (zh) 一种目标检测方法、系统及终端设备
CN109389215B (zh) 一种深度学习网络的网络结构确定方法及装置
CN115600652B (zh) 卷积神经网络处理装置、高速目标探测方法以及设备
CN109359542A (zh) 基于神经网络的车辆损伤级别的确定方法及终端设备
CN111178513B (zh) 神经网络的卷积实现方法、卷积实现装置及终端设备
CN110210572B (zh) 图像分类方法、装置、存储介质及设备
CN114091648A (zh) 基于卷积神经网络的图像分类方法、装置及卷积神经网络
CN114022366B (zh) 基于数据流架构的图像尺寸调整装置、调整方法及设备
CN110781223A (zh) 数据处理方法及装置、处理器、电子设备及存储介质
CN110969640A (zh) 视频图像的分割方法、终端设备以及计算机可读存储介质
CN109993286A (zh) 稀疏神经网络的计算方法及相关产品
CN110750598B (zh) 一种物品标签预测方法、装置、终端设备及存储介质
CN109614854B (zh) 视频数据处理方法及装置、计算机装置及可读存储介质
US20200134434A1 (en) Arithmetic processing device, learning program, and learning method
CN112801045A (zh) 一种文本区域检测方法、电子设备及计算机存储介质

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