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

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

3天内不再提示

深度解析MCU TensorFlow Lite - 网络边缘的人工智能

h1654155972.6063 来源:贸泽电子独家原创 作者:贸泽电子独家原创 2021-08-12 10:47 次阅读

嵌入式电子+人工智能

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

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

边缘计算将过去只有云端强大处理硬件才具备的处理能力,带给了位于物理-数字接口边缘的本地设备。再加上MCU传感器等价格便宜而又性能强大的嵌入式组件的普及,最终在自动化领域掀起了一场规模、功能都史无前例的革命。

55bb15c2-f5e8-11eb-9bcf-12bb97331649.png

图1:Google的“TensorFlow Lite for Microcontrolller”网站
(图片来源:Google) TensorFlow Lite:基于微型硬件的大型机器学习算法

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

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

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

实用为王:ML应用实例

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

人工智能、神经网络和机器学习等术语有时候给人的印象就像科幻小说或行话。那么这些新兴技术的现实意义何在?

57b97d96-f5e8-11eb-9bcf-12bb97331649.png

图2:使用AI,可以自动监测安全源来识别某些人
(图源:Monopoly919 - stock.adobe.com) 同时使用机器学习算法和联网设备(如物联网设备)带来的一个巨大优势就是,随着时间的推移,产品可以通过简单的OTA固件更新来集成新的或经过更好训练的模型。这意味着产品可以逐渐变得更加智能,并且不局限于制造时能够实现的功能,只要新的模型和固件不超出硬件的物理内存和处理能力即可。

58277724-f5e8-11eb-9bcf-12bb97331649.png

图3:将TensorFlow模型转换为可在MCU等内存受限设备上使用的版本。
(图源:NXP

工作流程 根据适用于MCU的TensorFlow Lite的说明文档,开发人员的工作流程可以分为五个关键步骤(图3),具体如下:

1、创建或获取一个TensorFlow模型

该模型必须足够小,以便在转换后适合目标设备,并且它只能使用支持的运算。如果要使用当前不支持的运算,可以提供自定义实现。

2、将模型转换为TensorFlow Lite FlatBuffer

使用TensorFlow Lite转换器将模型转换为标准TensorFlow Lite格式。您可能希望输出一个量化模型,因为这种模型的尺寸更小,执行效率更高。

3、将FlatBuffer转换为C位数组

模型保存在只读程序内存中,并以简单的C文件形式提供。可以使用标准工具将FlatBuffer转换为C位数组。

4/集成适用于MCU的TensorFlow Lite C++库

编写MCU代码来收集数据,使用C++库执行推断,然后使用结果。

5、部署到设备

编写程序并将其部署到您的设备。

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

基于32位架构(如Arm Cortex-M处理器)和ESP32的系统。

它可以在内存仅有数十KB的系统上运行。

适用于MCU的TensorFlow Lite采用C++ 11编写。

适用于MCU的TensorFlow Lite可作为Arduino库提供。该框架还可以为其他开发环境(如Mbed)生成项目。

不需要操作系统支持、动态内存分配或任何C/C++标准库。

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

1、Hello World

演示使用适用于MCU的TensorFlow Lite的必备基础知识。

2、Micro-Speech

用麦克风捕捉音频以检测单词“yes”和“no”。

3、Person Detection

图像传感器捕捉摄像头数据,以检测是否有人。

4、Magic Wand

捕获加速度计数据以对三种不同的身体姿势进行分类。

编辑:hfy

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

    关注

    146

    文章

    16016

    浏览量

    343587
  • 人工智能
    +关注

    关注

    1776

    文章

    43845

    浏览量

    230596
  • 机器学习
    +关注

    关注

    66

    文章

    8122

    浏览量

    130556
  • 边缘计算
    +关注

    关注

    22

    文章

    2802

    浏览量

    46011
  • TensorFlow Lite
    +关注

    关注

    0

    文章

    27

    浏览量

    541

原文标题:适用于MCU的TensorFlow Lite - 网络边缘的人工智能

文章出处:【微信号:gh_0ef8449c3acb,微信公众号:SmartMcu】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    未来的人工智能技术趋势是什么?

    随着Google、Microsoft和Facebook等巨头的大力投入,深度学习正在超越机器学习,人工智能来势凶猛。那么,如今人工智能最热门的技术趋势是什么?黑匣认为,复杂神经网络、L
    发表于 12-23 14:21

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

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

    人工智能:超越炒作

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

    人工智能AI-卷积神经网络LabVIEW之Yolov3+tensorflow深度学习有用吗?

    介绍:人工智能AI到来,工业上很多学员不了解C#中labview中如何调用tensorflow进行深度学习模型的训练和调用,推出一整套完整的简易学的视频课程,使学员能在没有任何深度学习
    发表于 11-27 11:19

    迅为RK3399开发板人工智能深度学习框架

    `迅为率先在RK3399 开发板上支持了Docker、TensorFlow目标检测API、OpenCV、Keras、scikit-learn、pytorch和Python等,组成了人工智能深度学习
    发表于 05-21 17:28

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

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

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

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

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

    人工智能芯片是人工智能发展的 | 特伦斯谢诺夫斯基责编 | 屠敏本文内容经授权摘自《深度学习 智能时代的核心驱动力量》从AlphaGo的人
    发表于 07-27 07:02

    微型微控制器与强大的人工智能(AI)世界有什么关系

    AI设计主要参与方都是功能强大的CPU,GPU和FPGA等。微型微控制器与强大的人工智能(AI)世界有什么关系?但随着AI从云到边缘的发展,使得这一观点正在迅速改变,AI计算引擎使MCU能够突破
    发表于 11-01 08:55

    基于RK3399ProD的人工智能开发板深度学习课程分享

    基于RK3399ProD的人工智能开发板深度学习课程分享
    发表于 02-11 08:54

    什么是人工智能、机器学习、深度学习和自然语言处理?

    ,做出预测,以及测试机器学习或深度学习的结果。人工智能适用于云端,在那里它可以处理大数据。未来的人工智能将主要集中在具有专门硬件架构的边缘设备上。我们希望
    发表于 03-22 11:19

    嵌入式人工智能学习路线

    系统项目简介:人工智能工业分拣系统基于AI计算机视觉、AI语音识别+机械臂控制为一体的机械臂控制、仓库货物分拣、整理功能,基于TensorFlow框架,通过深度学习神经网络算法识别仓库
    发表于 09-16 17:07

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

    人工智能打发展是算法优先于实际应用。近几年随着人工智能的不断普及,许多深度学习算法涌现,从最初的卷积神经网络(CNN)到机器学习算法的时代。由于应用环境的差别衍生出不同的学习算法:线性
    发表于 02-17 11:00

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

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

    深度解析行业场景中的人工智能应用

    由中国人工智能学会主办的2018全球人工智能技术大会(GAITC)在北京国家会议中心完美收官。七场开放式论坛涉及智能驾驶、深度学习、智慧金融、自然语言处理、青年科学家、
    的头像 发表于 05-28 15:16 4324次阅读