CN112819022B - 基于神经网络的图像识别装置和图像识别方法 - Google Patents
基于神经网络的图像识别装置和图像识别方法 Download PDFInfo
- Publication number
- CN112819022B CN112819022B CN201911132212.4A CN201911132212A CN112819022B CN 112819022 B CN112819022 B CN 112819022B CN 201911132212 A CN201911132212 A CN 201911132212A CN 112819022 B CN112819022 B CN 112819022B
- Authority
- CN
- China
- Prior art keywords
- image
- control signal
- feature map
- cache
- preprocessing
- 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
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 44
- 238000000034 method Methods 0.000 title claims description 100
- 239000000872 buffer Substances 0.000 claims abstract description 147
- 238000007781 pre-processing Methods 0.000 claims abstract description 127
- 238000012545 processing Methods 0.000 claims abstract description 111
- 230000008569 process Effects 0.000 claims description 49
- 238000001994 activation Methods 0.000 claims description 46
- 238000011176 pooling Methods 0.000 claims description 33
- 230000004913 activation Effects 0.000 claims description 32
- 230000006870 function Effects 0.000 claims description 25
- 230000000903 blocking effect Effects 0.000 claims description 10
- 230000004044 response Effects 0.000 claims description 6
- 238000012544 monitoring process Methods 0.000 claims description 5
- 241001442055 Vipera berus Species 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 20
- 230000001133 acceleration Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 7
- 238000012546 transfer Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000013527 convolutional neural network Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Multimedia (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Image Analysis (AREA)
Abstract
本公开的实施例公开了一种基于神经网络的图像识别装置包括:图像缓存,被配置为接收并存储图像;特征图缓存,被配置为接收并存储特征图;权重缓存,被配置为接收并存储权重;控制器,包括配置信息寄存器,并且被配置为接收配置信息,根据配置信息生成第一和第二控制信号,并且发送第一和第二控制信号;预处理单元,被配置为分别从图像缓存和权重缓存获得图像和权重,从控制器接收第一控制信号,根据第一控制信号对图像和权重执行预处理以得到并发送预处理结果;以及处理单元阵列,被配置为从预处理单元接收预处理结果,从控制器接收第二控制信号,根据第二控制信号对预处理结果执行处理以得到并向特种图缓存发送特征图。
Description
技术领域
本公开涉及图像识别领域,具体地,涉及一种基于神经网络的图像识别系统和图像识别方法。
背景技术
图像识别属于深度神经网络(DNN)在图像处理、模式识别、机器视觉综合领域的一个典型应用场景,近年来人工卷积神经网络(CNN)使得图像识别分类精度和准确度取得很大的进步。在人工智能识别领域,存在云计算和边缘计算两种应用场合。云计算等主要依赖服务器等通用处理器(CPU)、图形处理器(GPU)进行识别。CPU存在速度很慢、功耗也比较大、多处理器难于协同等问题。GPU的功耗较大,成本较高,不适用于边缘计算应用场合。随着物联网的发展,云计算并不总是那么高效的,尤其是在图像智能识别方面,边缘端产生的图像数据正在逐步增加,图像数据传输过程产生较大延迟,如果能够在边缘端的节点处处理、分析数据,那么这种计算模型会更高效。在现有针对边缘端的图像识别硬件加速技术中,一些技术采用增加浮点计算单元DSP、ALU进行加速,但是这些技术存在功耗大、成本高的问题;一些技术采用脉动阵列进行卷积加速,但是这些技术也存在功耗大、成本高、由于只进行了卷积加速而导致通用加速效果不佳等的问题;还有一些技术在硬件上实现对整个并行处理子流程的加速,但是这些技术存在设计方案繁杂、部分单元没有精简、通用性不好等问题。在安检领域中,由于对检测速度的要求较高、存在大量的待识别图像以及场地有限等问题,需要一种能够提高速度、降低功耗且具有较好的通用性的图像识别装置和图像识别方法。
公开内容
根据本公开的实施例的一个方面,提供了一种基于神经网络的图像识别装置,包括:
图像缓存,被配置为接收并存储待识别的图像;
特征图缓存,被配置为接收并存储特征图;
权重缓存,被配置为接收并存储权重;
控制器,包括配置信息寄存器,并且被配置为接收配置信息并且将所述配置信息存储在所述配置信息寄存器中,根据所述配置信息生成第一控制信号和第二控制信号,并且发送所述第一控制信号和所述第二控制信号;
所述预处理单元,被配置为分别从所述图像缓存和所述权重缓存获得所述待识别的图像和所述权重,从所述控制器接收所述第一控制信号,根据所述第一控制信号对所述待识别的图像和所述权重执行预处理以得到预处理结果,并且发送所述预处理结果;以及
处理单元阵列,被配置为从所述预处理单元接收所述预处理结果,从所述控制器接收所述第二控制信号,根据所述第二控制信号对所述预处理结果执行处理以得到特征图,并向所述特征图缓存发送所述特征图。
在一个实施例中,所述预处理单元被进一步配置为:从所述特征图缓存接收所述特征图,根据所述第一控制信号确定所述特征图是否是最终特征图,如果否,则对所述特征图和所述权重执行预处理以得到预处理结果,并且向所述处理单元阵列发送所述预处理结果;如果是,则指示所述特征图缓存发送所述特征图。
在一个实施例中,所述控制器还包括状态寄存器和控制状态机,其中
所述预处理单元被进一步配置为在完成所述预处理中的多个操作中的一个操作之后向所述状态寄存器发送第一状态信号,从所述控制状态机接收第一状态控制信号,并且根据所述第一状态控制信号执行所述多个操作中的在所述一个操作之后的下一个操作;以及
所述状态寄存器被配置为在接收到所述第一状态信号之后存储所述第一状态信号,并且所述控制状态机被配置为根据所述状态寄存器中存储的所述第一状态信号生成所述第一状态控制信号,并且向所述预处理单元发送所述第一状态控制信号。
在一个实施例中,所述处理单元阵列被进一步配置为在完成所述处理中的多个操作中的一个操作之后向所述状态寄存器发送第二状态信号,从所述控制状态机接收第二状态控制信号,并且根据所述第二状态控制信号执行所述多个操作中的在所述一个操作之后的下一个操作;以及
所述状态寄存器被进一步配置为在接收到所述第二状态信号之后存储所述第二状态信号,并且所述控制状态机被进一步配置为根据所述状态寄存器中存储的所述第二状态信号生成所述第二状态控制信号,并且向所述处理单元阵列发送所述第二状态控制信号。
在一个实施例中,所述多个处理单元中的每一个处理单元包括乘法器阵列和加法树。
在一个实施例中,所述配置信息包括所述神经网络的结构信息和所述待识别的图像的大小,其中所述神经网络的结构信息指示卷积处理、激活处理、池化处理和全连接处理中要执行的一个或多个处理,并且
所述处理单元阵列被进一步配置为通过以下方式来根据所述第二控制信号对所述预处理结果执行处理以得到特征图:
根据所述第二控制信号对所述预处理器结果依次执行所述卷积处理、所述激活处理、所述池化处理和所述全连接处理中的由所述神经网络的结构信息指示的所述一个或多个处理以得到所述特征图。
在一个实施例中,所述处理单元阵列包括:
多个处理单元,被配置为执行所述卷积处理和所述全连接处理;
多个激活单元,被配置为执行所述激活处理;以及
多个池化单元,被配置为执行所述池化处理。
在一个实施例中,所述预处理单元被进一步配置为通过以下方式来根据所述第一控制信号对所述待识别的图像和所述权重执行预处理:
根据所述神经网络的结构信息和所述待识别的图像的大小对所述待识别的图像执行大小调整和填充处理以得到处理后的图像并且对所述处理后的图像以及所述权重执行分块操作。
在一个实施例中,所述特征图缓存包括多个缓存区,所述多个缓存区包括多个写缓存区和多个读缓存区,并且
其中,所述控制器被进一步配置为监测所述多个写缓存区中正在写入数据的缓存区的第一编号以及所述多个读缓存区中正在读取数据的读缓存区的第二编号,并且当所述第一编号与所述第二编号之差小于第一阈值时,发出中断信号以中断所述图像识别装置的操作。
在一个实施例中,所述权重缓存包括多个缓存区,所述多个缓存区包括多个写缓存区和多个读缓存区,并且
其中,所述控制器被进一步配置为监测所述多个写缓存区中正在写入数据的缓存区的第一编号以及所述多个渎缓存区中正在读取数据的读缓存区的第二编号,并且当所述第一编号与所述第二编号之差小于第二阈值时,发出中断信号以中断所述图像识别装置的操作。
在一个实施例中,所述池化处理包括最大值池化或平均值池化。
在一个实施例中,所述多个激活单元使用relu激活函数、leakey relu激活函数、sigmod激活函数或tanh激活函数来执行所述激活处理。
在一个实施例中,所述图像识别装置还包括:通用处理器,被配置为存储所述待识别的图像和所述权重,并且向所述图像缓存发送所述待识别的图像并向所述权重缓存发送所述权重。
在一个实施例中,所述图像缓存通过第一多通道直接存储器存取MCDMA从所述通用处理器接收所述待识别的图像,并且所述权重缓存通过第二MCDMA从所述通用处理器接收所述权重。
在一个实施例中,所述图像识别装置还包括:存储器,被配置为存储第一密码,
其中,所述通用处理器被进一步配置为向所述控制器发送第二密码,并且
所述控制器被进一步配置为响应于从所述通用处理器接收到所述第二密码,从所述存储器获取所述第一密码,并且将所述第一密码与所述第二密码进行比较,当所述第一密码与所述第二密码相同时,允许所述图像缓存和所述权重缓存接收数据,并且当所述第一密码与所述第二密码不同时,禁止所述图像缓存和所述权重缓存接收数据。
在一个实施例中,所述通用处理器被进一步配置为从所述特征图缓存接收所述特征图,并且对所述特征图执行分类和定位处理以确定所述待识别的图像的类别和位置。
根据本公开的实施例的另一个方面,提供了一种基于神经网络的图像识别方法,包括:
步骤S1:由图像缓存接收并存储待识别的图像;
步骤S2:由权重缓存接收并存储权重;
步骤S3:由控制器接收配置信息,根据所述配置信息生成第一控制信号和第二控制信号,并且发送所述第一控制信号和所述第二控制信号;
步骤S4:由预处理单元分别从所述图像缓存和所述权重缓存获得所述待识别的图像和所述权重,从所述控制器接收所述第一控制信号,根据所述第一控制信号对所述待识别的图像和所述权重执行预处理以得到预处理结果,并且发送所述预处理结果,以及
步骤S5:由处理单元阵列从所述预处理单元接收所述预处理结果,从所述控制器接收所述第二控制信号,根据所述第二控制信号对所述预处理结果执行处理以得到特征图,并向特征图缓存发送所述特征图。
在一个实施例中,所述图像识别方法还包括:
步骤S6:由特征图缓存从所述处理单元阵列接收并存储所述特征图;
步骤S7:由所述预处理单元从所述特征图缓存获得所述特征图;以及
步骤S8:由所述预处理单元根据所述第一控制信号确定所述特征图是否是最终特征图,
如果否,则所述预处理单元对所述特征图和所述权重执行预处理以得到预处理结果,并且返回所述步骤S5;以及
如果是,则所述预处理单元指示所述特征图缓存发送所述最终特征图。
在一个实施例中,所述图像识别方法还包括:
由所述预处理单元在完成所述预处理中的多个操作中的一个操作之后向所述控制器发送第一状态信号;
由所述控制器接收所述第一状态信号,据所述第一状态信号生成第一状态控制信号,并且向所述预处理单元发送所述第一状态控制信号;以及
由所述预处理单元从所述控制器接收所述第一状态控制信号,并且根据所述第一状态控制信号执行所述多个操作中的在所述一个操作之后的下一个操作。
在一个实施例中,所述图像识别方法还包括:
由所述处理单元阵列在完成所述处理中的多个操作中的一个操作之后向所述控制器发送第二状态信号;
由所述控制器接收所述第二状态信号,根据所述第二状态信号生成第二状态控制信号,并且向所述处理单元阵列发送所述第二状态控制信号;以及
由所述处理单元阵列从所述控制器接收所述第二状态控制信号,并且根据所述第二状态控制信号执行所述多个操作中的在所述一个操作之后的下一个操作。
在一个实施例中,所述配置信息包括所述神经网络的结构信息和所述待识别的图像的大小,其中所述神经网络的结构信息指示卷积处理、激活处理、池化处理和全连接处理中要执行的一个或多个处理,并且根据所述第二控制信号对所述预处理结果执行处理以得到特征图包括:
根据所述第二控制信号对所述预处理器结果依次执行卷积处理、激活处理、池化处理和全连接处理中的由所述神经网络结构信息指示的所述一个或多个处理以得到所述特征图。
在一个实施例中,根据所述第一控制信号对所述待识别的图像和所述权重执行预处理包括:
根据所述神经网络的结构信息和所述待识别的图像的大小对所述待识别的图像执行大小调整和填充处理以得到处理后的图像并且对所述处理后的图像以及所述权重执行分块操作。
在一个实施例中,所述特征图缓存包括多个缓存区,所述多个缓存区包括多个写缓存区和多个读缓存区,并且
其中,所述图像识别方法还包括:监测所述多个写缓存区中正在写入数据的缓存区的第一编号以及所述多个读缓存区中正在读取数据的读缓存区的第二编号,并且当所述第一编号与所述第二编号之差小于第一阈值时,发出中断信号以中断所述图像识别方法。
在一个实施例中,所述权重缓存包括多个缓存区,所述多个缓存区包括多个写缓存区和多个读缓存区,并且
其中,所述图像识别方法还包括:监测所述多个写缓存区中正在写入数据的缓存区的第一编号以及所述多个读缓存区中正在读取数据的读缓存区的第二编号,并且当所述第一编号与所述第二编号之差小于第二阈值时,发出中断信号以中断所述图像识别方法。
在一个实施例中,所述池化处理包括最大值池化或平均值池化。
在一个实施例中,所述激活处理是使用relu激活函数、leakey relu激活函数、sigmod激活函数或tanh激活函数来执行的。
在一个实施例中,所述图像识别方法还包括:由通用处理器存储所述待识别的图像和所述权重,并且向所述图像缓存发送所述待识别的图像并向所述权重缓存发送所述权重。
在一个实施例中,由图像缓存接收待识别的图像包括:所述图像缓存通过第一多通道直接存储器存取MCDMA从所述通用处理器接收所述待识别的图像,并且
由权重缓存接收权重包括:由权重缓存通过第二MCDMA从所述通用处理器接收所述权重。
在一个实施例中,所述图像识别方法还包括:
由所述通用处理器向所述控制器发送第二密码,以及
响应于从所述通用处理器接收到所述第二密码,由所述控制器从存储器获取第一密码,并且将所述第二密码与所述第一密码进行比较,当所述第一密码与所述第二密码相同时,允许所述图像缓存和所述权重缓存接收数据,并且当所述第一密码与所述第二密码不同时,禁止所述图像缓存和所述权重缓存接收数据。
在一个实施例中,所述图像识别方法还包括:
由所述通用处理器从所述特征图缓存接收所述特征图,并且对所述特征图执行分类和定位处理以确定所述待识别的图像的类别和位置。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:
图1示出了根据本公开的实施例的基于神经网络的图像识别装置的示意图;
图2示出了根据本公开的实施例的乘法器的示意图;
图3示出了根据本公开的实施例的加法器的示意图;
图4示出了根据本公开的实施例的激活函数的示意图;
图5示出了根据本公开的实施例的基于神经网络的图像识别方法的示意图;
图6示出了根据本公开的实施例的利用基于神经网络的图像识别方法进行图像识别的效果与现有技术的比较的示意图;以及
图7示出了根据本公开的实施例的基于神经网络的图像识别系统的示意图。
附图没有对实施例的所有电路或结构进行显示。贯穿所有附图相同的附图标记表示相同或相似的部件或特征。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。这里使用的词语“一”、“一个(种)”和“该”等也应包括“多个”、“多种”的意思,除非上下文另外明确指出。此外,在此使用的术语“包括”、“包含”等表明了特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
图1示出了根据本公开的实施例的基于神经网络的图像识别装置100的示意图。基于神经网络的图像识别装置100可以包括图像缓存101、特征图缓存102、权重缓存103、控制器104、预处理器单元105和处理单元阵列106。
图像缓存101可以被配置为接收并存储待识别的图像。特征图缓存102可以被配置为接收并存储特征图。特征图缓存102可以包括多个(典型地,4个至16个)缓存区,这些缓存区可以包括多个写缓存区和多个读缓存区(例如,FIFO1_a、FIFO2_a、……FIFOn-1_a、FIFOn_a)。在一个实施例中,可以采用乒乒乓乓的方式对多个缓存区进行读写切换,保证正在写入数据的缓存区与正在读取数据的缓存区之间有预定数量的缓存区,从而确保缓存区不会发生读写冲突,即,当缓存区正在被读取或写入时不会被再次写入或读取,并且确保整个数据流不间断并减少数据传输的总时间。当缓存区即将空或已经为空时,该缓存区的读优先级高于写优先级,其它情况反之。
权重缓存103可以被配置为接收并存储权重(或FFT抽头系数)。权重缓存103可以包括多个(典型地,4个至16个)缓存区,这些缓存区包括多个写缓存区和多个读缓存区(例如,FIFO1_b、FIFO2_b、……FIFOn-1_b、FIFOn_b)。在一个实施例中,可以采用乒乒乓乓的方式对多个缓存区进行读写切换,保证正在写入数据的缓存区与正在读取数据的缓存区之间有预定数量的缓存区,从而确保缓存区不会发生读写冲突,即,当缓存区正在被读取或写入时不会被再次写入或读取,并且确保整个数据流不间断并减少数据传输的总时间。当缓存区即将空或已经为空时,该缓存区的读优先级高于写优先级,其它情况反之。
为了采用上述乒乒乓乓的方式对特征图缓存102中的多个缓存区进行读写切换,控制器104可以被配置为监测特征图缓存102中的多个写缓存区中正在写入数据的缓存区的第一编号以及多个读缓存区中正在读取数据的读缓存区的第二编号,并且当第一编号与第二编号之差小于第一阈值(例如,1)时,发出中断信号以中断图像识别装置100的操作。为了采用乒乒乓乓的方式对权重缓存103中的多个缓存区进行读写切换,控制器104可以被进一步配置为监测权重缓存103中的多个写缓存区中正在写入数据的缓存区的第一编号以及多个读缓存区中正在读取数据的读缓存区的第二编号,并且当第一编号与第二编号之差小于第二阈值(例如,1)时,发出中断信号以中断图像识别装置100的操作。
控制器104可以包括配置信息寄存器,并且可以被配置为(例如,从通用处理器107,如下所述)接收配置信息并且将配置信息存储在配置信息寄存器中,根据配置信息生成第一控制信号和第二控制信号,并且发送第一控制信号和第二控制信号。配置信息可以包括神经网络的结构信息和待识别的图像的大小,神经网络的结构信息可以指示卷积处理、激活处理、池化处理、全连接处理以及其他处理(例如,Element-wise、Depthwise、Dilated Convolutions(空洞卷积)、Deconvolution(反卷积)、Dropout、Permute等)中要执行的一个或多个处理、数据是否准备好、是否进行BN和正则化、卷积核的大小、各层通道数等。
预处理单元105可以被配置为分别从图像缓存101和权重缓存103获得待识别的图像和权重,从控制器104接收第一控制信号,并且根据第一控制信号对待识别的图像和权重执行预处理以得到预处理结果,并且发送预处理结果。
处理单元阵列106可以被配置为从预处理单元105接收预处理结果,从控制器104接收第二控制信号,根据第二控制信号对预处理结果执行处理以得到特征图,并(例如,直接地或者通过预处理单元105)向特征图缓存102发送特征图。
预处理单元105可以被进一步配置为:从特征图缓存102接收特征图,根据第一控制信号确定特征图是否是最终特征图,如果否,则对特征图和权重执行预处理以得到预处理结果,并且向处理单元阵列106发送预处理结果;如果是,则指示特征图缓存102发送特征图。
控制器104还可以包括状态寄存器和控制状态机。预处理单元105可以被进一步配置为在完成预处理中的多个操作中的一个操作之后向状态寄存器发送第一状态信号,从控制状态机接收第一状态控制信号,并且根据第一状态控制信号控制预处理单元105执行多个操作中的在所述一个操作之后的下一个操作。状态寄存器可以被配置为在接收到第一状态信号之后存储第一状态信号,并且控制状态机可以被配置为根据第一状态信号生成第一状态控制信号,并且向预处理单元105发送第一状态控制信号。
处理单元阵列106被进一步配置为在完成处理中的多个操作中的一个操作之后(例如,直接地或者通过预处理单元105)向状态寄存器发送第二状态信号,从控制状态机接收第二状态控制信号,并且根据第二状态控制信号控制处理单元阵列106执行多个操作中的在所述一个操作之后的下一个操作。状态寄存器可以被进一步配置为在接收到第二状态信号之后存储第二状态信号,并且控制状态机可以被进一步配置为根据第二状态信号生成第二状态控制信号,并且(例如,直接地或者通过预处理单元105)向处理单元阵列106发送第二状态控制信号。
处理单元阵列106可以被进一步配置为通过以下方式来根据第二控制信号对预处理结果执行处理以得到特征图:根据第二控制信号对预处理器结果依次执行卷积处理、激活处理、池化处理、全连接处理和其他处理中的由神经网络的结构信息指示的一个或多个处理以得到特征图。
处理单元阵列106可以包括多个处理单元1061、多个激活单元1062和多个池化单元1063。每一个处理单元1061可以包括乘法器阵列(如图2所示)和加法树(如图3所示),并且可以执行卷积处理和全连接处理。在每一个处理单元1061执行卷积处理时,利用卷积核中的第一个点扫描输入的向量以得到第一结果,然后利用卷积核中的第二点扫描输入的向量以得到第二结果,以此类推,直到卷积核中的最后一个点完成扫描为止,然后将所有结果累加在一起得到卷积结果。通过这种方式,放松了对卷积核的尺寸大小要求,并且无需将输入数据重复传输到片上缓存,从而减少了传输数据的能耗。每一个激活单元1062可以使用relu激活函数(如图4所示)、leakey relu激活函数(如图4所示)、sigmod激活函数、tanh激活函数等来执行激活处理。每一个池化单元1063可以执行池化处理,例如,最大值池化或平均值池化。
预处理单元105可以被进一步配置为通过以下方式来根据第一控制信号对待识别的图像和权重执行预处理:根据神经网络的结构信息和待识别的图像的大小对待识别的图像执行大小调整和填充处理以得到处理后的图像并且对处理后的图像以及权重执行分块操作。在一个示例中,当执行分块操作时,如果处理单元阵列106中的处理单元的维度为16*16,则预处理后的图像的典型分块大小为N*N*16,其中N的大小是根据图像缓存和特征图缓存的大小以及要求输出的特征图的大小确定的,并且根据控制器104接收的配置信息(如下所述)进行动态分块,并且权重的典型分块大小为3*3*16*16。此外,预处理单元105可以被进一步配置为对处理后的图像和权重执行对齐操作以得到预处理结果以便于执行并行卷积计算,并且向处理单元阵列106发送预处理结果。
图像识别装置100还可以包括:通用处理器107,被配置为存储待识别的图像和权重,并且向图像缓存101发送待识别的图像并向权重缓存103发送权重。通用处理器107可以由ARM、RISC-V、MIPS等来实现。在图像识别装置100接收待识别的图像之前,通用处理器调用底层函数来完成对硬件的配置。当图像识别装置100接收待识别的图像时,通用处理器107通过网络(例如,有线网络或无线网络)、USB等从图像采集端(例如,相机、成像装置等)接收待识别的图像,并且从外部存储器接收权重。备选地,通用处理器107可以包括内存,被配置为存储权重,并且当图像识别装置100接收待识别的图像时,通用处理器107通过网络、USB等从图像采集端接收待识别的图像,并可以在系统初始化时通过网络或USB接收权重,并在使用过程中进行微调更新,以及软件升级更新程序APP。
图像缓存101可以经由接口(例如,AXI接口)通过第一多通道直接存储器存取(MCDMA)从通用处理器107接收待识别的图像,并且权重缓存103可以经由接口(例如,AXI接口)通过第二MCDMA从通用处理器107接收权重。第一MCDMA和第二MCDMA当在FPGA上实现时的时钟通常为300M并且传输吞吐率通常为单个DMA 2.2GB/s,并且当在ASIC上实现时时钟通常为1G,并且传输吞吐率通常单个DMA 3GB/s。当然,本公开的实施例不限于使用MCDMA来传输数据,备选地,还可以直接使用总线突发传输模式来传输数据。
图像识别装置100还可以包括:存储器108,被配置为存储第一密码。
通用处理器107可以被进一步配置为向控制器108发送第二密码。控制器108可以被进一步配置为响应于从通用处理器107接收到第二密码,从存储器108获取第一密码,并且将第一密码与第二密码进行比较,当第一密码与第二密码相同时,允许图像缓存101和权重缓存103接收数据,并且当第一密码与第二密码不同时,禁止图像缓存101和权重缓存103接收数据。
通用处理器107可以被进一步配置为从特征图缓存102接收特征图,并且对特征图执行全连接处理以确定待识别的图像的类别和位置。
在另一示例中,权重缓存103可以被进一步配置为接收并存储FFT抽头系数,预处理单元105可以被进一步配置为按FFT的结构对处理后的图像和FFT抽头系数进行重排、然后对重排结构的图像和FFT抽头系数执行对齐操作以得到预处理结果以便于执行FFT计算,并且向处理单元阵列106发送预处理结果,并且处理单元阵列106可以被进一步配置为对预处理结果执行FFT处理以得到FFT结果。
图5示出了根据本公开的实施例的利用基于神经网络的图像识别装置100执行基于神经网络的图像识别方法500的示意图。基于神经网络的图像识别方法500可以包括以下步骤。
在步骤S1中,图像缓存101可以接收并存储待识别的图像。由图像缓存101接收待识别的图像可以包括:图像缓存101通过第一MCDMA从通用处理器107接收待识别的图像。
在步骤S2中,权重缓存103可以接收并存储权重。权重缓存103可以包括多个缓存区。这些缓存区可以包括多个写缓存区和多个读缓存区。由权重缓存103接收权重可以包括:由权重缓存103通过第二MCDMA从通用处理器107接收权重。
在步骤S1和步骤S2之前,图像识别方法500还可以包括:由通用处理器107存储待识别的图像和权重,并且向图像缓存101发送待识别的图像并向权重缓存103发送权重;以及由通用处理器107向控制器104发送第二密码,以及响应于从通用处理器107接收到第二密码,由控制器104从存储器108获取第一密码,并且将第二密码与第一密码进行比较,当第一密码与第二密码相同时,允许图像缓存101和权重缓存103接收数据,并且当第一密码与第二密码不同时,禁止图像缓存101和权重缓存103接收数据。
在步骤S3中,控制器可以(例如,从通用处理器107)接收配置信息,根据配置信息生成第一控制信号和第二控制信号,并且发送第一控制信号和第二控制信号。配置信息可以包括神经网络的结构信息和待识别的图像的大小,神经网络的结构信息可以指示卷积处理、激活处理、池化处理、全连接处理和其他处理中要执行的一个或多个处理、数据是否准备好、是否进行BN和正则化、卷积核的大小、各层通道数等。
在步骤S4中,预处理单元105可以分别从图像图缓存101和权重缓存103获得待识别的图像和权重,从控制器104接收第一控制信号,根据第一控制信号对待识别的图像和权重执行预处理以得到预处理结果,并且向处理单元阵列106发送预处理结果。预处理单元105根据第一控制信号对待识别的图像和权重执行预处理可以包括:根据神经网络的结构信息和待识别的图像的大小对待识别的图像执行大小调整和填充处理以得到处理后的图像并且对处理后的图像以及权重执行分块操作。
在步骤S5中,处理单元阵列106可以从预处理单元105接收预处理结果,从控制器104接收第二控制信号,根据第二控制信号对预处理结果执行处理以得到特征图,并向特征图缓存102发送特征图。根据第二控制信号对预处理结果执行处理以得到特征图可以包括:根据第二控制信号对预处理器结果依次执行卷积处理、激活处理、池化处理、全连接处理和其他处理中的由神经网络的结构信息指示的一个或多个处理以得到特征图。
在步骤S6中,特征图缓存102可以从处理单元阵列106接收并存储特征图。特征图缓存102可以包括多个缓存区,这些缓存区可以包括多个写缓存区和多个读缓存区。
在步骤S7,预处理单元105可以从特征图缓存102获得特征图。
在步骤S8,预处理单元105根据第一控制信号确定特征图是否是最终特征图,如果否,则在步骤S9,预处理单元105对特征图和权重执行预处理以得到预处理结果,并且返回步骤S5;并且如果是,则在步骤S10,预处理单元105指示特征图缓存102向通用处理器107发送最终特征图。
在步骤S10中获得最终特征图之后,在步骤S11中,由通用处理器107从特征图缓存102接收特征图,并且对特征图执行分类和定位处理(例如,通过softmax、concat等)以确定待识别的图像的类别和位置。
在根据本公开的一个实施例中,图像识别方法500还可以包括:监测特征图缓存102中的多个写缓存区中正在写入数据的缓存区的第一编号以及特征图缓存102中的多个读缓存区中正在读取数据的读缓存区的第二编号,并且当第一编号与第二编号之差小于第一阈值时,发出中断信号以中断图像识别方法。图像识别方法500还可以包括:监测权重缓存103中的多个写缓存区中正在写入数据的缓存区的第一编号以及权重缓存103中的多个读缓存区中正在读取数据的读缓存区的第二编号,并且当第一编号与第二编号之差小于第二阈值时,发出中断信号以中断图像识别方法。
在根据本公开的一个实施例中,图像识别方法500还可以包括:由预处理单元105在完成预处理中的多个操作中的一个操作之后向控制器104发送第一状态信号;由控制器104接收第一状态信号,据第一状态信号生成第一状态控制信号,并且向预处理单元105发送第一状态控制信号;以及由预处理单元105从控制器接收第一状态控制信号,并且根据第一状态控制信号执行多个操作中的在所述一个操作之后的下一个操作。
在根据本公开的一个实施例中,图像识别方法500还可以包括:由处理单元阵列106在完成所述处理中的多个操作中的一个操作之后向控制器104发送第二状态信号;由控制器104接收第二状态信号,根据第二状态信号生成第二状态控制信号,并且向处理单元阵列106发送第二状态控制信号;以及由处理单元阵列106从控制器104接收第二状态控制信号,并且根据第二状态控制信号执行多个操作中的在所述一个操作之后的下一个操作。
图6示出了根据本公开的实施例的利用基于神经网络的图像识别方法进行图像识别的效果与现有技术的比较的示意图。从图6可以看出,与现有技术相比,利用基于神经网络的图像识别方法进行图像识别在更短的运行时间内以低功耗实现了对待识别的图像中的嫌疑物的分类和定位。
根据本公开的实施例充分利用了神经网络的特点进行硬件加速,可以对在边缘端进行图像识别进行加速运算,提高运算速度,且可达到较高的能效和通用性。该图像智能识别硬件加速方法可以应用于安检安防智能识别终端、智能盒子、智能摄像头、人脸识别、物体检测等多种应用场合,从而加快运算速度并提高识别效率。整个网络配置信息通过总线传输给控制器中的配置信息寄存器,而非每个步骤都需要配置,从而提高了效率。整个网络的中间结果包括层结果重新输入特征图缓冲为下次计算做好准备,保证整个过程为循环流水操作。
图7示出了根据本公开的实施例的基于神经网络的图像识别系统的示意图。系统700可以包括处理器710,例如,数字信号处理器(DSP)。处理器710可以是用于执行本文所描述的过程的不同动作的单个装置或多个装置。系统700还可以包括输入/输出(I/O)装置730,用于从其他实体接收信号或者向其他实体发送信号。
此外,系统700可以包括存储器720,该存储器720可以具有以下形式:非易失性或易失性存储器,例如,电可擦除可编程只读存储器(EEPROM)、闪存等。存储器720可以存储计算机可读指令,当处理器710执行该计算机可读指令时,该计算机可读指令可以使处理器执行本文所述的动作。
附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。
因此,本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统(例如,一个或多个处理器)使用或者结合指令执行系统使用。在本公开的上下文中,计算机可读介质可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,计算机可读介质可以包括但不限于电、磁、光、电磁、红外或半导体系统、装置、器件或传播介质。计算机可读介质的具体示例包括:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;和/或有线/无线通信链路。
以上的详细描述通过使用示意图、流程图和/或示例,已经阐述了基于神经网络的图像识别方法、装置和系统的众多实施例。在这种示意图、流程图和/或示例包含一个或多个功能和/或操作的情况下,本领域技术人员应理解,这种示意图、流程图或示例中的每一功能和/或操作可以通过各种结构、硬件、软件、固件或实质上它们的任意组合来单独和/或共同实现。在一个实施例中,本公开的实施例所述主题的若干部分可以通过专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、或其他集成格式来实现。然而,本领域技术人员应认识到,这里所公开的实施例的一些方面在整体上或部分地可以等同地实现在集成电路中,实现为在一台或多台计算机上运行的一个或多个计算机程序(例如,实现为在一台或多台计算机系统上运行的一个或多个程序),实现为在一个或多个处理器上运行的一个或多个程序(例如,实现为在一个或多个微处理器上运行的一个或多个程序),实现为固件,或者实质上实现为上述方式的任意组合,并且本领域技术人员根据本公开,将具备设计电路和/或写入软件和/或固件代码的能力。此外,本领域技术人员将认识到,本公开所述主题的机制能够作为多种形式的程序产品进行分发,并且无论实际用来执行分发的信号承载介质的具体类型如何,本公开所述主题的示例性实施例均适用。信号承载介质的示例包括但不限于:可记录型介质,如软盘、硬盘驱动器、紧致盘(CD)、数字通用盘(DVD)、数字磁带、计算机存储器等;以及传输型介质,如数字和/或模拟通信介质(例如,光纤光缆、波导、有线通信链路、无线通信链路等)。
Claims (26)
1.一种基于神经网络的图像识别装置,包括:
图像缓存,被配置为接收并存储待识别的图像;
特征图缓存,被配置为接收并存储特征图;
权重缓存,被配置为接收并存储权重;
通用处理器,被配置为存储所述待识别的图像和所述权重,并且向所述图像缓存发送所述待识别的图像并向所述权重缓存发送所述权重;
控制器,包括配置信息寄存器,并且被配置为接收配置信息并且将所述配置信息存储在所述配置信息寄存器中,根据所述配置信息生成第一控制信号和第二控制信号,并且发送所述第一控制信号和所述第二控制信号;
预处理单元,被配置为分别从所述图像缓存和所述权重缓存获得所述待识别的图像和所述权重,从所述控制器接收所述第一控制信号,根据所述第一控制信号对所述待识别的图像和所述权重执行预处理以得到预处理结果,并且发送所述预处理结果;以及
处理单元阵列,被配置为从所述预处理单元接收所述预处理结果,从所述控制器接收所述第二控制信号,根据所述第二控制信号对所述预处理结果执行处理以得到特征图,并向所述特征图缓存发送所述特征图,
其中,所述预处理单元被进一步配置为:从所述特征图缓存接收所述特征图,根据所述第一控制信号确定所述特征图是否是最终特征图,如果否,则对所述特征图和所述权重执行预处理以得到预处理结果,并且向所述处理单元阵列发送所述预处理结果;如果是,则指示所述特征图缓存发送所述特征图,
其中,所述特征图缓存被进一步配置为:当从所述预处理单元接收到发送所述特征图的指示时,向所述通用处理器发送所述特征图,并且
其中,所述处理单元阵列包括:多个处理单元,被配置为执行卷积处理和全连接处理,所述多个处理单元中的每一个处理单元包括乘法器阵列和加法树,当所述多个处理单元中的每一个处理单元执行所述卷积处理时,通过所述乘法器阵列用卷积核中的每个点扫描输入的向量来得到扫描结果,然后通过所述加法树累加所有的扫描结果来得到卷积结果。
2.根据权利要求1所述的图像识别装置,其中,所述控制器还包括状态寄存器和控制状态机,其中
所述预处理单元被进一步配置为在完成所述预处理中的多个操作中的一个操作之后向所述状态寄存器发送第一状态信号,从所述控制状态机接收第一状态控制信号,并且根据所述第一状态控制信号执行所述多个操作中的在所述一个操作之后的下一个操作;以及
所述状态寄存器被配置为在接收到所述第一状态信号之后存储所述第一状态信号,并且所述控制状态机被配置为根据所述状态寄存器中存储的所述第一状态信号生成所述第一状态控制信号,并且向所述预处理单元发送所述第一状态控制信号。
3.根据权利要求2所述的图像识别装置,其中,
所述处理单元阵列被进一步配置为在完成所述处理中的多个操作中的一个操作之后向所述状态寄存器发送第二状态信号,从所述控制状态机接收第二状态控制信号,并且根据所述第二状态控制信号执行所述多个操作中的在所述一个操作之后的下一个操作;以及
所述状态寄存器被进一步配置为在接收到所述第二状态信号之后存储所述第二状态信号,并且所述控制状态机被进一步配置为根据所述状态寄存器中存储的所述第二状态信号生成所述第二状态控制信号,并且向所述处理单元阵列发送所述第二状态控制信号。
4.根据权利要求1所述的图像识别装置,其中,所述配置信息包括所述神经网络的结构信息和所述待识别的图像的大小,其中所述神经网络的结构信息指示所述卷积处理、激活处理、池化处理和所述全连接处理中要执行的一个或多个处理,并且
所述处理单元阵列被进一步配置为通过以下方式来根据所述第二控制信号对所述预处理结果执行处理以得到特征图:
根据所述第二控制信号对所述预处理器结果依次执行所述卷积处理、所述激活处理、所述池化处理和所述全连接处理中的由所述神经网络的结构信息指示的所述一个或多个处理以得到所述特征图。
5.根据权利要求4所述的图像识别装置,其中,所述处理单元阵列还包括:
多个激活单元,被配置为执行所述激活处理;以及
多个池化单元,被配置为执行所述池化处理。
6.根据权利要求4所述的图像识别装置,其中,所述预处理单元被进一步配置为通过以下方式来根据所述第一控制信号对所述待识别的图像和所述权重执行预处理:
根据所述神经网络的结构信息和所述待识别的图像的大小对所述待识别的图像执行大小调整和填充处理以得到处理后的图像并且对所述处理后的图像以及所述权重执行分块操作。
7.根据权利要求1所述的图像识别装置,其中,所述特征图缓存包括多个缓存区,所述多个缓存区包括多个写缓存区和多个读缓存区,并且
其中,所述控制器被进一步配置为监测所述多个写缓存区中正在写入数据的缓存区的第一编号以及所述多个读缓存区中正在读取数据的读缓存区的第二编号,并且当所述第一编号与所述第二编号之差小于第一阈值时,发出中断信号以中断所述图像识别装置的操作。
8.根据权利要求1所述的图像识别装置,其中,所述权重缓存包括多个缓存区,所述多个缓存区包括多个写缓存区和多个读缓存区,并且
其中,所述控制器被进一步配置为监测所述多个写缓存区中正在写入数据的缓存区的第一编号以及所述多个读缓存区中正在读取数据的读缓存区的第二编号,并且当所述第一编号与所述第二编号之差小于第二阈值时,发出中断信号以中断所述图像识别装置的操作。
9.根据权利要求5所述的图像识别装置,其中,所述池化处理包括最大值池化或平均值池化。
10.根据权利要求5所述的图像识别装置,其中,所述多个激活单元使用relu激活函数、leakey relu激活函数、sigmod激活函数或tanh激活函数来执行所述激活处理。
11.根据权利要求1所述的图像识别装置,其中,所述图像缓存通过第一多通道直接存储器存取MCDMA从所述通用处理器接收所述待识别的图像,并且所述权重缓存通过第二MCDMA从所述通用处理器接收所述权重。
12.根据权利要求1所述的图像识别装置,还包括:存储器,被配置为存储第一密码,
其中,所述通用处理器被进一步配置为向所述控制器发送第二密码,并且
所述控制器被进一步配置为响应于从所述通用处理器接收到所述第二密码,从所述存储器获取所述第一密码,并且将所述第一密码与所述第二密码进行比较,当所述第一密码与所述第二密码相同时,允许所述图像缓存和所述权重缓存接收数据,并且当所述第一密码与所述第二密码不同时,禁止所述图像缓存和所述权重缓存接收数据。
13.根据权利要求1所述的图像识别装置,其中,所述通用处理器被进一步配置为从所述特征图缓存接收所述特征图,并且对所述特征图执行分类和定位处理以确定所述待识别的图像的类别和位置。
14.一种基于神经网络的图像识别方法,包括:
步骤S1:由图像缓存接收并存储待识别的图像;
步骤S2:由权重缓存接收并存储权重;
步骤S3:由控制器接收配置信息,根据所述配置信息生成第一控制信号和第二控制信号,并且发送所述第一控制信号和所述第二控制信号;
步骤S4:由预处理单元分别从所述图像缓存和所述权重缓存获得所述待识别的图像和所述权重,从所述控制器接收所述第一控制信号,根据所述第一控制信号对所述待识别的图像和所述权重执行预处理以得到预处理结果,并且发送所述预处理结果;
步骤S5:由处理单元阵列从所述预处理单元接收所述预处理结果,从所述控制器接收所述第二控制信号,根据所述第二控制信号对所述预处理结果执行处理以得到特征图,并向特征图缓存发送所述特征图,其中,当所述处理单元阵列中包括的多个处理单元中的每一个处理单元执行卷积处理时,由所述多个处理单元中的每一个处理单元包括的乘法器阵列用卷积核中的每个点扫描输入的向量来得到扫描结果,然后由所述多个处理单元中的每一个处理单元包括的加法树累加所有的扫描结果来得到卷积结果;
步骤S6:由特征图缓存从所述处理单元阵列接收并存储所述特征图;
步骤S7:由所述预处理单元从所述特征图缓存获得所述特征图;以及
步骤S8:由所述预处理单元根据所述第一控制信号确定所述特征图是否是最终特征图,
如果否,则所述预处理单元对所述特征图和所述权重执行预处理以得到预处理结果,并且返回所述步骤S5;以及
如果是,则所述预处理单元指示所述特征图缓存发送所述最终特征图,并且所述特征图缓存向通用处理器发送所述最终特征图。
15.根据权利要求14所述的图像识别方法,还包括:
由所述预处理单元在完成所述预处理中的多个操作中的一个操作之后向所述控制器发送第一状态信号;
由所述控制器接收所述第一状态信号,据所述第一状态信号生成第一状态控制信号,并且向所述预处理单元发送所述第一状态控制信号;以及
由所述预处理单元从所述控制器接收所述第一状态控制信号,并且根据所述第一状态控制信号执行所述多个操作中的在所述一个操作之后的下一个操作。
16.根据权利要求14所述的图像识别方法,还包括:
由所述处理单元阵列在完成所述处理中的多个操作中的一个操作之后向所述控制器发送第二状态信号;
由所述控制器接收所述第二状态信号,根据所述第二状态信号生成第二状态控制信号,并且向所述处理单元阵列发送所述第二状态控制信号;以及
由所述处理单元阵列从所述控制器接收所述第二状态控制信号,并且根据所述第二状态控制信号执行所述多个操作中的在所述一个操作之后的下一个操作。
17.根据权利要求14所述的图像识别方法,其中,所述配置信息包括所述神经网络的结构信息和所述待识别的图像的大小,其中所述神经网络的结构信息指示所述卷积处理、激活处理、池化处理和全连接处理中要执行的一个或多个处理,并且根据所述第二控制信号对所述预处理结果执行处理以得到特征图包括:
根据所述第二控制信号对所述预处理器结果依次执行所述卷积处理、所述激活处理、所述池化处理和所述全连接处理中的由所述神经网络结构信息指示的所述一个或多个处理以得到所述特征图。
18.根据权利要求14所述的图像识别方法,其中,根据所述第一控制信号对所述待识别的图像和所述权重执行预处理包括:
根据所述神经网络的结构信息和所述待识别的图像的大小对所述待识别的图像执行大小调整和填充处理以得到处理后的图像并且对所述处理后的图像以及所述权重执行分块操作。
19.根据权利要求14所述的图像识别方法,其中,所述特征图缓存包括多个缓存区,所述多个缓存区包括多个写缓存区和多个读缓存区,并且
其中,所述图像识别方法还包括:监测所述多个写缓存区中正在写入数据的缓存区的第一编号以及所述多个读缓存区中正在读取数据的读缓存区的第二编号,并且当所述第一编号与所述第二编号之差小于第一阈值时,发出中断信号以中断所述图像识别方法。
20.根据权利要求14所述的图像识别方法,其中,所述权重缓存包括多个缓存区,所述多个缓存区包括多个写缓存区和多个读缓存区,并且
其中,所述图像识别方法还包括:监测所述多个写缓存区中正在写入数据的缓存区的第一编号以及所述多个读缓存区中正在读取数据的读缓存区的第二编号,并且当所述第一编号与所述第二编号之差小于第二阈值时,发出中断信号以中断所述图像识别方法。
21.根据权利要求17所述的图像识别方法,其中,所述池化处理包括最大值池化或平均值池化。
22.根据权利要求17所述的图像识别方法,其中,所述激活处理是使用relu激活函数、leakey relu激活函数、sigmod激活函数或tanh激活函数来执行的。
23.根据权利要求14所述的图像识别方法,还包括:由所述通用处理器存储所述待识别的图像和所述权重,并且向所述图像缓存发送所述待识别的图像并向所述权重缓存发送所述权重。
24.根据权利要求23所述的图像识别方法,其中,由图像缓存接收待识别的图像包括:所述图像缓存通过第一多通道直接存储器存取MCDMA从所述通用处理器接收所述待识别的图像,并且
由权重缓存接收权重包括:由权重缓存通过第二MCDMA从所述通用处理器接收所述权重。
25.根据权利要求23所述的图像识别方法,还包括:
由所述通用处理器向所述控制器发送第二密码,以及
响应于从所述通用处理器接收到所述第二密码,由所述控制器从存储器获取第一密码,并且将所述第二密码与所述第一密码进行比较,当所述第一密码与所述第二密码相同时,允许所述图像缓存和所述权重缓存接收数据,并且当所述第一密码与所述第二密码不同时,禁止所述图像缓存和所述权重缓存接收数据。
26.根据权利要求23所述的图像识别方法,还包括:
由所述通用处理器从所述特征图缓存接收所述特征图,并且对所述特征图执行分类和定位处理以确定所述待识别的图像的类别和位置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911132212.4A CN112819022B (zh) | 2019-11-18 | 2019-11-18 | 基于神经网络的图像识别装置和图像识别方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911132212.4A CN112819022B (zh) | 2019-11-18 | 2019-11-18 | 基于神经网络的图像识别装置和图像识别方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112819022A CN112819022A (zh) | 2021-05-18 |
CN112819022B true CN112819022B (zh) | 2023-11-07 |
Family
ID=75852790
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911132212.4A Active CN112819022B (zh) | 2019-11-18 | 2019-11-18 | 基于神经网络的图像识别装置和图像识别方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112819022B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102929329A (zh) * | 2012-09-28 | 2013-02-13 | 无锡江南计算技术研究所 | 片上系统间互连网络的动态重构方法 |
CN107657581A (zh) * | 2017-09-28 | 2018-02-02 | 中国人民解放军国防科技大学 | 一种卷积神经网络cnn硬件加速器及加速方法 |
CN109379532A (zh) * | 2018-10-08 | 2019-02-22 | 长春理工大学 | 一种计算成像系统及方法 |
CN109740732A (zh) * | 2018-12-27 | 2019-05-10 | 深圳云天励飞技术有限公司 | 神经网络处理器、卷积神经网络数据复用方法及相关设备 |
CN109934339A (zh) * | 2019-03-06 | 2019-06-25 | 东南大学 | 一种基于一维脉动阵列的通用卷积神经网络加速器 |
CN109948774A (zh) * | 2019-01-25 | 2019-06-28 | 中山大学 | 基于网络层捆绑运算的神经网络加速器及其实现方法 |
WO2019127838A1 (zh) * | 2017-12-29 | 2019-07-04 | 国民技术股份有限公司 | 卷积神经网络实现方法及装置、终端、存储介质 |
CN110135554A (zh) * | 2019-03-25 | 2019-08-16 | 电子科技大学 | 一种基于fpga的卷积神经网络硬件加速架构 |
CN110390384A (zh) * | 2019-06-25 | 2019-10-29 | 东南大学 | 一种可配置的通用卷积神经网络加速器 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107679620B (zh) * | 2017-04-19 | 2020-05-26 | 赛灵思公司 | 人工神经网络处理装置 |
US11386644B2 (en) * | 2017-10-17 | 2022-07-12 | Xilinx, Inc. | Image preprocessing for generalized image processing |
US20190164037A1 (en) * | 2017-11-29 | 2019-05-30 | Electronics And Telecommunications Research Institute | Apparatus for processing convolutional neural network using systolic array and method thereof |
-
2019
- 2019-11-18 CN CN201911132212.4A patent/CN112819022B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102929329A (zh) * | 2012-09-28 | 2013-02-13 | 无锡江南计算技术研究所 | 片上系统间互连网络的动态重构方法 |
CN107657581A (zh) * | 2017-09-28 | 2018-02-02 | 中国人民解放军国防科技大学 | 一种卷积神经网络cnn硬件加速器及加速方法 |
WO2019127838A1 (zh) * | 2017-12-29 | 2019-07-04 | 国民技术股份有限公司 | 卷积神经网络实现方法及装置、终端、存储介质 |
CN109379532A (zh) * | 2018-10-08 | 2019-02-22 | 长春理工大学 | 一种计算成像系统及方法 |
CN109740732A (zh) * | 2018-12-27 | 2019-05-10 | 深圳云天励飞技术有限公司 | 神经网络处理器、卷积神经网络数据复用方法及相关设备 |
CN109948774A (zh) * | 2019-01-25 | 2019-06-28 | 中山大学 | 基于网络层捆绑运算的神经网络加速器及其实现方法 |
CN109934339A (zh) * | 2019-03-06 | 2019-06-25 | 东南大学 | 一种基于一维脉动阵列的通用卷积神经网络加速器 |
CN110135554A (zh) * | 2019-03-25 | 2019-08-16 | 电子科技大学 | 一种基于fpga的卷积神经网络硬件加速架构 |
CN110390384A (zh) * | 2019-06-25 | 2019-10-29 | 东南大学 | 一种可配置的通用卷积神经网络加速器 |
Non-Patent Citations (2)
Title |
---|
Escoin: Efficient Sparse Convolutional Neural Network Inference on GPUs;Xuhao Chen;《arXiv》;第2019年卷;第1-9页 * |
基于FPGA的Adaboost人脸检测算法设计与验证;庞伟;《中国优秀硕士学位论文全文数据库 信息科技辑》;第2018年卷(第1期);第I138-1285页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112819022A (zh) | 2021-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10282623B1 (en) | Depth perception sensor data processing | |
US10861225B2 (en) | Neural network processing for multi-object 3D modeling | |
US11430134B2 (en) | Hardware-based optical flow acceleration | |
CN112184508B (zh) | 一种用于图像处理的学生模型的训练方法及装置 | |
JP6855535B2 (ja) | シミュレーションデータの最適化方法、装置、記憶媒体及びプログラム | |
KR20170140214A (ko) | 신경망을 위한 훈련 기준으로서의 필터 특이성 | |
CN113051216B (zh) | 一种基于FPGA加速的MobileNet-SSD目标检测装置及方法 | |
KR102167011B1 (ko) | 샘플링 및 적응적으로 변경되는 임계치에 기초하여 뉴럴 네트워크를 학습하는데 이용되는 하드 네거티브 샘플을 추출하는 영상 학습 장치 및 상기 장치가 수행하는 방법 | |
CN111738403B (zh) | 一种神经网络的优化方法及相关设备 | |
CN111465943A (zh) | 芯片上计算网络 | |
CN112734827B (zh) | 一种目标检测方法、装置、电子设备和存储介质 | |
CN112926461B (zh) | 神经网络训练、行驶控制方法及装置 | |
EP3769286A1 (en) | Video object detection | |
CN113989616A (zh) | 一种目标检测方法、装置、设备和存储介质 | |
CN113222107A (zh) | 数据处理方法、装置、设备及存储介质 | |
CN112819022B (zh) | 基于神经网络的图像识别装置和图像识别方法 | |
CN111552652B (zh) | 基于人工智能芯片的数据处理方法、装置和存储介质 | |
CN117727010A (zh) | 目标检测方法、图像脱敏方法、设备、介质及车辆 | |
CN111428567B (zh) | 一种基于仿射多任务回归的行人跟踪系统及方法 | |
KR20220039313A (ko) | 뉴럴 네트워크 연산 처리 방법 및 장치 | |
Saussard et al. | Optimal performance prediction of ADAS algorithms on embedded parallel architectures | |
US11829119B2 (en) | FPGA-based acceleration using OpenCL on FCL in robot motion planning | |
CN111506522B (zh) | 数据处理设备及方法 | |
Ye et al. | Fast background modeling using GMM on GPU | |
KR102516184B1 (ko) | Gpu 데이터 입출력 가속화 방법 |
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 |