《韩非子·说林上》中有一句话,“失火而取水于海,海水虽多,火必不灭矣,远水不救近火也。”——指的是失火时用海水救火,虽然海水量大,但远离火场,起不到灭火的作用。
这句话用来形容当今的云计算与边缘计算同样适用,云端人工智能(AI)相当于大海,虽然水多、能力强,但对于特殊的场景终究远水解不了近渴;边缘AI则可以在如语音识别、人体数据分析等对实时性要求高的领域发挥重要作用。
由于物与物之间的互联会产生海量的数据处理需求,只有AI强大的计算能力才能够胜任,物联网(IoT)技术正与AI技术深度融合,产生AIoT的概念。如果将物联网比作遍布全身的周围神经网络,那么AI就相当于人的大脑。要达到类似于人类的智能,设备需要进行大量的矩阵运算,往往只有部署在云端的大型服务器才能够胜任。
由于物联网技术由于是物与物之间的互连,多数设备需要电池供电,并且数据在物与物之间的流通并不能完全依赖于云端,因此物联网通常意味着低成本和低功耗。这就使得AI技术与IoT技术的融合产生了一定矛盾与困难。
边缘AI也可理解为终端AI技术,最早起源于20世纪90年代的边缘计算。其中的边缘指的是物理世界和数字世界之间的边界,如各种传感器连接着真实物理世界和数字世界,构成一组组边缘节点;智能化的AI技术则使机器能够以之前完全不可能的方式来观察、聆听和感知世界。
过去,将AI推理布置到边缘意味着从传感器、摄像机和麦克风收集数据,然后将数据发送到云端实现推理算法,再将结果送回到边缘。由于延迟和能耗较大,这种架构对于边缘普及极具挑战。边缘AI的目的是让边缘节点也具备AI推理的功能,提供高级数据分析、场景感知、实时决策、自组织与协同等服务,解决上述问题的同时具备实时性好、带宽资源要求低、隐私性高等特点。
作为边缘端最常用的硬件,低功耗微控制器(MCU)可用于实施简单的神经网络运算,延迟虽然降低了,但只能在边缘执行简单任务。如果给MCU加上AI功能,可以将AI推理从云端推向边缘端,从而助力电池供电的人工智能和物联网设备发展。
传统软件方式对比AI MCU
“MAX78000就是一款带有神经网络加速器的超低功耗人工智能微控制器,支持电池供电的嵌入式物联网设备在边缘通过快速、低功耗AI推理来制定复杂决策。”在日前举办的ADI MCU Media Workshop上,ADI中国技术支持中心高级工程师辛毅介绍了ADI最新的边缘AI解决方案,与传统的软件AI方案相比,这种快速、低功耗的决策实施使得复杂的AI推理能耗降低到前期方案的百分之一以内,采用AI技术的电池供电系统可大幅延长其运行时间,有助于实现之前无法逾越的新一代电池供电AI应用。
通俗地来讲,AI设备可以“看到”、“听到”或“感知到”某个物体、声音或事件,并且像人类一样做出相应的行动。此前用传统的软件方法来实现AI,如果要识别一只猫,往往需要程序员编写一组规则来描述猫的特征,从而约束程序的运行,比如猫必须有尖尖的耳朵、三角形的鼻子和长长的胡须。
但实际情况和普遍规则相冲突时,大量例外情况给传统软件技术带来了巨大的困难。辛毅举例到,“比如从后面或者侧面识别一只猫,胡须和鼻子都看不见;比如一只纯黑的猫,在黑暗中无法识别;又比如猫被遮挡、品种是折耳或没有腿,软件方式都无法实现准确识别。”
但是AI技术可以通过海量的、不同的猫照片进行训练,进而提取出猫的深层次抽象特征。这些用于训练的照片既包括猫的普遍特征,又包含大量例外,从而有助于AI技术准确地识别出一张新图片中的猫。
“传统的软件方式是闭着眼睛,相当于盲人摸象,需要告诉软件所有猫的特征,费时费力且不准确;而AI技术相当于海量的学习过程,可以睁开眼睛看各种各样的猫,从而进行学习,训练好之后,看到新的猫图片就能马上判断,可以说是洞若观火。” 辛毅形象地形容到。
据介绍,通过集成专用的神经网络加速器,MAX78000可以在本地以低功耗实时执行AI处理,使机器能够看到和听到复杂的型态。由于MAX78000执行推理的功耗不到微控制器软件运行功耗的百分之一,大幅提高了机器视觉、语音和面部识别等应用的工作效率。
Arm和RISC-V核心分工明确,集成CNN大幅降低功耗
MAX78000的核心是专用硬件,其设计旨在最大程度地降低卷积神经网络(CNN)的能耗和延迟。该硬件运行时几乎不需要任何微控制器核的介入,操作的流线化程度极高,能量和时间仅用于实施CNN的数学运算。为了将外部世界的采集数据高效输入到CNN引擎,用户可使用两种集成微控制器核之一:超低功耗ARM Cortex-M4F 核,或功耗更低的RISC-V核。
ADI MCU产品线资深业务经理李勇表示,两个内核的工作是分配好的。M4F内部配有Flash和SRAM,主要处理应用和通信,而RISC-V是一颗采用32位精简指令集的小内核,主要配合CNN工作。“由于CNN工作时需要输入图片、声音、波形等原始数据,RISC-V内核会将数据搬运至存储空间,再用于CNN。经过硬件计算,CNN将原始数据通过矩阵乘法和加法得到特征值,再放入内存进行比对。”
据辛毅介绍,MAX7800X系列的数据加载和启动由MCU内核负责,而AI推理由CNN加速器专门负责。打个比喻,“对于AI处理而言,MAX7800X的两个微控制器内核就相当于专门负责买菜的妈妈,而卷积神经网络加速器则相当于专门做菜的爸爸。借助在芯片内部集成的卷积神经网络加速器就可以完成AI推理,不需要再通过互联网上传云端。”
由于MCU内核完成加载和启动后就不需要任何操作了,原则上不介入AI推理,因此功耗很低。两个硬件分工合作让MAX7800X系列一不需要联网,二支持电池供电,满足了边缘AI的要求。
与通用MCU、FPGA、GPU、DSP等边缘AI方案对比
李勇表示,MAX78000在功耗、速度、成本三个方面达成平衡。通常边缘AI可由通用MCU完成,也可由FPGA、GPU、DSP等专门的芯片完成。
比较常见的有基于Arm Cortex-M4的MCU内置DSP协处理器,这类方案需要数学方面的运算,适用于如屏幕分析等工业应用;纯MCU方案多采用8位、16位、32位处理器,相对较简单也会更节约晶圆空间,适用于家电、玩具、消费品等应用;MCU+RISC-V+FPG则适合更专业、更复杂的应用,RISC-V内核主要作为Sensor hub,如在可穿戴设备中,RISC-V可在Arm内核处于sleep状态时调取数据,等Arm内核唤醒时再对这些数据进行处理,“这种方案往往灵活度差一些,并且由于加入太多功能,针对普通应用时成本无法降低。”
由于独特的架构和分工,MAX78000与运行在低功耗MCU上的纯软件解决方案相比具备更高的数据吞吐量,速度提高了100倍,但成本只是FPGA或GPU方案的零头;相比MCU加DSP的方案,MAX78000的功耗不到该方案的百分之一。
“我认为这些方案各有特点,适用于不同的应用场景,按需配置。这也是为什么市场上有很多不同的CPU被大家采用。”李勇说到。
谈到ADI为何要在MCU中集成硬件CNN,而不直接采用通用MCU运行软件神经网络,李勇认为主要是因为功耗。以采用Cortex-M7核心的通用MCU为例,虽然主频高达200MHz,但MCU需要长时间全力运行CNN算法,导致功耗较高。“集成了CNN后可以很快计算出来,之后对应的设备便进入睡眠(sleep)状态,很大程度降低了功耗。我们认为,在未来的一些特殊边缘应用中,这是非常重要的特征。”
与竞品MCU的对比
目前ADI的边缘AI解决方案MA7800X系列主要包含两款AI MCU——MAX78000和MAX78002,二者都基于Arm Cortex-M4F和RISC-V的低功耗微处理器,搭载专用的卷积神经网络加速器执行AI推理。MAX78000可支持多达3.5M的模型权重,MAX78002则支持多达16M的模型权重,后者不仅可以做到图像的识别,还可以进行复杂的视频分析。
MAX7800X系列的相关特性总结如下:
主要优势
- 低能耗:硬件加速器与超低功耗ARM M4F及RISC-V微控制器相结合,将智能化实施推进到边缘,能耗不足嵌入式竞争方案的百分之一。
- 低延迟:在边缘执行AI功能,实现复杂的认知,使IoT应用减少或省去云端事务处理,速度提高到软件方案的100倍。
- 高度集成:带有神经网络加速器的低功耗微控制器使得在电池供电的IoT设备中是实现复杂、实时认知成为可能。
应用场景
- 人脸识别:不仅可以识别人脸,也可以识别物体、宠物等;
- 灾难检测:烟感、烟雾监测;火灾监测;泥石流监测;震动监测;
- 医疗应用:心电图;心率、血液数据;
- 指令识别:语音指令控制智能家居;
- Speaker识别:可以识别指令的发出人
以MAX78000为例,辛毅将MAX78000、ADI通用MCU MAX32650和某竞品MCU执行相同AI推理所花费的时间和功耗做了对比,分别评估了MAX78000的人脸识别(图像识别、视觉识别)和关键字识别(音频识别、听觉识别)性能。从下图可以看到,不论是推理速度还是推理功耗,MAX78000在两项识别上的表现均优于MAX32650和竞品MCU。
已有大量应用实例
鉴于AI开发的挑战性,ADI还提供支持资源和工具以实现平稳的评估和开发体验,包括数据手册、应用笔记、评估套件、参考设计、教学视频、工具和例程等。MAX78000 EVKIT#包括音频和摄像头输入,开箱即用的演示平台支持大字表关键词检索和面部识别。完备的文档可帮助工程师训练MAX78000神经网络,且采用其日常使用的工具TensorFlow或PyTorch。
在硬件方面,ADI已经发布了许多有关MCU的评估板、最小板和参考设计,支持KEIL、IAR、mbed、eclipse等专门的平台。
根据预测,2025年将有75%的数据产生在边缘侧进行处理,因此边缘AI可以在许多方面大显身手。李勇和辛毅介绍了MAX7800X在物联网设备上的各类应用。
实现视觉识别方面,可以用在考勤打卡、智能门锁等电池供电的物联网设备上的人脸识别;摄像头上集成MAX78002,可以实现垃圾分类、产品分装、快递分拣等功能,相关案例有鸡蛋计数相机、可识别冰箱内饮料数量的车载冰箱以及用于山火监测等。
MAX7800X系列的关键字识别功能,可以识别出用户的语音指示来进行操作,可以用在语音控制的物联网设备上,比如智能音箱、电动窗帘、智能照明等等。由于声音就是一种振动,MAX7800X还可以用于振动识别,比如工业检测领域。相关案例有可提取用户语音指令关键字的智能头盔、工业中的管道震动分析是否发生泄漏等。