本文做者:天工智能物聯網javascript
在人工智能領域,深度學習表明了當下較爲火熱的機器學習技術,深受學術界與產業界重視。java
因爲深度學習模型的高準確率與高可靠性,深度學習技術已在計算機視覺、語音識別與天然語言處理領域取得了普遍的成功應用。深度學習模型也如雨後春筍般涌現,而且愈來愈多的模型被開源。python
在最先期,受限於深度學習模型對於算力的需求,模型大可能是」雲端訓練、雲端推理「。然而」雲端推理「模式須要將大量的數據(如圖像和視頻數據)經過高延遲、帶寬波動的廣域網從邊緣端傳輸至雲端。在離線或者低延時要求的場景下,沒法知足實際需求。json
隨着AI芯片的興起,邊緣算力的逐步加強,將模型推理下放到邊緣側已經成爲當前的一大主流趨勢。api
雖然算力支持在邊緣進行模型推斷,可是模型的使用複雜度與門檻依然很高,爲了調用模型須要編寫許多代碼,爲了適配端側不一樣的芯片與操做系統,還須要對原始模型不斷進行修改、優化、調參等操做。瀏覽器
爲此,不少研究人員都在研究如何下降模型的使用門檻, 讓模型的應用者專一於業務,將模型作成服務同樣按需調用,實現邊緣側的model as a service。網絡
百度智能邊緣+EasyEdge集成就很好的解決了這個問題。 框架
EasyEdge是什麼?機器學習
EasyEdge是百度基於Paddle Mobile研發的端計算模型生成平臺,可以將原始深度學習模型快速生成適配於邊緣節點和智能終端的端側模型。ionic
EasyEdge支持模型信息以下:
支持的模型框架包括 :Caffe (ssd)、PyTorch (0.4.0) 、TensorFlow (1.13)、PaddlePaddle (1.4.1)
支持的模型網絡包括:VGG1六、InceptionV3/V四、MobilenetV一、MobilenetV1-SSD、RestnetV1等13種
支持的AI加速芯片包括:通用ARM芯片、通用x86芯片、英偉達GPU、高通Snapdragon GPU/DSP、英特爾Movidius VPU、華爲HiSilicon NPU、蘋果A-Bionic
BIE是什麼?
百度智能邊緣(Baidu IntelliEdge)旨在將雲計算能力拓展至用戶現場,提供能夠臨時離線、低延時的計算服務,包括設備接入、數據處理、數據上報、函數計算、AI 推斷等功能。
BIE總體包括邊緣本地運行包和雲端管理套件兩部分:
本地運行包:本地運行包包含百度開放邊緣框架BAETYL,以及基於BAETYL框架開放的邊緣應用,實現將雲計算能力延伸至邊緣,提供離線自治、低延時的計算服務。
雲端管理套件 :主要負責邊緣設備節點的管理,包含設備節點的監控、註冊管理、應用的編排與升級等功能。除此以外,雲端套件還負責與百度智能雲的其餘服務進行集成對接,包括函數計算CFC,流式計算BSC,端側模型生成框架EasyEdge等。實現」雲管理、邊運行、邊雲一體「的總體解決方案。
BIE爲何要與EasyEdge集成?
BIE與EasyEdge集成,是百度智能雲踐行「ABC Anywhere」戰略的重要一步。
EasyEdge爲BIE提供了邊緣模型適配與模型加速的能力,讓衆多的模型成爲能夠運行在BIE邊緣框架上的一種服務,實現Model as a Service。
經過BIE與EasyEdge的集成,爲用戶提供了「模型適配——>模型下發——>模型運行」的全鏈路服務。
嘗試此功能 若是要嘗試此項功能,能夠登陸智能雲控制檯,具體操做指南參考: https://cloud.baidu.com/doc/BIE/s/Tk2n4o50o
BIE與EasyEdge集成的效果
在MobileNet-SSD-Caffe物體檢測模型以服務形式運行在邊緣節點設備上之後,咱們能夠經過兩種方式進行檢驗,一種是瀏覽器校驗,還有一種是API校驗。
瀏覽器校驗
經過瀏覽器打開物體檢測服務的控制檯,訪問地址爲:http://[邊緣核心設備IP地址]:8088/ 。若是可以看到以下界面,則表示服務正常運行。
接下來能夠上傳樣例圖片校驗模型效果,如下爲幾個樣例結果:
API校驗
MobileNet-SSD-Caffe 自己做爲一個容器應用運行在邊緣核心當中,它同時對外提供API訪問接口,支持被其餘應用調用,並返回物體檢測結果。
下面經過python代碼調用接口進行示例說明:
· 拷貝下面的python代碼保存至本地,命名爲test_MobileNet_SSD_api.py
1 import requests 2 with open('./1.jpg', 'rb') as f: img = f.read() 3 # params is GET params, data is POST Body 4 result = requests.post('http://[邊緣核心設備IP地址]:8088/', params={'threshold': 0.1},data=img).json() 5 print result
· 下載圖片 1.jpg 保存至與test_MobileNet_SSD_api.py同目錄下。
· 執行test_MobileNet_SSD_api.py
python test_MobileNet_SSD_api.py
· 查看接口返回結果爲以下JSON
{ "error_code": 0, "cost_ms": 179, "results": [ { "index": 8, "confidence": 0.9999642372131348, "y2": 0.9531263113021851, "label": "cat", "y1": 0.0014175414107739925, "x2": 0.9970248937606812, "x1": 0.0014758188044652343 } ] }
經過上述返回結果,咱們能夠知道該物體檢測模型檢測到的物體是cat,可信度爲0.999964≈1。
本文做者徐偉,百度智能雲高級產品經理。