隨著邊緣機器學習 (ML) 應用的不斷發(fā)展,EE 需要了解邊緣的
ML,尤其是在處理和處理硬件方面。
隨著邊緣的日益擴散 機器學習
技術上,工程師有必要了解什么是邊緣的ML以及不同類型的硬件如何適合其各種應用。這首先是一個定義問題。邊緣節(jié)點不僅僅是依賴于云服務的設備,如果不合理詳細地了解邊緣的
ML 到底是什么(以及它的優(yōu)點和缺點),就無法正確指定邊緣 ML 產(chǎn)品/應用程序。
在邊緣使用 ML
的工程師必須在設計過程開始時考慮相關的應用功能和產(chǎn)品尺寸。這不是一個小考慮因素。不考慮這些基本設計注意事項的項目可能會遇到額外的設計周期和效率低下的問題,這些周期和效率低下會在整個成品的生命周期中級聯(lián)。
圖 1 顯示了邊緣設備和應用程序的高級概述。
圖1. 邊緣和邊緣設備的概述。圖片由恩智浦提供
為了解決這一基本設計問題,本文首先在邊緣定義 ML,并探討哪些處理設備適合此領域。然后,它檢查了這些設備的處理能力問題,并以一個示例 ML
應用程序結(jié)束,該應用程序說明了設計人員如何開始考慮本文中討論的一些注意事項。
尋找合適的 ML 邊緣設備的優(yōu)點和缺點
邊緣節(jié)點(圖 2)與僅依賴云服務進行計算的設備之間的區(qū)別在于邊緣設備完成的處理。如果該處理步驟包括使用 ML 算法,則可以將設備歸類為 ML
邊緣設備。
圖2. 邊緣計算和終端節(jié)點的示例。圖片由 恩智浦
處理步驟可以像計算移動平均線或丟棄無效傳感器讀數(shù)一樣簡單。但是,在將數(shù)據(jù)上傳到云之前,涉及更多應用程序可能會執(zhí)行基于 ML
的任務,例如關鍵字檢測或語音到文本轉(zhuǎn)換。因此,邊緣設備可以在本地執(zhí)行所有處理,也可以使用混合方法,在云中進行本地預處理和進一步處理以及數(shù)據(jù)存儲。
與純粹基于云的方法相比,在邊緣使用 ML 的好處包括減少延遲和提高安全性。邊緣的 ML 允許實時推理,而從未上傳到云的數(shù)據(jù)更難泄露。
但是,與云相比,邊緣設備的處理能力通常較低。因此,它們通常不能作用于工程師可以在基于云的應用程序中部署的相同模型。工程師必須仔細選擇他們在邊緣使用的算法和技術,以確保應用程序達到所需的性能水平。
根據(jù)應用程序的不同,一些邊緣節(jié)點還必須存儲它們收集和處理的數(shù)據(jù),然后再將其上傳到云。云中的存儲空間通常很充足。但是,在邊緣,必須仔細考慮如何將外部存儲添加到邊緣節(jié)點以及它們連接到設備的存儲介質(zhì)類型。因此,他們應該研究具有不同連接選項的邊緣處理器,以確保在為其應用程序選擇存儲介質(zhì)時有更多選擇。
工程師還必須確保邊緣節(jié)點存儲的數(shù)據(jù)是安全的,并防止未經(jīng)授權的訪問和篡改。功能如 硬件加密/解密 支持可以幫助保護邊緣的敏感客戶和運營數(shù)據(jù)。
機器學習的處理單元類型
近年來,整體處理性能和能力有了相當大的進步。此外,這些器件的成本和功耗顯著降低。其中許多器件包括多個專用處理內(nèi)核,用于并行執(zhí)行各種特定任務。此外,針對物聯(lián)網(wǎng)和邊緣計算市場的微控制器通常還包含大量最先進的連接和安全選項。
由于邊緣處理能力的顯著提高,邊緣設備可以執(zhí)行越來越多的以前在云中執(zhí)行的 ML 任務。ML 推理通常發(fā)生在邊緣,而云則提供增強的分析功能以增強 ML
邊緣應用程序。
微處理器依靠通過系統(tǒng)總線連接到處理器的外部支持設備來執(zhí)行各種任務,而 MPU 將所有必要的功能集成到單個 片上系統(tǒng) (SoC)。這樣的 MPU
可以包含多個專用處理單元、閃存、 內(nèi)存和只讀存儲器和外圍控制器,例如以太網(wǎng)接口。MPU 可以使用內(nèi)部處理單元執(zhí)行邊緣 ML 計算,例如:
中央處理單元 (中央處理器)
圖形處理單元 (GPU)
數(shù)字信號處理器 (數(shù)字通訊)
神經(jīng)處理單元
工程師可以獨立使用這些處理單元;但是,某些應用程序可能需要多個處理器才能協(xié)同工作。
中央處理器和單片機
大多數(shù) CPU 和 MCU 包含多個處理內(nèi)核,與單核架構相比,它們每秒可以執(zhí)行更多的計算。它們針對快速執(zhí)行復雜命令鏈進行了優(yōu)化,這對于要求更高的 ML
應用程序來說可能很困難。
顯卡
專用 GPU 擅長執(zhí)行許多簡單的計算,例如并行矩陣乘法。將它們用于 ML 應用程序時的一個問題可能是內(nèi)存的可用性。雖然 CPU
通??梢栽L問系統(tǒng)中的大量 RAM,但由于訪問速度更快、數(shù)據(jù)吞吐量更高,GPU 通常使用其內(nèi)置視頻內(nèi)存。
凈動力單位
工程師可以在其 ML 應用程序設計中使用 NPU,有時被某些制造商稱為 NNP 或 TPU。這些專用電路實現(xiàn)執(zhí)行 ML
算法所需的控制和算術邏輯塊。NPU 可加速 ML 任務,并允許工程師實現(xiàn)更高級的用例,而這些用例是通用 CPU 或 GPU 等硬件無法實現(xiàn)的。
處理能力是 ML 應用程序的關鍵考慮因素
從高級角度來看,ML 可以分為三種常見的應用程序類型。這三個學科是:
視覺
時間序列
如圖3所示,通用CPU和MCU等處理硬件適用于一些更簡單的用例(例如,靜止圖像識別和檢測傳感器數(shù)據(jù)中的異常)。然而,隨著復雜性的增加、輸入源的增加以及對更快推理結(jié)果的需求,工程師將不得不研究更專業(yè)的計算硬件,如
GPU 和專用神經(jīng)處理單元。
圖3: 概述運行各種 ML 應用程序所需的處理能力。圖片由 恩智浦
當然,嵌入式處理設備(如 MPU)由于物理尺寸較小,無法提供一些更復雜的 ML
應用程序所需的大量處理內(nèi)核和內(nèi)存。此外,客戶希望將所有必要的功能組合在一個封裝中,以減少嵌入式設計的BOM。此要求進一步減少了用于其他處理內(nèi)核的可用空間。此外,大多數(shù)物聯(lián)網(wǎng)應用需要相對較小、高效且具有成本效益。
在大多數(shù)情況下,邊緣 ML
應用程序的限制因素很可能是特定算法的模型大小和內(nèi)存要求,因為經(jīng)濟高效的本地處理器可用的內(nèi)存量通常很小。每個應用程序都有一個盈虧平衡點,在邊緣添加額外的處理能力沒有多大意義。在這一點上,提高邊緣處理能力的成本超過了收益。
因此,只有在應用程序達到一定的復雜性限制之前,在邊緣添加計算能力才可行。除此之外,工程師應該研究云的高級數(shù)據(jù)分析功能如何潛在地增強邊緣的處理能力。
選擇合適的邊緣處理器:ML 應用程序示例
許多用例允許工程師通過添加 ML
邊緣功能來增強現(xiàn)有應用程序??赡艿膽梅秶鷱?a target="_blank">智能家居領域到工業(yè)物聯(lián)網(wǎng)(IIoT)和工業(yè)4.0,再到互聯(lián)城市基礎設施和汽車應用。
例如,假設有人在高速公路上安裝基于自動視覺的道路通行費支付和交通違規(guī)檢測系統(tǒng)。此用例在邊緣將云技術與 ML 相結(jié)合具有許多潛在點。
這樣的系統(tǒng)必須可靠地檢測接近某個點的每輛車,例如入口或出口坡道。在此示例中,邊緣設備監(jiān)視接近坡道的每輛車。然后,系統(tǒng)必須對坡道上的每輛車(例如,汽車、半卡車、公共汽車、摩托車)進行正確分類,因為不同的道路稅法規(guī)可能適用于各種類型的車輛。司機在支付車輛通行費時可以在地方當局注冊車牌。然后,邊緣設備必須檢測通過檢查點的每輛車的車牌號。然后,系統(tǒng)可以將收集到的信息存儲在本地,然后從云中的數(shù)據(jù)庫服務器請求數(shù)據(jù),以檢查是否允許檢測到的車輛使用道路。出于隱私原因,
系統(tǒng)不應上傳通過檢查站的所有車輛的車牌。相反,它只將違規(guī)行為發(fā)送到云端進行進一步處理,例如,向車主發(fā)送罰單。
該系統(tǒng)未來可能進行的調(diào)整還可以檢測潛在問題,例如出口匝道上的交通擁堵,并通過打開高架標志來警告即將到來的司機。隨著公共道路上聯(lián)網(wǎng)車輛數(shù)量的增加,還可以使這些邊緣節(jié)點與汽車通信以發(fā)送警告或其他消息。
在此示例中,需要通過邊緣處理實時分析和適當處理多個數(shù)據(jù)饋送。當車輛經(jīng)過攝像頭時,系統(tǒng)必須監(jiān)控和分類視頻流中的車輛,并且視頻需要具有足夠高的分辨率和幀速率。根據(jù)圖
3,每個這樣的應用程序都需要一個能夠處理大約兩個 TOPS 的 ML 處理器。此外,邊緣節(jié)點應該能夠安全地存儲敏感的私人信息并將其上傳到云服務器。
總之,在邊緣應用程序中為此 ML 正確指定的設備應提供以下功能:
用于實時圖像特征檢測的 GPU 或 NPU 加速器
用于運行應用程序邏輯的高效主核心
用于與外部高分辨率攝像機通信的接口
連接外部工業(yè)級設備的連接選項,例如頭頂標志和警告燈
用于建立云連接的以太網(wǎng)/無線功能
防止未經(jīng)授權的篡改的安全功能
ECC 等可靠性功能
這些功能(以及更多)在 恩智浦 i.MX 8M Plus 和下面的圖 4。
圖4: 此框圖總結(jié)了 i.MX 8M Plus最重要的特性和功能塊。圖片由 恩智浦
恩智浦 i.MX 8M Plus:在邊緣實現(xiàn)機器學習
假設的簡單自動車牌檢測算法可能包含四個主要步驟。這些步驟是圖像采集和預處理、車牌提取、分割和字符識別。經(jīng)濟高效的高清攝像頭監(jiān)控高速公路匝道的入口。由于相機是一種經(jīng)濟高效的單元,因此無需執(zhí)行任何預處理即可輸出RGB拜耳圖案。
恩智浦 i.MX 8M Plus應用處理器包含一個雙攝像頭ISP,支持簡單的 CMOS傳感器
以及執(zhí)行更精細預處理的相機。額外的內(nèi)置去扭曲引擎提供高性能的去扭曲處理,以校正魚眼鏡頭和廣角相機鏡頭引入的失真。盡管 i.MX 8M的內(nèi)置ISP可以處理高達60
FPS的高清視頻流,但此應用程序每秒只能捕獲和處理約30幀。降低的幀率應該仍然會產(chǎn)生令人滿意的結(jié)果,而降低的計算需求和降低的數(shù)據(jù)吞吐量將進一步提高每個邊緣節(jié)點的效率。
一旦ISP完成圖像處理,i.MX 8M
Plus的片上GPU可以執(zhí)行進一步的圖像處理和操作步驟,例如將捕獲的相機圖像的顏色信息轉(zhuǎn)換為灰度圖像,然后生成二進制黑白圖像。最后,GPU
可以通過創(chuàng)建較小的副本并應用混合缺陷的過濾器來進一步準備圖像,例如由車牌中的污垢或螺絲引起的缺陷。
然后,應用處理器對完整的預處理輸入圖像執(zhí)行特征檢測,以查找圖像中的車牌。在這里,工程師可以從他們希望系統(tǒng)檢測的各種功能中進行選擇。突出特征可以是車牌的背景和字體顏色、形狀或其他特征,例如國家/地區(qū)或州名稱。但是,這些取決于此系統(tǒng)將運行的位置。
無論哪種方式,都有幾種方法來檢測圖像中的特征,例如,定向梯度直方圖(HOG)和應用處理器的 ARM Cortex-A53 主 CPU
可以執(zhí)行此步驟。一旦主CPU驗證圖像中是否存在車牌,應用處理器的2.3 TOPS
NPU就可以利用DNN來執(zhí)行字符和其他特征識別。輸出可能包含國家/地區(qū)、州和車牌號等信息。
然后,系統(tǒng)可以存儲數(shù)據(jù)以供以后處理。一旦檢測到違規(guī)行為,設備就可以加密提取的信息并將其上傳到云服務器進行進一步處理。恩智浦 i.MX
8M的兩個千兆以太網(wǎng)接口(其中一個包括TSN支持)允許邊緣節(jié)點將大量數(shù)據(jù)上傳到云端進行進一步處理。該器件增強的片上安全功能可確保敏感用戶信息的機密性和完整性。
可靠性和安全性是工業(yè)應用中需要考慮的另外兩個重要方面。i.MX 8M Plus 在 DDR RAM
接口中提供內(nèi)聯(lián)糾錯碼,以確保高可靠性并支持系統(tǒng)級安全完整性等級 (SIL) 認證。安全啟動、加密啟動、硬件防火墻和運行時完整性檢查器 (RTIC)
等安全功能有助于防止可能危及嵌入式系統(tǒng)安全性的各種攻擊,包括硬件逆向工程、惡意軟件插入、修改/替換設備映像和版本回滾攻擊。
總結(jié) ML 邊緣處理注意事項
就像任何其他軟件項目一樣,了解邊緣基于 ML
的應用程序的要求是成功項目的關鍵,不會超出范圍。一旦工程師確定并了解項目的需求,他們就可以調(diào)查合適的硬件。
隨著處理能力的提高和邊緣設備功能越來越強大,越來越多的基于 ML
的分析任務遠離云。但是,邊緣計算并不能替代云。相反,邊緣和云計算相輔相成,同時減少延遲并提高安全性和可靠性。
現(xiàn)代邊緣處理器包含多個專用處理內(nèi)核,這些內(nèi)核針對特定任務進行了精確調(diào)整和優(yōu)化。每種類型的處理器在用于 ML
應用程序時都有優(yōu)點和缺點。雖然工程師可以單獨使用它們,但在邊緣實施復雜的 ML 應用程序時,這些專用處理設備在協(xié)同使用時可以發(fā)揮其真正的潛力。
除了純粹的處理能力外,還必須始終考慮要部署ML邊緣節(jié)點的環(huán)境。某些用例(例如基于視覺的 ML
應用程序)可能需要與基于音頻的應用程序不同的硬件,因此仔細評估所研究的處理設備的接口選項非常重要。額外的協(xié)處理器可能有助于減少所選設備主CPU的負載,工程師還應該識別并考慮邊緣每個ML項目的安全相關方面。
-
處理器
+關注
關注
68文章
19100瀏覽量
228814 -
ML
+關注
關注
0文章
144瀏覽量
34580 -
機器學習
+關注
關注
66文章
8349瀏覽量
132315 -
邊緣節(jié)點
+關注
關注
0文章
13瀏覽量
7632
發(fā)布評論請先 登錄
相關推薦
評論