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

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

3天内不再提示

TinyML音频识别应用及在Cortex-M4开发板上的入门

冬至配饺子 来源:Mary Bennion 作者:Mary Bennion 2022-07-27 16:27 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

TinyML很强大是因为它帮助微型设备基于大量数据采集制定决策方法,而不会浪费时间和精力传输数据。假设你正在追踪非洲大草原的动物行为,你想知道狮子在一天中不同时间咆哮的频率。

你可以选择以下方法收集数据:

•躲在草丛中,用记事本和铅笔记录每次听到的吼声。

•用设置好的带电池的录音机记录,每隔几星期去更换存储卡。

•通过数据连接(如蜂窝网络)传输音频

以上所有方法都有以下缺点:

•将人员留在现场是非常昂贵的,同时还需考虑他们的安全问题

•驾车去收集存储卡需要耗费时间和钱,而且每隔几周才可以获得新数据。

•传输数据会消耗大量能量和钱,并且大部分地区的网络带宽也受到限制。这种方法可能会更快地获得数据,但仍需定期开车去更换电池。

除了这些缺点以外,在录音中数出狮子的吼声真的很无聊,而且还需要花费宝贵的资金。训练机器学习模型来识别录音中的狮子吼声并自动计数可以减轻这一烦恼。为此需要先收集一组带标签的数据输入到算法中,然后创建一个模型来识别音频中的吼叫声。

pYYBAGLg9a-ASp4CAAB912YTxu4827.png

这将解决需要花费数小时收听Savanna音频的问题。但是这样仍然保留了上述缺点。

在过去,机器学习模型只能存在于强大的大型硬件上,导致它们大多数时候只能在实验室的服务器上运行。但是近年来机器学习算法和低功耗硬件已经发展到可以在嵌入式设备上运行复杂模型的阶段。

如果我们采用狮吼计数模型应用在嵌入式设备中并部署到野外,我们会获得以下优势:

•我们的设备无需通过昂贵的高带宽网络来发送记录到的音频,而是可以当场计算听到的吼声数量,并发送极低功率的远程无线电,像LoRa那样。

•获得咆哮声的数量就够了,所以不需要存储音频以及收集存储卡。

•此设备很便宜且功耗极低,仅用一个电池即可运行数年。

•没有人需要听100小时的野生动植物混合录音带了。

这听起来是一个很好的解决方案。我们解决了一些实际问题,并获得了比以前更便宜更可靠的解决方案。

但是机器学习是一个令人生畏的主题。它技术性很强并涉及许多新概念,它也存在很多陷阱,可以很容易地训练一个看似有用但无法工作的模型。

更重要的是,在嵌入式设备上运行机器学习代码非常困难。除了需要了解机器学习和信号处理算法的知识外,通常还会受制于硬件性能的限制,可能要运用书中的所有技巧才能发挥给定类型芯片的全部性能。

当我们写《TinyML》这本书时,我意识到尽管任何人都可以轻松地开始学习基于嵌入式设备的机器学习。但想要构建出可用于生产的东西却会困难得多。对于专注解决实际问题的普通工程师来说,一天中没有足够的时间来学习机器学习,更不用说要为特定的微控制器架构优化底层ML代码了。机器学习听起来是一个不错的解决方案,但是它需要大量的投入来学习和使用。

这就是为什么我对Edge Impulse感到非常感兴趣的原因(事实上我因为太感兴趣而加入了这个团队)。它是一组用于处理机器学习中繁琐部分的工具,使开发人员可以专注于他们要解决的问题。Edge Impulse让收集数据集,选择正确的机器学习算法,训练生产级模型以及测试的过程变得容易。然后它将整个内容导出为可以轻松放入项目中的高效,高度优化的C ++库。

使用Edge Impulse创建咆哮计数模型的步骤很简单:

1.收集少量音频数据,给他们标记为“吼”或“非吼”,整个过程只需几分钟就可以完成。
2.使用Edge Impulse CLI将数据上传到Edge Impulse。
3.按照说明训练简单模型。
4.添加更多数据并调整模型的设置直到获得所需的精准度。
5.将模型导出为C ++库,并将其添加到嵌入式项目中去。

整个过程可以在几分钟内完成,你不必亲自参观非洲大草原。

由于现实中没有狮子,所以本教程训练了一个可以识别家庭声音的模型:即水龙头发出的自来水声。 要训练的模型大小约为18Kb并且体积小巧,却可以运用在复杂应用的同时为应用程序代码留出大量空间。

如果你有一个基于Arm Cortex-M4的STM32 IoT Node Discovery Kit套件开发板,就可以通过WiFi或串行捕获自己的数据集。如果你没有或者正在等待一个板子,可以下载我从Sunnyvale公寓收集的数据集。Edge Impulse构建了一个可以内置到任何Cortex-M或Cortex-A设备中紧凑独立的C ++库。我们自动使用FPU,矢量扩展,CMSIS-DSP和CMSIS-NN来优化性能,并最大程度地减少RAM和闪存的使用。

除狮子和水龙头外,TinyML还有很多不同应用。想象一下可以识别语音命令的微型设备:当机器出现故障时进行识别,根据周围的声音了解房屋中发生的活动。它最大的优点是借助设备上的推理功能可以保护用户隐私-无需将任何音频发送到云上。

通过使用Edge Impulse任何开发人员都可以轻松构建ML应用程序,Edge Impulse为所有想把惊人想法应用在硬件领域的人实现了梦想。我们随着技术的发展不断改进我们的平台,因此每个人都将从最新的算法和技术中受益。

审核编辑:刘清

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

    关注

    48

    文章

    8250

    浏览量

    162414
  • RAM
    RAM
    +关注

    关注

    8

    文章

    1398

    浏览量

    119826
  • Cortex-M4
    +关注

    关注

    6

    文章

    100

    浏览量

    47813
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Cherry USB可以cortex-A7 开发板使用吗?

    请教下 Cherry USB 可以cortex-A7 开发板使用吗
    发表于 09-25 06:24

    RK3506开发板Linux开发板极致性价比之选

    RK3506开发板Linux开发板极致性价比之选瑞芯微RK3506开发板,3核Cortex-A7@1.5GHz+Cortex-M0,Linux+RT-Thread系统支持,128MB超
    的头像 发表于 09-11 16:26 2798次阅读
    RK3506<b class='flag-5'>开发板</b>Linux<b class='flag-5'>开发板</b>极致性价比之选

    Comake D1 开发板 快速开始

    本文档介绍了COMAKEPID1开发板的快速入门指南,包括硬件连接、AlkaidSDK环境搭建和示例程序开发。该开发板基于Pcupid系列SoC芯片,支持丰富的外设功能,适用于智能
    的头像 发表于 08-25 15:49 565次阅读
    Comake D1 <b class='flag-5'>开发板</b> 快速开始

    【干货分享】 RA-Eco-RA6M4开发板实现 ADC 电压的 LabVIEW 数据采集

    本文介绍了RA-Eco-RA6M4-100PIN-V1.0开发板通过LabVIEW上位机实现ADC电压数据采集的项目设计,采用串口发送和串口中断查询两种方案。
    的头像 发表于 08-21 08:05 1207次阅读
    【干货分享】<b class='flag-5'>在</b> RA-Eco-RA6<b class='flag-5'>M4</b><b class='flag-5'>开发板</b><b class='flag-5'>上</b>实现 ADC 电压的 LabVIEW 数据采集

    如何在RK3576开发板端编译OpenCV并搭建应用

    本文将介绍基于米尔电子MYD-LR3576开发板(米尔基于瑞芯微RK3576开发板)的端编译OpenCV及环境搭建方案的开发测试。摘自优秀创作者-短笛君RK3576具有如下配置:
    的头像 发表于 08-08 08:04 3310次阅读
    如何在RK3576<b class='flag-5'>开发板</b><b class='flag-5'>上</b><b class='flag-5'>板</b>端编译OpenCV并搭建应用

    【RA-Eco-RA6M4开发板评测】+初识篇

    RA-Eco-RA6M4开发板是一款基于 Arm® Cortex®-M33 内核的开发工具,且具有1MB 闪存、192kB支持奇偶校验 SR
    发表于 07-16 19:06

    【新品】远距离图传数传模块开发板、蓝牙模块开发板、无线模块开发板

    新品上市图传数传模块开发板蓝牙模块开发板国产无线模块开发板部分型号参与送样文末了解详情↓↓↓EWT611-900NW20S远距离图传数传模块开发板EWT611-900NW20S是一款
    的头像 发表于 06-12 19:33 897次阅读
    【新品】远距离图传数传模块<b class='flag-5'>开发板</b>、蓝牙模块<b class='flag-5'>开发板</b>、无线模块<b class='flag-5'>开发板</b>

    STM32F3系列、STM32F4系列、STM32L4系列和STM32L4+系列Cortex-M4编程手册

    电子发烧友网站提供《STM32F3系列、STM32F4系列、STM32L4系列和STM32L4+系列Cortex-M4编程手册.pdf》资料免费下载
    发表于 06-06 17:06 9次下载

    蓝牙音频串口透传开发板音频接收方案

    物联网与智能硬件爆发的时代,开发者急需一款能同时攻克音频处理与数据通信痛点的全能工具。ANS-DB003M的出现,或许正是答案。今天,我们就来深度测评一款备受瞩目的产品—ANS-DB
    的头像 发表于 06-06 16:48 785次阅读
    蓝牙<b class='flag-5'>音频</b>串口透传<b class='flag-5'>开发板</b><b class='flag-5'>音频</b>接收方案

    PPEC新品发布丨图形化编程数字电源专用 ARM Cortex-M4 MCU

    痛点。该芯片基于120MHz主频Cortex-M4内核,集成高精度PWM、多协议通信接口等丰富资源。硬件设计,采用LQFP64封装,兼容主流ARM芯片引脚布局
    的头像 发表于 05-22 17:30 1134次阅读
    PPEC新品发布丨图形化编程数字电源专用 ARM <b class='flag-5'>Cortex-M4</b> MCU

    米尔基于瑞芯微RK3506核心开发板

    MYC-YR3506核心开发板新一代入门级国产工业处理器RK3506,3核A7+单核M0多核异构RK3506B:3*Cortex-A7@
    发表于 05-15 16:00 10次下载

    基于RK3576开发板的人脸识别算法

    RK3576开发板展示人脸识别算法例程和API说明
    的头像 发表于 05-07 16:48 2491次阅读
    基于RK3576<b class='flag-5'>开发板</b>的人脸<b class='flag-5'>识别</b>算法

    i.MX8MMini中的Cortex-M4不支持SDIO吗?

    我们正在尝试使用 i.MX8MMini (Cortex-A53/-M4) 并考虑 Cortex-M4 协处理器中实现无线模块 (SDIO I/F)。 关于
    发表于 04-03 06:45

    有奖试用!!RA-Eco-RA4M2-100PIN-V1.0开发板试用活动报名

    RA-Eco-RA4M2-100PIN-V1.0开发板试用活动
    的头像 发表于 03-13 12:10 827次阅读
    有奖试用!!RA-Eco-RA<b class='flag-5'>4M</b>2-100PIN-V1.0<b class='flag-5'>开发板</b>试用活动报名

    东芝推出七款基于Arm Cortex-M4内核的32位微控制器

    东芝电子元件及存储装置株式会社(“东芝”)宣布,最新推出七款配备Cortex-M4内核的32位微控制器,进一步扩大其电机控制微控制器产品线。其中,六款产品组成新的产品组合——M4K组(1)[1],另外一款产品加入M470组。
    的头像 发表于 01-22 18:05 1316次阅读
    东芝推出七款基于Arm <b class='flag-5'>Cortex-M4</b>内核的32位微控制器