首页 / 神经网络加速电路、图像处理器及三维成像电子设备

神经网络加速电路、图像处理器及三维成像电子设备有效专利 实用

技术领域

[0001] 本实用新型涉及图像技术领域,具体涉及一种神经网络加速电路、图像处理器及电子设备。

相关背景技术

[0002] 在图像处理中,常常采用卷积神经网络(ConvolutionalNeuralNetwork,即CNN网络)提取图像特征。
[0003] 但在现有3D视觉方案中,仍采用传统卷积处理架构提取图像特征,比如采用多个卷积层依次串联来提取出图像特征,因而图像特征提取的速度、效率等方面,仍不理想,很难匹配3D视觉应用,因而3D视觉应用往往需要高性能的图像处理设备来提取图像特征。
[0004] 另外,人们日常生活中已使用到大量智能电子设备,如智能手机、平板电脑、智能门锁、人脸识别及支付装置等,这些设备已开始作为一些图像应用中的设备,比如人脸识别、人脸支付、照片搜索等,但鉴于3D视觉应用对设备性能有较高要求,目前这些设备仍未能用于3D视觉应用中。实用新型内容
[0005] 有鉴于此,本实用新型提供一种神经网络加速电路、图像处理器及电子设备,可对图像处理中的卷积运算进行加速处理,提高图像处理中特征提取的速度和效率,降低图像处理对设备的性能要求。
[0006] 本实用新型提供以下技术方案:
[0007] 本公开实施例提供一种神经网络加速电路,可包括n×m个卷积运算电路,m、n为正整数;其中,每m个卷积运算电路构成一组矩阵电路;每组所述矩阵电路根据n个卷积核中对应的一个卷积核,对m个输入的图像数据进行并行卷积运算,以输出所述图像数据对应的特征数据。
[0008] 优选地,所述神经网络加速电路还包括:图像数据缓存单元,用于缓存所述m个输入的图像数据;其中,所述图像数据缓存单元分别与每组所述矩阵电路中的m个卷积运算电路耦合,以向n组所述矩阵电路并行提供所述m个输入的图像数据。
[0009] 优选地,所述神经网络加速电路还包括:权重缓存单元,用于缓存所述n个卷积核;其中,所述权重缓存单元分别与每组所述矩阵电路中的m个卷积运算电路耦合,以向n组所述矩阵电路并行提供对应卷积核。
[0010] 优选地,所述卷积运算电路包括由若干卷积单元构成的卷积阵列,所述卷积阵列用于根据所述对应的一个卷积核对所述图像数据进行卷积运算;其中,在所述卷积阵列中,当前卷积单元根据对应的卷积核和对应的图像数据进行卷积运算,并向同行的下一个卷积单元传输所述同行的下一个卷积单元对应的所述卷积核对所述图像数据,以及向同列的下一个卷积单元传输所述同列的下一个卷积单元对应的所述卷积核对所述图像数据。
[0011] 优选地,所述卷积单元包括乘法器和累加器;其中,所述乘法器用于将所述图像数据与所述卷积核进行点积运算;所述累加器用于将同列所述卷积单元的点积运算的结果进行累加后输出。
[0012] 优选地,所述卷积单元还包括:用于缓存的累加缓冲器,和/或根据控制信号进行部分和输出的输出单元。
[0013] 优选地,所述神经网络加速电路还包括:累加器,分别与每个所述矩阵电路耦合,并按预设的求和策略对n组所述矩阵电路输出的特征数据对应求和,以将求和结果作为所述图像数据对应的特征数据。
[0014] 优选地,所述神经网络加速电路还包括:中央处理电路、主存储器、总线、数据控制器、激活/池化单元和输出缓冲单元之中至少一个电路单元。
[0015] 本说明书实施例还提供一种图像处理器,可包括:前述任意一项所述的神经网络加速电路和至少一个处理单元;其中,所述神经网络加速电路对m个输入的图像数据进行并行卷积运算,并输出所述图像数据对应的特征数据;所述至少一个处理单元向所述神经网络加速电路提供待识别目标对应的待识别图像数据和卷积核,以将所述待识别图像作为所述m个输入的图像数据提供给所述神经网络加速电路,以及根据所述神经网络加速电路输出的所述特征数据进行数据处理,以根据处理结果对待识别目标进行图像处理。
[0016] 本说明书实施例还提供一种电子设备,可包括:前述任意一项所述的图像处理器和至少一个处理系统;其中,所述图像处理器用于对待识别目标的图像数据进行图像处理;所述至少一个处理系统用于对根据所述图像处理器的图像处理结果进行图像应用处理。
[0017] 与现有技术相比,本说明书实施例公开的上述至少一个技术方案能够达到的有益效果至少包括:
[0018] 通过在神经网络加速电路中将多个卷积运算电路组成卷积处理矩阵,其中在同一个卷积处理矩阵内,采用一个卷积核对多个输入通道的图像数据进行卷积运算,而在卷积处理矩阵之间,采用多个卷积核对该多个输入通道的图像数据进行卷积运算,这样可在每个处理周期完成对多个通道输入的图像数据并行地进行卷积运算,从而通过不同卷积运算来提取每个通道输入的图像数据对应的图像特征,不仅可通过并行地加速卷积的运算处理,提高卷积运算的并行处理速度和效率,提高卷积运算所提取的图像特征的质量,提高图像处理中提取图像特征的速度和效率,还可通过将图像特征提取中的卷积运算拆分为多个并行卷积运算电路进行并行卷积运算,降低图像处理中对图像处理设备的性能要求,有利于图像应用推广应用到人们日常使用的现有移动智能设备中。

具体实施方式

[0026] 下面结合附图对本申请实施例进行详细描述。
[0027] 以下通过特定的具体实例说明本申请的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本申请的其他优点与功效。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。本申请还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本申请的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0028] 要说明的是,下文描述在所附权利要求书的范围内的实施例的各种方面。应显而易见,本文中所描述的方面可体现于广泛多种形式中,且本文中所描述的任何特定结构及/或功能仅为说明性的。基于本申请,所属领域的技术人员应了解,本文中所描述的一个方面可与任何其它方面独立地实施,且可以各种方式组合这些方面中的两者或两者以上。举例来说,可使用本文中所阐述的任何数目和方面来实施设备及/或实践方法。另外,可使用除了本文中所阐述的方面中的一或多者之外的其它结构及/或功能性实施此设备及/或实践此方法。
[0029] 还需要说明的是,以下实施例中所提供的图示仅以示意方式说明本申请的基本构想,图式中仅显示与本申请中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
[0030] 另外,在以下描述中,提供具体细节是为了便于透彻理解实例。然而,所属领域的技术人员将理解,可在没有这些特定细节的情况下实践所述方面。
[0031] 现有3D视觉方案中,仍采用传统卷积处理架构提取图像特征,导致图像特征提取的速度、效率等方面,仍不理想,因而3D视觉应用往往需要高性能的图像处理设备来提取图像特征。
[0032] 而随着电子技术及人工智能发展,智能电子设备的处理能力和智能水平也得到了很大提升,如智能手机、平板电脑、智能门锁、人脸识别及支付装置等,这些设备已成为提高人们日常生活体验的设备,比如开始作为一些图像应用的前端设备,如作为人脸识别、人脸支付、照片搜索等应用中的图像采集、图像处理简易等,但因3D视觉在图像处理时有其特殊性,比如成像条件要求高,图像数据量大,图像处理架构复杂,对图像处理设备的性能要求高等等,目前这些智能电子设备仍无法作为3D视觉应用中的设备。
[0033] 因此,发明人通过对图像处理中的关键环节,比如图像特征提取环节,进行了改进,提出一种新的图像特征提取的卷积处理方案,即通过对图像处理中的大量卷积运算进行加速处理,既可以提高图像处理中特征提取的速度和效率,又能降低图像特征提取对设备的性能要求。
[0034] 基于此,本公开实施例提供一种用于图像处理的神经网络加速电路、图像处理器及电子设备,可针对图像处理中的卷积运算进行并行加速处理。
[0035] 参考图1,本说明书实施例提供一种用于图像处理中提取图像特征的神经网络加速电路。
[0036] 如图1所示,神经网络加速电路可包括若干卷积运算电路,比如n×m个卷积运算电路,其中m、n为正整数。
[0037] 实施中,可将每m个卷积运算电路(如图中所标识的PU)构成一组矩阵电路,比如可将n×m个卷积运算电路按行划分,进而将一行中m个卷积运算单元作为一组,即构成一个并行的卷积运算电路矩阵,每组矩阵电路均包括有m个输入通道用于输入图像数据,比如图中的第一矩阵电路中可包括卷积运算电路PU1~PUm,可同时通过m个输入通道获取图像数据。
[0038] 因此,可将n×m卷积运算电路划分为n组矩阵电路,比如第一矩阵电路至第n矩阵电路。而且,每组矩阵电路中的m个卷积运算将采用同一个对应的卷积核,即每个矩阵电路各自根据n个卷积核中对应的一个卷积核,比如第一矩阵电路采用第一卷积核,第二矩阵电路采用第二卷积核,至第n矩阵电路采用第n卷积核,这样在每组矩阵电路中利用同一个卷积核,可同时对该组矩阵电路中的m个通道输入的图像数据进行并行卷积运算,进而可输出所述图像数据对应的特征数据。
[0039] 通过矩阵式并行卷积运算电路进行卷积运算并行加速处理,不仅可在一个特征提取计算周期内,对卷积神经网络中的卷积进行并行运算,使得每个输入通道的图像数据可基于不同卷积核提取到相应图像特征,即每个输入的图像数据均可对应有n组图像特征,从而对图像特征提取操作实现并行加速处理,可提高图像处理中提取图像特征的速度、效率和质量,而且每个卷积运算单元只需根据卷积核进行卷积运算,这样卷积运算电路可无需高性能设备就可实施执行,可降低图像特征提取对设备性能的要求。
[0040] 需要说明的是,卷积核可为针对图像处理的需要而预设的卷积核,比如可采用1×1卷积核、3×3卷积核等;还有,n个卷积核中可为全部或部分相同的卷积核,也可为全部或部分均不相同的卷积核。因此,不对卷积核作限定。
[0041] 在一些实施方式中,本公开实施例提供的一种神经网络加速电路中,卷积运算电路可采用由若干卷积单元构成的卷积阵列,比如采用m×k个卷积单元构成的卷积阵列作为卷积运算电路,以通过卷积阵列进行卷积运算。
[0042] 参考图2,本说明书实施例提供的神经网络加速电路中,第i卷积运算电路PUi中,可包括由若干卷积单元构成的卷积阵列,比如PE00至Pmk共m×k个卷积单元构成卷积阵列,该卷积阵列用于根据所述对应的一个卷积核对所述图像数据进行卷积运算。
[0043] 实施中,在该卷积阵列中,当前卷积单元根据对应的卷积核对对应的图像数据进行卷积运算,并向同行的下一个卷积单元传输所述同行的下一个卷积单元对应的所述卷积核对所述图像数据,以及向同列的下一个卷积单元传输所述同列的下一个卷积单元对应的所述卷积核对所述图像数据。
[0044] 例如,按列处理中,第一列各卷积单元PE00~Pm0,可在第一个时钟周期时,获得需要进行卷积处理所对应得第一列图像数据和卷积核,这时各个卷积单元可在第一个时钟周期内完成一次卷积运算;而在第二个时钟时,第一列各卷积单元可重新获得新的需要进行卷积处理的图像数据,而且第一列各卷积单元还将下一列对应卷积单元所需的图像数据和卷积核进行传输,从而在第二个时钟周期内,第一列和第二列的各个卷积单元均进行卷积运算。
[0045] 例如,按行处理中,第一行各卷积单元PE00~P0k,可在第一个时钟周期时,获得需要进行卷积处理所对应得第一行图像数据和卷积核,这时各个卷积单元可在第一个时钟周期内完成一次卷积运算;而在第二个时钟时,第一行各卷积单元可重新获得新的需要进行卷积处理的图像数据,而且第一行各卷积单元还将下一行对应卷积单元所需的图像数据和卷积核进行传输,从而在第二个时钟周期内,第一行和第二行的各个卷积单元均进行卷积运算。
[0046] 通过将卷积运算单元拆分为若干卷积单元,即利用多个卷积单元构成行列结构的卷积阵列,不仅可简化卷积运算电路的结构,便于卷积运算,提高图像处理中卷积运算的速度和效率,还可采用低算力的处理设备来进行大量卷积运算,降低了卷积运算对图像处理设备的性能要求。
[0047] 具体实施中,可将各个卷积单元的卷积结果按预设策略进行处理,比如按列处理中,可将每列各个卷积结果做累加后输出,比如按行处理中,可将每行各个卷积结果做累加后输出,这里不再展开说明。
[0048] 需要说明的是,各卷积单元在卷积中所需的图像数据和卷积核,可为根据各个卷积运算电路中的卷积阵列,在将图像数据和卷积核按卷积阵列进行划分后的数据,比如图像数据划分为数据矩阵,卷积核划分为参数矩阵,进而可根据卷积需要,让各个卷积单元在时钟作用下获得对应的数据和参数进行卷积,这里不对图像数据和卷积核的划分进行限定。
[0049] 在一些实施方式中,卷积单元可包括乘法器和累加器。
[0050] 参考图3,本说明书实施例提供用于所述神经网络加速电路中的一种卷积单元,该卷积单元中可包括乘法器和累加器,其中乘法器用于将所述图像数据与所述卷积核(即图中标识的权重数据)进行点积运算;所述累加器用于将同列所述卷积单元的点积运算的结果进行累加后输出。
[0051] 通过利用乘法器和累加器作为卷积单元,不仅可简化卷积单元的结构,还便于在各种设备中实现卷积运算,可降低图像处理中的卷积运算对设备性能的要求。
[0052] 在一些实施方式中,可将卷积单元的卷积结果缓存后输出,这时卷积单元可包括用于缓存卷积结果的累加缓冲器(如图中标识的累加buffer)。
[0053] 在一些实施方式中,可将卷积单元的卷积结果进行受控后输出,这时卷积单元可包括根据控制信号(如图中标识的select信号)进行部分和输出的输出单元。
[0054] 在一些实施方式中,本说明书实施例提供的一种神经网络加速电路中,还可包括若干功能电路,从而通过功能电路,快速、高效地进行图像数据的处理,进一步提高图像特征提取的速度、效率和质量,以及可降低神经网络加速电路在实施中对应设备的性能要求,有利于将神经网络加速电路推广应用到各种智能设备中。
[0055] 参考图4,本说明书实施例提供的一种神经网络加速电路的结构示意图。
[0056] 在一些实施方式中,本说明书实施例提供的神经网络加速电路还可包括:图像数据缓存单元,用于缓存所述m个输入的图像数据。
[0057] 实施中,图像数据缓存单元可包括m个缓存组,这样每个缓存组分别与每组矩阵电路中对应的卷积运算电路进行耦合,比如第一缓存组可与n组矩阵电路中的第一卷积运算电路耦合连接,第二缓存组可与n组矩阵电路中的第二卷积运算电路耦合连接,至第m缓存组与n组矩阵电路中的第m卷积运算电路耦合连接。
[0058] 采用图像缓存单元后,通过缓存组与卷积运算电路的耦合连接,可高效地向n组所述矩阵电路中的卷积运算电路同时提供并行处理所需的图像数据,可提高图像数据处理效率。
[0059] 在一些实施方式中,本说明书实施例提供的神经网络加速电路还可包括:权重缓存单元,用于缓存所述n个卷积核,即用于将第一卷积核至第n卷积核进行缓存,通过缓存后再向卷积运算电路并行地提供卷积核。
[0060] 实施中,权重缓存单元分别与每组矩阵电路进行数据的耦合连接,通过耦合连接向每组矩阵电路分别提供对应的卷积核,比如缓存有第一卷积核的权重缓存单元与第一矩阵电路耦合,即第一卷积核可并行地提供到第一矩阵电路中的m个卷积运算电路PU1~PUm,而缓存有第n卷积核的权重缓存单元与第n矩阵电路耦合,即第n卷积核可并行地提供到第n矩阵电路中的m个卷积运算电路PU1~PUm。
[0061] 通过权重缓存单元,可快速、高效地向n组矩阵电路并行提供对应卷积核,方便矩阵电路中的卷积运算电路根据卷积核进行卷积运算。
[0062] 在一些实施方式中,本说明书实施例提供的神经网络加速电路还可包括:累加器,分别与每个所述矩阵电路耦合,并按预设的求和策略对所述图像数据对应的、n组所述矩阵电路输出的特征数据进行求和,以将所述图像数据对应的特征数据的求和结果作为该图像数据对应的图像特征数据。
[0063] 实施中,在矩阵电路中,每个输入通道的图像数据对应有卷积后的n组特征数据,比如第一输入通道的图像数据,经第一矩阵电路中的第一卷积运算单元PU1卷积运算后获得一个特征数据,经第二矩阵电路中的第一卷积运算单元PU1卷积运算后获得一个特征数据,至经第n矩阵电路中的第一卷积运算单元PU1卷积运算后获得一个特征数据,因而在n×m个卷积运算电路构成的神经网络加速电路中,每个输入通道的图像数据可对应有n组特征数据,而该n组特征数据为基于相同或不相同的卷积核经过卷积运算后所提取的特征数据。
[0064] 采用累加器将每个图像数据对应的n组特征数据求和后输出,不仅可简化特征数据来表达图像数据的表达方式,还可降低后期对特征数据的处理,提高特征数据的处理效率。
[0065] 需要说明的是,预设的求和策略可根据图像处理的需求进行设定,比如加权求和、平均求和等,这里不作限定。
[0066] 在一些实施方式中,本说明书实施例提供的神经网络加速电路还可包括:主存储器,用于存储各类数据和/或程序指令,方便各个功能电路快速地从中获取所需的数据、程序指令,从而提高图像数据处理的速度、效率和质量。
[0067] 需要说明的是,前述的图像数据缓存单元、权重缓存单元等,既可以作为主存储器的一部分,也可以为非主存储器的一部分,这里不作限定。
[0068] 需要说明的是,主存储器所存储得数据、程序指令,可根据实际的图像处理需要而设定的数据、指令,比如针对图像为RGB图像时进行设置的RGB图像相关参数及指令,如图像数据中对应的RGB通道、颜色空间等参数及指令,这里不作限定。
[0069] 在一些实施方式中,本说明书实施例提供的神经网络加速电路还可包括:数据控制器,用于对各个矩阵电路中各卷积运算电路的数据进行协同控制,比如控制图像数据通过各个输入通道输入到卷积运算电路中,比如控制卷积核输入到每组矩阵电路中,从而通过协同控制,可简化神经网络加速电路对内部各功能单元之间的控制,提高控制的速度和效率。
[0070] 需要说明的是,数据控制器可为用于控制的各类控制器,比如CPU(中央处理器)、MCU(微控制器)、FPGA(可编程逻辑阵列)等,这里不作限定。
[0071] 在一些实施方式中,本说明书实施例提供的神经网络加速电路还可包括:激活/池化单元,其中池化单元可用于对卷积运算电路输出的特征数据进行池化,降低特征维数,避免过拟合,加快运算速度;激活单元可用于构建稀疏矩阵,以去除特征数据中的冗余,最大可能保留数据的特征。通过激活/池化单元,进一步对特征数据进行处理,提高图像数据的处理速度、效率和质量。
[0072] 需要说明的是,激活单元可采用传统激活函数,比如Sigmoid函数、tanh函数等;池化单元可采用传统池化层,比如平均池化、最大池化等。这里不作具体限定。
[0073] 在一些实施方式中,本说明书实施例提供的神经网络加速电路还可包括:输出缓冲单元,可用于对输出的特征数据进行缓存后输出,提高神经网络加速电路与外部电路之间的数据传输效率。
[0074] 需要说明的是,输出缓冲单元可为用于进行数据交换的缓存,比如高速数据存储的存储器,这里不作限定。
[0075] 在一些实施方式中,本说明书实施例提供的神经网络加速电路还可包括:总线,用于神经网络加速电路内部各个功能电路之间和/或神经网络加速电路与外部电路之间的连接及传输数据流、指令流等。
[0076] 通过总线进行互连,可简化神经网络加速电路内部各功能单元之间的连接关系,提高连接及传输的速度、效率和质量。
[0077] 需要说明的是,总线可根据需要而采用相应总线类型,比如片上系统中常见的AMBA总线规范(Advanced Microcontroller Bus Architecture,先进微控制器总线体系结构)中规定的AHB(Advanced High‑performance Bus,高级高性能总线)、ASB(Advanced System Bus,高级系统总线)、APB(Advanced Peripheral Bus,高级外围总线)等;总线方式也可根据应用需要而选择相应方式,比如采用数据总线、地址总线和控制总线等分别用来传输数据、数据地址和控制信号;总线位宽也可根据实际应用需要进行设定,比如8bit、16bit、32bit等。这里不对总线作限定。
[0078] 在一些实施方式中,本说明书实施例提供的神经网络加速电路还可包括:中央处理电路,可用于控制并协调各个功能电路协同工作,比如前述的矩阵电路以及各个卷积运算电路,比如前述的图像数据缓存单元,比如前述的权重缓存单元等。
[0079] 通过中央处理器进行统一的协同控制,可提高神经网络加速电路处理图像数据的速度、效率和质量,提高神经网络加速电路应用的灵活性。
[0080] 基于相同发明构思,本说明书实施例提供一种图像处理器。
[0081] 参考图5,本说明书实施例提供的一种图像处理器,可包括前述任意一个实施例所述的神经网络加速电路,以及至少一个处理单元。
[0082] 其中,神经网络加速电路可高效地对m个输入的图像数据进行并行卷积运算,并输出所述图像数据对应的特征数据。
[0083] 所述至少一个处理单元可用于向所述神经网络加速电路提供待识别目标对应的待识别图像数据和卷积核,以将所述待识别图像作为所述m个输入的图像数据提供给所述神经网络加速电路,以及根据所述神经网络加速电路输出的所述特征数据进行数据处理,以根据处理结果对待识别目标进行图像处理。
[0084] 通过在图像处理器中集成有所述神经网络加速电路,可以在图像处理中快速、高效地提取出图像特征,并降低了图像特征的提取对处理设备的性能要求,便于在各种智能设备中应用图像识别应用。
[0085] 基于相同发明构思,本说明书实施例提供一种电子设备。
[0086] 参考图6,本说明书实施例提供的一种电子设备,可包括前述任意一个实施例所述的图像处理器和至少一个处理系统。
[0087] 其中,所述图像处理器用于对待识别目标的图像数据进行图像处理,所述至少一个处理系统用于对根据所述图像处理器的图像处理结果进行图像应用处理。
[0088] 采用所述图像处理器,可便于在各种智能电子设备中推广应用各类图像应用,比如人脸识别、图像识别、三维图像(如单目图像、双目图像、多目图像等)等应用。
[0089] 需要说明的是,这里的图像应用可为二维图像的处理应用,也可为三维图像的处理应用,这里不作限定。
[0090] 以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

当前第1页 第1页 第2页 第3页
相关技术
加速电路相关技术
图像处理器相关技术
王赟发明人的其他相关专利技术