0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

边缘计算的未来是MCU上的深度学习

电子设计 来源:电子设计 作者:电子设计 2020-10-30 06:43 次阅读

就在几年前,人们普遍认为,机器学习(ML)甚至深度学习(DL)只能通过由网关、边缘服务器或数据中心执行的边缘训练和推理,在高端硬件上完成。这种想法在当时不无道理,因为在云端和边缘之间分配计算资源的趋势尚处于早期发展阶段。但如今,得益于业界和学术界的艰苦研发和不懈努力,情况已然发生了翻天覆地的变化。

处理器不必提供每秒数万亿次操作(TOPS),也能执行机器学习(ML)。越来越多的用例证明,只要使用最新微控制器(部分带有嵌入式 ML 加速器),就能在边缘设备上开展机器学习。

只需极低的成本和极低的功耗,这些设备就能出色地完成 ML,仅在绝对必要时才连接到云。简而言之,内置 ML 加速器的微控制器代表着物联网发展的下一阶段:在生产数据的源头,例如麦克风、摄像头和监控其他环境条件的传感器中引入智能计算,并使物联网应用受益。

边缘有多深?

目前普遍认为边缘是物联网网络的最远点,但通常指先进的网关或边缘服务器。不过,这并不是边缘的尽头。真正的尽头是邻近用户的传感器。所以,合乎逻辑的做法是将尽可能多的分析能力安排在邻近用户的位置,而这也正是微处理器所擅长的。


不同宽度乘数下的多个 MobileNet V1 模型。宽度乘数对参数的数量、计算结果和精度都有显著影响。但是,如果只是将宽度乘数从 1.0 改为 0.75,TOP-1 精度并无太大变化,参数的数量和算力需求却明显不同。

可以说,单板计算机也能用于边缘处理,因为它们具有出色的性能,其集群可媲美一台小型超级计算机。但问题是尺寸依然过大,而且对于大规模应用所需的成百上千次部署而言,成本过于高昂。它们还需要连接外部直流电源,在某些情况下可能超出可用范围;相比之下,MCU 的功耗只有几毫瓦,并且可以使用纽扣电池或一些太阳能电池来供电

毫无意外,用于在边缘执行 ML 的微控制器成为了十分热门的研发领域。甚至还有专有名称– TinyML。TinyML 的目标就是允许在资源受限的小型低功耗设备(尤其是微控制器),而不是在更大的平台或云端上执行模型推理,甚至最终能实现模型训练。这就需要缩小神经网络模型的尺寸,以容纳这些设备中相对较少的算力、存储空间和带宽资源,同时不会严重降低功能性和精度。

这些方案对资源进行了优化,使设备可以采集充足的传感器数据并发挥恰当作用,同时微调精度并降低资源要求。因此,虽然数据可能仍被发送到云端(或者可能是先发送到边缘网关,然后再发送到云端),但数量少得多,因为相当大一部分的分析已经完成。

现实中,一个十分常见的 TinyML 用例就是基于摄像头的对象检测系统,尽管能够捕获高分辨率图像,但由于存储空间有限,只能降低图像分辨率。可是,如果摄像头内置了数据分析功能,则只会捕获所需的对象而非整个场景,而且因为相关的图像区域更小,能保留高分辨率图像。这种功能通常只见于更大型、性能更强大的设备,但是 TinyML 技术使得微控制器也能实现。

小巧却不简单

尽管 TinyML 还只是相对较新的一种范式,但已经表现出了不容小觑的推理能力(即便使用的是相对温和的微控制器)和训练(在性能更强大的微控制器上)成效,且精度损耗控制在最低限度。最近的示例包括:语音和面部识别、语音命令和自然语言处理,甚至同时运行多个复杂的视觉算法

实际说来,这意味着一台装载 500-MHz Arm Cortex-M7 内核的微控制器,花费不超过 2 美元,内存容量从 28 Kb 到 128 KB 不等,却能提供强大的性能,使传感器实现真正智能。例如,恩智浦的 i.MX RT 跨界 MCU 就使用运行 TensorFlow Lite 运行时引擎的小型 ML 模型实现了此种性能。以基本对象识别为例,通常在 200 ms 内即可完成,而且精度接近 95%。

即使在这个价格和性能水平上,这些微处理器配备了多个安全功能(包括 AES-128),并支持多个外部存储器类型、以太网USB 和 SPI,同时还包含或支持多种类型的传感器以及蓝牙Wi-Fi、SPDIF 和 I2C 音频接口。价格稍高一些的设备则是通常搭载 1-GHz Arm Cortex-M7、400-MHz Cortex-M4、2 Mbytes RAM 和图形加速。采用 3.3 VDC 电源供电时,功耗一般远低于单板计算机。

TOPS 概述

会使用单一指标来评判性能的不仅是消费者;设计者和市场营销部门也一直如此,因为作为一项主要规格,它可以轻松地区分设备。一个经典示例就是 CPU,多年来人们一直通过时钟速率来评判性能;幸运的是,现在的设计者和消费者已不再如此。只用一个指标评定 CPU 性能就像是按照发动机的峰值转速来评估汽车性能。尽管峰值转速有一定参考意义,但几乎无法体现发动机的强劲或汽车的驾驶性能,这些特性取决于许多其他因素。

遗憾的是,同样的尴尬也发生在以每秒数十亿次或上万亿次操作来界定的神经网络加速器(包括高性能 MPU 或微控制器中的加速器),原因一样,简单的数字好记。在实践中,单独的 GOPS 和 TOPS 只是相对无意义的指标,代表的是实验室而非实际操作环境中的一次测量结果(毫无疑问是最好的结果)。例如,TOPS 没有考虑内存带宽的限制、所需要的 CPU 开支、预处理和后处理以及其他因素。如果将所有这些和其他因素都一并考虑在内,例如在实际操作中应用于特定电路板时,系统级别的性能或许只能达到数据表上 TOPS 值的 50%或 60%。

所有这些数字都是硬件中的计算单元乘以对应的时钟速率所得到的数值,而不是上需要运行时数据已经就绪的频率。如果数据一直即时可用,也不存在功耗问题和内存限制,并且算法能无缝映射到硬件,则这种统计方式更有参考价值。然而,现实中并没有这样理想的环境。

当应用于微控制器中的 ML 加速器时,该指标更没有价值。这些小型设备的 GOPS 值通常在 1-3 之间,但仍然能够提供许多 ML 应用中所需要的推理功能。这些设备也依赖专为低功耗 ML 应用而设计的 Arm Cortex 处理器。除了支持整数和浮点运算以及微控制器中的许多其他功能之外,TOPS 或其他任何单一指标明显无法充分定义性能,无论是单独使用还是在系统中都是如此。

结论

随着物联网领域进一步发展,在边缘执行尽可能多的处理,逐渐出现一种需求,即在直接位于或附着于传感器上的微控制器上执行推理。也就是说,微处理器中应用处理器和神经网络加速器的发展速度十分迅猛,更完善的解决方案也层出不穷。总体趋势是将更多以人工智能为中心的功能(例如神经网络处理)与应用处理器一起整合到微处理器中,同时避免功耗或尺寸显著增加。

如今,可以先在功能更强大的 CPU 或 GPU 上训练模型,然后在使用推理引擎(例如 TensorFlow Lite)的微控制器上实施,从而减小尺寸以满足微控制器的资源要求。可轻松扩展,以适应更高的 ML 要求。相信不久之后,推理和训练就能在这些设备上同时执行,让微控制器的竞争力直追更大、更昂贵的计算解决方案。


审核编辑 黄昊宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    146

    文章

    16024

    浏览量

    343724
  • 深度学习
    +关注

    关注

    73

    文章

    5240

    浏览量

    119936
  • 边缘计算
    +关注

    关注

    22

    文章

    2806

    浏览量

    46022
收藏 人收藏

    评论

    相关推荐

    什么是边缘计算边缘计算有哪些应用?

    什么是边缘计算边缘计算有哪些应用? 边缘计算是一种将计算
    的头像 发表于 01-09 11:29 719次阅读

    边缘计算边缘智能计算区别

    边缘计算边缘智能计算是两个相关但不同的概念。边缘计算指的是数据处理和存储在靠近数据源的
    的头像 发表于 12-27 15:28 388次阅读

    深度学习技术与边缘学习技术的不同之处

    如今,AI技术的广泛应用已经成为推动制造和物流领域自动化的核心驱动力。康耐视所推出的深度学习边缘学习技术,这两种基于AI的技术,在工业自动化领域有着广泛的应用前景。然而,由于这两种技
    的头像 发表于 11-17 10:44 293次阅读

    什么是边缘计算盒子(AI算法盒子)?

    高效的数据处理和实时响应。以下是关于边缘计算盒子的介绍:一、什么是边缘计算盒子?边缘计算盒子是一
    的头像 发表于 10-31 14:29 1279次阅读
    什么是<b class='flag-5'>边缘</b><b class='flag-5'>计算</b>盒子(AI算法盒子)?

    边缘计算属于人工智能吗?

    人工智能领域得到了广泛应用,但它本身并不是一种人工智能技术。 人工智能包括了很多方面的技术,包括机器学习、数据挖掘、深度学习、自然语言处理等等。这些技术都需要数据作为基础,而边缘
    的头像 发表于 08-24 15:18 477次阅读

    AI边缘计算是什么意思?边缘ai是什么?AI边缘计算应用

    AI边缘计算是什么意思?边缘ai是什么?AI边缘计算应用  随着人工智能技术的不断发展,边缘
    的头像 发表于 08-24 15:18 1498次阅读

    边缘计算的兴起:改变技术和连接的未来

    来源|千家网导读边缘计算使计算和数据存储更接近数据生成源,从而实现实时处理并减少对集中式云基础设施的依赖。本文将深入探讨边缘计算的兴起、对各
    的头像 发表于 08-24 08:37 360次阅读
    <b class='flag-5'>边缘</b><b class='flag-5'>计算</b>的兴起:改变技术和连接的<b class='flag-5'>未来</b>

    计算机视觉中的九种深度学习技术

    计算机视觉中仍有许多具有挑战性的问题需要解决。然而,深度学习方法正在针对某些特定问题取得最新成果。 在最基本的问题上,最有趣的不仅仅是深度学习
    发表于 08-21 09:56 361次阅读
    <b class='flag-5'>计算</b>机视觉中的九种<b class='flag-5'>深度</b><b class='flag-5'>学习</b>技术

    深度学习框架的作用是什么

    深度学习框架的作用是什么 深度学习是一种计算机技术,它利用人工神经网络来模拟人类的学习过程。由于
    的头像 发表于 08-17 16:10 1179次阅读

    什么是深度学习算法?深度学习算法的应用

    什么是深度学习算法?深度学习算法的应用 深度学习算法被认为是人工智能的核心,它是一种模仿人类大脑
    的头像 发表于 08-17 16:03 1492次阅读

    如何在OpenCV中使用基于深度学习边缘检测?

    在这篇文章中,我们将学习如何在OpenCV中使用基于深度学习边缘检测,它比目前流行的canny边缘检测器更精确。
    的头像 发表于 05-19 09:52 1681次阅读
    如何在OpenCV中使用基于<b class='flag-5'>深度</b><b class='flag-5'>学习</b>的<b class='flag-5'>边缘</b>检测?

    移动边缘计算MEC学习笔记

    移动边缘计算(MEC,mobileedgecomputing)中计算卸载技术即 将移动终端的计算任务卸载到边缘网络, 解决了设备在资源存储、
    发表于 05-18 16:39 0次下载
    移动<b class='flag-5'>边缘</b><b class='flag-5'>计算</b>MEC<b class='flag-5'>学习</b>笔记

    AI系列边缘计算盒子

    边缘盒子产品是一款基于Arm+NPU架构的AI深度学习视频分析识别边缘计算终端设备,具有算法多、精度高、多算法同步 运行、业务适配能力强、
    发表于 05-18 16:11 3次下载
    AI系列<b class='flag-5'>边缘</b><b class='flag-5'>计算</b>盒子

    深度学习边缘计算综述论文阅读笔记

    这是一篇关于深度学习边缘计算基础知识的综述,包含了深度学习DL的几种网络模型的介绍,
    发表于 05-18 14:36 0次下载
    <b class='flag-5'>深度</b><b class='flag-5'>学习</b><b class='flag-5'>边缘</b><b class='flag-5'>计算</b>综述论文阅读笔记

    深度学习中的图像分割

    深度学习可以学习视觉输入的模式,以预测组成图像的对象类。用于图像处理的主要深度学习架构是卷积神经网络(CNN),或者是特定的CNN框架,如A
    的头像 发表于 05-05 11:35 853次阅读