用Reality AI Tools创立模型
时间:2025-05-24 16:31:42 出处:最新热点阅读(143)
三。创立模型与布置。
本节关键。
在第二步收集到的数据根底之上,用Reality。 AI。Tools创立模型。
过程。
1.1。点击Asset Tr。ac。king,激活此项目。
点击左边Data界面,依照如下过程操作:
点击Cura。te。。
点击数据文件翻开按钮。
勾选数据文件。
点击Action。
点击F。or。mat Selected。
1.2。在弹出的窗口中,按下述过程操作:
点击#1 Data,并下拉到最下面,挑选Ignore。(留意:这一步非常重要)。
输入采样率1600。
点击Confirm。
1.3。点击Action->Segment List From Selected,进行数据分段。
1.4。依照如下过程:
Window Length Datapoints挑选512。
Offset Datapoints挑选50%。
List称号为amr_512_50_percent_overlap。
点击。Sub。mit。
在这里解释一下,滑动窗口的效果:
防止窗口边际特征的丢掉。
增加样本的数量。
滑动窗口答应背靠背分段数据之间的堆叠。
Sample 1和2之间有50%堆叠。
Sample 2和3之间有50%堆叠。
1.5。在e2 studio中的configura。ti。on.xml中的stack部分Properties页面中Data Shipper/Data Collector/General/Frame Buffer Length,能够设置。MCU。收集数据时的滑动窗口巨细。
本试验滑动窗口的设置是512。
1.6。当数据分段完结后,点击左边AI Explore->Classes。
1.7。点击从前创立的amr_512_50_percent_overlap。再点击界面下部的Start exploring。
此刻,模型正在生成中。模型生成的过程中,答应退出体系或许进行其他操作。这些操作并不会中止或许影响模型生成。
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 %表明本模型的最差精度,数值越高越好。
点击图中“Create Base Tool”,来生成。嵌入式。端的模型。
留意:Reality AI Tools会生成许多模型,点击右下角的” Show more results”能够看到被折叠躲藏的更多模型。
1.9。运用默许的称号,或许输入模型称号和描绘。点击“。Ad。d”。
1.10。现在开端创立嵌入式端侧布置模型,依照如下过程:
点击Deploy->Embedded。
点击Trained Tool Description list。
点击 +New Package。
1.11。输入DeployName,这个姓名便是待会生成的A。PI。的前缀。在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。
点击Generate New Package,创立模型。
1.12。此刻,能够看见右侧的Download显现。
表明模型生成中。
大约10~25分钟左右。
比及右侧的Download显现。
模型生成完结。
点击。
下载。模型文件。
1.13。生成的模型文件称号为amr.zip,里边一共有9个文件,
README.txt和model_info.xml是模型相关的。信息。,包含占用的ROM和RAM信息等。
librai_edsp_f32_。arm。.a是库文件。
example_classifier.c是模型调用的比如代码,实践运用的时分,不需要增加到工程中。
其他5个文件是模型相关的.c和.h文件。
将上述的librai_edsp_f32_arm.a,amr_model.c,amr_model.h,RealityAI.h,RealityAI_Config.h,RealityAI_Types.h文件仿制到Asset Tracking工程中的src/rai文件夹中。
1.14。在hal_entry.c中增加#include "amr_model.h"。
一起把hal_entry.c中的宏界说。
#define DATA_COLLECTION_EN (1)。
修正成。
#define DATA_COLLECTION_EN (0)。
表明代码进入推理阶段。
1.15。点击图标。
来编译工程。
本工程经过编译后,应改没有任何erro。rs。或许warnings。
1.16。点击按钮。
发动调试并查看操控台中的内容是否成功建立了衔接。
1.17。翻开Debug文件中的FPBRA6E2_AMR_training.map文件。
查找到.bss._SEGGER_RTT字段并仿制赤色框处地址。
留意:下图中的地址或许和实践的工程不相符,以自己手中的文件为准。
1.18。翻开J-Link RTT-Viewer,点击File->Connect。
在弹出的窗口中,依照以下图片装备。留意,左下角的地址,输入的是上一过程仿制的地址,点击OK。
看到下面的Log输出框,表明衔接成功。
1.19。点击Terminal 0。标签。页。
1.20。点击图标。
两次。
此刻,程序正常运转起来。
如果在运转的工程中,发现程序停留在startup.c中Default_Handler中。
参阅从前3.14过程中下载的模型中的README.txt的Estimated Memory Utilization中的Parameters,Stack Usage和Pre-Allocated之和。还要考虑加上工程自身没有运用模型推理的代码的stack耗费。
这是工程的stack设定过小,导致仓库溢出,然后进入Default_Handler。需要在configuration.xml->BSP->Properties->RA Common中的Main stack size(bytes)进行修正。
1.21。调查J-Link RTT Viewer中的打印信息。经过扔(10cm高处下跌)、摇晃、停止FPB-RA6E2。能够发现得到如下信息:
赤色表明FPB-RA6E2处于drop状况。
黄色表明FPB-RA6E2处于shake状况。
绿色表明FPB-RA6E2处于normal状况。
能够测验收集更多类型动作数据,再次上传数据并练习,以便辨认更多的动作。