CN114445607A - 存算一体低功耗一体化图像识别系统及方法 - Google Patents
存算一体低功耗一体化图像识别系统及方法 Download PDFInfo
- Publication number
- CN114445607A CN114445607A CN202111659219.9A CN202111659219A CN114445607A CN 114445607 A CN114445607 A CN 114445607A CN 202111659219 A CN202111659219 A CN 202111659219A CN 114445607 A CN114445607 A CN 114445607A
- Authority
- CN
- China
- Prior art keywords
- storage
- calculation
- data
- image
- weight
- 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.)
- Pending
Links
Images
Classifications
-
- 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
- G06N3/045—Combinations of networks
-
- 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/08—Learning 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
【技术领域】
本发明涉及图像识别领域,更具体地,涉及一种存算一体低功耗一体化图 像识别系统及方法。
【背景技术】
近年来,基于深度神经网络的图像识别方法取得了一系列突破性进展,应 用效果显著,这与芯片算力随摩尔定律的增长是密不可分的。目前,图像识别 的实现方式主要有两类:一类是,通过相机实现图像采集,并将其推送至云端 计算机进行图像识别,这种模式流程长且感知时延大,对复杂时变环境的实时 感知难度较大,计算资源需求量大且能耗高;另一类方式是,采用本地计算实 现图像识别,具有实时性强、保护隐私、节省网络和云端资源等优点,具有更 广泛的适用场景。为实现本地图像识别,一方面深度神经网络模型的计算资源 需求大,另一方面,对于终端系统,其能源、体积、重量通常受限(尤其是对 于泛在部署的物联网终端),因此亟需低功耗、高能效比的方法和系统来实现 在本地化的图像识别。
为解决图像识别系统中,深度神经网络的推理中用到大量的网络权重数据 的问题,一种形式是基于CPU和GPU/DSP/FPGA/ASIC搭配DRAM、FLASH (闪存)组成。如:中国专利CN112308096A公开的基于Jetson Nano GPU 芯片和神经网络模型,采用cuda编程语言实现的图像进行系统。中国专利 CN113011223A公开的基于FPGA芯片的图像识别方法、系统、设备和存储介 质。由于上述技术方案的架构属于传统的存储和运算分离的冯·诺伊曼架构,仍 存在“存储墙”与“功耗墙”瓶颈。另外一种形式是采用存算一体架构,该结 构突破冯·诺依曼计算架构瓶颈,直接利用存储器进行数据处理,从而把数据存 储与计算融合在一起,相比基于冯·诺依曼架构的传统计算系统,能大大减少 数据搬运的时间和能耗。如YaoP,Wu H,Gao B,et al.发表的论文“Fully Hardware-implemented MemristorConvolutional Neural Network”基于一个 2Mbit的RRAM存算阵列,在MNIST数据集(图片分辨率28*28)上实现了 0-9手写数字识别。
但是,基于GPU芯片实现图像识别终端系统,虽然计算能力较强,但是体 积和功耗都比较大,难以满足电池供电的小体积Always-On型低功耗图像识别 需求。基于FPGA芯片实现的图像识别终端系统,虽然其体积可控、计算性能 也较强,但其功耗仍较大,能效比不高,对满足电池供电的小体积Always-On 型低功耗图像识别需求仍存在困难。采用存算一体结构进行图像识别,目前主 要还处于实验室探索阶段。Yao的论文只在实验室场景下,基于RRAM存算一 体阵列开发板,对MNIST数据集中的静态手写数字图片实现了识别,其开发板 体积较大,且没有实现包括图像数据采集、预处理、图像识别的低功耗小型化 一体化架构和系统,其实现的神经网络只包括5层,其系统没有实现实际场景 下视频流中的图像识别。
【发明内容】
为了克服上述现有技术的不足,尤其为满足电池供电的Always-On型图像 识别任务的要求,针对前述现有技术功耗较高、体积较大、一体化程度不高的 问题,本发明提出一种低功耗、小型一体化图像识别系统和方法。
一方面,本发明提出了一种存算一体的图像识别系统,包括:低功耗摄像 头、存算一体化芯片、低功耗输出模块和电池与电源电路,其中,
低功耗摄像头,用于采集图像数据,
存算一体化芯片,其内嵌了图像识别神经网络模型算法,用于基于神经网 络模型的图像分析和识别;
低功耗输出模块,用于显示识别结果;
电池与电源电路模块,用于为系统各个模块提供所需的电源。
所述存算一体化芯片进一步包括:
存算阵列、片上SRAM、片上FLASH、算术逻辑单元与控制单元、以及输 入输出I/O接口,其中,所述存算阵列由存算单元以Crossbar阵列的形式构成, 负责进行快速的矩阵乘加运算,所述存算单元由Flash或者MRAM非易失存储 器件实现;
所述片上SRAM用于计算指令、输入图像数据、神经网络输出和中间数据 的缓存;
所述片上FLASH用于存储计算指令代码;
所述算术逻辑单元与控制单元负责指令执行,通过所述I/O接口与外部芯 片或接口进行通信。
进一步的,在上述技术方案的基础上,还包括低功耗通信模块,用于将识 别结果或者其它相关数据传输到上位机或云端系统,并接收响应控制与更新指 令。
进一步的,在上述技术方案的基础上,所述低功耗通信模块采用NB-IoT 或LoRa进行通信。
进一步的,在上述技术方案的基础上,所述存算一体化芯片直接从所述低 功耗摄像头接收图像数据并进行预处理,基于所述存算一体化芯片内嵌的图像 识别神经网络模型算法进行图像分析识别,并综合业务逻辑给出识别结果,通 过所述低功耗输出模块输出,通过所述低功耗通信模块,由存算一体化芯片直 接进行数据、结果上传和控制、更新指令的接收和响应。
进一步的,在上述技术方案的基础上,还包括低功耗微处理器MCU,其中, 所述MCU负责将图像数据进行裁剪转换预处理,并将预处理后的图像数据送 至所述存算一体化芯片进行识别;
所述MCU还根据存算一体化芯片的模型识别结果,结合业务逻辑决策生 成识别结果送至所述低功耗输出模块;
所述MCU还负责调用所述低功耗通信模块与上位机系统建立通信,并根 据识别结果和业务逻辑传输识别结果数据。
另一方面,本发明还提出了一种基于上述系统的存算一体的图像识别方法, 包括:
存算一体图像识别模型开发过程和存算一体图像识别过程。
进一步的,在上述技术方案的基础上,所述存算一体图像识别模型开发过 程包括:
训练数据采集与制作步骤:训练数据集包括三部分,第一部分基于所述存 算一体低功耗一体化图像识别系统进行采集和标注,第二部分通过开源人脸数 据集进行标注,第三部分数据基于前面两部分数据集进行包括图像加噪、仿射 变换的数据扩增手段制作;
面向存算一体的轻量化图像识别模型训练步骤:采用基于知识蒸馏的存算 一体轻量化图像识别模型训练方法,进行图像识别模型训练;
存算一体芯片模型嵌入步骤:采用神经网络模型算法在所述存算一体化芯 片上的嵌入方法,将图像识别模型移植嵌入到所述存算一体化芯片。
进一步的,在上述技术方案的基础上,所述存算一体图像识别过程包括下 述步骤:
图像数据采集步骤:基于所述低功耗摄像头,根据场景需求,以一定的帧 率连续采集特定分辨率的待识别的图像;
图像预处理步骤:对输入的所述待识别的图像进行格式包括转换、裁剪、 大小转换、滤波的预处理,预处理后的图像输入到所述存算一体化芯片进行识 别;
存算一体图像识别步骤:基于所述存算一体化芯片和内嵌的图像识别神经 网络模型算法,对所述预处理后的图像进行分析识别;
识别结果输出步骤:综合存算一体图像识别步骤给出的分析识别结果和业 务逻辑,给出最终识别结果。
进一步的,在上述技术方案的基础上,所述基于知识蒸馏的存算一体轻量 化图像识别模型训练方法,包括:
教师网络训练步骤:根据图像识别应用需求,选择AlexNet、ResNet50、ResNet101、或VGG网络架构,预训练一个深层的图像识别教师网络模型;
面向存算一体的学生网络训练步骤:根据存算一体化芯片的存算阵列大小 和算力,设计全卷积网络作为学生网络,全卷积网络由卷积模块堆叠而成,卷 积模块由卷积层、Pooling层、Relu激活函数顺序组成;以预训练的深层图像 识别教师网络作为指导,以交叉熵损失作为知识蒸馏的误差损失函数,训练面 向存算一体的学生网络。
进一步的,在上述技术方案的基础上,所述嵌入方法包括:
神经网络模型拆解步骤:对训练得到的图像识别的神经网络模型进行解析, 获取模型各层算子类型和权重参数;
权重定点化步骤:对所述神经网络的权重参数逐层进行归一化后,再进行 8比特定点化处理;
输入输出定点化步骤:采用自适应浮动定点化的策略,对每帧每个算子输 入输出的数据进行检索、缩放,并使得定点化后的数据有效位最多;
权重排布与修正步骤:采用并行循环式的卷积网络存算一体实现方法,实 现卷积网络层的权重排布;对定点化后的权重,根据存算阵列的电路和物理特 性进行修正,直至满足存算阵列的高精度模拟计算需求;
计算流水排布步骤:所述神经网络模型逐层进行计算,对每一层卷积神经 网络,采用并行循环式的卷积网络存算一体实现方法进行计算;如果图像的分 辨率不大于320×320,则将所述图像整体输入到各层神经网络进行计算,否则 对所述图像采用图片分块后,逐块输入到各层神经网络进行计算;
汇编代码生成步骤:根据权重排布、计算流水排布情况,生成存算一体芯 片上的模型算法汇编代码;
权重烧录步骤:将权重排布和修正后的神经网络的权重参数写入所述存算 一体化芯片的存算阵列中;
机器代码生成与下载步骤:汇编生成存算一体化芯片机器代码并下载到存 算一体化芯片的片上FLASH中;
测试与调试步骤:进行量化、定点化效果检验测试与优化,并评估每一层 计算所需要的时间消耗、权重存储消耗、缓存消耗,测试整体运行性能指标, 如果满足应用需求,则嵌入流程结束,否则重复上述所有步骤。
进一步的,在上述技术方案的基础上,所述识别结果输出步骤中的所述最 终识别结果以LED灯组或LCD屏等形式进行展示,或者通过所述低功耗通信 模块将识别结果上传到云端。
进一步的,在上述技术方案的基础上,所述并行循环式的卷积网络存算一 体实现方法,其在单输入通道、单卷积核的情况下的步骤包括:
设N为完整的输入图像或中间层特征图的宽度,卷积核大小为m×m,步 长为d,其中,N,d、m均为正整数,d≤m,
权重排布步骤:首先将所述卷积核按列拆分维m个m维权重向量,并首尾 连接成一个m1维的权重向量WS(1),其中m1为m与m相乘后的结果;然后 按循环移位的方式将权重向量WS(1)的后d1维移至前d1维,形成权重向量 WS(2),其中d1为d与m的相乘后的结果;与形成WS(2)的过程类似,继续 循环移位p-2次,每循环一次得到一个权重向量,则共形成p个权重向量,这 p个权重向量记为:WS(i),其中1≤i≤p,p=LCM(d,m),LCM(d,m)表示d和 m的最小公倍数;将得到的上述p个权重向量并行排列形成最后的卷积核权重 排布;
数据输入与计算步骤:首先将卷积核覆盖的输入图像数据块或特征图数据 块按列排成m1维向量作为输入数据S(1),一一对应输入存算阵列,并打开权 重向量WS(1)对应的列,输出一次矩阵乘加结果;
卷积核按所述步长横向滑动后,其覆盖的输入图像数据块或特征图数据块 较滑动前新增的部分记为S+,较滑动前减少的部分记为S-,用S+替换数据S1 中的S-对应部分,即用卷积核新覆盖的数据循环替换其不再覆盖的数据,其余 部分不变,得到输入数据S(2),一一对应输入存算阵列,存算阵列打开对应的 权重向量WS(2)对应的列,给出矩阵乘加结果;
与得到输入数据S(2)类似,继续按所述步长横向滑动所述卷积核,每滑动 一次,得到一个新的输入数据,记为:S(q+1),对应输入到存算阵列,存算阵 列打开所述新的输入数据S(q+1)对应的权重向量WS(q+1)对应的列,给出矩阵 乘加运算结果,其中,q为卷积核横向滑动的次数,2≤q≤N-m;
当一轮横向滑动结束后,则纵向滑动一个步长,此时按上述得到输入数据 S(1),S(2),S(q+1)的方式按步长横向滑动所述卷积核,生成相应的输入数据, 打开对应的权重向量对应的列并计算得到结果,直至完成所述完整输入图像或 特征图的卷积计算;
该过程中输入数据的更新量只需要全量输入数据的d/m。可见,采用本发 明的技术方案,大大降低了数据更新量,同时也有效地降低了使用功耗。其中, 作为更优的技术方案,所述m为3,d为1。
进一步的,在上述技术方案的基础上,所述并行循环式的卷积网络存算一 体实现方法在多输入通道、多卷积核的情况下的步骤包括:
设N为完整输入图像或中间层特征图的宽度,输入通道数为s,卷积核的 个数为k,每个卷积核大小为s×m×m,步长为d,其中,N、k、s、m、d均 为正整数,d≤m,
权重排布步骤:对第一个卷积核,将卷积核s个通道的每个通道按列分成 m个m维权重向量,并首尾连接成一个m1维的权重向量WS(1),其中m1为 m与m的相乘的结果;将s个通道对应的向量连接为一个m2维的权重向量并 排布为总的一列,得到第一个卷积核的排布,其中,m2为s与m1相乘的结果; 对其他卷积核采用同样方法各排列为一列,并与第一个卷积核并列排布,形成 k列的权重排布块WSB(1);
对每个卷积核的每个通道的m个m1维权重向量,按循环移位的方式排列 成一个m2维权重向量,k个通道对应的k个m2维权重向量并行排布形成一个 新的k列的权重排布块;每循环一次得到一个权重排布块,共得到p个权重排 布块,每个权重排布块记为:WSB(i),其中1≤i≤p,p=LCM(d,m),LCM(d,m) 表示d和m的最小公倍数;
数据输入与计算步骤:首先将卷积核大小的输入图像数据块或特征图数据 块的每个通道按列排成m1维向量,将s个通道的m1维向量连接为m2维向量, 形成输入数据S(1),一一对应输入存算阵列,并打开权重排布块WSB(1),并 行输出与k个卷积核的矩阵乘加结果;
卷积核按步长滑动后,每个输入通道均用卷积核新覆盖的部分数据循环更 新不再覆盖的部分数据,形成输入数据S(2),然后打开权重排布块WSB(2), 并行输出与k个卷积核的矩阵乘加结果;
继续按所述步长横向滑动所述卷积核,用得到所述输入数据S(2)的类似的 方法得到新的输入数据,记为S(q+1),存算阵列打开新的输入数据S(q+1)对应 的权重排布块WSB(q+1),并行给出k个卷积核的矩阵乘加运算结果,其中,q 为卷积核横向滑动的次数,2≤q≤N-m;
当一轮横向滑动结束后,则纵向滑动一个步长,此时按上述得到输入数据 S(1),S(2),S(q+1)的方式按步长横向滑动所述卷积核,生成相应的输入数据, 打开对应的权重排布块计算得到结果,直至完成所述完整输入图像或特征图的 卷积计算。其中,作为更优的技术方案,所述s、m,k均为3,d为1。
基于本发明的发明构思,能使得本发明获得如下有益的技术效果:
将存算一体化芯片和低功耗摄像头、低功耗MCU(可选)、电源模组、低 功耗通信模块等部件进行一体化设计,并充分利用存算一体化芯片的低功耗、 高能效特性,进行图像识别深度神经网络推理计算。由于图像识别系统的主要 计算需求在于图像识别深度神经网络计算,因此,结合其他低功耗组件,存算 一体图像识别系统可实现低功耗、高能效的特点。基于该系统和方法可实现 Always-On型低功耗、小型一体化图像识别相关应用,包括但不限于正脸识别、 人脸识别、天气识别、手势识别等。例如,运行正脸识别模型推理时,存算一 体芯片功耗小于30mW,系统总体功耗可小于100mW。
【附图说明】
图1为本发明提出的存算一体低功耗一体化图像识别系统的组成结构的一 实施方式。
图2为本发明提出的存算一体低功耗一体化图像识别系统组成结构另一实 施方式。
图3为本发明提出的存算一体化芯片架构的一实施方式。
图4为本发明提出的存算一体的图像识别模型开发流程及存算一体图像识 别推理过程的流程图的一实施方式。
图5为本发明提出的基于知识蒸馏的存算一体低功耗一体化的图像识别模 型训练方法的一实施方式。
图6为本发明提出的面向存算一体的图像识别网络模型的一实施方式。
图7为本发明提出的存算一体芯片上的神经网络模型算法嵌入流程的一实 施方式。
图8为单通道单卷积核并行循环式的卷积网络的存算一体实现方法示意图。
图9为多通道多卷积核并行循环式的卷积网络的存算一体实现方法示意图。
【具体实施方式】
为了便于理解,本具体实施方式是本发明提出的存算一体的图像识别系统 及方法的优选实施例,以详细说明本发明的结构和发明点,但并不作为本发明 权利要求的限定保护范围。
参见图1,针对图像分辨率较高、预处理任务较重的场景,一个优选实施例 给出的存算一体低功耗一体化图像识别系统的组成结构,包括6个基本模块, 分别是低功耗摄像头、低功耗MCU、存算一体化芯片、低功耗输出模块、低功 耗通信模块和电池与电源电路。其中:
(1)低功耗摄像头,负责采集图像数据,并传送到低功耗MCU。图像采集 分辨率可根据应用需求设置为720p/VGA/QVGA等,可采集整幅图片或基于摄像 头自动裁剪后的图片,视场角不小于30°,焦距可根据场景需求配置。
(2)低功耗MCU:(a)负责将图像数据进行裁剪转换等预处理,并将预处 理后的图像数据送至存算一体化芯片进行识别;(b)同时负责存算一体化芯片 间的数据切分协同和任务调度;(c)根据存算一体化芯片的模型识别结果,结 合业务逻辑决策生成识别结果送至低功耗输出模块;(d)负责调用低功耗通信 模块与上位机系统建立通信,并根据识别结果和业务逻辑传输识别结果数据。
(3)存算一体化芯片,其内嵌了图像识别神经网络模型算法,负责进行基 于神经网络模型的图像分析和识别。存算一体化芯片具有低功耗、高能效的特 点。
(4)低功耗通信模块,负责将识别结果等数据传输到上位机或云端系统, 并接受响应控制与更新指令,可采用NB-IoT或LoRa进行通信。
(5)低功耗输出模块,包括低功耗LCD显示屏和(或)LED指示灯组。低 功耗LCD显示屏用于显示原始的图像及识别结果,LED指示灯组用于指示识别 结果。例如,基于该系统进行正脸识别时,红、黄、绿三个指示灯亮分别表示 识别到正脸、左侧脸、右侧脸。输出模块还可输出特定电平信号用于接驳锁具 等外部设备。
(6)电池与电源电路模块,为系统各个模块提供所需的电源,可输出多个 不同的电压以满足系统不同模块的需要,包括3.3V、2.8V、1.8V、1.5V等。
参见图2,作为另一个优选实施例给出的存算一体低功耗一体化图像识别系 统,主要针对图像预处理任务较轻的场景,包括:低功耗摄像头、存算一体化 芯片、低功耗输出模块、电池与电源电路4个基本模块,以及1个可选的低功耗 通信模块。对于不需要联网的图像识别场景,可以不配置低功耗通信模块,因 而比图1所示的实施方式一具有更低的功耗、更小的体积和成本。其中:
(1)低功耗摄像头、低功耗输出模块、电池与电源电路模块的功能作用与 图1所示的实施方式的对应模块相似。
(2)存算一体化芯片,直接从低功耗摄像头接收图像数据并进行预处理, 基于芯片内嵌的图像识别神经网络模型算法进行图像分析识别,并综合业务逻 辑给出识别结果,通过低功耗输出模块输出。对于配置了低功耗通信模块的系 统,有存算一体化芯片直接负责进行数据、结果上传和控制、更新指令接收响 应。
对于深度神经网络,其主要计算是矩阵乘加运算,本发明利用存算一体架 构突破冯·诺依曼计算架构瓶颈,直接利用存储器进行矩阵乘加运算,从而把数 据存储与计算融合在一起,相比基于冯·诺依曼架构的传统计算系统,能大大 减少数据搬运的时间和能耗,具有低功耗、高能效的特点,更适合深度神经网 络计算。参见图3,为本发明提出的存算一体化芯片的架构的一优选实施例,可 应用于图1、图2所示的实施方式中,存算一体化芯片主要由存算阵列、片上 SRAM(静态随机存取存储器)、算术逻辑单元与控制单元、以及I/O接口等组成。 其中,存算阵列由存算单元以Crossbar阵列的形式构成,负责进行快速的矩阵 乘加运算,存算单元可以由Flash(闪存)/MRAM(磁性随机存储器)等非易失 存储器件实现;片上SRAM用于计算指令、输入图像数据、神经网络输出和中间 数据的缓存;算术逻辑单元与控制单元负责指令执行,通过I/O接口与外部芯片 或接口进行通信。
另一方面,本发明提出的存算一体的图像识别方法总体包括:存算一体图 像识别模型开发过程、存算一体图像识别过程。存算一体图像识别模型开发过 程主要基于采集的数据样本训练模型并移植嵌入到存算一体化芯片,包括训练 数据采集与制作、模型设计与训练、存算一体芯片模型嵌入3个步骤。存算一体 图像识别过程,包括图像数据采集、图像预处理、存算一体图像识别、识别结 果输出4个步骤,是实际应用中的识别推理过程。存算一体的图像识别方法适用 一般的图像识别场景,包括但不限于正脸识别、人脸识别、天气识别、手势识 别等。
如图4所示,存算一体图像识别模型开发过程的一个实施方式具体包括:
(a)训练数据采集与制作
训练数据集主要由三部分组成,第一部分基于本发明的存算一体低功耗一 体化图像识别系统进行采集和标注,第二部分通过开源人脸数据集进行标注, 第三部分数据基于前面两个部分数据集进行图像加噪、仿射变换等数据扩增手 段制作。
(b)面向存算一体的轻量化图像识别模型训练
考虑到存算一体芯片的存算阵列、片上SRAM等资源有限,为降低模型大小、 简化算子复杂度,采用基于知识蒸馏的存算一体轻量化图像识别模型训练方法, 进行图像识别模型训练。
(c)存算一体芯片模型嵌入
采用神经网络模型算法在存算一体芯片上的嵌入方法,将图像识别模型移 植嵌入到存算一体芯片。
图4还示出了存算一体图像识别过程,具体步骤包括:
(a)图像数据采集,基于低功耗摄像头,根据场景需求,以一定的帧率连 续采集特定分辨率的待识别的图像。
(b)图像预处理,对输入的图像进行格式转换、裁剪、大小转换、滤波等 预处理,预处理后的图像输入存算一体化芯片进行识别。
(c)存算一体图像识别,基于存算一体化芯片和内嵌的图像识别神经网络 模型算法,进行图像分析和识别。
(d)识别结果输出,综合存算一体图像识别结果和业务逻辑,给出最终识 别结果,并以LED灯组或LCD屏等形式进行展示,也可根据需求设置通过低功耗 通信模块将识别结果上传到云端。
图5示出了基于知识蒸馏的存算一体轻量化图像识别模型训练方法的一个 具体实施方式。首先根据图像识别应用需求,预训练一个较大的图像识别教师 网络模型,如ResNet50等;然后基于知识蒸馏架构,训练面向存算一体的轻量 化图像识别网络。面向存算一体的轻量化图像识别网络,根据存算一体化芯片 的存算阵列大小和算力,可以采用全卷积神经网络、基于MobileNet等轻量化架 构的神经网络。
以正脸识别为例(识别图像是否为正脸/左侧脸/右侧脸/无人脸),面向存 算一体的轻量化图像识别网络模型,采用卷积神经网络模型结构,包括输入层、 3层卷积层、3层池化层(下采样层)、Dropout层、全连接层和输出层,具体如图 6所示。
输入图像分辨率为80×80,预训练的教师网络ResNet50的参数大小为 25.6MB,所需算力为1.14G FLOPS;通过知识蒸馏后,所训练的学生网络作为面 向存算一体的正脸检测模型,其模型大小仅为436kB,所需算力降低到25.8M FLOPS。
存算一体芯片上的神经网络模型算法嵌入方法,包括存算一体芯片上的神 经网络模型算法嵌入流程和一种并行循环式的卷积网络存算一体实现方法。
存算一体芯片上的神经网络模型算法嵌入方法流程如图7所示,主要包括神 经网络模型拆解、权重定点化、权重排布与修正、权重烧录、输入输出定点化、 计算流水排布、汇编代码生成、机器代码生成与下载、测试调试等步骤。
(a)神经网络模型拆解。对训练得到的神经网络模型(ONNX格式的模型) 进行解析,获取模型各层算子类型和权重参数。
(b)权重定点化。对神经网络权重逐层进行归一后,再进行进行8比特定 点化处理。
(c)输入输出定点化。采用自适应浮动定点化的策略,对每帧每个算子输 入输出的数据进行检索、缩放,并使得定点化后数据有效位最多。
(d)权重排布与修正。采用并行循环式的卷积网络存算一体实现方法,实 现卷积网络层的权重排布。对定点化后的权重,根据存算一体阵列的电路和物 理特性进行修正,满足存算一体化阵列的高精度模拟计算。
(e)计算流水排布。所述神经网络模型逐层进行计算,对每一层卷积神经 网络,采用并行循环式的卷积网络存算一体实现方法进行计算;如果图像的分 辨率不大于320×320,则将所述图像整体输入到各层神经网络进行计算,否则 对所述图像采用图片分块后,逐块输入到各层神经网络进行计算。其中,采用 并行循环式的卷积网络存算一体实现方法,实现单层卷积神经网络的数据输入 和卷积计算。
(f)汇编代码生成。根据计算流水排布、权重排布情况,生成存算一体芯 片上的模型算法汇编代码。
(g)权重烧录。将排布和修正后的神经网络权重写入存算一体化芯片的存 算队列中。
(h)机器代码生成与下载。汇编生成存算一体化芯片机器代码并下载到存 算一体化芯片的片上FLASH中。
(i)测试与调试。进行量化、定点化效果检验测试与优化,并评估每一层 计算所需要的时间消耗、权重存储消耗、缓存消耗,测试整体运行性能指标。 如果满足应用需求,则嵌入流程结束,否则重复上述所有步骤
并行循环式的卷积网络存算一体实现方法如图8、图9所示,其中图8针对单 输入通道、单卷积核的情况,图9针对多输入通道、多卷积核的情况。
参见图8示出的单通道单卷积核并行循环式的卷积网络存算一体实现方法, 对单输入通道、单卷积核的情况(为便于理解,设卷积核大小为3×3,步长stride 为1,但不限于上述大小的卷积核和步长),卷积网络的存算一体实现方法为:
①权重排布。将3*3的卷积核按列分成3个3维向量,3个向量循环替换排列3 次,形成3列9维向量排布,记为权重WS(1)、WS(2)、WS(3)。
②数据输入与计算。首先将卷积核大小的输入图像数据块(或特征图数据 块)按列排成9维向量,得到输入数据S1,一一对应输入存算阵列,并打开权重 WS(1)对应的列,输出一次矩阵乘加结果;卷积核滑动后,输入数据S2只需要进 行部分更新(卷积核新覆盖的部分,即图中用In10、In11、In12更新In1、In2、 In3),然后,存算阵列打开对应的权重WS(2)对应的列,即使用所述列对应的 数据,给出矩阵乘加结果,该过程数据更新量只需要全量输入数据更新的d/k (d为步长,此处为1,k为卷积核边长,此处k=3),可有效减少数据准备时间, 提高计算效率;如此重复更新输入数据,打开存算阵列的对应列,给出矩阵乘 加运算结果,从而快速实现卷积运算过程。
参见图9示出的多通道多卷积核并行循环式的卷积网络存算一体实现方法, 对多输入通道、多卷积核的情况(为便于理解,设输入通道数为3,3个卷积核, 卷积核大小为3×3×3,步长stride为1,但不限于上述数值的通道数、卷积核 和步长),卷积网络的存算一体实现方法为:
①权重排布。对第一个卷积核1:将3通道卷积核的每个通道(3×3)按列 分成3个3维向量,并分别按相同的顺序排成1列(9维向量);将3个通道对应的 向量连接为一个向量(27维)并排布为总的1列,得到卷积核1的排布。对卷积 核2、卷积核3、…、卷积核n,采用同样方法各排列为一列,并与卷积核1并列 排布,形成权重排布块WSB(1)。对每个卷积核的每个通道的3个3维向量,按循 环替换的方式重新排列,由此重新形成权重排布块WSB(2)、权重排布块WSB(3)。
②数据输入与计算。首先将卷积核大小的输入图像数据块(或特征图数据 块)的每个通道按列排成9维向量,3个通道连接为27维向量,形成输入数据S(1), 一一对应输入存算阵列,并打开权重排布块WSB(1),即使用所述权重排布块对 应的数据,并行输出与多个卷积核的矩阵乘加结果;卷积核滑动后,每个输入 通道均对应更新部分数据(卷积核新覆盖的部分),形成输入数据S(2),然后 打开权重排布块WSB(2),并行输出与多个卷积核的矩阵乘加结果,同样,该过 程数据更新量只需要全量输入数据更新的d/k(d为步长,此处d=1,k为卷积核 边长,此处k=3),可有效减少数据准备时间,提高计算效率;如此重复更新输 入数据,打开存算阵列的对应权重排布块,并行给出多个卷积核的矩阵乘加运 算结果,从而并行快速地实现多输入通道多卷积核情况下的卷积运算。
通过上述并行循环式的卷积网络存算一体实现方法,可实现神经网络权重 的紧凑排布、并行高效的卷积网络计算,从而使存算一体芯片在运行图像识别 神经网络模型时具有低功耗、高能效的特点。
以上是本发明的一些具体实施方式,但本发明并不仅局限于上述方式,所 有对本发明技术特征的简单变换,凡依本发明专利申请范围所述的构造、特征 及原理所做的等效变化或修饰,都将落入本发明的保护范围之内。
Claims (15)
1.一种存算一体低功耗一体化图像识别系统,其特征在于包括:低功耗摄像头、存算一体化芯片、低功耗输出模块和电池与电源电路,其中,
低功耗摄像头,用于采集图像数据,
存算一体化芯片,其内嵌了图像识别神经网络模型算法,用于基于神经网络模型的图像分析和识别;
低功耗输出模块,用于显示识别结果;
电池与电源电路模块,用于为系统各个模块提供所需的电源。
所述存算一体化芯片进一步包括:
存算阵列、片上SRAM、片上FLASH、算术逻辑单元与控制单元、以及输入输出I/O接口,其中,所述存算阵列由存算单元以Crossbar阵列的形式构成,负责进行快速的矩阵乘加运算,所述存算单元由Flash或者MRAM非易失存储器件实现;
所述片上SRAM用于计算指令、输入图像数据、神经网络输出和中间数据的缓存;
所述片上FLASH用于存储计算指令代码;
所述算术逻辑单元与控制单元负责指令执行,通过所述I/O接口与外部芯片或接口进行通信。
2.如权利要求1所述的系统,其特征在于还包括低功耗通信模块,用于将识别结果或者其它相关数据传输到上位机或云端系统,并接收响应控制与更新指令。
3.如权利要求2所述的系统,其特征在于所述低功耗通信模块采用NB-IoT或LoRa进行通信。
4.如权利要求2或3所述的系统,其特征在于:
所述存算一体化芯片直接从所述低功耗摄像头接收图像数据并进行预处理,基于所述存算一体化芯片内嵌的图像识别神经网络模型算法进行图像分析识别,并综合业务逻辑给出识别结果,通过所述低功耗输出模块输出,通过所述低功耗通信模块,由存算一体化芯片直接进行数据、结果上传和控制、更新指令的接收和响应。
5.如权利要求2或3所述的系统,其特征在于还包括低功耗微处理器MCU,其中,所述MCU负责将图像数据进行裁剪转换预处理,并将预处理后的图像数据送至所述存算一体化芯片进行识别;
所述MCU还根据存算一体化芯片的模型识别结果,结合业务逻辑决策生成识别结果送至所述低功耗输出模块;
所述MCU还负责调用所述低功耗通信模块与上位机系统建立通信,并根据识别结果和业务逻辑传输识别结果数据。
6.一种基于权利要求4或5所述系统的存算一体的图像识别方法,其特征在于包括:
存算一体图像识别模型开发过程和存算一体图像识别过程。
7.如权利要求6所述的图像识别方法,其特征在于所述存算一体图像识别模型开发过程包括:
训练数据采集与制作步骤:训练数据集包括三部分,第一部分基于所述存算一体低功耗一体化图像识别系统进行采集和标注,第二部分通过开源人脸数据集进行标注,第三部分数据基于前面两部分数据集进行包括图像加噪、仿射变换的数据扩增手段制作;
面向存算一体的轻量化图像识别模型训练步骤:采用基于知识蒸馏的存算一体轻量化图像识别模型训练方法,进行图像识别模型训练;
存算一体芯片模型嵌入步骤:采用神经网络模型算法在所述存算一体化芯片上的嵌入方法,将图像识别模型移植嵌入到所述存算一体化芯片。
8.如权利要求7所述的图像识别方法,其特征在于所述存算一体图像识别过程包括下述步骤:
图像数据采集步骤:基于所述低功耗摄像头,根据场景需求,以一定的帧率连续采集特定分辨率的待识别的图像;
图像预处理步骤:对输入的所述待识别的图像进行格式包括转换、裁剪、大小转换、滤波的预处理,预处理后的图像输入到所述存算一体化芯片进行识别;
存算一体图像识别步骤:基于所述存算一体化芯片和内嵌的图像识别神经网络模型算法,对所述预处理后的图像进行分析识别;
识别结果输出步骤:综合存算一体图像识别步骤给出的分析识别结果和业务逻辑,给出最终识别结果。
9.如权利要求8所述的图像识别方法,其特征在于所述基于知识蒸馏的存算一体轻量化图像识别模型训练方法,包括:
教师网络训练步骤:根据图像识别应用需求,选择AlexNet、ResNet50、ResNet101、或VGG网络架构,预训练一个深层的图像识别教师网络模型;
面向存算一体的学生网络训练步骤:根据存算一体化芯片的存算阵列大小和算力,设计全卷积网络作为学生网络,全卷积网络由卷积模块堆叠而成,卷积模块由卷积层、Pooling层、Relu激活函数顺序组成;以预训练的深层图像识别教师网络作为指导,以交叉熵损失作为知识蒸馏的误差损失函数,训练面向存算一体的学生网络。
10.如权利要求9所述的图像识别方法,其特征在于所述嵌入方法包括:
神经网络模型拆解步骤:对训练得到的图像识别的神经网络模型进行解析,获取模型各层算子类型和权重参数;
权重定点化步骤:对所述神经网络的权重参数逐层进行归一化后,再进行8比特定点化处理;
输入输出定点化步骤:采用自适应浮动定点化的策略,对每帧每个算子输入输出的数据进行检索、缩放,并使得定点化后的数据有效位最多;
权重排布与修正步骤:采用并行循环式的卷积网络存算一体实现方法,实现卷积网络层的权重排布;对定点化后的权重,根据存算阵列的电路和物理特性进行修正,直至满足存算阵列的高精度模拟计算需求;
计算流水排布步骤:所述神经网络模型逐层进行计算,对每一层卷积神经网络,采用并行循环式的卷积网络存算一体实现方法进行计算;如果图像的分辨率不大于320×320,则将所述图像整体输入到各层神经网络进行计算,否则对所述图像采用图片分块后,逐块输入到各层神经网络进行计算;
汇编代码生成步骤:根据权重排布、计算流水排布情况,生成存算一体芯片上的模型算法汇编代码;
权重烧录步骤:将权重排布和修正后的神经网络的权重参数写入所述存算一体化芯片的存算阵列中;
机器代码生成与下载步骤:汇编生成存算一体化芯片机器代码并下载到存算一体化芯片的片上FLASH中;
测试与调试步骤:进行量化、定点化效果检验测试与优化,并评估每一层计算所需要的时间消耗、权重存储消耗、缓存消耗,测试整体运行性能指标,如果满足应用需求,则嵌入流程结束,否则重复上述所有步骤。
11.如权利要求10所述的图像识别方法,其特征在于所述识别结果输出步骤中的所述最终识别结果以LED灯组或LCD屏等形式进行展示,或者通过所述低功耗通信模块将识别结果上传到云端。
12.如权利要求10所述的图像识别方法,其特征在于所述并行循环式的卷积网络存算一体实现方法,其在单输入通道、单卷积核的情况下的步骤包括:
设N为完整的输入图像或中间层特征图的宽度,卷积核大小为m×m,步长为d,其中,N,d、m均为正整数,d≤m,
权重排布步骤:首先将所述卷积核按列拆分维m个m维权重向量,并首尾连接成一个m1维的权重向量WS(1),其中m1为m与m相乘后的结果;然后按循环移位的方式将权重向量WS(1)的后d1维移至前d1维,形成权重向量WS(2),其中d1为d与m的相乘后的结果;与形成WS(2)的过程类似,继续循环移位p-2次,每循环一次得到一个权重向量,共形成p个权重向量,这p个权重向量记为:WS(i),其中1≤i≤p,p=LCM(d,m),LCM(d,m)表示d和m的最小公倍数;将得到的上述p个权重向量并行排列形成最后的卷积核权重排布;
数据输入与计算步骤:首先将卷积核覆盖的输入图像数据块或特征图数据块按列排成m1维向量作为输入数据S(1),一一对应输入存算阵列,并打开权重向量WS(1)对应的列,输出一次矩阵乘加结果;
卷积核按所述步长横向滑动后,其覆盖的输入图像数据块或特征图数据块较滑动前新增的部分记为S+,较滑动前减少的部分记为S-,用S+替换数据S1中的S-对应部分,即用卷积核新覆盖的数据循环替换其不再覆盖的数据,其余部分不变,得到输入数据S(2),一一对应输入存算阵列,存算阵列打开对应的权重向量WS(2)对应的列,给出矩阵乘加结果;
与得到输入数据S(2)类似,继续按所述步长横向滑动所述卷积核,每滑动一次,得到一个新的输入数据,记为:S(q+1),对应输入到存算阵列,存算阵列打开所述新的输入数据S(q+1)对应的权重向量WS(q+1)对应的列,给出矩阵乘加运算结果,其中,q为卷积核横向滑动的次数,2≤q≤N-m;
当一轮横向滑动结束后,则纵向滑动一个步长,此时按上述得到输入数据S(1),S(2),S(q+1)的方式按步长横向滑动所述卷积核,生成相应的输入数据,打开对应的权重向量对应的列并计算得到结果,直至完成所述完整输入图像或特征图的卷积计算;
该过程中输入数据的更新量只需要全量输入数据的d/m。
13.如权利要求10所述的图像识别方法,其特征在于所述并行循环式的卷积网络存算一体实现方法在多输入通道、多卷积核的情况下的步骤包括:
设N为完整输入图像或中间层特征图的宽度,输入通道数为s,卷积核的个数为k,每个卷积核大小为s×m×m,步长为d,其中,N、k、s、m、d均为正整数,d≤m,
权重排布步骤:对第一个卷积核,将卷积核s个通道的每个通道按列分成m个m维权重向量,并首尾连接成一个m1维的权重向量WS(1),其中m1为m与m的相乘的结果;将s个通道对应的向量连接为一个m2维的权重向量并排布为总的一列,得到第一个卷积核的排布,其中,m2为s与m1相乘的结果;对其他卷积核采用同样方法各排列为一列,并与第一个卷积核并列排布,形成k列的权重排布块WSB(1);
对每个卷积核的每个通道的m个m1维权重向量,按循环移位的方式排列成一个m2维权重向量,k个通道对应的k个m2维权重向量并行排布形成一个新的k列的权重排布块;每循环一次得到一个权重排布块,共得到p个权重排布块,每个权重排布块记为:WSB(i),其中1≤i≤p,p=LCM(d,m),LCM(d,m)表示d和m的最小公倍数;
数据输入与计算步骤:首先将卷积核大小的输入图像数据块或特征图数据块的每个通道按列排成m1维向量,将s个通道的m1维向量连接为m2维向量,形成输入数据S(1),一一对应输入存算阵列,并打开权重排布块WSB(1),并行输出与k个卷积核的矩阵乘加结果;
卷积核按步长滑动后,每个输入通道均用卷积核新覆盖的部分数据循环更新不再覆盖的部分数据,形成输入数据S(2),然后打开权重排布块WSB(2),并行输出与k个卷积核的矩阵乘加结果;
继续按所述步长横向滑动所述卷积核,用得到所述输入数据S(2)的类似的方法得到新的输入数据,记为S(q+1),存算阵列打开新的输入数据S(q+1)对应的权重排布块WSB(q+1),并行给出k个卷积核的矩阵乘加运算结果,其中,q为卷积核横向滑动的次数,2≤q≤N-m;
当一轮横向滑动结束后,则纵向滑动一个步长,此时按上述得到输入数据S(1),S(2),S(q+1)的方式按步长横向滑动所述卷积核,生成相应的输入数据,打开对应的权重排布块计算得到结果,直至完成所述完整输入图像或特征图的卷积计算。
14.如权利要求12所述的图像识别方法,其特征在于所述m为3,d为1。
15.如权利要求13所述的图像识别方法,其特征在于所述s、m,k均为3,d为1。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111659219.9A CN114445607A (zh) | 2021-12-30 | 2021-12-30 | 存算一体低功耗一体化图像识别系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111659219.9A CN114445607A (zh) | 2021-12-30 | 2021-12-30 | 存算一体低功耗一体化图像识别系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114445607A true CN114445607A (zh) | 2022-05-06 |
Family
ID=81365470
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111659219.9A Pending CN114445607A (zh) | 2021-12-30 | 2021-12-30 | 存算一体低功耗一体化图像识别系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114445607A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115439566A (zh) * | 2022-08-23 | 2022-12-06 | 中国电子科技南湖研究院 | 一种基于存算一体架构的压缩感知系统及方法 |
CN118379605A (zh) * | 2024-06-24 | 2024-07-23 | 之江实验室 | 一种图像识别大模型的部署方法、装置及存储介质 |
-
2021
- 2021-12-30 CN CN202111659219.9A patent/CN114445607A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115439566A (zh) * | 2022-08-23 | 2022-12-06 | 中国电子科技南湖研究院 | 一种基于存算一体架构的压缩感知系统及方法 |
CN118379605A (zh) * | 2024-06-24 | 2024-07-23 | 之江实验室 | 一种图像识别大模型的部署方法、装置及存储介质 |
CN118379605B (zh) * | 2024-06-24 | 2024-08-30 | 之江实验室 | 一种图像识别大模型的部署方法、装置及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN210428520U (zh) | 用于深度学习加速的集成电路 | |
Dong et al. | More is less: A more complicated network with less inference complexity | |
CN110059710B (zh) | 用于利用卷积神经网络进行图像分类的装置和方法 | |
CN111291809B (zh) | 一种处理装置、方法及存储介质 | |
CN107609641A (zh) | 稀疏神经网络架构及其实现方法 | |
CN117456297A (zh) | 图像生成方法、神经网络的压缩方法及相关装置、设备 | |
CN112561027A (zh) | 神经网络架构搜索方法、图像处理方法、装置和存储介质 | |
CN112529146B (zh) | 神经网络模型训练的方法和装置 | |
CN107578099A (zh) | 计算装置和方法 | |
CN114445607A (zh) | 存算一体低功耗一体化图像识别系统及方法 | |
CN109559799A (zh) | 医学图像语义描述方法、描述模型的构建方法及该模型 | |
CN112699958A (zh) | 一种基于剪枝和知识蒸馏的目标检测模型压缩与加速方法 | |
CN109086802A (zh) | 一种基于八元数卷积神经网络的图像分类方法 | |
CN112183637A (zh) | 一种基于神经网络的单光源场景光照重渲染方法及系统 | |
CN110222718B (zh) | 图像处理的方法及装置 | |
CN113012811B (zh) | 一种结合深度卷积网络和图神经网络的中医证候诊断和健康评价方法 | |
Ravikumar et al. | Effect of neural network structure in accelerating performance and accuracy of a convolutional neural network with GPU/TPU for image analytics | |
CN113326930A (zh) | 数据处理方法、神经网络的训练方法及相关装置、设备 | |
CN113011397A (zh) | 基于遥感图像4D-FractalNet的多因素蓝藻水华预测方法 | |
Zhang et al. | Summary of convolutional neural network compression technology | |
Xie et al. | Compressing convolutional neural networks with cheap convolutions and online distillation | |
CN111914993B (zh) | 基于非均匀分组的多尺度深度卷积神经网络模型构建方法 | |
CN117197632A (zh) | 一种基于Transformer的电镜花粉图像目标检测方法 | |
CN112532251A (zh) | 一种数据处理的方法及设备 | |
TWI769466B (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 |