使用DEEPCRAFT?和MicroPython輕松實現(xiàn)邊緣AI
邊緣AI聽起來很有趣……直到數(shù)據(jù)捕獲成功?我們聽到了!MicroPython與DEEPCRAFT?Studio的集成使其變得前所未有的簡單。
半焊板,傳感器粘在任何移動的東西上——每一個原型都是從混亂和希望開始的。你的想法看起來很有希望,但甚至在你開始之前,獲取實時傳感器數(shù)據(jù)就成了主要的障礙。突然間,您被埋沒在嵌入式C驅(qū)動程序、破碎的日志和神秘的bug中,只是試圖回答:“傳感器實際感知到什么?”靈感的火花在繁瑣的設(shè)置墻后消失了。
通過我們的DEEPCRAFT?MicroPython集成,數(shù)據(jù)捕獲變得非常簡單。在您的主板上運行一個MicroPython腳本,將數(shù)據(jù)無線傳輸?shù)侥闹鳈C。在主機端,DEEPCRAFT的捕獲服務(wù)器處理其余的-實時日志記錄,時間戳,并格式化您的數(shù)據(jù),準備直接進入DEEPCRAFT?工作室進行培訓(xùn)。沒有笨拙的司機。沒有損壞的csv。只有干凈的、帶有時間戳的數(shù)據(jù)——就像你想象的那樣。從傳感器到數(shù)據(jù)集,它比以往任何時候都更流暢。下面是工作流的樣子:
Capture Server提供了多個接口,但這種集成側(cè)重于通過Wi-Fi使用TCP無線傳輸傳感器數(shù)據(jù),使整個管道既靈活又不需要電纜。
讓我們開始看看這有多簡單。我們將以音頻數(shù)據(jù)流作為應(yīng)用程序示例來講解這個Protip。如果您需要復(fù)習(xí)PDM麥克風(fēng),我們已經(jīng)在這篇文章中為您介紹了。
硬件設(shè)置
你所需要的只是CY8CKIT-062S2-AI套件。該套件有兩個內(nèi)置的IM72D128數(shù)字麥克風(fēng)。本套件中連接PDM-PCM總線的引腳有:
?CLK: p104
?數(shù)據(jù):P10_5
軟件設(shè)置
步驟1。安裝
1. 首先,您需要在PSOC?設(shè)備上運行MicroPython固件。在這里找到設(shè)置的所有細節(jié)。
2. 按照Capture Server文檔中提供的說明克隆并設(shè)置Capture Server存儲庫。
3. 克隆您將找到數(shù)據(jù)獲取腳本的GitHub存儲庫。
步驟2。在設(shè)備上啟動傳感器數(shù)據(jù)采集
1. 一旦克隆了GitHub存儲庫,在任何MicroPython支持的IDE(如thony)中打開該位置。選擇所有源并通過點擊“上傳至/”將其復(fù)制到設(shè)備。
將它們成功復(fù)制到設(shè)備后,您應(yīng)該看到以下屏幕。
2. 現(xiàn)在在你的MicroPython設(shè)備上打開config.py,添加你的網(wǎng)絡(luò)憑據(jù)并保存在設(shè)備上。
3. 打開data_acquisition.py腳本并單擊play按鈕。
步驟3:運行Capture Server
1. 從命令提示符終端導(dǎo)航到克隆的Capture Server存儲庫的根目錄。您必須已經(jīng)在名為captureserver的文件夾中。然后轉(zhuǎn)到examples/generic文件夾。
2. 將參數(shù)替換為實際參數(shù)后,執(zhí)行如下命令執(zhí)行Capture Server:
注意,這里的參數(shù)也應(yīng)該與數(shù)據(jù)采集腳本中的傳感器配置值相匹配。以PDM麥克風(fēng)配置為例:
?ip-address:是設(shè)備的ip地址,您將在運行data_acquisition.py腳本時在終端中看到打印輸出。
?數(shù)據(jù)格式:.wav(音頻數(shù)據(jù))
?數(shù)據(jù)類型:h(短)
?每包樣品:512個。每個包中樣本的大小也與緩沖區(qū)大小相似)
?特點:1(無)的功能)
?采樣率:16000(傳感器可接受采樣率)
因此,data_acquisition.py中相應(yīng)的配置看起來像:
有關(guān)每個參數(shù)的解釋,請查看Capture Server文檔。根據(jù)上述參數(shù)值,命令如下:
成功運行Capture Server后,您將看到開始錄制、停止錄制和退出的選項,如下所示:
完成后,記錄的數(shù)據(jù)將存儲在上面提到的輸出目錄中。
步驟4:導(dǎo)入DEEPCRAFT?Studio
1. 啟動DEEPCRAFT?Studio并創(chuàng)建一個新項目或打開一個現(xiàn)有項目。轉(zhuǎn)到DATA選項卡,單擊Add DATA按鈕,并選擇包含捕獲的.wav或. DATA文件及其相應(yīng)標簽文件的輸出目錄。
2. 選擇輸出目錄后,DEEPCRAFT?Studio將自動將音頻/數(shù)據(jù)文件及其相應(yīng)的標簽文件導(dǎo)入到新的數(shù)據(jù)會話中。
3. 創(chuàng)建數(shù)據(jù)會話后,您的數(shù)據(jù)集將在DEEPCRAFT?Studio中訪問,準備進行預(yù)處理,標記和訓(xùn)練機器學(xué)習(xí)模型。
就像這樣,你的傳感器數(shù)據(jù)就在工作室里了——馬上就可以訓(xùn)練了。
代碼的解釋
想知道引擎蓋下面是什么嗎?下面將深入介紹在硬件的文件系統(tǒng)上運行的Python腳本。
1. 從必需的導(dǎo)入開始。
?struct:用于在通過TCP發(fā)送之前將緩沖區(qū)數(shù)據(jù)打包成二進制格式。
?network_utils:模塊處理Wi-Fi連接。
?tcp_server:設(shè)置一個TCP套接字來監(jiān)聽傳入的連接。
?pdm_pcm:音頻傳感器模塊;這可以根據(jù)需要與其他傳感器交換。
2. 連接到Wi-Fi,使用設(shè)備的IP地址設(shè)置TCP服務(wù)器,并等待Capture server(在您的主機上)連接。
3. 初始化傳感器以及存儲傳感器數(shù)據(jù)的緩沖區(qū)。還要準備數(shù)據(jù)流的格式。
?init():初始化傳感器(例如,設(shè)置時鐘,配置總線)。
?get_buffer():準備一個緩沖區(qū)來保存采樣數(shù)據(jù)。
?get_format():返回端序(<或>)和數(shù)據(jù)格式(h, h等)。
?full_format:用于struct。將原始樣本轉(zhuǎn)換為二進制包。
4. 等待Capture Server連接。只有在運行Capture Server腳本后,才會通過打印IP地址顯示已連接。
5. 完成所有設(shè)置后,開始將數(shù)據(jù)捕獲到緩沖區(qū)中,將其轉(zhuǎn)換為所需的格式并通過TCP發(fā)送。
6. 然后關(guān)閉連接并釋放所有資源。
使用其他傳感器
使用不同的傳感器?其實也很簡單!
轉(zhuǎn)到添加您自己的傳感器部分來集成您的自定義傳感器并開始流式傳輸。
本文編譯自hackster.io