赞
踩
CSDN下载链接:
https://download.csdn.net/download/qq_38649386/12920732
目录
2.5 ARM Cortex-M 32bit MCU性能图 11
4.3 ZynqUltraScale+MPSoC ZU3EG 开发板 17
6.1 树莓派4b Raspberry Pi 4B AI开发板套件 23
一种方案是按照ST官方案例选择STM32L4系列、STM32H747系列、STM32MP1系列芯片,使用STM32Cube.AI和X-LinuX-AI-CV工具包进行深度学习环境搭建和模型代码的移植与优化。
另一种,使用高端ARM嵌入式人工智能开发板进行开发测试。检索到的开发板有:EAIDK-310开发板、瑞芯微TB-RK3399Pro开发板和海思系列开发板。是高性能的ARM嵌入式开发平台,可面向边缘计算的人工智能开发,支持主流深度学习开发框架。
FPGA不适合做主控芯片,一般搭配CPU处理器进行计算加速任务。一般可搭配ARM芯片用FPGA做神经网络加速器,或者做相应FPGA视频图像加速处理。
可选用的AI芯片目前有K210。先单独使用AI芯片作为主控芯片的开发板做开发,并测试其效果。如果其总线能力不强可搭配CPU进行设计方案;如果视频处理能力不强可搭配FPGA进行设计。
面临挑战:1.模型大,参数多;2.训练缓慢;3.功耗;4.成本;
在这种情况下,在资源受限的设备上运行神经网络需要数据工程和数据科学方面的整体解决方案,这些方案有时候会被称为“算法和硬件协同设计”。
图 1.1
针对网络模型大、参数多等特点可对神经网络进行修剪处理,以减少网络参数,使其能够在有限硬件资源的嵌入式设备上运行。论文《Learning both Weights and Connections for Efficient Neural Networks》提出,训练一个神经网络,然后修剪其权值低于预设阈值的连接,最后重新训练稀疏网络,以学习剩余连接的最终权值。
根据边缘设备终端的特点做相应优化。
GPU在处理图形的时候,从最初的设计就能够执行并行指令,从一个GPU核心收到一组多边形数据,到完成所有处理并输出图像可以做到完全独立。由于最初GPU就采用了大量的执行单元,这些执行单元可以轻松的加载并行处理,而不像CPU那样的单线程处理。另外,现代的GPU也可以在每个指令周期执行更多的单一指令。所以GPU比CPU更适合深度学习的大量矩阵、卷积运算的需求。深度学习的应用与其原先的应用需求颇为类似。
图 1.2
英伟达以其大规模的并行GPU和专用GPU编程框架CUDA主导着当前的深度学习市场。但是越来越多的公司开发出了用于深度学习的加速硬件,比如谷歌的张量处理单元(TPU/Tensor Processing Unit)、英特尔的Xeon Phi Knight's Landing,以及高通的神经网络处理器(NNU/Neural Network Processor)。微软在提高其GPU集群的运算能力的同时也在探索使用其它的专用处理器
ARM最近宣布推出其计算库ACL为ARM Cortex-A系列CPU处理器和ARM Mali系列GPU实现了软件功能的综合集成。具体而言,ACL为CNNs提供了基本的构建模块,包括激活、卷积、全连接和局部连接、规范化、池化和softmax功能。这些功能正是我们建立推理机所需要的。
相比从头开始手动构建模型,我们需要一种更方便的方式来在物联网设备上提供深度学习能力。一个解决方案是实现一个深度学习的模型编译器,可以将给定的模型经过优化,编译为目标平台上的可执行代码。这种编译器的前端可以从主要的深度学习平台(包括MXNet、Caffe、TensorFlow等)解析模型。然后,优化器可以执行额外的优化,包括模型修剪,量化和异构执行。优化后,由代码生成器生成目标平台上可执行代码,可以是ACL(用于ARM设备),TensorRT(用于Nvidia GPU)或其他ASIC设备。
目前来说,GPU贵,功耗高,运行效率比FPGA高,易使用,但是FPGA功耗低,符合嵌入式设备需求。FPGA如果实现深度学习功能,还需要大批量使用,才能实现整体成本的降低,且需要与CPU相结合。
另外一个问题是,FPGA的大规模开发难度偏高,从业人员少。我们可以通过ARM战胜MIPS、以及STM32的迅速发展可以看到,一个好的生态环境,更多的从业人口,比技术、性价比本身更利于其发展。所以易用性是几个并行技术发展的一个重要考量维度。
要看设计者的建模方案。GPU的一个缺点是,他的组件模块是乘法器、加法器。虽然深度学习的参数都是数学模型,需要对RTL级别的变化,但是GPU的硬件资源是以乘法器、加法器这样量级的硬件单元组成的。如果GPU的预先配置与使用者的模型相差甚远。例如:加法器配置15个,乘法器配置15个。但实际使用的时候,乘法器使用量是15个,但是加法器只需要2个。这就浪费了13个加法器的资源。而FPGA是以查找表和触发器子单元,组合成任意配置运算单元。
在FPGA中,逻辑是并行地运行的,各个状态机同时都在工作,状态机之间可能会有信号交互,也可能毫无关系、各管各地工作。
图 1.3
从流水线计算的举例中可以看出,FPGA设计的加法器和乘法器,将本来B=A*2+1的运算拆分成C=A*2和B=C+1这两个部分,其中C为缓存器。然后,从本来需要三个时钟周期才能完成的运算任务,到现在每个时钟周期都有一个结果B计算完成,其中结果B与前两个时钟周期之前输入的A相对应。
图 1.4
从分布式流水线计算的例子中,FPGA将C=A*2=B*3的计算任务分为D=A*2和E=B*3两个计算任务,先A和B各自乘法运算,然后在缓存器中进行加法运算,缩短计算的时钟周期。
交替计算任务是FPGA要执行C=A+B的计算任务,但是加法器的执行时钟周期最高为100MHz,而寄存器最高可以达到300MHz。在A和B的输入更新频率在300MHz而加法器只有100MHz的情况下,需要考虑交替计算。
交替计算的基本结构如下图所示:
图 1.5
交替计算的基本思想是:
将计算单元复制若干份,交替地将输入的参数分配给各个计算单元,并且交替地将各个计算单元的计算结果输出,从而实现"以N倍的计算单元换取N倍的计算速度"。
模块的时序如下图所示:
图 1.6
可见,我们利用3个最高工作频率100MHz的加法器,等效地实现了1个最高工作频率300MHz的加法器。
在实际的FPGA并行计算中,常常将流水线计算、交替计算混合使用,来满足计算需求。这就是所谓的"混合型并行计算"。
对于低功耗的嵌入式设备,问题在于是否存在一个可靠的解决方案,能够将深度学习部署在云端,这样可以同时满足功耗和性能的要求。
然而,迁移到云端可能存在的问题是会导致至少2秒的延迟,甚至可能高达5秒,这不能满足我们实时性的要求。此外,延迟的剧烈抖动使得服务非常不稳定。将实时性深度学习任务迁移到云端是仍是一个需通过实际测试才可真正实施的解决方案。
深度学习的硬件加速器需要具备数据级别和流程化的并行性、多线程和高内存带宽等特性。另外,由于数据的训练时间很长,所以硬件架构必须低功耗。因此,效能功耗比是硬件架构的评估标准之一。
MCU嵌入式系统的特点:功耗低、成本低、开发周期短、实时性、响应性。
相对于HPC和云计算来说,边缘计算是一种算力的下沉。边缘计算是指靠近数据源头的一侧,采用网络、计算、存储、应用核心能力为一体的开放平台。网络边缘是可以从数据源到云计算中心之间的任意功能实体,这些实体搭载这融合网络、算力、存储、应用核心能力的边缘计算平台,为终端用户提供实时和智能的计算服务。和云计算相比的主要差异在于对数据处理和算法决策的不同,边缘计算更贴近数据源,而云计算是在云端进行计算,主要的差异体现在:多源异构计算、带宽负载、资源配置、安全防护和隐私保护等方面。
总体来说,边缘计算具有低延时、高带宽、高可靠、海量链接、异构协同处理和本地安全隐私保护等特点,在许多场景下存在突出的优势。
链接:
STM32L476开发板 价格 100-200人民币
STM32L476芯片价格:30-40
在STM32微控制器上映射与运行与训练的人工神经网络(ANN)。过程中使用STM32Cube.AI拓展包提高生产力。
STM32Cube.AI拓展包全面支持超低功耗STM32MCU,是ST提供的使用STM32CubeMX配置和代码生成的工具包,可与多个流行深度学习框架配合操作,并允许单个STM32 MCU上运行多个人工神经网络。
该方案主要部署神经网络的主要步骤分为:采集数据、标记数据、训练模型、移植并优化代码、应用模型分析新数据
https://s.taobao.com/search?q=STM32H747%E5%BC%80%E5%8F%91%E6%9D%BF&imgfile=&js=1&stats_click=search_radio_all%3A1&initiative_id=staobaoz_20200829&ie=utf8
STM32H747开发板 价格780-850人民币
STM32H747芯片价格:100-150人民币
在案例图像分类的项目中,使用STM32H747为主控芯片做图像分类任务。该案例输入244*244 RGB 图像数据。根据案例在应用时按照自己数据集优化内存和网络模型参数,提升网络运行能力。
https://detail.tmall.com/item.htm?spm=a230r.1.14.16.67ce4813mOtFrQ&id=611576166992&ns=1&abbucket=17&skuId=4543697150224
STM32MP1开发板 价格:350-450人民币
ST提供STM32MP1的计算机视觉应用方案,1000个种类的目标分类任务和90个种类的多目标检测任务。
STM32MP1系列由两部分组成,其一是STM32Cube.AI拓展包内含Cortex-4M、支持实时OS和STM32CubeMX工具。另一个是支持Tensor flowLite和OpenCV。
应用中可以支持C/C++和python、CV框架的Pillow和OpenCV、AI框架的Tensor FlowLite、LinuxOS。
图 2.1
图 2.2
利用STM32Cube.AI拓展包生成优化C语言方案如图:
图 2.3
图 2.4
简单的来说,openmv是一个可编程的摄像头,通过MicroPython语言,可以实现算法的逻辑。而且摄像头本身内置了一些图像处理算法,很容易使用。
Openmv适合与DIY相关的项目制作,比如追踪小球的车,云台,或者解魔方的机器人。对成本要求很高的嵌入式工业方案,比如流水线物品的分拣。
但是不适合做复杂的算法:比如OCR识别,车牌识别,猫狗分类,深度学习之类的。
链接:
https://item.taobao.com/item.htm?spm=a230r.1.14.32.105b59a9ts16kB&id=614199490408&ns=1&abbucket=18#detail
OpenMV4主板+OV7725 价格:519人民币
OpenMV4主板+MT9V034 价格:856人民币
OpenMV4 Cam H7参数:
处理器STM32H7
主频:400MHz
RAM:1MB
FLASH:2MB
支持图像格式:Grayscale、RGB565
最大像素支持:Grayscale:640*480
RGB565:320*240
功耗:90mA@3.3V---150mA@3.3V
应用场景包括:物体识别、工业故障检测、热成像等。
EAIDK-310开发板 价格:320人民币
EAIDK-310开发板是一个ARM嵌入式人工智能开发平台,支持Linux/Android兼容树莓派,面向边缘计算的人工智能开发套件。该硬件平台具备视觉传感器数据采集能力,支持图像处理与分析。
如图:
图 3.1
链接:
https://item.taobao.com/item.htm?spm=a1z10.5-c-s.w4002-22674469377.11.2cff261fq8qA22&id=587153253310
标配+USB摄像头+6G内存+32G闪条 价格:2078人民币
基础套餐+7寸屏幕 价格:1279人民币
RK3399Pro芯片:350人民币
RK3399Pro是可量产的AI智能硬件芯片,内置NPU神经单元,支持AI硬件加速,运算能力高达3.0TOPs,同情况下NPU进行AI运算功耗不到GPU的1%,支持各大深度学习模型,可训练,支持TensorFlow、Caffe、TF Lifi、ONNX等模型,提供丰富的AI应用接口,提供神经网络跨平台API
开发板提供Android&Linux系统开发教程、 驱动开发教程,提供SDK源代码、升级工具、固件、硬件资料。
针对RK3399开发板的Python实例源码、人脸识别OpenCV实例源码、OpenCV Qt高清摄像头监控实例源码移植成功,提供源码+项目视频,
图 3.3
图 3.4
链接:
单路摄像头200W像素,1080P,价格:550人民币
单路摄像头800W像素,4K,价格:850人民币
HI3559A芯片 价格:450-600人民币
EVM3559A开发板是以华为海思Hi3559AV100处理器为黑犀牛的嵌入式开发板。
核心处理器由双核ARM Cortex-A76@106GHz组成,性能强悍。
双核 ARM Mali G71 GPU@900MHz
双核 NNIE@840MHz神经网络加速引擎
具备4T算力神经网络单元
可拓展4K摄像头或者双4K视频流输入,最大支持8K视频解码能力。
满足超清分辨率下的复杂智能视频/图像分析需求,并提供OpenCL 1.1/1.2/2.0支持。
EMA Hi3519A开发板与EVM3559A开发板类似,但是其性能比EVM3559A开发板略差一点。
链接:
FPGA提供除了GPU外的另一种解决方案。FPGA架构灵活,并且其设计工具逐渐对对主流深度学习框架的兼容性更强,使得FPGA更容易为模型搭建和部署者所用。同时,FPGA在单位能耗下性能更强,这对大规模服务器部署或资源有限的嵌入式应用的开发而言至关重要。
FPGA与GPU不同之处在于硬件配置灵活,且FPGA在运行深入学习中关键的子程序(例如对滑动窗口的计算)时,单位能耗下通常能比GPU提供更好的表现。其次FPGA适合做加法器和乘法器等运算。
不过,设置FPGA需要具体硬件的知识,许多研究者和应用科学家并不具备,正因如此,FPGA经常被看作一种行家专属的架构。最近,FPGA工具开始采用包括OpenCL在内的软件级编程模型,使其越来越受经主流软件开发训练的用户青睐。
MYD-Y7Z010/20开发板是一款ARM+FPGA的嵌入式开发板,高性能低功耗,应用场景多。
详情见链接:
https://detail.tmall.com/item.htm?spm=a230r.1.14.20.139367581EEdQi&id=622357094627&ns=1&abbucket=5
https://item.taobao.com/item.htm?spm=a230r.1.14.53.11ac6758ucxcb8&id=614531561982&ns=1&abbucket=19#detail
处理器架构:RISC-V Dual Core 64bit,with FPU
主频:400MHz(可超频至600MHz)
图像识别: QVGA@60fps/VGA@30fps
语音识别: 麦克风阵列8 mics
操作系统 Free RTOS
深度学习框架:Tensor flow/Keras/Darknet/Caff
算力:1TOPS
案例:人脸检测:60帧/秒
应用场景:人脸检测和识别、YOLOv3、图像识别与分类、机器视觉
功耗:主控芯片300mW(设备1W)
Sipeed MAIX Dock K210开发板
Sipeed MAIX Bit K210开发板
Sipeed Maix go K210开发板
Sipeed Maixduino K210开发板
pyAI- K210开发板
图 5.1
图 5.2
320*240像素LCD
OV5640 图像传感器 500W
16MiB SPI NandFlash存储芯片
操作系统:Free RTOS
开源SDK/HDK
大部分K210开发板支持摄像头像素200W,OV2640
但是K210核心芯片最高支持640*480分辨率,在考虑OV2640的200W像素下,因其产品成熟、资料丰富和分辨率高等因素,故众多K210开发板采用OV2640摄像头。
支持连接5G,速度性能比K210提升5-10倍
价格:550-600人民币
链接:
英特尔推出了Movidius神经计算棒,这是一个基于USB模式的深度学习推理工具和独立的人工智能加速器,为广泛的边缘主机设备提供专用深度神经网络处理功能。外形小巧的Movidius神经计算棒专为产品开发者、研究人员和创客设计,提供专用高性能深度神经网络处理性能,从而减少开发、调优和部署人工智能应用的障碍。
支持卷积神经网络CNN,如 Caffe 绘制、原型设计和调整工作流程
https://item.taobao.com/item.htm?spm=a1z0d.6639537.1997196601.4.280a7484MagH2b&id=597048000256
图 6.1
https://detail.tmall.com/item.htm?spm=a230r.1.14.1.7a6336aaXhur8N&id=610778190595&ns=1&abbucket=5&skuId=4468593207490
https://item.taobao.com/item.htm?spm=a230r.1.14.29.7a6336aaXhur8N&id=573357463850&ns=1&abbucket=5#detail
jetson TX2开发套件价格:2000-3200人民币
NVIDIA推出新一代Jetson TX2开发平台,这是一款“嵌入式领域的AI超级电脑”。集成Linux系统,使用6核Tegra处理器(与Drive PX2同款),256核Pascal架构核心GPU ,16纳米工艺,具备极强的AI运算能力,比上一代TX1有更大进步,而且整机功耗低于7.5W,专为无人机、智能机器人、无人驾驶、智慧城市以及医疗工业设备等打造。支持jetpack3.0(嵌入式AI计算机的SDK),囊括:BSP、深度学习、计算机视觉、GPU计算、多媒体处理等。
图 7.1
https://detail.tmall.com/item.htm?spm=a230r.1.14.23.67f91b241MoHPy&id=592354487895&ns=1&abbucket=5&skuId=4172599169800
https://detail.tmall.com/item.htm?id=607189338842&ali_refid=a3_430582_1006:1254760046:N:v2O66a8DU7qKn6EYlH26bTps63UxR1gU:f815fbfdc2d6559423a691a7c72cb32c&ali_trackid=1_f815fbfdc2d6559423a691a7c72cb32c&spm=a230r.1.14.1
jetson NANO套件价格:700-3200人民币
NVIDIA JETSON NANO是个外型小巧但是功能强大的AI终端设备,就恶意并行运行多个神经网络、目标检测、图像分割和语音处理的应用程序。
JETSON NANO搭载四核ARM@A57处理器,128核MAXWELL GPU以及4GB LPD-DR内存,拥有足够的AI算力,为实现AI项目提供便捷。
图 7.2
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。