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

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

3天内不再提示

借助 Edge Impulse 实现 AI 开发的民主化

悬崖勒马2 来源:Michael Parks 作者:Michael Parks 2022-12-30 09:40 次阅读

民主化 AI 开发 Edge Impulse:Edge Impulse 101

加拿大哲学家马歇尔·麦克卢汉 (Marshall McLuhan) 曾说过:“我们成为我们所看到的。我们塑造我们的工具,然后我们的工具塑造我们。” 如果是这样,那么人工智能 (AI) 的最独特之处在于我们看到的对象是我们自己,特别是我们的大脑。如果这是真的,那么看看人工智能这个工具将如何递归地塑造我们自己和我们的未来将会很有趣。开发工具的民主化使我们能够创建具有基于 AI 功能的对象,这对于为人类建设光明、积极的未来至关重要。一家名为 Edge Impulse 的公司正在尽自己的一份力量来确保这一点。

对于我们这些嵌入式系统开发人员来说,向神经网络的范式转变可能令人望而生畏,他们是在过程甚至面向对象编程的全盛时期开始学习的。对于一些人来说,这感觉就像是放弃了对设计的一点绝对控制,而放弃了表面上似乎未经证实的东西,即使不是彻头彻尾的魔法。尽管如此,边缘机器学习的前景(意味着将 AI 算法从云端转移到数十亿物联网设备中的微控制器上)仍然很有吸引力,不容忽视。幸运的是,Edge Impulse 为嵌入式系统工程师提供了一条非常简单且有据可查的前进道路,以帮助他们成功驾驭 AI、机器学习和神经网络 (NN) 等相对较新的领域。

有可能在嵌入式设计的某个时刻,工程师会绘制流程图以了解机器在其运行生命周期中所处的各种状态。为此,了解使用 Edge Impulse 为独特的嵌入式应用程序开发定制神经网络时将遇到的步骤是有益的。下面从嵌入式电子工程师和人工智能专业的计算机科学家的角度总结了这些步骤。

第一步:获取训练数据

神经网络的开发需要访问数据。很多很多的数据。简而言之,数据越多,未来的 NN 模型在根据实际操作预测输出时就会越准确。Edge Impulse 提供了多种易于使用的工具来将数据从现实世界获取到他们的服务器以开发自定义神经网络。首先,它们为许多流行的开发板(例如TI CC1352P Launchpad、SiLabs Thunderboard Sense 2和Arduino Portenta )提供预构建固件) 可以访问各种板载传感器并将数据流发送回 Edge Impulse。对于其他主板,Edge Impulse 在其命令行界面 (CLI) 工具集的保护下提供了一套工具,可用于 Mac OS、Windows 和 Linux 发行版 Ubuntu 和 Raspbian。CLI 需要在您的桌面上安装 Python3Node.js。CLI 的三个关键工具是:

艾达蒙

冲动上传者

数据转发器

这些工具对于从缺乏直接互联网连接的开发板获取传感器数据特别有用。它们充当代理,通过串行端口接收数据,并通过主机互联网连接将其转发到 Edge Impulse 服务器。Edge Impulse 还提供了一种基于浏览器的机制来从智能手机收集数据(例如语音样本或加速度计数据)。

从实际角度出发,仔细考虑您的嵌入式设备在运行过程中可能遇到的所有状态。例如,在最近的一个涉及工业机械和根据加速度计数据识别机器故障的项目中,开发团队在数据按预期负载运行时以及处于故障模式时收集了大量数据。但最初,它在机器空闲时无法收集数据。结果,第一个 NN 模型难以区分故障和空转。最后,使用机器空闲时收集的数据对神经网络进行再训练,模型的预测准确性(例如,神经网络性能)显着提高。底线是,如果房地产是关于位置、位置、还是位置的话。那么机器学习就是数据、数据、数据。

第 2 步:标记和分块原始数据

一旦训练数据位于 Edge Impulse 服务器上,训练 NN 模型(也称为“Impulse”)的其余工作将通过 Web 浏览器在 Edge Impulse 网站上进行。首先,我们收集的数据集必须标有每个特定数据集代表的输出状态。这是通过简单地编辑收集的每个单独数据集的“标签”标签来实现的。使用上述工业机械示例,三分之一的数据被标记为“故障”,另外三分之一被标记为“正常”,最后三分之一被标记为“空闲”。回想一下神经网络的输出不是绝对的;相反,它是每个可能结果的确定性百分比。

对于时间序列数据(例如随时间收集的加速度计读数),有必要将每个数据集中的数据“分块”。像所有好的解决问题的技巧一样,将问题分解成更小、更易于管理的块可以让人们解决看似无法克服的问题。在 NN 训练的这个初始阶段,您可以调整数据分析方式的一些属性,包括窗口大小、窗口增加、采样频率以及数据是否应该被零填充。此外,可以调整这些不同的属性以平衡分析的分辨率与完成分析的时间之间的权衡。

第 3 步:分析和转换原始数据块

在数据被适当地分块后,是时候通过应用适当的分析技术(例如“处理块”)来分析它了。这会获取原始数据并将其转换为训练过程中下游 NN 分类器可以使用的格式。Edge Impulse 根据要分析的数据类型提供多种不同的分析技术。

频谱分析:非常适合分析重复运动,例如来自加速度计的数据。提取信号随时间变化的频率和功率特性。

Flatten:将轴展平为单个值,与其他块结合使用可用于温度数据等缓慢移动的平均值。

Mel-Filterbank Energy (MFE):从非语音音频信号中提取频谱图。

Mel 频率倒谱系数 (MFCC):从人声音频文件中提取频谱图。

图像:用于识别静态图像中的对象。

自定义处理块:对于那些具有基于人工智能的计算机科学背景的人,还可以上传为您的特定应用量身定制的自定义处理块

第 4 步:对数据块进行分类,运行 NN 分类器

一旦我们将原始数据转换为可用格式并了解如何从我们的数据集中提取特征,就有必要训练神经网络从这些特征中学习,以便它可以适当地对测试和操作数据集进行分类。换句话说,所有表示系统故障的数据集都应归类为此类。同样,所有代表正常操作的数据集都应该进行类似的分类。这是通过应用所谓的学习块来实现的。与处理块一样,可以根据数据类型应用各种学习块。例如,对于快速波动的时变数据,例如我们示例中的数据集,可以使用以下学习模块:

分类 (Keras):从数据中学习模式并将其应用于新数据。非常适合对运动进行分类或识别音频。

异常检测(K 均值):在新数据中查找异常值。有利于识别未知状态和补充分类器。

回归 (Keras):从数据中学习模式并将其应用于新数据。非常适合预测连续数值。

可以调整信号处理算法的各种参数以微调学习块的性能。通过调整截止频率和快速傅里叶变换 (FFT) 长度等参数,可以在处理时间和随机存取存储器 (RAM) 使用峰值之间取得平衡。Edge Impulse 甚至提供在目标嵌入式平台上运行时处理时间和 RAM 使用情况的性能估计。

最后,在最终生成神经网络模型(又名脉冲)本身之前,可以更改用于控制 NN 分类器输出的设置。可以调整的参数包括训练周期数、学习率、验证集大小以及输入层和输出层之间网络中间层的神经元数。改变这些参数的能力对于防止称为过度拟合的常见数据科学问题至关重要,这种问题发生在模型与训练数据完美配合但在暴露于新数据时却惨败。

第 5 步:测试神经网络模型

对于机器学习算法的开发人员来说,过度拟合并不是一个不常见的问题。为确保模型足够通用,有必要根据独立测试数据测试 Edge Impulse 生成的神经网络。Edge Impulse 提供的用于收集训练数据的相同技术可用于收集测试数据。除了对先前记录的测试数据进行分类外,还可以从测试设备流式传输数据并在 Edge Impulse 服务器上进行实时分类。设计人员可以使用由 Edge Impulse 应用程序编程接口 (API) 提供支持的固件中的直接连接或数据转发器代理将数据从传感器获取到云端。

第 6 步:部署神经网络模型

在神经网络针对训练数据取得令人满意的结果后,是时候将 NN 模型打包到一个软件库中,该软件库可以部署在基于微控制器的系统上。Edge Impulse 使这个过程变得非常简单。首先,模型可以置于版本控制之下,以便在需要时可以将未来的改进与过去的模型进行比较。接下来,该模型可以变成各种嵌入式系统开发板的“交钥匙”固件。

对于Edge Impulse不直接支持的开发板,仍然可以生成通用库,包括基于C++、Arduino、WebAssembly、TensorRT、STM32Cube.MX CMSIS-PACK等系统架构的模型文件。在生成库或固件之前,还可以运行优化器以实现速度或内存使用优化,具体取决于运行 NN 模型(又名脉冲)的硬件规格。此外,基于作为 8 位整数或 32 位浮点数发送的传感器数据的脉冲也是可能的。

由于 Edge Impulse 还提供基于 C++、GoLang、Node.js 和 Python 的软件开发工具包 (SDK),Impulses 也可以在运行 Linux 操作系统的嵌入式系统上运行。也可以使用 C++ 库在 Windows 和 macOS 上运行脉冲。

最后,impulse 可以直接部署到智能手机上,无需在目标设备上安装任何额外的应用程序。

概括

对于那些希望将 AI 技术集成到他们的下一个嵌入式系统项目中的人来说,浏览 Edge Impulse 的文档和论坛是开始了解边缘 ML 的一种免费且简单的方法。一个有限的免费版本可用于测试 Edge Impulse 生态系统。免费层的主要限制是单个开发人员的汗水访问、最长 20 分钟的处理时间以及 4GB 或 4 小时数据的云存储限制。此外,还提供企业版,按项目付费,这消除了免费层的限制,并提供对私有云和每个项目五个席位的访问。

Michael Parks, PE 是 Green Shoe Garage 的联合创始人,Green Shoe Garage 是一家位于马里兰州西部的定制电子设计工作室和嵌入式安全研究公司。他制作了 Gears of Resistance 播客,以帮助提高公众对技术和科学问题的认识。Michael 还是马里兰州的持证专业工程师,并拥有约翰霍普金斯大学的系统工程硕士学位。

审核编辑黄宇

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

    关注

    2526

    文章

    48110

    浏览量

    740141
  • 神经网络
    +关注

    关注

    42

    文章

    4574

    浏览量

    98760
  • 数据
    +关注

    关注

    8

    文章

    6512

    浏览量

    87609
  • AI
    AI
    +关注

    关注

    87

    文章

    26459

    浏览量

    264080
收藏 人收藏

    评论

    相关推荐

    通过无代码方法开发Edge AI和ML

    边缘创新竞赛的展开,利用人工智能力量的旅程面临着巨大的挑战。SiMa.ai是一家机器学习公司,专门构建了任何公司入门和扩展边缘人工智能和计算机视觉所需的硬件和软件平台。 Edge ML的崛起 人工智能创新并不局限于数据中心或智
    的头像 发表于 04-19 14:53 979次阅读
    通过无代码方法<b class='flag-5'>开发</b><b class='flag-5'>Edge</b> <b class='flag-5'>AI</b>和ML

    开发者手机 AI - 目标识别 demo

    功能简介 该应用是在Openharmony 4.0系统上开发的一个目标识别的AI应用,旨在从上到下打通Openharmony AI子系统,展示Openharmony系统的AI能力,并为
    发表于 04-11 16:14

    如何借助AI实现1万亿晶体管GPU

    人工智能成为所有人类事业的数字助手,拥有着巨大的机遇。ChatGPT是人工智能如何使高性能计算的使用民主化、为社会中的每个人带来好处的一个很好的例子。
    发表于 04-02 17:07 65次阅读
    如何<b class='flag-5'>借助</b><b class='flag-5'>AI</b><b class='flag-5'>实现</b>1万亿晶体管GPU

    Edge Impulse发布新工具,助 NVIDIA 模型大规模部署

    借助 Edge Impulse 和 NVIDIA TAO 工具包的协同效应,工程师得以快速构建并部署至边缘优化硬件(如上述型号)的计算机视觉模型。该平台还支持用户运用经由 GPU 优化的 NVIDIA TAO 模型(如 YOLO
    的头像 发表于 03-25 16:00 304次阅读

    【ALINX 技术分享】AMD Versal AI Edge 自适应计算加速平台之 Versal 介绍(2)

    【ALINX 技术分享】AMD Versal AI Edge 自适应计算加速平台之 Versal 介绍,以及Versal 芯片开发流程的简介。
    的头像 发表于 03-07 16:03 317次阅读
    【ALINX 技术分享】AMD Versal <b class='flag-5'>AI</b> <b class='flag-5'>Edge</b> 自适应计算加速平台之 Versal 介绍(2)

    【国产FPGA+OMAPL138开发板体验】(原创)5.FPGA的AI加速源代码

    计算通常会使用DSP slice或BRAM进行高效实现。另外,现代的深度学习加速器设计还会涉及到张量运算、激活函数、池层等多种复杂操作。由于AI加速的FPGA程序通常会涉及到复杂的算法实现
    发表于 02-12 16:18

    OpenHarmony AI框架开发指导

    一、概述 1、功能简介 AI业务子系统是OpenHarmony提供原生的分布式AI能力的子系统。AI业务子系统提供了统一的AI引擎框架,实现
    发表于 09-19 18:54

    采用Versal AI Edge系列的边缘ACAP

    电子发烧友网站提供《采用Versal AI Edge系列的边缘ACAP.pdf》资料免费下载
    发表于 09-13 17:08 0次下载
    采用Versal <b class='flag-5'>AI</b> <b class='flag-5'>Edge</b>系列的边缘ACAP

    自动化编程机器人如何使编码民主化

    在过去,编程通常是专业程序员的天地,需要大量的时间、技能和经验。然而,随着自动化编程机器人的崛起,编码正在逐渐变得更加民主化。这些机器人通过简化编程过程、提供易于使用的工具和增强开发者的能力,为更多
    的头像 发表于 09-04 14:23 292次阅读

    基于Arduino的机器学习开发

    本项目采用的开发板是Arduino Nano 33 ble Sense,模型训练平台为SensiML或者Edge Impulse。对于SensiML,模型部署平台为VS Code和PlatformIO;对于
    的头像 发表于 08-11 11:06 875次阅读
    基于Arduino的机器学习<b class='flag-5'>开发</b>

    使用Edge Impulse关键字识别控制笔记本电脑

    电子发烧友网站提供《使用Edge Impulse关键字识别控制笔记本电脑.zip》资料免费下载
    发表于 07-13 11:06 0次下载
    使用<b class='flag-5'>Edge</b> <b class='flag-5'>Impulse</b>关键字识别控制笔记本电脑

    带有M5Stack和Edge Impulse的手势控制无人机

    电子发烧友网站提供《带有M5Stack和Edge Impulse的手势控制无人机.zip》资料免费下载
    发表于 06-27 10:03 0次下载
    带有M5Stack和<b class='flag-5'>Edge</b> <b class='flag-5'>Impulse</b>的手势控制无人机

    使用Edge Impulse和Nvidia Jetson的面罩检测器

    电子发烧友网站提供《使用Edge Impulse和Nvidia Jetson的面罩检测器.zip》资料免费下载
    发表于 06-26 11:29 1次下载
    使用<b class='flag-5'>Edge</b> <b class='flag-5'>Impulse</b>和Nvidia Jetson的面罩检测器

    使用XIAO BLE Sense&Edge Impulse的宠物活动追踪器

    电子发烧友网站提供《使用XIAO BLE Sense&Edge Impulse的宠物活动追踪器.zip》资料免费下载
    发表于 06-25 15:10 0次下载
    使用XIAO BLE Sense&<b class='flag-5'>Edge</b> <b class='flag-5'>Impulse</b>的宠物活动追踪器

    在MaaXBoard Mini上使用Edge Impulse进行安全帽检测

    电子发烧友网站提供《在MaaXBoard Mini上使用Edge Impulse进行安全帽检测.zip》资料免费下载
    发表于 06-15 14:52 0次下载
    在MaaXBoard Mini上使用<b class='flag-5'>Edge</b> <b class='flag-5'>Impulse</b>进行安全帽检测