开发平台支持Arm Cortex-M的微控制器上人工智能训练

Development platform enables AI training on Arm Cortex-M-based microcontrollers

Cartesiam推出了nanodedge AI Studio,这是一个集成开发环境,开发人员可以使用在不需要任何数据科学知识的情况下,在微控制器上创建AI培训和推理应用程序。该技术兼容任何基于Arm Cortex-M的微控制器,M0到M7,包括M55,并且不需要大量的数据集进行训练。

现在可以在微控制器内部实现学习。将同一个微控制器和同一个库应用于预测性维护应用程序,可以了解单个机器的振动特性

在这种资源受限的设备上训练人工智能算法是一个重大的首次。典型的应用,如预测性维护,直接在微控制器上使用无监督学习来教授特定机器内部正常环境的算法。然后可以创建一个模型并用于推断(预测)。

“真正革命性的是能够在微控制器内部学习,”Cartesiam联合创始人Joël Rubino告诉《欧洲经济时报》。“其人在微控制器内部进行推理,在云端进行学习。需要捕捉数据,在云端创建数据科学家的模型,然后编译所有的东西,然后在微控制器上运行。所做的是不同的。创建了一个库,可以直接在微控制器内部,在任何机器内学习。在边缘创建模型。在边缘训练。这改变了游戏规则,因为现在市场上没有人能做到这一点。”

AI at the Edge

AI在边缘

鲁比诺说,一段时间以来,随着边缘智能化的趋势,计算机行业已经从集中式向分散式发展。

“一开始的想法是,边缘的所有对象都将生成大量的数据。云也不可能分析和计算这些数据。与其将所有数据发送到云端,想法是为什么不向边缘发送情报。”。

本地智能减少了对通信带宽的需求,并防止了篡改的风险。

微控制器作为当今最可用的端点计算平台,完全可以将智能带到端点设备。然而,到目前为止,有限的计算能力和内存是无法克服的挑战。

总部位于法国土伦的卡特西亚姆(Cartesiam)聘请了一支由受过博士学位教育的数学家、数据科学家和机器学习专家组成的团队。

鲁比诺说:“从头重写了所有的机器学习算法,这样就可以安装在微控制器中了。”。“今天这个过程的另一个问题是,需要为想观察的现象采集数据,但数据科学家是一种稀缺资源……如果想把智能带到边缘,必须比现在简单、快捷、更实惠。”

开发流程

NanoEdge人工智能工作室已经制作了3年。

鲁比诺说:“这真的是要把人工智能带到所有的嵌入式设计师那里,使用nanodedge人工智能工作室,将能够在对象内开发人工智能,而且速度非常快。”。

使用NanoEdgeAI Studio的典型开发流程对于没有人工智能专业知识的嵌入式开发人员来说是完全可以访问的。开发人员定义正在使用的传感器类型(电流、加速度计等),定义可用的微控制器(M0到M7),并指定可用RAM的数量。加载一个典型数据的小样本,IDE将使用这些数据来优化不同的算法-在信号处理库、机器学习库和超参数之间,有5亿个可用的组合。最终选择的算法作为一个大小为4kB到32kB的C库提供。可以在开发人员的工作站上使用一个简化的仿真器进行测试,然后下载到目标微控制器上。鲁比诺说,应用程序可以在几天内启动并运行。

开发人员在IDE中提供了一个典型数据的小样本,并创建了一个可以嵌入到微控制器中的库。这些微控制器可以在现场了解所监视的各个机器的特性。

在此基础上,微控制器可以安装在使用无监督学习来训练算法的领域(在无监督学习中,未标记的数据被提供给算法,必须在数据本身中找到结构)。然后创建一个模型,该模型可用于下一步的推理。

同一台机器上的微控制器可以学习同一台机器上的振动数据,而这两台机器是用单片机学习的。不同机器上的同一个库将从这台机器的振动中学习,并创建自己的机器学习模型,”鲁比诺说。

例如,Cartesiam的一个客户使用NanoEdge AI Studio的beta版生产空调机组。该公司监测风扇电机的电流,以检测空气过滤器是否堵塞,需要更换。在客户使用兼容过滤器而不是制造商原装过滤器的市场中,当过滤器被更换时,模型可以了解新过滤器的特性,以预测何时需要更换。

融资回合

该公司成立于2016年,其理念是将人工智能引入端点和物联网设备,如传感器节点。在两年前200万欧元的资助加速了算法的开发之前,50万欧元的种子基金资助使概念得以验证。

çolane的Bob assistant是一个火柴盒大小的设备,可以学习所固定的机器的特征振动。

第一个使用卡特尔塞姆技术进入市场的产品是Éolane的Bob assistant,已经在市场上销售了大约2年。Bob是一种火柴盒大小的硬件设备,可以用磁铁固定在机器上。花7天时间学习每台机器的特征振动(每隔几分钟执行一个简短的学习阶段),然后创建一个机器学习模型,可以在指定的时间间隔内用于预测。如果检测到异常,将连接到LoRA网络以发出适当的通知。

鲁比诺说,Bob已广泛应用于欧洲公司的预测性维护应用,如雷诺、法国铁路运营商SNCF、法国电力公司EDF Energy、空客、泰雷兹等。

Bob的成功使Cartesiam意识到不能继续为每个客户开发单独的库,并致力于开发一种工具,客户可以使用为自己的应用开发自己的库。结果,NanoEdge人工智能工作室,现在可以使用了。

开发平台支持Arm Cortex-M的微控制器上人工智能训练的更多相关文章

  1. Micro Python:运行在微控制器上的Python

    Micro Python运行在微控制器上的Python.遵守MIT协议.由剑桥大学的理论物理学家乔治·达明设计.和Arduino类似,但Micro Python更强大. Micro Python的软件 ...

  2. .Net语言 APP开发平台——Smobiler学习日志:快速实现手机上的图片上传功能

    最前面的话:Smobiler是一个在VS环境中使用.Net语言来开发APP的开发平台,也许比Xamarin更方便 一.目标样式 我们要实现上图中的效果,需要如下的操作: 1.从工具栏上的"S ...

  3. LabVIEW图形化的AI视觉开发平台(非NI Vision),大幅降低人工智能开发门槛

    前言 之前每次进行机器学习和模型训练的时候发现想要训练不同模型的时候需要使用不同的框架,有时候费了九牛二虎之力终于写下了几百行代码之后,才发现环境调试不通,运行效率也差强人意,于是自己写了一个基于La ...

  4. 痞子衡嵌入式:ARM Cortex-M内核那些事(2)- 第一款微控制器

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是第一款Cortex-M微控制器. 1.天生荣耀:ARM Cortex-M处理器由来 ARM公司自2004年推出ARMv7内核架构时,摒弃 ...

  5. 百度AI开发平台简介

    AIstudio https://aistudio.baidu.com/aistudio/index 关于AI Studio AI Studio是基于百度深度学习平台飞桨的一站式AI开发平台,提供在线 ...

  6. 玩转微信2次开发1_交互通信api.php(微擎版)

    在2次开发中,涉及到比较多的也比较繁琐的就是服务器和微信服务器的交互 用户在公众号里操作回复关键词都会让微信服务器和开发者的服务器进行交互 用户一旦关注了某某公众号--微信后台会去查询该公众号是否连接 ...

  7. 从表单驱动到模型驱动,解读低代码开发平台的发展趋势 ZT

    原文地址:https://www.grapecity.com.cn/blogs/read-the-trends-of-low-code-development-platforms 随着社会数字化进程的 ...

  8. 阿里云云开发平台助力风变科技Serverless架构升级实战

    阿里云云开发平台助力风变科技Serverless架构升级实战 背景 风变科技 一个希望通过技术去推动下一代基础教育的组织.旗下产品包括第一代的熊猫书院(读书类产品).第二代的熊猫小课(泛学科综合学习平 ...

  9. 痞子衡嵌入式:微控制器CPU性能测试基准(EEMBC-CoreMark)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是微控制器CPU性能测试基准CoreMark. 在嵌入式系统行业用于评价CPU性能指标的标准主要有三种:Dhrystone.MIPS.Co ...

随机推荐

  1. hdu4267线段树段更新,点查找,55棵线段树.

    题意:      给你N个数,q组操作,操作有两种,查询和改变,查询就是查询当前的这个数上有多少,更改是给你a b k c,每次从a到b,每隔k的数更改一次,之间的数不更改,就相当于跳着更新. 思路: ...

  2. 文档翻译第002篇:Process Monitor帮助文档(Part 2)

    [筛选与高亮显示] Process Monitor提供了一些方式来配置筛选器和高亮显示.         筛选器的包含与排除 您可以在筛选器中指定事件的属性,这样就可以令Process Monitor ...

  3. hdu3714 水三分

    题意:       给你一些函数 y = ax^2 + bx + c,的a >= 0 的二次函数,x的范围是0--1000, 问你在这个范围内函数值最大的最小是多少,最大指的是对于某一个x最大的 ...

  4. Xposed框架中XSharePreference的使用

    本文博客地址:https://blog.csdn.net/QQ1084283172/article/details/81194406 在Xposed框架的模块编写中,通常希望我们自己写的Android ...

  5. IPC$共享和其他共享(C$、D$)

    目录 net use共享命令的用法 IPC$ IPC空连接 ipc$使用的端口 关闭IPC$共享 net use共享命令的用法 net use #查看连接 net share              ...

  6. 14.PHP_PHP与XML技术

    PHP与XML技术 先把概念粘过来: 先来个基本模板: <?xml version="1.0" encoding="gb2312" standalone= ...

  7. Redis数据结构—链表与字典的结构

    目录 Redis数据结构-链表与字典的结构 链表 Redis链表节点的结构 Redis链表的表示 Redis链表用在哪 字典 Redis字典结构总览 Redis字典结构分解 Redis字典的使用 Re ...

  8. Day007 递归

    递归 定义 ​ A方法调A方法!就是自己调自己 作用 ​ 利用递归可以用简单的程序来解决一些复杂的问题.它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程 ...

  9. druid-spring-boot-starter的配置

    #数据源基本信息 spring: datasource: druid: username: root password: 123456 url: jdbc:mysql://localhost:3306 ...

  10. C++ primer plus读书笔记——第12章 类和动态内存分配

    第12章 类和动态内存分配 1. 静态数据成员在类声明中声明,在包含类方法的文件中初始化.初始化时使用作用域运算符来指出静态成员所属的类.但如果静态成员是整形或枚举型const,则可以在类声明中初始化 ...