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