來源:Digi-Key 作者:Jacob Beningo 機(jī)器學(xué)習(xí) (ML) 已經(jīng)進(jìn)入云計(jì)算的許多領(lǐng)域,并且已經(jīng)在運(yùn)行 Linux 的相對強(qiáng)大的處理器上找到通往邊緣的道路。在這些系統(tǒng)上運(yùn)行傳統(tǒng) ML 的問題是,因其功率配置文件太大,既無法“斷開”,也無法用作電池供電型邊緣設(shè)備執(zhí)行工作任務(wù)。邊緣 ML 的發(fā)展趨勢及未來就是使用 tinyML。TinyML 的目的是在資源受限的設(shè)備上實(shí)現(xiàn) ML 算法,如基于 Arm Cortex-M 處理器的微控制器。 在本篇博客中,我們將探討最常見的 tinyML用例。在這些用例中,充分發(fā)揮了在基于微控制器的設(shè)備上、用在邊緣處的 tinyML 的作用。 用例 #1:關(guān)鍵詞識別 逐漸被人們熟知的第一種 tinyML 用例是關(guān)鍵詞識別。關(guān)鍵詞識別是指設(shè)備識別諸如“嗨,Siri”、“Alexa”、“你好”之類關(guān)鍵詞的能力。關(guān)鍵字識別對邊緣設(shè)備來說有許多用途。例如,人們可能想用低功率處理器來觀察一個關(guān)鍵詞,以喚醒一個更強(qiáng)大的處理器。另一種用例可能是控制嵌入式系統(tǒng)或機(jī)器人。我曾見過這樣的例子,微控制器用來解碼“前進(jìn)”、“后退”、“停止”、“向右”和“向左”等關(guān)鍵詞, 從而控制機(jī)器人的運(yùn)動。 用 tinyML 識別關(guān)鍵詞通常是通過麥克風(fēng)來捕捉語音輸入信號。語音信號被記錄為隨時間變化的電壓,然后通過數(shù)字信號處理將其轉(zhuǎn)換為光譜圖。這種光譜圖是一個與輸入信號頻率相對應(yīng)的時間序列?蓪㈩l譜圖送入神經(jīng)網(wǎng)絡(luò) (NN),用來訓(xùn)練微小的 ML 算法來識別特定的單詞。這個過程如圖 1 所示。 ![]() 圖 1:對輸入語音信號進(jìn)行數(shù)字處理,以生成一種用于訓(xùn)練 NN 來檢測關(guān)鍵詞的光譜圖。(圖片來源:Arm) 典型的實(shí)現(xiàn)方式是將固定的語音窗口輸入 NN 中。然后,該網(wǎng)絡(luò)將評估某個所需關(guān)鍵詞被說出來的概率。例如,如果有人說“是”,NN 可能會報告說它有 91% 的把握是“是”,有 2% 的可能性是“不是”,有 1% 的可能性是“在”。 通過語音控制機(jī)器的能力是許多設(shè)備制造商正在仔細(xì)審查的用例,他們希望在未來幾年內(nèi)增強(qiáng)其設(shè)備。 用例 #2:圖像識別 tinyML 的第二種用例是圖像識別。對于能夠進(jìn)行圖像識別的邊緣設(shè)備,有相當(dāng)多的用例。能夠檢測門旁邊是否有人、包裹或什么都沒有,這種用例大家可能已經(jīng)熟悉。當(dāng)然還有很多其他應(yīng)用,包括監(jiān)測舊的模擬儀表,檢測草坪長勢,甚至用于統(tǒng)計(jì)鳥的數(shù)量。 圖像識別似乎是一個可以參與其中的復(fù)雜領(lǐng)域。然而,有幾個低成本的平臺可以幫助開發(fā)者啟動和運(yùn)行。我最喜歡的,也是我用來快速完成工作的一個平臺就是 OpenMV。 OpenMV 是一個開放式機(jī)器視覺平臺,包括一個集成開發(fā)環(huán)境 (IDE)、一個用 Python 編寫的庫框架以及一個來自 Seeed Technology 的相機(jī)模塊,可幫助開發(fā)者創(chuàng)建機(jī)器視覺應(yīng)用(圖 2)。 ![]() 圖 2:OpenMV 相機(jī)模塊可用于圖像識別,在簡單的 IDE 環(huán)境下使用 Python 就可以完成開發(fā)。(圖片來源:Beningo Embedded Group) 該相機(jī)模塊基于 STMicroelectronics 的 STM32H7 Cortex-M7 處理器。該硬件可以通過其板上的擴(kuò)展針座進(jìn)行擴(kuò)展。該硬件可采用電池供電,甚至可以更換相機(jī)模塊。你可能會發(fā)現(xiàn)了一個有趣的入門用例,即如何使用 CIFAR-10 數(shù)據(jù)集和 Arm CMSIS-NN 庫進(jìn)行圖像識別。你可在 YouTube 上找到這個用例:https://www.youtube.com/watch?v=PdWi_fvY9Og。 用例 #3:預(yù)見性維護(hù) 我們將討論 tinyML 的最后一種用例是預(yù)見性維護(hù)。預(yù)見性維護(hù)使用諸如統(tǒng)計(jì)分析和 ML等工具來預(yù)測設(shè)備狀態(tài),其依據(jù)如下: · 異常情況檢測 · 分類算法 · 預(yù)測模型 例如,一個工廠可能有一系列電機(jī)、風(fēng)扇和用于產(chǎn)品生產(chǎn)的機(jī)器人設(shè)備。公司希望盡量減少停機(jī)時間,以最大限度地提高產(chǎn)量。如果設(shè)備有傳感器,可以使用 ML 和上面提到的其他技術(shù)進(jìn)行解釋,他們可以檢測到設(shè)備何時會接近故障狀態(tài)。這樣的設(shè)置可能看起來如圖 3 所示。 ![]() 圖 3:tinyML 的第三種常見用例是用于預(yù)見性維護(hù)的智能傳感器。(圖片來源:STMicroelectronics) 將智能傳感器連接到使用 tinyML 的低功耗微控制器,可以構(gòu)建許多種有用的應(yīng)用。例如,可以用來監(jiān)測暖通空調(diào)設(shè)備、檢查空氣過濾器以及檢測不規(guī)則的電機(jī)振動等等。預(yù)防性維護(hù)可以變得更有條理,從而有希望將公司從各種昂貴的應(yīng)對措施中拯救出來,確保采用更優(yōu)化的維護(hù)計(jì)劃。 結(jié)語 TinyML 在邊緣有很多潛在的應(yīng)用和用例。我們已經(jīng)探討了目前常見的東西,但其用例幾乎是無限的。TinyML 可用于手勢檢測、引導(dǎo)和控制等應(yīng)用。隨著邊緣設(shè)備開始使用 tinyML,問題實(shí)際上就變成了“你 在邊緣使用 tinyML 做什么?”。 |