三創(chuàng)建模型與部署
本節(jié)要點(diǎn)
在第二步采集到的數(shù)據(jù)基礎(chǔ)之上,用Reality AI Tools創(chuàng)建模型。
步驟
1.1點(diǎn)擊Asset Tracking,激活此項(xiàng)目。
點(diǎn)擊左側(cè)Data界面,按照如下步驟操作:
點(diǎn)擊Curate。
點(diǎn)擊數(shù)據(jù)文件展開按鈕。
勾選數(shù)據(jù)文件。
點(diǎn)擊Action。
點(diǎn)擊Format Selected。
1.2在彈出的窗口中,按下述步驟操作:
點(diǎn)擊#1 Data,并下拉到最下面,選擇Ignore。(注意:這一步非常重要)。
輸入采樣率1600。
點(diǎn)擊Confirm。
1.3點(diǎn)擊Action->Segment List From Selected,進(jìn)行數(shù)據(jù)分段。
1.4按照如下步驟:
Window Length Datapoints選擇512。
Offset Datapoints選擇50%。
List名稱為amr_512_50_percent_overlap。
點(diǎn)擊Submit。
在這里解釋一下,滑動(dòng)窗口的作用:
避免窗口邊緣特征的丟失。
增加樣本的數(shù)量。
滑動(dòng)窗口允許背靠背分段數(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,可以設(shè)置MCU采集數(shù)據(jù)時(shí)的滑動(dòng)窗口大小。
本實(shí)驗(yàn)滑動(dòng)窗口的設(shè)置是512。
1.6當(dāng)數(shù)據(jù)分段完成后,點(diǎn)擊左側(cè)AI Explore->Classes。
1.7點(diǎn)擊先前創(chuàng)建的amr_512_50_percent_overlap。再點(diǎn)擊界面下部的Start exploring。
此時(shí),模型正在生成中。模型生成的過程中,允許退出系統(tǒng)或者進(jìn)行其他操作。這些操作并不會(huì)中斷或者影響模型生成。
1.8大概等待10~25分鐘左右后,模型生成完成,模型生成時(shí)長(zhǎng)與訓(xùn)練數(shù)據(jù)大小有關(guān)。
如何選擇適合自己的模型呢?主要關(guān)注Complexity和KFold Accuracy兩個(gè)指標(biāo)。
點(diǎn)擊Complexity列的三角圖標(biāo),它顯示當(dāng)前模型的相關(guān)參數(shù)。
X Operations表示模型運(yùn)行中的MAC(乘累加)操作數(shù)量。
RAM表示模型運(yùn)行中所需RAM的大小。
Storage(FLASH/ROM)表示模型運(yùn)行中所需FLASH的大小。
注意:上述的RAM和FLASH的數(shù)值,是以云端服務(wù)器硬件平臺(tái)為基準(zhǔn)顯示的,僅供參考。部署到實(shí)際項(xiàng)目中的MCU/MPU平臺(tái)中的RAM和FLASH的數(shù)值,可能會(huì)與這個(gè)不同。
KFold Accuracy表示K折交叉驗(yàn)證的模型精度。交叉驗(yàn)證的基本思想是將原始數(shù)據(jù)集分成多個(gè)部分,一部分當(dāng)作訓(xùn)練集,另一部分作為驗(yàn)證集。先用訓(xùn)練集對(duì)算法模型進(jìn)行訓(xùn)練,再用驗(yàn)證集測(cè)試訓(xùn)練得到的算法模型,反復(fù)利用這些部分進(jìn)行模型的訓(xùn)練和驗(yàn)證。Overall %表示本模型的整體精度,數(shù)值越高越好,Worst %表示本模型的最差精度,數(shù)值越高越好。
點(diǎn)擊圖中“Create Base Tool”,來生成嵌入式端的模型。
注意:Reality AI Tools會(huì)生成許多模型,點(diǎn)擊右下角的” Show more results”可以看到被折疊隱藏的更多模型。
1.9使用默認(rèn)的名稱,或者輸入模型名稱和描述。點(diǎn)擊“Add”。
1.10現(xiàn)在開始創(chuàng)建嵌入式端側(cè)部署模型,按照如下步驟:
點(diǎn)擊Deploy->Embedded。
點(diǎn)擊Trained Tool Description list。
點(diǎn)擊 +New Package。
1.11輸入DeployName,這個(gè)名字就是待會(huì)生成的API的前綴。在Inputs中的Data type中選擇float32(float)。因?yàn)椴杉臄?shù)據(jù)是float32類型的。中間的outputs區(qū)域,顯示了API的輸出類型和含義。右側(cè)的Build Options涵蓋目標(biāo)設(shè)備類型(目前RA6E2沒有在列表清單中,暫時(shí)選擇RA6E1),F(xiàn)PU類型選擇M33 FPU,hard fp abi,Toolchain選擇GNU GCC 13.2.1,優(yōu)化類型選擇Speed。
點(diǎn)擊Generate New Package,創(chuàng)建模型。
1.12此時(shí),可以看見右側(cè)的Download顯示
表示模型生成中。
大概10~25分鐘左右。
等到右側(cè)的Download顯示
模型生成完成
點(diǎn)擊
下載模型文件。
1.13生成的模型文件名稱為amr.zip,里面一共有9個(gè)文件,
README.txt和model_info.xml是模型相關(guān)的信息,包括占用的ROM和RAM信息等。
librai_edsp_f32_arm.a是庫文件。
example_classifier.c是模型調(diào)用的例子代碼,實(shí)際使用的時(shí)候,不需要添加到工程中。
其余5個(gè)文件是模型相關(guān)的.c和.h文件。
將上述的librai_edsp_f32_arm.a,amr_model.c,amr_model.h,RealityAI.h,RealityAI_Config.h,RealityAI_Types.h文件復(fù)制到Asset Tracking工程中的src/rai文件夾中。
1.14在hal_entry.c中添加#include "amr_model.h"。
同時(shí)把hal_entry.c中的宏定義
#define DATA_COLLECTION_EN (1)
修改成
#define DATA_COLLECTION_EN (0)
表示代碼進(jìn)入推理階段。
1.15點(diǎn)擊圖標(biāo)
來編譯工程。
本工程經(jīng)過編譯后,應(yīng)改沒有任何errors或者warnings。
1.16點(diǎn)擊按鈕
啟動(dòng)調(diào)試并檢查控制臺(tái)中的內(nèi)容是否成功建立了連接。
1.17打開Debug文件中的FPBRA6E2_AMR_training.map文件。
搜索到.bss._SEGGER_RTT字段并復(fù)制紅色框處地址。
注意:下圖中的地址可能和實(shí)際的工程不相符,以自己手中的文件為準(zhǔn)。
1.18打開J-Link RTT-Viewer,點(diǎn)擊File->Connect。
在彈出的窗口中,按照以下圖片配置。注意,左下角的地址,輸入的是上一步驟復(fù)制的地址,點(diǎn)擊OK。
看到下面的Log輸出框,表示連接成功。
1.19點(diǎn)擊Terminal 0標(biāo)簽頁。
1.20點(diǎn)擊圖標(biāo)
兩次
此時(shí),程序正常運(yùn)行起來。
如果在運(yùn)行的工程中,發(fā)現(xiàn)程序停留在startup.c中Default_Handler中。
參考先前3.14步驟中下載的模型中的README.txt的Estimated Memory Utilization中的Parameters,Stack Usage和Pre-Allocated之和。還要考慮加上工程本身沒有使用模型推理的代碼的stack消耗。
這是工程的stack設(shè)定過小,導(dǎo)致堆棧溢出,從而進(jìn)入Default_Handler。需要在configuration.xml->BSP->Properties->RA Common中的Main stack size(bytes)進(jìn)行修改。
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)。
可以嘗試采集更多類型動(dòng)作數(shù)據(jù),再次上傳數(shù)據(jù)并訓(xùn)練,以便識(shí)別更多的動(dòng)作。
-
嵌入式
+關(guān)注
關(guān)注
5089文章
19170瀏覽量
306801 -
AI
+關(guān)注
關(guān)注
87文章
31429瀏覽量
269832 -
模型
+關(guān)注
關(guān)注
1文章
3294瀏覽量
49037
原文標(biāo)題:基于RA MCU + Reality AI識(shí)別動(dòng)作姿態(tài)全流程開發(fā)(2)
文章出處:【微信號(hào):瑞薩MCU小百科,微信公眾號(hào):瑞薩MCU小百科】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論