0 背景
? ? ? ? 邊緣智能是邊緣計算中一個非常重要的方向。它將邊緣計算和人工智能算法結合起來,在邊緣設備上就近處理目標檢測、物體跟蹤,識別等任務。這種處理方式可以降低時延,減少數(shù)據(jù)上送云端對回傳網(wǎng)絡的沖擊,同時保證數(shù)據(jù)的隱私和安全性。但是,我們要面對一個問題,即現(xiàn)有的人工智能算法是否可以直接應用于邊緣側,還是我們需要重新設計一套原生算法。本文將探討邊緣智能網(wǎng)關的全棧解決方案,提供一套工程化的實現(xiàn)框架,從硬件、操作系統(tǒng)、數(shù)據(jù)平臺和智能編程庫選型入手,幫助讀者選型快速搭建一個邊緣智能網(wǎng)關出來。
1 什么是邊緣智能
? ? ? ? 邊緣智能是指將邊緣計算和人工智能相結合,在靠近用戶的邊緣設備上對數(shù)據(jù)進行智能采集,檢測和識別。如下圖所示,智能模型可以在云端進行訓練,然后在邊緣設備上進行預測。這樣的協(xié)同模式,是因為邊緣設備通常在計算能力和存儲能力上比較弱,無法完成大規(guī)模的訓練,考慮到邊緣設備就近處理的優(yōu)勢,可以將預測模型下沉到這一級邊緣設備。如何評價邊緣智能設備的預測能力,結合邊緣設備資源不足的特點,主要從邊緣智能設備的預測準確率,低延遲,低功耗和內存占用率低四個視角評價。
? ? ? ? 整個邊緣智能設備為了達成上述的四個評價標準,在技術層面主要追求輕量化的實現(xiàn)方式,比如輕量化的機器學習算法,輕量化的邊緣智能開發(fā)庫,輕量化的操作系統(tǒng)等。在硬件選型上采用異構化的硬件,與通常的邊緣網(wǎng)關設備不同,需要選擇計算密集型的芯片作為計算設施。被采集的數(shù)據(jù)并不能被立刻處理而要首先進行數(shù)據(jù)清洗。當下一種比較流行的邊緣智能模型是邊傳邊算,從空口開始到每一級的邊緣設備都進行計算,在其中某一級的邊緣智能設備上就完成了檢測,識別等功能。關于邊緣智能的實現(xiàn)技術框架,詳見下節(jié)。
2 邊緣智能的實現(xiàn)技術架構
? ? ? ? 如果我們想落地一款邊緣智能網(wǎng)關,在每一層上可以選擇哪些技術呢?本小節(jié)將給出一個參考案例。如下圖所示,圖中右邊從底層硬件到最上層的應用給出了可選的技術方案,左邊則給出選擇這一項技術的原因。
? ? ? ? 首先是硬件芯片的選擇,因為我們要實現(xiàn)的邊緣智能網(wǎng)關需要具備一定的運行機器學習、深度學習的能力,傳統(tǒng)的邊緣計算網(wǎng)關采用的CPU和arm體系結構并不適合處理這種計算密集型的業(yè)務,因此需要選擇諸如GPU、NPU、ASIC、FPGA等計算型芯片加速??紤]到上一節(jié)提到的邊緣智能的低功耗的特性,當前比較占優(yōu)勢的技術是FPGA,F(xiàn)PGA因其靈活的硬件設計,可以很方便地開發(fā)不同應用場景的硬件,當然ASIC可以提供更低的功耗,但是因靈活性不及FPGA,所以在此處圖中選擇FPGA作為硬件加速引擎。
? ? ? ? 接下來是操作系統(tǒng)的選型。linux是邊緣計算網(wǎng)關中被廣泛使用的一種開源操作系統(tǒng),但是linux本身是一種IO密集型或者說是指令密集型的操作系統(tǒng),在數(shù)據(jù)的處理調度上并無優(yōu)勢,因此此處筆者借鑒《邊緣計算》一書中提到的ROS作為專門處理計算任務和調度的操作系統(tǒng),實現(xiàn)AMP雙系統(tǒng)。對于模型預測,智能編程庫相關的算法運行在ROS上,對于一般的數(shù)據(jù)管理和設備管理則運行在linux上,如果是雙核的開發(fā)板,則可以分別綁定到不同的核上運行。
? ? ? ? 再往上看就來到數(shù)據(jù)平臺層,這一層是邊緣計算網(wǎng)關的核心,主要是處理和管理數(shù)據(jù)、設備狀態(tài),實現(xiàn)云邊協(xié)同等。顯然在邊緣智能網(wǎng)關,仍然需要對設備進行處理,而且會涉及到大量預測數(shù)據(jù)的處理,部分數(shù)據(jù)還需要上送到云端進行訓練,因此這一層也是必不可少的。此處我們選擇kubeedge或者edgex foundary作為數(shù)據(jù)處理平臺,這兩個平臺分別在工業(yè)邊緣網(wǎng)關,物聯(lián)網(wǎng)網(wǎng)關,智慧城市,智慧交通等有著廣泛應用,可以簡化設備維護,部署,云邊數(shù)據(jù)傳輸?shù)膹碗s度,讓我們更聚焦于使用邊緣智能編程庫進行業(yè)務開發(fā)或者設計新的邊緣智能算法。
? ? ? ? 再往上就是我們本節(jié)的核心輕量的邊緣智能編程庫,這個庫可以方便實現(xiàn)快速的智能業(yè)務開發(fā),不必從頭開始實現(xiàn)原生邊緣智能算法或者裁剪現(xiàn)有云端算法。此處我們推薦TensorFlow Lite和Paddle Lite兩個編程庫,這兩個庫同樣是當前應用比較廣泛的開源項目,關于這兩個庫的差別將在下一節(jié)重點介紹。
? ? ? ? 最后就是從算法角度,實現(xiàn)邊緣智能算法的一些方案,簡單來說分為兩類,一類是原生算法,就是基于邊緣網(wǎng)關的資源受限的特點重新設計輕量化的訓練和預測模型;還有一類是從當前云端的算法通過壓縮、裁剪等手段得到預測模型,然后卸載到邊緣網(wǎng)關上,比如深度學習模型的網(wǎng)絡壓縮,知識遷移,低秩逼近等。如果要自己設計算法,需要注意從低時延,低內存,低延遲,高準確率四個角度考慮,保證算法可用性。
3 TensorFlow Lite和Paddle Lite對比
? ? ? ? TensorFlow Lite和Paddle Lite分別是由Google和百度開發(fā)的輕量級的智能算法編程庫,均適合部署在諸如嵌入式系統(tǒng),邊緣計算網(wǎng)關等資源受限的設備上,擅長進行預測,其負責訓練模型分別是TensorFlow和PaddlePaddle,可以部署在云端。如下表所示從10個角度進行對比,讀者可以根據(jù)自己的業(yè)務需求選擇其中的一個模型。
? ? ? ? 從上表中可以看出,兩個模型有不同的應用場景,TensorFlow Lite更適合應用在英語自然語言的場景,而Paddle Lite更適合中文語音圖像。在實現(xiàn)上,都是選擇對現(xiàn)有云端的算法進行優(yōu)化裁剪,不過采用的方案不同,一個是量化策略核內存復用,另一個則是知識蒸餾技術。都支持多種硬件,支持深度學習推理框架。在商用案例和場景上,兩者又很多的重合,比如都支持時下比較火的自動駕駛領域,TensorFlow Lite支持的場景更加豐富核多樣,而paddle lite主要聚焦在圖像和視頻的檢測、追蹤和識別上。文章來源:http://www.zghlxwxcb.cn/news/detail-420795.html
4 小結
? ? ? ? 本文從工程選型的角度簡單地介紹了邊緣智能網(wǎng)關的實現(xiàn)原理和相關實現(xiàn)過程。當然這并不是唯一的解決方案,目的是拋磚引玉,幫助讀者從項目視角感受一個邊緣智能網(wǎng)關的實現(xiàn)框架。在其中還有一些細節(jié),比如如何將Paddle Lite作為Kubeedge的pod節(jié)點安裝上去,希望讀者在實踐中一起交流探討。文章來源地址http://www.zghlxwxcb.cn/news/detail-420795.html
到了這里,關于邊緣計算那些事兒—邊緣智能技術的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!