Development and application of embedded AI technology
作者/毕盛 华南理工大学 核算机科学与工程学院(广东 广州 510006)
摘要:人工智能算法怎么有用地运转在嵌入式智能终端(即边际核算)是近年研讨的热门,本文从嵌入式人工智能技能研讨的含义以及所面对的问题下手,并从硬件渠道、算法规划以及算法布置三个方面打开,论述嵌入式人工智能技能开发的思路,终究经过一个运用实例阐明此开发进程。
关键词:边际核算;嵌入式体系;人工智能
1 研讨含义
跟着“AIoT(人工智能物联网)=AI(人工智能)+IoT(物联网)”的开展,若把算法都布置在云渠道进步行,会给网络通信带来不小的压力,而且会面对数据传输的推迟性以及安全性等问题,因而并不是一切的智能终端都需求运用云渠道来运转,因而怎么在智能终端上直接运转算法的边际核算应运而生。
边际核算相对于云渠道有如下优势:(1)实时性高,不需求传输数据然后削减反响推迟;(2)可靠性高,即便网络断开也能正常作业;(3)安全性高,防止隐私数据被上传;(4)布置灵敏,可在各种终端灵敏布置;(5)愈加节能,嵌入式体系低功耗特性以及削减了传输进程的能耗等;(6)网络流量低,有用按捺了网络拥塞;(7)类人化,人便是作为独立的智能体生存在社会网络中。
当然边际核算不是为了替代云核算,而是作为云核算的一个弥补。
据IDC猜测,到2020年将有超越500亿的终端与设备联网,而有50%的物联网网络将面对网络带宽的约束,40%的数据需求在网络边际剖析、处理与贮存。边际核算商场规模将超万亿,成为与云核算不相上下的新式商场 [1] 。因而招引越来越多的公司加入到边际核算开发傍边。
2 边际核算的应战与时机
边际核算便是在嵌入式渠道上能有用地运转各种智能算法,然后使终端具有类似人相同的智能。如图1所示,智能算法大致能够归为三类:(1)认知环境,其间包含物体辨认、方针检测、语义切割和特征提取功用,触及了模式辨认、机器学习和深度学习等技能;(2)显现场景,其间包含恢复算法、三维点云展现和场景生成,触及了最优化、虚拟现实、深度学习GAN网络等技能;(3)操控组织,其间包含智能操控,触及了强化学习、神经网络操控等技能。可是边际核算环境下嵌入式渠道的运算才能弱,因而怎么能有用的运转各种智能算法是一个很应战的问题。
跟着人们对人工智能越来越深化的研讨,边际核算也有了一系列开展的时机:(1)现在通用的核算机体系硬件体系结构并不契合人脑的结构构成,所以核算效能还有很大的进步潜力,因而这为边际核算渠道供给了弯道超车的可能性;(2)当时的智能算法还有很大改善的空间,例如经过深度学习练习出的特征往往优于人们传统知道的特征(例如边际和角点特征等),因而这为边际核算在算法改善上供给了很大空间;(3)边际核算渠道即嵌入式体系往往是完成某种特定的运用,因而能够依据需求对算法进行各种简化,而且可提出适宜的布置计划。
结合边际核算所面对的应战和时机,本文从硬件架构、算法规划和算法布置三个方面打开边际核算的开发和运用。
3 边际核算环境下的硬件架构
人工智能(AI)从云端走向边际端,需求嵌入式硬件有较好的运算才能,因而各芯片厂家在芯片内部集成了便于加快运算的硬件模块,其间包含如下。
(1)多核处理架构。其间异构多核架构即结合两种或多种不同类型的芯片内核架构,使其能够供给适宜各种运用的处理器功用,以及更有用功耗和更少的物理空间,近年来在嵌入式范畴得到了大范围推行,例如现在推出的高功用ARM核芯片瑞芯微RK3399等是依据异构多核架构的。
(2)嵌入式GPU。嵌入式芯片内部集成GPU,然后进步显现处理才能,并在边际核算环境下完成并行加快核算,首要有两种类型:堆核,如ARM芯片选用的Mali GPU;大核,如高通公司选用的Adreno GPU。
(3)神经网络处理器(NPU)。选用“数据驱动并行核算”架构,推翻了传统冯·诺依曼核算机架构,然后能够加快深度学习算法,如瑞芯微RK3399Pro、寒武纪MLU100、华为麒麟980和高通骁龙855等芯片。
(4)数字信号处理DSP。DSP内部集成了硬件乘法器、多总线和信号处理单元,经过DSP指令集可完成算法的硬件加快,例如TI、ADI等公司专用的DSP芯片,Xilinx公司、英特尔可编程解决计划事业部(注:英收买的Altera公司)的FPGA集成了DSP单元。
(5)依据算法定制化的ASIC——XPU和DLA。
依据需求规划特定人工智能算法芯片“xPU”,例如APU、BPU等,以及Google公司推出的张量处理器TPU。 英伟达供给了的DLA(深度学习加快器),并进行开源,瞄准了嵌入式和 IoT 商场。
(6)芯片内核加快单元—ARM核NEON。ARMNEON是单指令多数据流(SIMD)技能,可用于加快多媒体和信号处理算法,例如一些针对ARM芯片的前端布置计划比如NCNN [2] 选用NEON对深度学习的卷积运算进行加快。
(7)类人脑芯片。例如IBM公司的TrueNorth(真北),模仿人脑神经网络规划的64芯片体系,数据处理才能现已相当于包含6400万个神经细胞和160亿个神经突触的类脑功用。
4 边际核算算法规划
规划适宜于边际核算环境下运转的算法,如图2所示,首要从以下几方面进行考虑:
(1)在对外界环境认知进程中,怎么有用地提取特征很重要,从边际特征提取办法到紧缩感知理论以及到依据深度学习的特征提取办法,都是在研讨一种有用特征提取办法,因而能够针对嵌入式渠道研讨一种在精度和速度上彼此统筹的办法。
(2)嵌入式体系往往是针对一个详细的运用,而算法研讨要考虑到普适性,所以在边际核算环境下能够结合详细的运用对算法进行改善,然后削减核算量进步运算速度,例如能够把面向不知道场景的大局优化查找问题转为针对某个详细场景的局部优化问题。
(3)运用传感器直接收集数据替代算法对此信息的估量进程,然后下降算法运算量。例如独自依据视觉核算出相机的位姿,能够经过结合惯性传感器(IMU)来下降核算量使其适宜于边际核算环境下运转。
(4)在深度学习进程中,需求对网络进行简化,首要包含:1) 删去对模型功用影响不大的卷积核;2)深度可分离卷积和1×1卷积替代一般卷积;3)浮点数进行整形量化,二值化网络中参数用1位来表明;4)精简模型学习杂乱模型的输出。例如Google公司的MobileNet [3] 、伯克利与斯坦福大学的SqueezeNet [4] 和Face++公司的ShuffleNet [5] 等,选用了轻量级的网络结构,且坚持了较为有用的准确率。
5 边际核算前端布置
边际核算算法能够凭借硬件加快来进步运转功率,例如瑞芯微RK3399、高通骁龙855或华为麒麟980芯片都是依据ARM核,选用了多核、Mali GPU以及支撑ARM NEON加快。其间在异构多核处理器调度方面,针对优化方针分别从满意功用、功耗优化、满意公平性和并发程序瓶颈优化等方面进行优化布置,除了运用多核特性完成对算法的全体调度优化外,深度学习等智能算法也需求硬件加快,如图3所示,能够运用ARM NEON单元完成卷积运算的加快。每次1×1卷积操作时,将输出特征图依照8个每组运用OpenMP平分给设备可调用的每个CPU以充分运用硬件资源。之后针对每8个输出特征图,会以1×8的小块为单位一起进行8个输出特征图的核算。
一些公司也开发了前端布置计划,例如ARM公司OPEN AI LAB的Tengine结构 [6] 、Google公司的TensorFlow Lite [7] 、腾讯公司的NCNN结构 [2] ,小米公司的MACE结构 [8] 和百度公司的Mobile-deep-learning [9] 、亚马逊公司的TVM [10]和美国高通公司的 SNPE [11] 等,都是经过凭借多核和加快单元完成卷积的快速核算,然后在移动设备上有用的完成深度学习算法。
一起针对详细硬件渠道,ARM公司OPENAI LAB开发了依据RK3399芯片的EAIDK开发套件 [6] 、中科创达公司开发了依据高通骁龙845芯片Thundercomm TurboX AI Kit开发套件 [12] 、NVIDIA Jetson Nano开发套件等 [13] 。
6 边际核算实例
本实验室的张英杰、张粤和李智豪三位同学在边际核算环境Thundercomm AI Kit渠道上完成了结合自然言语了解和环境认知的智能服务体系,用于机器人结合场景的对话体系中,如图4所示。例如人问机器人“瓶子在哪里”,机器人经过自然言语处理得到语义文本信息;与此一起,机器人对视觉图片也在进行方针检测,依据练习样本集VOC的物体类别,在图片中能够辨认出“瓶子”和“显现器”并框选出来;接着经过类似度的点评办法对言语了解语义和视觉认知的物体称号进行匹配,并依据物体的坐标信息,可得出“瓶子在显现器右侧”。
整个进程首要包含:(1)自然言语了解,因为语音数据量不大,一起有较多的依据云端的商业解决计划,因而凭借讯飞公司的语音辨认SDK完成语音处理,取得语义文本;(2)物体方针检测选用深度学习的思路完成,但传统的深度网络核算量大,不能在边际端运转,因而需求对网络轻量化并选取适宜的前端硬件布置计划,本项目运用VOC数据集在Caffe结构下练习MobileNet-SSD轻量级深度网络,并运用NCNN结构完成在硬件上的布置;(3)运用类似度点评办法完成文本语义和物体指称的匹配,终究确认出物体的相对方位。
相对于传统的非场景对话体系,本体系人机交互程度高,可用于人与机器人协作进程中,一起整个体系在嵌入式渠道进步行了完成并成功布置。本体系参加了2018年中科创达技能大会并进行了现场什物演示,取得了一等奖。
参考文献
[1]胡又文 (ID:axzqjsj),华尔街见识专栏作者,边际核算,5G年代新风口,https://wallstreetcn.com/articles/3487892,2019.03.05
[2] NCNN[eb/ol], https://github.com/Tencent/ncnn
[3] Howard A G, Zhu M, Chen B, et al. MobileNets: Efficient Convolutional Neural Networks forMobile Vision Applications[J/OL]. https://arxiv.org/pdf/1704.04861.pdf, 2017.
[4] Iandola F N, Moskewicz M W, Ashraf K, et al. SqueezeNet: AlexNet-level accuracy with 50xfewer parameters and <1MB model size[J/OL]. https://arxiv.org/pdf/1602.07360.pdf, 2016.
[5] Zhang X, Zhou X, Lin M, et al. ShuffleNet: An Extremely Efficient Convolutional NeuralNetwork for Mobile Devices[J/OL]. https://arxiv.org/pdf/1707.01083.pdf, 2017.
[6] Tengine[eb/ol], http://www.openailab.com/, 2019,2019.04.10
[7] TensorFlow Lite[eb/ol],https://tensorflow.google.cn/lite/, 2019.04.10
[8] MACE[eb/ol], https://github.com/XiaoMi/mace/blob/master/README_zh.md, 2019.04.10
[9] Mobile-deep-learning[eb/ol], https://github.com/PaddlePaddle/paddle-mobile, 2019.04.10
[10] TVM[eb/ol], https://tvm.ai/,2019.04.10
[11] SNPE[eb/ol] , https://developer.qualcomm.com/docs/snpe/overview.html,2019.04.10
[12] Thundercomm TurboX AI Kit[eb/ol],https://www.thundercomm.com/app_zh/product/1536844968290219,2019.04.10
[13] NVIDIA Jetson Nano[eb/ol], https://www.nvidia.cn/autonomous-machines/embedded-systems/jetson-nano/,2019.04.10
作者简介
毕盛(1978-),男,博士,副教授,首要从事智能机器人、FPGA快速处理算法、嵌入式智能终端及智能手机研讨和开发作业。
本文来源于科技期刊《电子产品世界》2019年第5期第14页,欢迎您写论文时引证,并注明出处