民主化 AI 開發(fā) Edge Impulse:Edge Impulse 101
加拿大哲學(xué)家馬歇爾·麥克盧漢 (Marshall McLuhan) 曾說過:“我們成為我們所看到的。我們塑造我們的工具,然后我們的工具塑造我們。” 如果是這樣,那么人工智能 (AI) 的最獨(dú)特之處在于我們看到的對象是我們自己,特別是我們的大腦。如果這是真的,那么看看人工智能這個工具將如何遞歸地塑造我們自己和我們的未來將會很有趣。開發(fā)工具的民主化使我們能夠創(chuàng)建具有基于 AI 功能的對象,這對于為人類建設(shè)光明、積極的未來至關(guān)重要。一家名為 Edge Impulse 的公司正在盡自己的一份力量來確保這一點(diǎn)。
對于我們這些嵌入式系統(tǒng)開發(fā)人員來說,向神經(jīng)網(wǎng)絡(luò)的范式轉(zhuǎn)變可能令人望而生畏,他們是在過程甚至面向?qū)ο?a target="_blank">編程的全盛時期開始學(xué)習(xí)的。對于一些人來說,這感覺就像是放棄了對設(shè)計的一點(diǎn)絕對控制,而放棄了表面上似乎未經(jīng)證實的東西,即使不是徹頭徹尾的魔法。盡管如此,邊緣機(jī)器學(xué)習(xí)的前景(意味著將 AI 算法從云端轉(zhuǎn)移到數(shù)十億物聯(lián)網(wǎng)設(shè)備中的微控制器上)仍然很有吸引力,不容忽視。幸運(yùn)的是,Edge Impulse 為嵌入式系統(tǒng)工程師提供了一條非常簡單且有據(jù)可查的前進(jìn)道路,以幫助他們成功駕馭 AI、機(jī)器學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò) (NN) 等相對較新的領(lǐng)域。
有可能在嵌入式設(shè)計的某個時刻,工程師會繪制流程圖以了解機(jī)器在其運(yùn)行生命周期中所處的各種狀態(tài)。為此,了解使用 Edge Impulse 為獨(dú)特的嵌入式應(yīng)用程序開發(fā)定制神經(jīng)網(wǎng)絡(luò)時將遇到的步驟是有益的。下面從嵌入式電子工程師和人工智能專業(yè)的計算機(jī)科學(xué)家的角度總結(jié)了這些步驟。
第一步:獲取訓(xùn)練數(shù)據(jù)
神經(jīng)網(wǎng)絡(luò)的開發(fā)需要訪問數(shù)據(jù)。很多很多的數(shù)據(jù)。簡而言之,數(shù)據(jù)越多,未來的 NN 模型在根據(jù)實際操作預(yù)測輸出時就會越準(zhǔn)確。Edge Impulse 提供了多種易于使用的工具來將數(shù)據(jù)從現(xiàn)實世界獲取到他們的服務(wù)器以開發(fā)自定義神經(jīng)網(wǎng)絡(luò)。首先,它們?yōu)樵S多流行的開發(fā)板(例如TI CC1352P Launchpad、SiLabs Thunderboard Sense 2和Arduino Portenta )提供預(yù)構(gòu)建固件) 可以訪問各種板載傳感器并將數(shù)據(jù)流發(fā)送回 Edge Impulse。對于其他主板,Edge Impulse 在其命令行界面 (CLI) 工具集的保護(hù)下提供了一套工具,可用于 Mac OS、Windows 和 Linux 發(fā)行版 Ubuntu 和 Raspbian。CLI 需要在您的桌面上安裝 Python3 和 Node.js。CLI 的三個關(guān)鍵工具是:
艾達(dá)蒙
沖動上傳者
數(shù)據(jù)轉(zhuǎn)發(fā)器
這些工具對于從缺乏直接互聯(lián)網(wǎng)連接的開發(fā)板獲取傳感器數(shù)據(jù)特別有用。它們充當(dāng)代理,通過串行端口接收數(shù)據(jù),并通過主機(jī)互聯(lián)網(wǎng)連接將其轉(zhuǎn)發(fā)到 Edge Impulse 服務(wù)器。Edge Impulse 還提供了一種基于瀏覽器的機(jī)制來從智能手機(jī)收集數(shù)據(jù)(例如語音樣本或加速度計數(shù)據(jù))。
從實際角度出發(fā),仔細(xì)考慮您的嵌入式設(shè)備在運(yùn)行過程中可能遇到的所有狀態(tài)。例如,在最近的一個涉及工業(yè)機(jī)械和根據(jù)加速度計數(shù)據(jù)識別機(jī)器故障的項目中,開發(fā)團(tuán)隊在數(shù)據(jù)按預(yù)期負(fù)載運(yùn)行時以及處于故障模式時收集了大量數(shù)據(jù)。但最初,它在機(jī)器空閑時無法收集數(shù)據(jù)。結(jié)果,第一個 NN 模型難以區(qū)分故障和空轉(zhuǎn)。最后,使用機(jī)器空閑時收集的數(shù)據(jù)對神經(jīng)網(wǎng)絡(luò)進(jìn)行再訓(xùn)練,模型的預(yù)測準(zhǔn)確性(例如,神經(jīng)網(wǎng)絡(luò)性能)顯著提高。底線是,如果房地產(chǎn)是關(guān)于位置、位置、還是位置的話。那么機(jī)器學(xué)習(xí)就是數(shù)據(jù)、數(shù)據(jù)、數(shù)據(jù)。
第 2 步:標(biāo)記和分塊原始數(shù)據(jù)
一旦訓(xùn)練數(shù)據(jù)位于 Edge Impulse 服務(wù)器上,訓(xùn)練 NN 模型(也稱為“Impulse”)的其余工作將通過 Web 瀏覽器在 Edge Impulse 網(wǎng)站上進(jìn)行。首先,我們收集的數(shù)據(jù)集必須標(biāo)有每個特定數(shù)據(jù)集代表的輸出狀態(tài)。這是通過簡單地編輯收集的每個單獨(dú)數(shù)據(jù)集的“標(biāo)簽”標(biāo)簽來實現(xiàn)的。使用上述工業(yè)機(jī)械示例,三分之一的數(shù)據(jù)被標(biāo)記為“故障”,另外三分之一被標(biāo)記為“正常”,最后三分之一被標(biāo)記為“空閑”。回想一下神經(jīng)網(wǎng)絡(luò)的輸出不是絕對的;相反,它是每個可能結(jié)果的確定性百分比。
對于時間序列數(shù)據(jù)(例如隨時間收集的加速度計讀數(shù)),有必要將每個數(shù)據(jù)集中的數(shù)據(jù)“分塊”。像所有好的解決問題的技巧一樣,將問題分解成更小、更易于管理的塊可以讓人們解決看似無法克服的問題。在 NN 訓(xùn)練的這個初始階段,您可以調(diào)整數(shù)據(jù)分析方式的一些屬性,包括窗口大小、窗口增加、采樣頻率以及數(shù)據(jù)是否應(yīng)該被零填充。此外,可以調(diào)整這些不同的屬性以平衡分析的分辨率與完成分析的時間之間的權(quán)衡。
第 3 步:分析和轉(zhuǎn)換原始數(shù)據(jù)塊
在數(shù)據(jù)被適當(dāng)?shù)胤謮K后,是時候通過應(yīng)用適當(dāng)?shù)姆治黾夹g(shù)(例如“處理塊”)來分析它了。這會獲取原始數(shù)據(jù)并將其轉(zhuǎn)換為訓(xùn)練過程中下游 NN 分類器可以使用的格式。Edge Impulse 根據(jù)要分析的數(shù)據(jù)類型提供多種不同的分析技術(shù)。
頻譜分析:非常適合分析重復(fù)運(yùn)動,例如來自加速度計的數(shù)據(jù)。提取信號隨時間變化的頻率和功率特性。
Flatten:將軸展平為單個值,與其他塊結(jié)合使用可用于溫度數(shù)據(jù)等緩慢移動的平均值。
Mel-Filterbank Energy (MFE):從非語音音頻信號中提取頻譜圖。
Mel 頻率倒譜系數(shù) (MFCC):從人聲音頻文件中提取頻譜圖。
圖像:用于識別靜態(tài)圖像中的對象。
自定義處理塊:對于那些具有基于人工智能的計算機(jī)科學(xué)背景的人,還可以上傳為您的特定應(yīng)用量身定制的自定義處理塊
第 4 步:對數(shù)據(jù)塊進(jìn)行分類,運(yùn)行 NN 分類器
一旦我們將原始數(shù)據(jù)轉(zhuǎn)換為可用格式并了解如何從我們的數(shù)據(jù)集中提取特征,就有必要訓(xùn)練神經(jīng)網(wǎng)絡(luò)從這些特征中學(xué)習(xí),以便它可以適當(dāng)?shù)貙y試和操作數(shù)據(jù)集進(jìn)行分類。換句話說,所有表示系統(tǒng)故障的數(shù)據(jù)集都應(yīng)歸類為此類。同樣,所有代表正常操作的數(shù)據(jù)集都應(yīng)該進(jìn)行類似的分類。這是通過應(yīng)用所謂的學(xué)習(xí)塊來實現(xiàn)的。與處理塊一樣,可以根據(jù)數(shù)據(jù)類型應(yīng)用各種學(xué)習(xí)塊。例如,對于快速波動的時變數(shù)據(jù),例如我們示例中的數(shù)據(jù)集,可以使用以下學(xué)習(xí)模塊:
分類 (Keras):從數(shù)據(jù)中學(xué)習(xí)模式并將其應(yīng)用于新數(shù)據(jù)。非常適合對運(yùn)動進(jìn)行分類或識別音頻。
異常檢測(K 均值):在新數(shù)據(jù)中查找異常值。有利于識別未知狀態(tài)和補(bǔ)充分類器。
回歸 (Keras):從數(shù)據(jù)中學(xué)習(xí)模式并將其應(yīng)用于新數(shù)據(jù)。非常適合預(yù)測連續(xù)數(shù)值。
可以調(diào)整信號處理算法的各種參數(shù)以微調(diào)學(xué)習(xí)塊的性能。通過調(diào)整截止頻率和快速傅里葉變換 (FFT) 長度等參數(shù),可以在處理時間和隨機(jī)存取存儲器 (RAM) 使用峰值之間取得平衡。Edge Impulse 甚至提供在目標(biāo)嵌入式平臺上運(yùn)行時處理時間和 RAM 使用情況的性能估計。
最后,在最終生成神經(jīng)網(wǎng)絡(luò)模型(又名脈沖)本身之前,可以更改用于控制 NN 分類器輸出的設(shè)置。可以調(diào)整的參數(shù)包括訓(xùn)練周期數(shù)、學(xué)習(xí)率、驗證集大小以及輸入層和輸出層之間網(wǎng)絡(luò)中間層的神經(jīng)元數(shù)。改變這些參數(shù)的能力對于防止稱為過度擬合的常見數(shù)據(jù)科學(xué)問題至關(guān)重要,這種問題發(fā)生在模型與訓(xùn)練數(shù)據(jù)完美配合但在暴露于新數(shù)據(jù)時卻慘敗。
第 5 步:測試神經(jīng)網(wǎng)絡(luò)模型
對于機(jī)器學(xué)習(xí)算法的開發(fā)人員來說,過度擬合并不是一個不常見的問題。為確保模型足夠通用,有必要根據(jù)獨(dú)立測試數(shù)據(jù)測試 Edge Impulse 生成的神經(jīng)網(wǎng)絡(luò)。Edge Impulse 提供的用于收集訓(xùn)練數(shù)據(jù)的相同技術(shù)可用于收集測試數(shù)據(jù)。除了對先前記錄的測試數(shù)據(jù)進(jìn)行分類外,還可以從測試設(shè)備流式傳輸數(shù)據(jù)并在 Edge Impulse 服務(wù)器上進(jìn)行實時分類。設(shè)計人員可以使用由 Edge Impulse 應(yīng)用程序編程接口 (API) 提供支持的固件中的直接連接或數(shù)據(jù)轉(zhuǎn)發(fā)器代理將數(shù)據(jù)從傳感器獲取到云端。
第 6 步:部署神經(jīng)網(wǎng)絡(luò)模型
在神經(jīng)網(wǎng)絡(luò)針對訓(xùn)練數(shù)據(jù)取得令人滿意的結(jié)果后,是時候?qū)?NN 模型打包到一個軟件庫中,該軟件庫可以部署在基于微控制器的系統(tǒng)上。Edge Impulse 使這個過程變得非常簡單。首先,模型可以置于版本控制之下,以便在需要時可以將未來的改進(jìn)與過去的模型進(jìn)行比較。接下來,該模型可以變成各種嵌入式系統(tǒng)開發(fā)板的“交鑰匙”固件。
對于Edge Impulse不直接支持的開發(fā)板,仍然可以生成通用庫,包括基于C++、Arduino、WebAssembly、TensorRT、STM32Cube.MX CMSIS-PACK等系統(tǒng)架構(gòu)的模型文件。在生成庫或固件之前,還可以運(yùn)行優(yōu)化器以實現(xiàn)速度或內(nèi)存使用優(yōu)化,具體取決于運(yùn)行 NN 模型(又名脈沖)的硬件規(guī)格。此外,基于作為 8 位整數(shù)或 32 位浮點(diǎn)數(shù)發(fā)送的傳感器數(shù)據(jù)的脈沖也是可能的。
由于 Edge Impulse 還提供基于 C++、GoLang、Node.js 和 Python 的軟件開發(fā)工具包 (SDK),Impulses 也可以在運(yùn)行 Linux 操作系統(tǒng)的嵌入式系統(tǒng)上運(yùn)行。也可以使用 C++ 庫在 Windows 和 macOS 上運(yùn)行脈沖。
最后,impulse 可以直接部署到智能手機(jī)上,無需在目標(biāo)設(shè)備上安裝任何額外的應(yīng)用程序。
概括
對于那些希望將 AI 技術(shù)集成到他們的下一個嵌入式系統(tǒng)項目中的人來說,瀏覽 Edge Impulse 的文檔和論壇是開始了解邊緣 ML 的一種免費(fèi)且簡單的方法。一個有限的免費(fèi)版本可用于測試 Edge Impulse 生態(tài)系統(tǒng)。免費(fèi)層的主要限制是單個開發(fā)人員的汗水訪問、最長 20 分鐘的處理時間以及 4GB 或 4 小時數(shù)據(jù)的云存儲限制。此外,還提供企業(yè)版,按項目付費(fèi),這消除了免費(fèi)層的限制,并提供對私有云和每個項目五個席位的訪問。
Michael Parks, PE 是 Green Shoe Garage 的聯(lián)合創(chuàng)始人,Green Shoe Garage 是一家位于馬里蘭州西部的定制電子設(shè)計工作室和嵌入式安全研究公司。他制作了 Gears of Resistance 播客,以幫助提高公眾對技術(shù)和科學(xué)問題的認(rèn)識。Michael 還是馬里蘭州的持證專業(yè)工程師,并擁有約翰霍普金斯大學(xué)的系統(tǒng)工程碩士學(xué)位。
審核編輯黃宇
-
傳感器
+關(guān)注
關(guān)注
2562文章
52519瀏覽量
763367 -
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4806瀏覽量
102706 -
數(shù)據(jù)
+關(guān)注
關(guān)注
8文章
7238瀏覽量
90956 -
AI
+關(guān)注
關(guān)注
87文章
34126瀏覽量
275228
發(fā)布評論請先 登錄
首創(chuàng)開源架構(gòu),天璣AI開發(fā)套件讓端側(cè)AI模型接入得心應(yīng)手
面向AI與機(jī)器學(xué)習(xí)應(yīng)用的開發(fā)平臺 AMD/Xilinx Versal? AI Edge VEK280

研華科技全棧式Edge AI產(chǎn)品助力工業(yè)智能化升級
在樹莓派上設(shè)置 DeepSeek R1:2025 年離線人工智能的未來

ST EDGE AI云服務(wù)最后一步無法下載工程是怎么回事?
高通收購 Edge Impulse,助力 AI 與物聯(lián)網(wǎng)新局面

研華WISE-AI Agent借助DeepSeek引領(lǐng)企業(yè)級AI全新范式

貿(mào)澤開售適用于AI和機(jī)器學(xué)習(xí)應(yīng)用的 AMD Versal AI Edge VEK280評估套件
在設(shè)備上利用AI Edge Torch生成式API部署自定義大語言模型

自動化AI開發(fā)平臺功能介紹
使用TI Edge AI Studio和AM62A進(jìn)行基于視覺AI的缺陷檢測

評論