[Edge Computing] 淺談影像AI落地之邊緣運算

Andrew Wang
人工智慧的開發與落地
5 min readJun 24, 2020

近年AI蓬勃發展,今年AI落地更成為主要的目標,AI落地可以分為三種場域,如下圖所示:

(1)雲端運算: 將完成的AI模型運行在GCP、AWS或Azure這一類的雲端,這是AI落地最大的場域,這部分技術和相關資料也都比較完整,整個系統整合上都是軟體整合為主。
(2) 桌機應用程式: 將完成的AI模型運行桌機上,使用nVidia GPU或CPU運行,這部分AI落地是最容易,但相對市場也比較小。
(3) 邊緣運算: 將完成的AI模型運行在embedding system或IoT等裝置上,這部分是台灣最擅長的領域之一,然而系統整合上牽扯到演算法的運算、軟體和硬體整合等等,難度不低。

邊緣運算的整合

邊緣運算的整合牽扯到三個部分
(1) Deep Learning的Framework: 開發AI演算法模型時需要用到的套件,多以python為主要語言,最常用的包括Tensorflow以及pyTorch等。
(2) 晶片: 這裡指的是AI模型運算時會使用的晶片,包括CPU、GPU、FPGA以及種類多到不行的AI加速器。
(3) Toolkit和Library: Toolkit是將開發的AI模型轉換或編譯成適合該晶片Library使用的格式

這裡以Toolkit和Library為核心,介紹以下幾種架構:

(1) OpenCV的Library: 這是最容易的方式之一,若原本就使用OpenCV,可以輕易套入,使用CPU做運算,泛用性最高,但效能上不算好。

(2) Intel的solution: 使用OpenVINO做轉換,AI model使用Intel CPU、Intel GPU 、Altera FPGA或Intel的AI加速棒Neural Compute Stick 做運算。

不同的運算架構上官方給的效能呈現如下,使用OpenVINO編譯出來的模型,在不同裝置上都來的比OpenCV好:

Ref: https://software.intel.com/content/www/us/en/develop/blogs/accelerate-computer-vision-from-edge-to-cloud-with-openvino-toolkit.html

(3) nVidia的solution: 使用nVidia的TensorRT做轉換,將AI model運行在nVidia Jetson系列的晶片上。

這四者官方給的效能評估如下,使用上還要考量其成本和耗電:

ref: https://developer.nvidia.com/blog/jetson-xavier-nx-the-worlds-smallest-ai-supercomputer/

(4) Google的solution: Google推出在雲端提供TPU的運算,在邊緣運算則推出Edge TPU,但只支援tensorflow,某網站提出的比較如下:

Ref: https://towardsdatascience.com/battle-of-edge-ai-nvidia-vs-google-vs-intel-8a3b87243028

結論

邊緣運算可選擇的架構太多,如何選擇的確有很大的困擾,主要可以從成本和所需的運算等方面去評估,所以晶片是最大的考量點。

FAQ整理如下:
1. model使用python或C++的Framework都可以轉換到晶片上,因為主要是將model做轉換之後與晶片的libary做整合。

2. 無法使用A牌的AI SDK或toolkit放在B牌的晶片上,例如曾遇過想使用Xilinx的AI SDK開發,然後放在Intel的AI加速棒上 ,這是不可能的。

作者

王淳恆 (Andrew Wang)

andrew.wang@findbillion.com

台灣人工智慧學校 經理人班/醫療專班 講師
Kaggle 競賽Expert
沐恩生醫 顧問

曾任:
沐恩生醫 技術長
聯發科技 無線通訊/人工智慧智能技術群 技術副理,負責晶片設計
建騰創達 技術副理,負責IP CAMERA ISP FPGA設計

專長領域:
人工智慧與影像分析
人工智慧與財務分析
10年以上人工智慧經驗
19年以上通訊與影像的晶片設計、訊號處理與演算法相關工作經驗
2項美國專利/6項台灣專利/3項日本專利

--

--