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

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

3天内不再提示

用Reality AI Tools创建模型

瑞萨嵌入式小百科 来源:瑞萨MCU小百科 作者:瑞萨MCU小百科 2025-01-22 14:23 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

创建模型与部署

本节要点

在第二步采集到的数据基础之上,用Reality AI Tools创建模型。

步骤

1.1点击Asset Tracking,激活此项目。

2273bc36-d876-11ef-9310-92fbcf53809c.png

点击左侧Data界面,按照如下步骤操作:

点击Curate

点击数据文件展开按钮。

勾选数据文件。

点击Action。

点击Format Selected。

228e9876-d876-11ef-9310-92fbcf53809c.png

1.2在弹出的窗口中,按下述步骤操作:

点击#1 Data,并下拉到最下面,选择Ignore。(注意:这一步非常重要)。

输入采样率1600。

点击Confirm。

22a1a876-d876-11ef-9310-92fbcf53809c.png

1.3点击Action->Segment List From Selected,进行数据分段。

22bdf184-d876-11ef-9310-92fbcf53809c.png

1.4按照如下步骤:

Window Length Datapoints选择512。

Offset Datapoints选择50%。

List名称为amr_512_50_percent_overlap。

点击Submit。

22dabcce-d876-11ef-9310-92fbcf53809c.png

在这里解释一下,滑动窗口的作用:

避免窗口边缘特征的丢失。

增加样本的数量。

滑动窗口允许背靠背分段数据之间的重叠。

Sample 1和2之间有50%重叠。

Sample 2和3之间有50%重叠。

22f29aa6-d876-11ef-9310-92fbcf53809c.png

1.5在e2 studio中的configuration.xml中的stack部分Properties页面中Data Shipper/Data Collector/General/Frame Buffer Length,可以设置MCU采集数据时的滑动窗口大小。

本实验滑动窗口的设置是512。

230ebb78-d876-11ef-9310-92fbcf53809c.png

1.6当数据分段完成后,点击左侧AI Explore->Classes。

2326d3b6-d876-11ef-9310-92fbcf53809c.png

1.7点击先前创建的amr_512_50_percent_overlap。再点击界面下部的Start exploring。

234795f6-d876-11ef-9310-92fbcf53809c.png

此时,模型正在生成中。模型生成的过程中,允许退出系统或者进行其他操作。这些操作并不会中断或者影响模型生成。

235d7d30-d876-11ef-9310-92fbcf53809c.png

1.8大概等待10~25分钟左右后,模型生成完成,模型生成时长与训练数据大小有关。

如何选择适合自己的模型呢?主要关注Complexity和KFold Accuracy两个指标。

点击Complexity列的三角图标,它显示当前模型的相关参数。

X Operations表示模型运行中的MAC(乘累加)操作数量。

RAM表示模型运行中所需RAM的大小。

Storage(FLASH/ROM)表示模型运行中所需FLASH的大小。

注意:上述的RAM和FLASH的数值,是以云端服务器硬件平台为基准显示的,仅供参考。部署到实际项目中的MCU/MPU平台中的RAM和FLASH的数值,可能会与这个不同。

KFold Accuracy表示K折交叉验证的模型精度。交叉验证的基本思想是将原始数据集分成多个部分,一部分当作训练集,另一部分作为验证集。先用训练集对算法模型进行训练,再用验证集测试训练得到的算法模型,反复利用这些部分进行模型的训练和验证。Overall %表示本模型的整体精度,数值越高越好,Worst %表示本模型的最差精度,数值越高越好。

236936d4-d876-11ef-9310-92fbcf53809c.png

点击图中“Create Base Tool”,来生成嵌入式端的模型。

238390f6-d876-11ef-9310-92fbcf53809c.png

注意:Reality AI Tools会生成许多模型,点击右下角的” Show more results”可以看到被折叠隐藏的更多模型。

1.9使用默认的名称,或者输入模型名称和描述。点击“Add”。

2394e19e-d876-11ef-9310-92fbcf53809c.png

1.10现在开始创建嵌入式端侧部署模型,按照如下步骤:

点击Deploy->Embedded。

点击Trained Tool Description list。

点击 +New Package。

23a69010-d876-11ef-9310-92fbcf53809c.png

1.11输入DeployName,这个名字就是待会生成的API的前缀。在Inputs中的Data type中选择float32(float)。因为采集的数据是float32类型的。中间的outputs区域,显示了API的输出类型和含义。右侧的Build Options涵盖目标设备类型(目前RA6E2没有在列表清单中,暂时选择RA6E1),FPU类型选择M33 FPU,hard fp abi,Toolchain选择GNU GCC 13.2.1,优化类型选择Speed。

23b1e122-d876-11ef-9310-92fbcf53809c.png

点击Generate New Package,创建模型。

23cdcec8-d876-11ef-9310-92fbcf53809c.png

1.12此时,可以看见右侧的Download显示

23d9b8c8-d876-11ef-9310-92fbcf53809c.png

表示模型生成中。

23ecdf52-d876-11ef-9310-92fbcf53809c.png

大概10~25分钟左右。

等到右侧的Download显示

2402329e-d876-11ef-9310-92fbcf53809c.png

模型生成完成

点击

2402329e-d876-11ef-9310-92fbcf53809c.png

下载模型文件。

242511b0-d876-11ef-9310-92fbcf53809c.png

1.13生成的模型文件名称为amr.zip,里面一共有9个文件,

README.txt和model_info.xml是模型相关的信息,包括占用的ROM和RAM信息等。

librai_edsp_f32_arm.a是库文件。

example_classifier.c是模型调用的例子代码,实际使用的时候,不需要添加到工程中。

其余5个文件是模型相关的.c和.h文件。

243ba7f4-d876-11ef-9310-92fbcf53809c.png

将上述的librai_edsp_f32_arm.a,amr_model.c,amr_model.h,RealityAI.h,RealityAI_Config.h,RealityAI_Types.h文件复制到Asset Tracking工程中的src/rai文件夹中。

24523064-d876-11ef-9310-92fbcf53809c.png

1.14在hal_entry.c中添加#include "amr_model.h"。

2469ca58-d876-11ef-9310-92fbcf53809c.png

同时把hal_entry.c中的宏定义

#define DATA_COLLECTION_EN (1)

修改成

#define DATA_COLLECTION_EN (0)

表示代码进入推理阶段。

1.15点击图标

247903e2-d876-11ef-9310-92fbcf53809c.png

来编译工程。

本工程经过编译后,应改没有任何errors或者warnings。

1.16点击按钮

2493c0c4-d876-11ef-9310-92fbcf53809c.png

启动调试并检查控制台中的内容是否成功建立了连接。

1.17打开Debug文件中的FPBRA6E2_AMR_training.map文件。

24a59ff6-d876-11ef-9310-92fbcf53809c.png

搜索到.bss._SEGGER_RTT字段并复制红色框处地址。

注意:下图中的地址可能和实际的工程不相符,以自己手中的文件为准。

24c1b65a-d876-11ef-9310-92fbcf53809c.png

1.18打开J-Link RTT-Viewer,点击File->Connect。

24cf92d4-d876-11ef-9310-92fbcf53809c.png

在弹出的窗口中,按照以下图片配置。注意,左下角的地址,输入的是上一步骤复制的地址,点击OK。

24f8c6ae-d876-11ef-9310-92fbcf53809c.png

看到下面的Log输出框,表示连接成功。

250e3cf0-d876-11ef-9310-92fbcf53809c.png

1.19点击Terminal 0标签页。

25232d7c-d876-11ef-9310-92fbcf53809c.png

1.20点击图标

253bbc5c-d876-11ef-9310-92fbcf53809c.png

两次

此时,程序正常运行起来。

254f0cf8-d876-11ef-9310-92fbcf53809c.png

如果在运行的工程中,发现程序停留在startup.c中Default_Handler中。

256885ac-d876-11ef-9310-92fbcf53809c.png

参考先前3.14步骤中下载的模型中的README.txt的Estimated Memory Utilization中的Parameters,Stack Usage和Pre-Allocated之和。还要考虑加上工程本身没有使用模型推理的代码的stack消耗。

25894f08-d876-11ef-9310-92fbcf53809c.png

这是工程的stack设定过小,导致堆栈溢出,从而进入Default_Handler。需要在configuration.xml->BSP->Properties->RA Common中的Main stack size(bytes)进行修改。

259e917e-d876-11ef-9310-92fbcf53809c.png

1.21观察J-Link RTT Viewer中的打印信息。通过扔(10cm高处跌落)、摇晃、静止FPB-RA6E2。可以发现得到如下信息:

红色表示FPB-RA6E2处于drop状态。

黄色表示FPB-RA6E2处于shake状态。

绿色表示FPB-RA6E2处于normal状态。

25b4be2c-d876-11ef-9310-92fbcf53809c.png

可以尝试采集更多类型动作数据,再次上传数据并训练,以便识别更多的动作。

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

    关注

    5188

    文章

    20172

    浏览量

    329246
  • AI
    AI
    +关注

    关注

    90

    文章

    38271

    浏览量

    297327
  • 模型
    +关注

    关注

    1

    文章

    3655

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    AI模型的配置AI模型该怎么做?

    STM32可以跑AI,这个AI模型怎么搞,知识盲区
    发表于 10-14 07:14

    维修总赶不上故障?智能管理系统 AI 建模,把设备隐患掐灭在萌芽里

    智能制造浪潮中,掌握设备 “健康密码” 者方能占据主动。 AI 建模掐灭隐患,正是企业精细化管理的关键一步。
    的头像 发表于 09-17 11:30 372次阅读
    维修总赶不上故障?智能管理系统<b class='flag-5'>用</b> <b class='flag-5'>AI</b> <b class='flag-5'>建模</b>,把设备隐患掐灭在萌芽里

    【「AI芯片:科技探索与AGI愿景」阅读体验】+第二章 实现深度学习AI芯片的创新方法与架构

    、Transformer 模型的后继者 二、创新方法实现深度学习AI芯片 1、基于开源RISC-V的AI加速器 RISC-V是一种开源、模块化的指令集架构(ISA)。优势如下: ①模
    发表于 09-12 17:30

    恩智浦MCU MCXN947 基于MCUXpresso Config tools创建IIC的教程步骤

    。 本文档介绍如何使用MCUXpresso Config Tools 开启IIC: 步骤 步骤一:创建空项目   步骤二:时钟开
    的头像 发表于 05-22 09:40 1840次阅读
    恩智浦MCU MCXN947 基于MCUXpresso Config <b class='flag-5'>tools</b><b class='flag-5'>创建</b>IIC的教程步骤

    企业使用NVIDIA NeMo微服务构建AI智能体平台

    已发布的 NeMo 微服务可与合作伙伴平台集成,作为创建 AI 智能体的构建模块,使用商业智能与强大的逻辑推理模型 (包括 NVIDIA Llama Nemotron) 处理更多任务。
    的头像 发表于 04-27 15:05 1023次阅读

    首创开源架构,天玑AI开发套件让端侧AI模型接入得心应手

    AI的演进正在逼近“终端智能涌现”的拐点,从通用模型向场景落地迁移成为关键议题。联发科以“AI随芯,应用无界”为主题召开天玑开发者大会2025(MDDC 2025),不仅聚合了全球生态资源,还
    发表于 04-13 19:52

    基于RC热阻SPICE模型的GaNPX®和PDFN封装的热特性建模

    GaN Systems提供RC热阻模型,使客户能够使用SPICE进行详细的热模拟。 模型基于有限元分析(FEA)热模拟创建,并已由GaN Systems验证。 选择了考尔(Cauer)模型
    的头像 发表于 03-11 18:32 1328次阅读
    基于RC热阻SPICE<b class='flag-5'>模型</b>的GaNPX®和PDFN封装的热特性<b class='flag-5'>建模</b>

    训练好的ai模型导入cubemx不成功怎么处理?

    训练好的ai模型导入cubemx不成功咋办,试了好几个模型压缩了也不行,ram占用过大,有无解决方案?
    发表于 03-11 07:18

    AI Agent 应用与项目实战》----- 学习如何开发视频应用

    开发一个视频内容生成Agent。 访问语聚AI平台官网 ,进行注册或登录。 在平台首页,了解语聚AI的功能和应用场景,特别是其支持的视频生成相关的AI模型和工具。 在语聚
    发表于 03-05 19:52

    AI模型托管原理

    AI模型托管的核心在于将训练好的AI模型部署在云端或边缘服务器上,由第三方平台提供模型运行、管理和优化等服务。下面,
    的头像 发表于 02-26 10:31 932次阅读

    AI开源模型库有什么

    AI开源模型库作为推动AI技术发展的重要力量,正深刻改变着我们的生产生活方式。接下来,AI部落小编带您了解AI开源
    的头像 发表于 02-24 11:50 915次阅读

    AI开发平台模型怎么

    AI开发平台极大地简化了AI应用的开发流程,从环境搭建、模型训练到部署集成,每一步都提供了丰富的工具和资源。那么,AI开发平台模型怎么
    的头像 发表于 02-11 09:53 633次阅读

    AI Cube进行yolov8n模型训练,创建项目目标检测时显示数据集目录下存在除标注和图片外的其他目录如何处理?

    AI Cube进行yolov8n模型训练 创建项目目标检测时显示数据集目录下存在除标注和图片外的其他目录怎么解决
    发表于 02-08 06:21

    Reality AI数据采集插件介绍

      当前,人工智能(Artificial Intelligence,AI)发展势头愈发强劲,呈现出一种不可阻挡的迅猛态势。从广为人知的大型语言模型(Large Language Models
    的头像 发表于 01-24 12:19 1073次阅读
    <b class='flag-5'>Reality</b> <b class='flag-5'>AI</b>数据采集插件介绍

    瑞萨e2 studio中Reality AI组件的使用方法

    Data Storage Tool等工具来采集,存储数据文件,同时将数据文件上传到Reality AI portal中进行模型训练与生成,代码部署与调试。
    的头像 发表于 01-21 13:48 1781次阅读
    瑞萨e2 studio中<b class='flag-5'>Reality</b> <b class='flag-5'>AI</b>组件的使用方法