科技

嵌入式人工智能技术开发与应用

嵌入式AI技术的开发与应用

本文参考地址:

作者/华南理工大学必胜计算机科学与工程学院(广东广州 510006)

摘要:人工智能算法如何有效地运行在嵌入式智能终端(即边缘计算)上一直是近年来的研究热点。 本文从嵌入式人工智能技术研究的意义和面临的问题出发,从硬件平台、算法设计和算法部署三个方面进行了阐述,阐述了嵌入式人工智能技术的发展思路。 最后通过一个应用实例来说明开发过程。

关键词:边缘计算; 嵌入式系统; 人工智能

1 研究意义

随着“AIoT(人工智能物联网)=AI(人工智能)+IoT(物联网)”的发展,如果将算法部署在云平台上,将会给网络通信带来很大的压力,而会面临数据传输延迟、安全等问题,并不是所有智能终端都需要使用云平台来运行。 因此,边缘计算应运而生,直接在智能终端上运行算法。

边缘计算相对于云平台具有以下优势:(1)实时性高,无需传输数据减少响应延迟; (2)可靠性高,即使断网也能正常工作; (3)安全性高,避免隐私数据被上传; (4)部署灵活,可以灵活部署在各种终端上; (5)嵌入式系统更加节能、低功耗的特点,降低传输过程中的能耗; (6)网络流量低,有效抑制网络拥塞; (7)人形机器人,人们作为独立的智能主体生活在社交网络中。

当然,边缘计算并不是要取代云计算,而是作为云计算的补充。

IDC预测,到2020年,将有超过500亿个终端和设备连接到互联网,50%的物联网网络将面临网络带宽限制,40%的数据需要在边缘进行分析、处理和存储网络的。 边缘计算市场规模将突破万亿,成为与云计算齐名的新兴市场[1]。 因此,吸引了越来越多的企业加入边缘计算的发展。

2 边缘计算的挑战与机遇

边缘计算是在嵌入式平台上有效运行各种智能算法的能力,使终端具有类人智能。 如图1所示,智能算法大致可分为三类:(1)认知环境,包括物体识别、目标检测、语义分割和特征提取功能,涉及模式识别、机器学习、深度学习等技术; (2)显示场景,包括复原算法、三维点云显示和场景生成,涉及优化、虚拟现实、深度学习GAN网络等技术; (3)控制机制,包括智能控制,涉及强化学习、神经网络控制等技术。 然而,边缘计算环境下的嵌入式平台计算能力较弱,如何有效运行各种智能算法是一个非常具有挑战性的问题。

1556600108272703.png

随着人们对人工智能的研究越来越深入,边缘计算也有一系列的发展机遇:(1)当前通用计算机系统硬件架构不符合人脑的结构,因此仍然存在计算效率有很大的提升潜力,所以这为边缘计算平台提供了弯道超车的可能; (2)当前智能算法仍有很大的改进空间。 例如,通过深度学习训练的特征往往比人们传统理解的特征更好。 (比如边缘和角点特征等),所以这为边缘计算的算法改进提供了很大的空间; (3)边缘计算平台,即嵌入式系统,往往实现特定的应用,因此可以根据需要修改算法。 进行了各种简化并可以提出合适的部署选项。

结合边缘计算面临的挑战和机遇,本文从硬件架构、算法设计和算法部署三个方面展开边缘计算的发展和应用。

3 边缘计算环境下的硬件架构

人工智能(AI)从云端走向边缘,需要嵌入式硬件具有更好的计算能力。 因此,各个芯片制造商在芯片内部集成了硬件模块,以方便加速计算,包括以下内容。

(1)多核处理架构。 其中,异构多核架构结合了两种或两种以上不同类型的芯片核心架构,使其能够提供适合各种应用的处理器性能,以及更有效的功耗和更少的物理空间。 近年来,它在嵌入式领域得到了广泛的应用。 已得到广泛推广。 例如,现在推出的高性能ARM核心芯片Rockchip RK3399就是基于异构多核架构。

(2)嵌入式GPU。 嵌入式芯片内部集成GPU,提高显示处理能力,实现边缘计算环境下的并行加速计算。 主要有两种:堆栈核心,如ARM芯片中使用的Mali GPU; 大核,例如高通使用的Adreno。 图形处理器。

(3)神经网络处理器(NPU)。 采用“数据驱动并行计算”架构,颠覆传统冯诺依曼计算机架构,可加速深度学习算法,如瑞芯微RK3399Pro、寒武纪MLU100、华为麒麟980和高通骁龙855等芯片。

(4)数字信号处理DSP。 DSP集成了硬件乘法器、多总线和信号处理单元。 算法的硬件加速可以通过DSP指令集实现,如TI、ADI等公司的专用DSP芯片,Xilinx、Intel可编程解决方案事业部(注:英国公司收购的Altera公司的FPGA集成了DSP单元) 。

(5)基于算法定制的ASIC——XPU和DLA。

根据需求设计特定的人工智能算法芯片“xPU”,如APU、BPU等,以及谷歌推出的张量处理器TPU。 NVIDIA 提供 DLA(深度学习加速器)并将其开源,瞄准嵌入式和物联网市场。

(6)芯片核心加速单元——ARM核心NEON。 ARMNEON 是一种单指令多数据流 (SIMD) 技术,可用于加速多媒体和信号处理算法。 例如,一些ARM芯片的前端部署方案如NCNN[2]使用NEON来加速深度学习的卷积运算。

(7)类人脑芯片。 例如,IBM的TrueNorth是一个64芯片系统,旨在模拟人脑的神经网络。 其数据处理能力相当于包含6400万个神经细胞和160亿个突触的类脑功能。

4 边缘计算算法设计

设计适合在边缘计算环境中运行的算法,如图2所示,主要考虑以下几个方面:

1557132382249868.jpg

(1)在识别外部环境的过程中,如何有效地提取特征非常重要。 从边缘特征提取方法到压缩感知理论和基于深度学习的特征提取方法,我们都在研究有效的特征提取方法。 因此,可以针对嵌入式平台研究一种兼顾精度和速度的方法。

(2)嵌入式系统往往是针对特定应用的,算法研究必须考虑到通用性。 因此,在边缘计算环境中,可以根据具体应用对算法进行改进,从而减少计算量,提高计算速度。 例如,将未知场景的全局优化搜索问题转化为特定场景的局部优化问题。

(3)利用传感器直接采集数据来代替算法对这些信息的估计过程,从而降低算法的计算复杂度。 例如,如果相机的位姿仅基于视觉计算,则可以与惯性传感器(IMU)结合,以减少计算量,使其适合在边缘计算环境中运行。

(4)深度学习过程中,需要对网络进行简化,主要包括:1)删除对模型性能影响不大的卷积核; 2)深度可分离卷积和1×1卷积代替普通卷积; 3)浮点数被量化为整数,二进制网络中的参数用1位表示; 4)流线型模型学习复杂模型的输出。 例如,Google的MobileNet[3]、伯克利和斯坦福大学的SqueezeNet[4]、Face++的ShuffleNet[5]采用轻量级网络结构并保持实用的精度。

1557132400471583.jpg

1557132400403949.jpg

5 边缘计算前端部署

边缘计算算法可以利用硬件加速来提高运行效率。 例如瑞芯微RK3399、高通骁龙855或华为麒麟980芯片均基于ARM内核,采用多核、Mali GPU并支持ARM NEON加速。 其中,在异构多核处理器的调度方面,从满足性能、功耗优化、公平性以及并发程序瓶颈优化等方面对优化目标进行优化部署。 除了利用多核特性实现算法的整体调度优化之外,深度学习等智能算法也需要硬件加速。 如图 3 所示,ARM NEON 单元可用于加速卷积运算。 在每个 1×1 卷积操作期间,使用 OpenMP 将输出特征图平均分为 8 组到设备可以调用的每个 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 开发了 Suite 等[13]。

6 个边缘计算示例

该实验室张英杰、张越、李志豪三名学生在边缘计算环境Thundercomm AI Kit平台上实现了结合自然语言理解和环境认知的智能服务系统,应用于机器人结合场景、如图4所示。 例如,当人问机器人“瓶子在哪里?”时,机器人通过自然语言处理获得语义文本信息; 同时,机器人还在视觉图片上进行目标检测。 根据训练样本集VOC的物体类别,识别“瓶子”和“显示器”被框选;然后通过相似度评价方法匹配语言理解语义和视觉认知的物体名称,并基于根据物体的坐标信息,可以得出“瓶子在显示器的右侧”的结论。

整个过程主要包括:(1)自然语言理解。 由于语音数据量不大,且基于云端的商业解决方案较多,因此采用科大讯飞的语音识别SDK来实现语音处理并获取语义文本; (2)利用深度学习的思想实现物体目标检测,但传统的深度网络需要大量的计算量,无法在边缘运行。 因此,需要对网络进行轻量化,选择合适的前端硬件部署方案。 本项目使用Caffe框架中的VOC数据集训练MobileNet-SSD轻量级深度网络,并使用NCNN框架实现硬件上的部署; (3)利用相似度评价方法对文本语义和物体指称进行匹配,最终确定物体的相对位置。

与传统的非场景对话系统相比,该系统人机交互程度高,可用于人机协作过程中。 同时,整个系统在嵌入式平台上实现并成功部署。 该系统参加2018年中国科学技术大会并进行现场实物演示并荣获一等奖。

参考

[1]胡友文(ID:axzqjsj),华尔街新闻专栏作家,边缘计算,5G时代新趋势,2019.03.05

[2] NCNN[eb/ol],

[3] Howard AG,朱明,陈斌,等。 MobileNets:用于移动视觉应用的高效卷积神经网络[J/OL]。 ,2017。

[4] Iandola FN、Moskewicz MW、Ashraf K 等人。 SqueezeNet:AlexNet 级别的精度,参数数量减少 50 倍

[5] 张晓,周晓,林明,等。 ShuffleNet:一种适用于移动设备的极其高效的卷积神经网络[J/OL]。 ,2017。

[6] Tengine[eb/ol], , 2019,2019.04.10

[7]TensorFlow Lite[eb/ol],, 2019.04.10

[8] MACE[eb/ol], , 2019.04.10

[9] 移动深度学习[eb/ol], , 2019.04.10

[10]TVM[eb/ol],,2019.04.10

[11]SNPE[eb/ol],,2019.04.10

[12] 创通通 TurboX AI 套件[eb/ol],,2019.04.10

[13]NVIDIA Jetson Nano[eb/ol],,2019.04.10

关于作者

毕升(1978-),男,博士,副教授,主要从事智能机器人、FPGA快速处理算法、嵌入式智能终端和智能手机的研究与开发。