三創(chuàng)建模型與部署
本節(jié)要點
在第二步采集到的數(shù)據(jù)基礎之上,用Reality AI Tools創(chuàng)建模型。
步驟
1.1點擊Asset Tracking,激活此項目。
點擊左側(cè)Data界面,按照如下步驟操作:
點擊Curate。
點擊數(shù)據(jù)文件展開按鈕。
勾選數(shù)據(jù)文件。
點擊Action。
點擊Format Selected。
1.2在彈出的窗口中,按下述步驟操作:
點擊#1 Data,并下拉到最下面,選擇Ignore。(注意:這一步非常重要)。
輸入采樣率1600。
點擊Confirm。
1.3點擊Action->Segment List From Selected,進行數(shù)據(jù)分段。
1.4按照如下步驟:
Window Length Datapoints選擇512。
Offset Datapoints選擇50%。
List名稱為amr_512_50_percent_overlap。
點擊Submit。
在這里解釋一下,滑動窗口的作用:
避免窗口邊緣特征的丟失。
增加樣本的數(shù)量。
滑動窗口允許背靠背分段數(shù)據(jù)之間的重疊。
Sample 1和2之間有50%重疊。
Sample 2和3之間有50%重疊。
1.5在e2 studio中的configuration.xml中的stack部分Properties頁面中Data Shipper/Data Collector/General/Frame Buffer Length,可以設置MCU采集數(shù)據(jù)時的滑動窗口大小。
本實驗滑動窗口的設置是512。
1.6當數(shù)據(jù)分段完成后,點擊左側(cè)AI Explore->Classes。
1.7點擊先前創(chuàng)建的amr_512_50_percent_overlap。再點擊界面下部的Start exploring。
此時,模型正在生成中。模型生成的過程中,允許退出系統(tǒng)或者進行其他操作。這些操作并不會中斷或者影響模型生成。
1.8大概等待10~25分鐘左右后,模型生成完成,模型生成時長與訓練數(shù)據(jù)大小有關。
如何選擇適合自己的模型呢?主要關注Complexity和KFold Accuracy兩個指標。
點擊Complexity列的三角圖標,它顯示當前模型的相關參數(shù)。
X Operations表示模型運行中的MAC(乘累加)操作數(shù)量。
RAM表示模型運行中所需RAM的大小。
Storage(FLASH/ROM)表示模型運行中所需FLASH的大小。
注意:上述的RAM和FLASH的數(shù)值,是以云端服務器硬件平臺為基準顯示的,僅供參考。部署到實際項目中的MCU/MPU平臺中的RAM和FLASH的數(shù)值,可能會與這個不同。
KFold Accuracy表示K折交叉驗證的模型精度。交叉驗證的基本思想是將原始數(shù)據(jù)集分成多個部分,一部分當作訓練集,另一部分作為驗證集。先用訓練集對算法模型進行訓練,再用驗證集測試訓練得到的算法模型,反復利用這些部分進行模型的訓練和驗證。Overall %表示本模型的整體精度,數(shù)值越高越好,Worst %表示本模型的最差精度,數(shù)值越高越好。
點擊圖中“Create Base Tool”,來生成嵌入式端的模型。
注意:Reality AI Tools會生成許多模型,點擊右下角的” Show more results”可以看到被折疊隱藏的更多模型。
1.9使用默認的名稱,或者輸入模型名稱和描述。點擊“Add”。
1.10現(xiàn)在開始創(chuàng)建嵌入式端側(cè)部署模型,按照如下步驟:
點擊Deploy->Embedded。
點擊Trained Tool Description list。
點擊 +New Package。
1.11輸入DeployName,這個名字就是待會生成的API的前綴。在Inputs中的Data type中選擇float32(float)。因為采集的數(shù)據(jù)是float32類型的。中間的outputs區(qū)域,顯示了API的輸出類型和含義。右側(cè)的Build Options涵蓋目標設備類型(目前RA6E2沒有在列表清單中,暫時選擇RA6E1),F(xiàn)PU類型選擇M33 FPU,hard fp abi,Toolchain選擇GNU GCC 13.2.1,優(yōu)化類型選擇Speed。
點擊Generate New Package,創(chuàng)建模型。
1.12此時,可以看見右側(cè)的Download顯示
表示模型生成中。
大概10~25分鐘左右。
等到右側(cè)的Download顯示
模型生成完成
點擊
下載模型文件。
1.13生成的模型文件名稱為amr.zip,里面一共有9個文件,
README.txt和model_info.xml是模型相關的信息,包括占用的ROM和RAM信息等。
librai_edsp_f32_arm.a是庫文件。
example_classifier.c是模型調(diào)用的例子代碼,實際使用的時候,不需要添加到工程中。
其余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點擊圖標
來編譯工程。
本工程經(jīng)過編譯后,應改沒有任何errors或者warnings。
1.16點擊按鈕
啟動調(diào)試并檢查控制臺中的內(nèi)容是否成功建立了連接。
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點擊圖標
兩次
此時,程序正常運行起來。
如果在運行的工程中,發(fā)現(xiàn)程序停留在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??梢园l(fā)現(xiàn)得到如下信息:
紅色表示FPB-RA6E2處于drop狀態(tài)。
黃色表示FPB-RA6E2處于shake狀態(tài)。
綠色表示FPB-RA6E2處于normal狀態(tài)。
可以嘗試采集更多類型動作數(shù)據(jù),再次上傳數(shù)據(jù)并訓練,以便識別更多的動作。
-
嵌入式
+關注
關注
5152文章
19678瀏覽量
317789 -
AI
+關注
關注
88文章
35194瀏覽量
280294 -
模型
+關注
關注
1文章
3522瀏覽量
50452
原文標題:基于RA MCU + Reality AI識別動作姿態(tài)全流程開發(fā)(2)
文章出處:【微信號:瑞薩MCU小百科,微信公眾號:瑞薩MCU小百科】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
恩智浦MCU MCXN947 基于MCUXpresso Config tools創(chuàng)建IIC的教程步驟

企業(yè)使用NVIDIA NeMo微服務構建AI智能體平臺
首創(chuàng)開源架構,天璣AI開發(fā)套件讓端側(cè)AI模型接入得心應手
基于RC熱阻SPICE模型的GaNPX?和PDFN封裝的熱特性建模

《AI Agent 應用與項目實戰(zhàn)》----- 學習如何開發(fā)視頻應用
AI模型托管原理
AI開源模型庫有什么用
AI開發(fā)平臺模型怎么用
AI Cube進行yolov8n模型訓練,創(chuàng)建項目目標檢測時顯示數(shù)據(jù)集目錄下存在除標注和圖片外的其他目錄如何處理?
Reality AI數(shù)據(jù)采集插件介紹

瑞薩e2 studio中Reality AI組件的使用方法

評論