第一章 基于 Arduino 的機(jī)器學(xué)習(xí)開發(fā)
1.1基本介紹
本項目采用的開發(fā)板是Arduino Nano 33 ble Sense,模型訓(xùn)練平臺為SensiML或者Edge Impulse。對于SensiML,模型部署平臺為VS Code和PlatformIO;對于Edge Impulse,模型部署平臺為Arduino IDE。
對于SensiML的開發(fā),詳細(xì)部分可以參考SensiML的開發(fā)文檔;對于Edge Impulse的開發(fā),詳細(xì)部分可以參考Edge Impulse的開發(fā)文檔。
項目以孤立關(guān)鍵詞識別為例子,操作系統(tǒng)為Win10,介紹開發(fā)過程。
1.2 基于SensiML的模型訓(xùn)練和模型部署
1.2.1注冊SensiML賬號
按圖1-1填寫信息,完成賬號注冊
圖1-1
1.2.2 收集訓(xùn)練數(shù)據(jù)
先下載Data Caputure Lab軟件進(jìn)行采集,然后在DataCapture Lab登錄SensiML賬號,并New Project創(chuàng)建關(guān)鍵詞識別項目,如圖1-2所示
圖1-2
然后使用手機(jī)錄音機(jī)功能采集錄音,每個錄音只包含一個關(guān)鍵字的音頻(建議關(guān)鍵詞發(fā)音時長控制在1s內(nèi),有序間隔發(fā)音),將采集好的音頻文件做好標(biāo)簽區(qū)分并上傳到電腦端,在電腦端將音頻文件格式統(tǒng)一轉(zhuǎn)換為.wav格式(可以使用格式工廠軟件進(jìn)行轉(zhuǎn)化)。
接著在Data CaptureLab軟件中點擊進(jìn)入項目,在菜單欄File中選擇ImportFiles的Wav Files,上傳保存并轉(zhuǎn)換好格式的音頻文件,如圖1-3所示。
圖1-3
接著,對音頻數(shù)據(jù)進(jìn)行標(biāo)注。先點擊Switch Modes按鈕,如圖1-4所示,然后點擊Capture按鈕。進(jìn)入采集界面后,選擇界面最右方的File Metadata選項下的按鈕“+AddMetadat”,如圖1-5所示。進(jìn)入配置界面,在SegmentLabels選項中添加該項目所需的所有標(biāo)簽,如圖1-6所示。
圖1-4
圖1-5
圖1-6
點擊Capture Data Lab軟件界面左上角的ProjectExplorer,對之前導(dǎo)入的音頻文件進(jìn)行逐個標(biāo)注。點擊音頻文件即可進(jìn)行標(biāo)注,通過右鍵選擇范圍進(jìn)行標(biāo)注(通常關(guān)鍵詞字?jǐn)?shù)對應(yīng)相同個數(shù)的音波),選擇Edit Label添加對應(yīng)的標(biāo)簽,如圖1-7所示。
圖1-7
在完成所有音頻文件的標(biāo)注后,平臺會將數(shù)據(jù)和標(biāo)注上傳到SensiML賬號云空間。
1.2.3 利用SensiML平臺訓(xùn)練模型
首先,進(jìn)入SensiML平臺網(wǎng)站,登錄賬號,在Home菜單項處可以看到創(chuàng)建的項目,如圖1-8所示
圖1-8
點擊項目最左邊的打開按鈕,進(jìn)入項目訓(xùn)練配置部分。在左側(cè)的菜單欄的Data Manager中,可以看到音頻數(shù)據(jù)和標(biāo)注的內(nèi)容,如圖1-9所示,這里不需要做任何操作。
圖1-9
接著進(jìn)入PrepareData部分,點擊按鈕“+ CREATE QUERY”,如圖1-10所示,配置參數(shù)如圖1-11所示,點擊“Save”按鈕,生成訓(xùn)練和測試數(shù)據(jù)項。
圖1-10
圖1-11
然后,點擊“Build Model”進(jìn)入模型搭建部分。由于本次實驗是關(guān)鍵詞識別,所以選擇Keyword Spotting模型,點擊“SELECT TEMPLATE”,進(jìn)入配置界面。在配置界面的第二部分Select Pineline中,選擇第一項,如圖1-12所示;在第三部分Select Parameters中的“Query”選項中選擇前面生成的數(shù)據(jù)集(如“data”),如圖1-13所示。
圖1-12
圖1-13
生成模型后,就自動進(jìn)入模型參數(shù)配置部分,點擊最下面的按鈕“OPTIMIZE”開始模型訓(xùn)練。(這里使用keySpot模型,理論上可以不修改數(shù)據(jù)就直接運(yùn)行,如果要修改,可以點擊每一層的圖標(biāo)進(jìn)入修改配置界面,如圖1-14所示)。
圖1-14
模型訓(xùn)練后,可以在選擇菜單項“Explore Model”查看訓(xùn)練結(jié)果,如圖1-15所示。
圖1-15
最后,點擊“Download Model”菜單項下載模型。如圖1-16所示:
圖1-16
選擇“Arduino Nano 3 BLE Sense”開發(fā)板,如圖1-17所示,右側(cè)為模型的基本信息。
圖1-17
下載模型的基本配置如圖1-18所示,選擇下載lib模型文件,點擊按鈕“download”下載模型壓縮包到本地端。
圖1-18
1.2.4 使用VS Code和Platformio進(jìn)入模型部署
首先,將下載好的模型壓縮包解壓,解壓后的文件結(jié)構(gòu)如圖1-19所示:
圖1-19
然后,在github將sensiml提供的nano33知識包下載到VS Code。將自己的模型文件中的./knowledgepack/sensiml/inc和./knowledgepack/sensiml/lib下所有文件、以及model.json文件復(fù)制到github下載下來的知識包的./lib/sensiml路徑下,覆蓋掉原有的所有文件,如圖1-20所示。
圖1-20
將./knowledgepack/knowledgepack_project的文件復(fù)制到github下載的知識包的./src路徑下,覆蓋原有的文件。
修改知識包的sensor_config.h文件。修改部分如圖1-21所示:
圖1-21
接著,把開發(fā)板nano33接入電腦,雙擊開發(fā)板的“reset”按鈕進(jìn)入燒錄狀態(tài)(燒錄狀態(tài)下端口會變),選擇PlatformIO編譯和上傳模型,選擇nano33ble_with_tensorflow的upload,如圖1-22所示。
圖1-22
然后,模型編譯燒錄成功后,用任意藍(lán)牙調(diào)試設(shè)備連接開發(fā)板(燒錄成功后開發(fā)板藍(lán)牙名稱為“Arduino”),同時在電腦端打開串口通信工具,即可以看到預(yù)測的信息和結(jié)果。
由于篇幅關(guān)系,基于Edge Impulse的模型訓(xùn)練和模型部署部分內(nèi)容將放到下期介紹,需要的小伙伴請移步公眾號目錄,關(guān)注以獲取最新資料~
-
開發(fā)板
+關(guān)注
關(guān)注
25文章
5050瀏覽量
97471 -
模型
+關(guān)注
關(guān)注
1文章
3243瀏覽量
48840 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8418瀏覽量
132634 -
Arduino
+關(guān)注
關(guān)注
188文章
6469瀏覽量
187068 -
SensiML
+關(guān)注
關(guān)注
0文章
13瀏覽量
899
原文標(biāo)題:嵌入式機(jī)器學(xué)習(xí)開發(fā)手冊-第一章
文章出處:【微信號:麥克泰技術(shù),微信公眾號:麥克泰技術(shù)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論