機(jī)器學(xué)習(xí)正在從云端轉(zhuǎn)移到網(wǎng)絡(luò)邊緣,目的是進(jìn)行實時處理、降低延遲、提高安全性、更高效地使用可用帶寬以及降低整體功耗。而處于這些邊緣節(jié)點上的物聯(lián)網(wǎng) (IoT) 設(shè)備只有有限的資源,因此開發(fā)人員需要弄清如何有效地添加這一全新的智能水平。
在邊緣位置基于微控制器系統(tǒng)使用機(jī)器學(xué)習(xí),為開發(fā)人員提供了幾項新機(jī)會,可以徹底改變他們設(shè)計系統(tǒng)的方式。開發(fā)人員可以使用幾種不同的架構(gòu)和技術(shù)將智能添加到邊緣節(jié)點。學(xué)習(xí)完本文后,我們將更加熟悉這些架構(gòu)以及一些可用于加快該過程的技術(shù)。
邊緣機(jī)器學(xué)習(xí)的作用
邊緣機(jī)器學(xué)習(xí)對嵌入式系統(tǒng)工程師非常有用,原因有很多。首先,智能系統(tǒng)可以解決開發(fā)人員通常難以通過編碼解決的問題。以簡單的文本識別為例。識別文本是編程的噩夢,但如果使用機(jī)器學(xué)習(xí),那么幾乎就像用 C 語言編寫“Hello World”應(yīng)用程序一樣簡單。
其次,智能系統(tǒng)可以很輕松地針對新數(shù)據(jù)和情況進(jìn)行擴(kuò)展。例如,如果某個系統(tǒng)接受了識別基本文本的訓(xùn)練,然后突然采用新字體提供文本,這時并不需要推倒重來。相反,只需提供額外的訓(xùn)練圖像,使該網(wǎng)絡(luò)也能學(xué)習(xí)識別新字體便可。
最后,我們還可以了解到,邊緣機(jī)器學(xué)習(xí)可以幫助開發(fā)人員降低某些應(yīng)用類型的成本,例如:
圖像識別
語音和音頻處理
語言處理
第一次檢查邊緣機(jī)器學(xué)習(xí)時,使用應(yīng)用處理器似乎是個不錯的選擇。包括 OpenCV 在內(nèi)的幾種開源工具專為計算機(jī)視覺而設(shè)計,我們可以從使用這些工具開始。不過,許多應(yīng)用中僅使用應(yīng)用處理器可能還不夠,因為這些處理器不具備確定性的實時行為。
邊緣機(jī)器學(xué)習(xí)架構(gòu)
使用邊緣機(jī)器學(xué)習(xí)時,有三種典型方法:
邊緣節(jié)點獲取數(shù)據(jù),然后在云端完成機(jī)器學(xué)習(xí)
邊緣節(jié)點獲取數(shù)據(jù),然后在芯片上完成機(jī)器學(xué)習(xí)
邊緣節(jié)點獲取數(shù)據(jù),然后在邊緣進(jìn)行第一遍機(jī)器學(xué)習(xí),最后在云端進(jìn)行更深入的分析
前兩個解決方案是目前業(yè)界探索最多的解決方案,在本文中,我們將會重點關(guān)注這兩個解決方案。
使用邊緣設(shè)備獲取數(shù)據(jù)并使用基于云的機(jī)器學(xué)習(xí)系統(tǒng)來處理數(shù)據(jù),這樣的架構(gòu)有幾個優(yōu)點。首先,邊緣設(shè)備不需要運(yùn)行機(jī)器學(xué)習(xí)算法所需的強(qiáng)大處理能力和資源。其次,邊緣設(shè)備可以繼續(xù)使用資源受限的低成本設(shè)備,就像許多嵌入式系統(tǒng)開發(fā)人員習(xí)慣創(chuàng)建的系統(tǒng)一樣。唯一的區(qū)別是,邊緣設(shè)備需要能夠通過 HTTPS 連接到基于云的服務(wù)提供商,以便分析它們的數(shù)據(jù)。第三,基于云的機(jī)器學(xué)習(xí)正在以驚人的速度發(fā)展,將這些功能轉(zhuǎn)移到片載解決方案將非常困難、耗時且成本高昂。
對于希望從基于云的機(jī)器學(xué)習(xí)開始的開發(fā)人員來說,他們可以使用 STMicroelectronics 公司的 STM32F779I-EVAL 板(圖 1)這類開發(fā)板。該開發(fā)板基于 STMicroelectronics 公司的 STM32F769NIH6 微控制器,配備了 Arm? Cortex?-M7 內(nèi)核、板載攝像頭、用于與云進(jìn)行高速通信的以太網(wǎng)端口,以及板載顯示器。該開發(fā)板可與諸如 Express Logic 公司的 X-Ware IoT 平臺等軟件配合使用,輕松連接到任何機(jī)器學(xué)習(xí)云提供商,如 Amazon Web Services (AWS)、Microsoft Azure 和 Google Cloud。
在云端進(jìn)行機(jī)器學(xué)習(xí)對于開發(fā)團(tuán)隊來說可能意義非常重大,但有幾個原因可以解釋為什么機(jī)器學(xué)習(xí)開始從云端轉(zhuǎn)向邊緣。雖然這些原因具有很強(qiáng)的應(yīng)用針對性,但確實也包括了一些重要因素,例如:
實時處理需求
帶寬限制
延遲
安全要求
如果某個應(yīng)用存在這方面的問題,那么將神經(jīng)網(wǎng)絡(luò)從云端轉(zhuǎn)移到邊緣是可以行得通的。這種情況下,開發(fā)人員必須對他們希望嵌入式處理器負(fù)責(zé)處理的內(nèi)容做到心里有數(shù),以便應(yīng)用能夠盡可能高效地執(zhí)行。
選擇用于機(jī)器學(xué)習(xí)的處理器
在嵌入式處理器上運(yùn)行機(jī)器學(xué)習(xí)需要考慮幾個重要因素。首先,處理器必須能夠高效地執(zhí)行 DSP 指令,因此浮點運(yùn)算單元 (FPU) 非常有用。其次,需要具備可以在處理器上運(yùn)行的機(jī)器學(xué)習(xí)庫。學(xué)習(xí)庫需要包括卷積、池化和激活。如果沒有這些學(xué)習(xí)庫,開發(fā)人員基本上需要從頭開始編寫深度學(xué)習(xí)算法,不但費(fèi)時,而且成本高昂。
最后,開發(fā)人員需要確保微控制器上具有足夠的 CPU 周期,以便可以完成神經(jīng)網(wǎng)絡(luò)執(zhí)行以及分配給處理器的任何其他任務(wù)。
Arm Cortex-M 處理器現(xiàn)在配有 CMSIS-NN 擴(kuò)展,這是一個神經(jīng)網(wǎng)絡(luò)庫,其設(shè)計目的是在資源受限的環(huán)境中可以在微控制器上高效地運(yùn)行機(jī)器學(xué)習(xí),這一特性使其成為基于邊緣的智能系統(tǒng)的絕佳選擇。確切的處理器選擇將取決于手頭的應(yīng)用,因此詳細(xì)了解幾款不同的開發(fā)板及其最適合的應(yīng)用非常重要。
首先介紹 SparkFun Electronics 公司的 OpenMV 機(jī)器視覺開發(fā)板(圖 2)。該模塊采用基于 Cortex-M7 的 STM32F765VI 處理器,運(yùn)行頻率 216 MHz,支持 512 KB RAM 和 2 MB 閃存。
OpenMV 模塊可用于:
通過幀差分檢測運(yùn)動
顏色跟蹤
市場跟蹤
人臉檢測
眼動跟蹤
線條和形狀檢測
模板匹配
由于該模塊的軟件基于 Arm CMSIS-NN 庫,因此可以在處理器上盡可能高效地運(yùn)行機(jī)器學(xué)習(xí)網(wǎng)絡(luò)。
-
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8424瀏覽量
132766 -
邊緣計算
+關(guān)注
關(guān)注
22文章
3100瀏覽量
49122
原文標(biāo)題:4款值得入手的用于加速機(jī)器學(xué)習(xí)的邊緣計算開發(fā)平臺
文章出處:【微信號:cirmall,微信公眾號:電路設(shè)計技能】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論