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

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

3天内不再提示

TensorFlow Lite for MCUs - 网络边缘的人工智能

星星科技指导员 来源:mouser 作者:mouser 2023-05-09 09:49 次阅读

在技术发展的历史上,技术先独立发展再相互融合以改变世界的例子比比皆是。原子能和喷气式发动机的融合催生了核航空母舰,改变了20世纪大部分战争的形态。计算机和射频通信的融合产生了智能手机,同时也重新定义了我们与技术以及彼此之间的互动方式。今天,嵌入式电子人工智能 (AI) 的融合正日益成为下一个具有颠覆性的技术组合。接下来我们就看一下这种融合的发展演变。

欢迎来到网络边缘

人工智能的概念最早出现在古希腊人的著作中,但直到20世纪上半叶,才开始将其作为一种实际技术进行开发。从根本上来说,AI使数字技术像人脑一样,能够与模拟世界有效互动、响应沟通。为了使AI在现实世界的应用具有实用性,比如自动驾驶车辆,在处理多个动态输入时,电子设备和物理世界之间的交互必须接近瞬时完成。值得庆幸的是,随着机器学习算法的发展,嵌入式电子系统也在不断进步。他们的联姻催生了边缘计算的概念。

边缘计算获得了过去只有云端强大的处理硬件才能实现的处理能力,并将这种能力带给了位于物理-数字接口边缘的本地设备。再加上微控制器传感器等廉价而稳健的嵌入式组件的普及,给自动化领域,无论是规模上还是功能上都带来了一场革命。

TensorFlow Lite: 微型硬件上的大ML算法

TensorFlow是Google主导开发的一套开源软件库,使开发人员能够轻松地将复杂的数值计算算法和机器学习(ML)集成到他们的项目中(图1)。按照Google的说法,这些库为Python(所有平台上的Python 3.7+)和C提供稳定的应用程序编程接口,另外还提供没有向后兼容保证的C++、Go、Java 和JavaScript API。此外,还针对Apple公司的Swift语言提供了一个alpha版本。

pYYBAGRZppuAYfd9AAF1vZFOWwc091.png

图1:Google的TensorFlow Lite for Microcontrollers网站。(资料来源:Google)

TensorFlow为深度神经网络 (DNN) 的开发和利用提供了所谓的端到端机器学习支持。 DNN是ML的一种实现,它特别擅长模式识别以及对象检测与分类。TensorFlow库支持机器学习过程的两个阶段,即训练和推理。首先是深层神经网络的训练,这需要大量算力,通常由服务器级硬件和图形处理单元 (GPU) 提供。最近开发了被称为张量处理单元 (TPU) 的专用集成电路来支持这种训练。第二阶段是推理,即利用现实世界中经过训练的DNN来响应新的输入,按照培训好的模型分析这些输入,并根据分析结果提出建议。这应该是嵌入式产品开发人员比较感兴趣的阶段。

TensorFlow Lite for Microcontrollers(TensorFlow库的一个子集)专门用于在内存受限的设备上执行推理,大多数嵌入式系统应用中都存在这种设备。它不允许您训练新网络,这仍然需要较高端的硬件。

实用为王:ML应用实例

人工智能、神经网络和机器学习等术语可以看成是科幻小说或行话。那么这些新兴技术的现实意义何在?

运行在嵌入式系统上的AI算法的目标,是以比传统程序或面向对象的编程方法更高效的方式处理传感器收集的真实世界数据。也许在大家的意识中,最明显的使用案例是从传统汽车到具有自动辅助功能(如车道偏离警报和防撞系统)的汽车,再到无人驾驶汽车这个最终目标的发展历程。不过,深度学习还有其他一些不那么明显的用例,虽然你不知道,但已经在使用了。智能手机中的语音识别或Amazon Alexa等虚拟助手均使用了深度学习算法。其他用例包括用于安防领域的面部检测和/或背景替换、sans绿幕、远程会议软件(如Zoom)等。

同时使用机器学习算法和互联网连接的设备(如物联网设备)的一个巨大优势是,随着时间的推移,产品可以通过简单的无线固件更新来集成新的或经过更好训练的模型。这意味着产品可以逐渐变得更加智能,并且不局限于制造时可能实现的功能,只要新型号和固件不超出硬件的物理内存和处理能力即可。

pYYBAGRZpp6AXVlsAAGUa8m9O2E432.png

图2:将TensorFlow模型转换为可在微控制器等内存受限设备上使用的版本。(资料来源:NXP

工作流程

根据TensorFlow Lite for Microcontrollers的附带文档,开发人员的工作流程可以分为五个关键步骤(图2), 具体如下:

1. 创建或获取一个TensorFlow模型:该模型必须足够小,以便在转换后适合目标设备,并且它只能使用支持的运算。如果要使用当前不支持的运算,可以提供自定义实现。
2. 将模型转换为TensorFlow Lite FlatBuffer:您将使用TensorFlow Lite转换器将模型转换为标准TensorFlow Lite格式。您可能希望输出一个量化模型,因为这种模型的尺寸更小,执行效率更高。
3. 将FlatBuffer转换为C字节数组:模型保存在只读程序内存中,并以简单的C文件形式提供。可以使用标准工具将FlatBuffer转换为C字节数组。
4. 集成TensorFlow Lite for Microcontrollers C++库:编写微控制器代码来收集数据,使用C++库执行推理,然后使用结果。
5. 部署到设备:编写程序并将其部署到您的设备。

在选择与TensorFlow Lite库一起使用的兼容嵌入式平台时,开发人员应注意以下几点:

1. 基于32位架构(如Arm Cortex-M处理器)和ESP32的系统。
2. 它可以运行在内存大小达数十KB的系统上。
3. TensorFlow Lite for Microcontrollers是用C++ 11编写的。
4. TensorFlow Lite for Microcontrollers可作为Arduino库提供。该框架还可以为其他开发环境(如Mbed)生成项目。
5. 不需要操作系统支持、动态内存分配或任何C/C++标准库。

接下来的步骤

Google提供四个事先训练好的模型作为示例,可用于在嵌入式平台上运行。只需稍做修改,就能在各种开发板上使用。这些示例包括:

Hello World:演示使用TensorFlow Lite for Microcontrollers的必备基础知识。
Micro-Speech:用麦克风捕捉音频以检测单词“yes”和“no”。
Person Deflection:图像传感器捕捉摄像头数据,以检测是否有人。
Magic Wand:捕获加速度计数据以对三种不同的手势进行分类。

审核编辑:郭婷

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

    关注

    33

    文章

    2429

    浏览量

    69072
  • 嵌入式
    +关注

    关注

    5058

    文章

    18972

    浏览量

    301905
  • 人工智能
    +关注

    关注

    1789

    文章

    46636

    浏览量

    236981
收藏 人收藏

    评论

    相关推荐

    人工智能是什么?

    。 说了那么多关于人工智能机器人的发展,我们来看看当前市面上可以看到的落地化机器人有哪些?,如:法国的人形机器人NAO,软银公司的带有情绪的机器人Pepper等等,大家会发现,这些机器人的硬件都做
    发表于 09-16 15:40

    人工智能传感技术

    人工智能传感技术,希望有兴趣的人共享
    发表于 06-03 09:03

    TensorFlow-cn_0.3_beta_zh,人工智能入门资料

    TensorFlow-cn_0.3_beta_zh,人工智能入门资料,花积分在别的论坛买的
    发表于 11-09 11:44

    解读人工智能的未来

    `已历经60多年的人工智能在物联网以及大数据的推动下,实现飞跃式的发展,并且迎来了第三个黄金周期。必优传感今天和大家解读一下关于人工智能的未来。自从有了人工智能,引发了人类的各种“未来论”。有人说
    发表于 11-14 10:43

    人工智能:超越炒作

    ,路径规划和异常检测,以及用于在这些引擎上部署机器学习模型(包括神经网络和经典机器学习算法)的平台和工具的集成。这只是第一步,因为恩智浦已经在努力将可扩展的人工智能加速器集成到其设备中,这将使机器学习
    发表于 05-29 10:46

    什么是基于云计算的人工智能服务?

    如今,采用人工智能的企业遇到了一个主要障碍,那就是在内部开发人工智能产品成本高昂,因此有了外包人工智能产品的需求。而对于从中小企业到预算受限的大型企业来说,通过云计算来采用人工智能的成
    发表于 09-11 11:51

    Labview深度学习tensorflow人工智能目标检测-教学贴【连载】

    本帖最后由 wcl86 于 2021-6-3 16:23 编辑 应广大学员要求,现开通Labview深度学习tensorflow人工智能目标检测-教学贴,有需要的学员,可以收藏本贴,接下来会
    发表于 05-28 11:58

    路径规划用到的人工智能技术

    路径规划用到的人工智能技术二 人工智能编程语言/数据结构与算法三 人工智能基础原理四 智能信息获取(简称爬虫) 与数据分析1、发起请求3、解析内容4、保存数据二、Requests库介绍
    发表于 07-20 06:53

    人工智能芯片是人工智能发展的

    人工智能芯片是人工智能发展的 | 特伦斯谢诺夫斯基责编 | 屠敏本文内容经授权摘自《深度学习 智能时代的核心驱动力量》从AlphaGo的人机对战,到无人驾驶汽车的上路,再到AI合成主播
    发表于 07-27 07:02

    基于RK3399 + RK1808的人工智能平台项目实战

    设备,没有固定的有线网络,移动流量成本是相当的大的离线无法工作,云端的人工智能识别高度依赖网络,如果网络离线,所有功能都将无法使用AI 边缘
    发表于 06-24 17:44

    嵌入式人工智能学习路线

    机器学习两门课程,基于第一大主流编程语言Python,让学员熟悉人工智能概念与行业前景,掌握Python编程基础及常用库使用、TensorFlow基础及神经网络、熟悉TFlearn相关知识点。课程间小项
    发表于 09-16 17:07

    《移动终端人工智能技术与应用开发》人工智能的发展与AI技术的进步

    ,随机森林,K-均值算法,支持向量机和人工神经网络等等。在应用方面表现也异常突出,目前89%的人工智能专利申请和40%人工智能范围相关专利都属于机器学习的范畴,可见机器学习的时代化进程
    发表于 02-17 11:00

    《移动终端人工智能技术与应用开发》+理论学习

    收到《移动终端人工智能技术与应用开发》有一段时间了,由于时间有限,加上工作原因,目前只看到第3章,前几章主要介绍人工智能和机器学习的基础知识,发展历程,分类等,重点说明了,在移动终端上如何实现人工
    发表于 02-27 23:28

    在物联网边缘执行您的人工智能

      底线是边缘的人工智能很可能在你的未来。当涉及到边缘人工智能时,Avnet可以成为您满足所有物联网需求的一步。
    发表于 07-06 15:05 752次阅读

    使用 Kria SoM 部署基于边缘的人工智能

    使用 Kria SoM 部署基于边缘的人工智能
    的头像 发表于 12-28 09:51 883次阅读
    使用 Kria SoM 部署基于<b class='flag-5'>边缘</b><b class='flag-5'>的人工智能</b>