新聞中心

EEPW首頁 > 設(shè)計應(yīng)用 > 嵌入式人工智能技術(shù)開發(fā)及應(yīng)用

嵌入式人工智能技術(shù)開發(fā)及應(yīng)用

作者:畢盛 時間:2019-04-28 來源:電子產(chǎn)品世界 收藏

  Development and application of embedded AI technology

本文引用地址:http://2s4d.com/article/201904/400008.htm

      作者/畢盛 華南理工大學(xué) 計算機(jī)科學(xué)與工程學(xué)院(廣東 廣州 510006)

  摘要:算法如何有效地運行在嵌入式智能終端(即邊緣計算)是近年研究的熱點,本文從嵌入式技術(shù)研究的意義以及所面臨的問題入手,并從硬件平臺、算法設(shè)計以及算法部署三個方面展開,闡述嵌入式技術(shù)開發(fā)的思路,最后通過一個應(yīng)用實例說明此開發(fā)過程。

  關(guān)鍵詞:邊緣計算;嵌入式系統(tǒng);人工智能

  1 研究意義

  隨著“AIoT(人工智能物聯(lián)網(wǎng))=AI(人工智能)+IoT(物聯(lián)網(wǎng))”的發(fā)展,若把算法都部署在云平臺上進(jìn)行,會給網(wǎng)絡(luò)通信帶來不小的壓力,并且會面臨數(shù)據(jù)傳輸?shù)难舆t性以及安全性等問題,因此并不是所有的智能終端都需要利用云平臺來運行,因此如何在智能終端上直接運行算法的邊緣計算應(yīng)運而生。

  邊緣計算相對于云平臺有如下優(yōu)勢:(1)實時性高,不需要傳輸數(shù)據(jù)從而減少反應(yīng)延遲;(2)可靠性高,即使網(wǎng)絡(luò)斷開也能正常工作;(3)安全性高,避免隱私數(shù)據(jù)被上傳;(4)部署靈活,可在各種終端靈活部署;(5)更加節(jié)能,嵌入式系統(tǒng)低功耗特性以及減少了傳輸過程的能耗等;(6)網(wǎng)絡(luò)流量低,有效抑制了網(wǎng)絡(luò)擁塞;(7)類人化,人就是作為獨立的智能體生存在社會網(wǎng)絡(luò)中。

  當(dāng)然邊緣計算不是為了代替云計算,而是作為云計算的一個補(bǔ)充。

  據(jù)IDC預(yù)測,到2020年將有超過500億的終端與設(shè)備聯(lián)網(wǎng),而有50%的物聯(lián)網(wǎng)網(wǎng)絡(luò)將面臨網(wǎng)絡(luò)帶寬的限制,40%的數(shù)據(jù)需要在網(wǎng)絡(luò)邊緣分析、處理與儲存。邊緣計算市場規(guī)模將超萬億,成為與云計算平分秋色的新興市場 [1] 。因此吸引越來越多的公司加入到邊緣計算開發(fā)當(dāng)中。

  2 邊緣計算的挑戰(zhàn)與機(jī)會

  邊緣計算就是在嵌入式平臺上能有效地運行各種智能算法,從而使終端具有類似人一樣的智能。如圖1所示,智能算法大致可以歸為三類:(1)認(rèn)知環(huán)境,其中包括物體識別、目標(biāo)檢測、語義分割和特征提取功能,涉及了模式識別、機(jī)器學(xué)習(xí)和深度學(xué)習(xí)等技術(shù);(2)顯示場景,其中包括復(fù)原算法、三維點云展示和場景生成,涉及了最優(yōu)化、虛擬現(xiàn)實、深度學(xué)習(xí)GAN網(wǎng)絡(luò)等技術(shù);(3)控制機(jī)構(gòu),其中包括智能控制,涉及了強(qiáng)化學(xué)習(xí)、控制等技術(shù)。但是邊緣計算環(huán)境下嵌入式平臺的運算能力弱,因此如何能有效的運行各種智能算法是一個很挑戰(zhàn)的問題。

1556600108272703.png

  隨著人們對人工智能越來越深入的研究,邊緣計算也有了一系列發(fā)展的機(jī)會:(1)目前通用的計算機(jī)體系硬件體系結(jié)構(gòu)并不符合人腦的結(jié)構(gòu)構(gòu)成,所以計算效能還有很大的提升潛力,因此這為邊緣計算平臺提供了彎道超車的可能性;(2)當(dāng)前的智能算法還有很大改進(jìn)的空間,例如通過深度學(xué)習(xí)訓(xùn)練出的特征往往優(yōu)于人們傳統(tǒng)認(rèn)識的特征(例如邊緣和角點特征等),因此這為邊緣計算在算法改進(jìn)上提供了很大空間;(3)邊緣計算平臺即嵌入式系統(tǒng)往往是實現(xiàn)某種特定的應(yīng)用,因此可以根據(jù)需求對算法進(jìn)行各種簡化,并且可提出合適的部署方案。

  結(jié)合邊緣計算所面臨的挑戰(zhàn)和機(jī)會,本文從硬件架構(gòu)、算法設(shè)計和算法部署三個方面展開邊緣計算的開發(fā)和應(yīng)用。

  3 邊緣計算環(huán)境下的硬件架構(gòu)

  人工智能(AI)從云端走向邊緣端,需要嵌入式硬件有較好的運算能力,因此各芯片廠家在芯片內(nèi)部集成了便于加速運算的硬件模塊,其中包括如下。

 ?。?)多核處理架構(gòu)。其中異構(gòu)多核架構(gòu)即結(jié)合兩種或多種不同類型的芯片內(nèi)核架構(gòu),使其能夠提供適合各種應(yīng)用的處理器性能,以及更有效功耗和更少的物理空間,近年來在嵌入式領(lǐng)域得到了大范圍推廣,例如現(xiàn)在推出的高性能ARM核芯片瑞芯微RK3399等是基于異構(gòu)多核架構(gòu)的。

 ?。?)嵌入式GPU。嵌入式芯片內(nèi)部集成GPU,從而提高顯示處理能力,并在邊緣計算環(huán)境下實現(xiàn)并行加速計算,主要有兩種類型:堆核,如ARM芯片采用的Mali GPU;大核,如高通公司采用的Adreno GPU。

 ?。?)處理器(NPU)。采用“數(shù)據(jù)驅(qū)動并行計算”架構(gòu),顛覆了傳統(tǒng)馮·諾依曼計算機(jī)架構(gòu),從而可以加速深度學(xué)習(xí)算法,如瑞芯微RK3399Pro、寒武紀(jì)MLU100、華為麒麟980和高通驍龍855等芯片。

 ?。?)數(shù)字信號處理DSP。DSP內(nèi)部集成了硬件乘法器、多總線和信號處理單元,通過DSP指令集可實現(xiàn)算法的硬件加速,例如TI、ADI等公司專用的DSP芯片,Xilinx公司、英特爾可編程解決方案事業(yè)部(注:英收購的Altera公司)的FPGA集成了DSP單元。

  (5)基于算法定制化的ASIC——XPU和DLA。

  根據(jù)需求設(shè)計特定人工智能算法芯片“xPU”,例如APU、BPU等,以及Google公司推出的張量處理器TPU。 英偉達(dá)提供了的DLA(深度學(xué)習(xí)加速器),并進(jìn)行開源,瞄準(zhǔn)了嵌入式和 IoT 市場。

 ?。?)芯片內(nèi)核加速單元—ARM核NEON。ARMNEON是單指令多數(shù)據(jù)流(SIMD)技術(shù),可用于加速多媒體和信號處理算法,例如一些針對ARM芯片的前端部署方案諸如NCNN [2] 采用NEON對深度學(xué)習(xí)的卷積運算進(jìn)行加速。

 ?。?)類人腦芯片。例如IBM公司的TrueNorth(真北),模擬人腦設(shè)計的64芯片系統(tǒng),數(shù)據(jù)處理能力已經(jīng)相當(dāng)于包含6400萬個神經(jīng)細(xì)胞和160億個神經(jīng)突觸的類腦功能。

  4 邊緣計算算法設(shè)計

  設(shè)計適合于邊緣計算環(huán)境下運行的算法,如圖2所示,主要從以下幾方面進(jìn)行考慮:

1557132382249868.jpg

 ?。?)在對外界環(huán)境認(rèn)知過程中,如何有效地提取特征很重要,從邊緣特征提取方法到壓縮感知理論以及到基于深度學(xué)習(xí)的特征提取方法,都是在研究一種有效特征提取方法,因此可以針對嵌入式平臺研究一種在精度和速度上相互兼顧的方法。

 ?。?)嵌入式系統(tǒng)往往是針對一個具體的應(yīng)用,而算法研究要考慮到普適性,所以在邊緣計算環(huán)境下可以結(jié)合具體的應(yīng)用對算法進(jìn)行改進(jìn),從而減少計算量提高運算速度,例如可以把面向未知場景的全局優(yōu)化搜索問題轉(zhuǎn)為針對某個具體場景的局部優(yōu)化問題。

  (3)利用傳感器直接采集數(shù)據(jù)代替算法對此信息的估計過程,從而降低算法運算量。例如單獨根據(jù)視覺計算出相機(jī)的位姿,可以通過結(jié)合慣性傳感器(IMU)來降低計算量使其適合于邊緣計算環(huán)境下運行。

 ?。?)在深度學(xué)習(xí)過程中,需要對網(wǎng)絡(luò)進(jìn)行簡化,主要包括:1) 刪除對模型性能影響不大的卷積核;2)深度可分離卷積和1×1卷積代替普通卷積;3)浮點數(shù)進(jìn)行整形量化,二值化網(wǎng)絡(luò)中參數(shù)用1位來表示;4)精簡模型學(xué)習(xí)復(fù)雜模型的輸出。例如Google公司的MobileNet [3] 、伯克利與斯坦福大學(xué)的SqueezeNet [4] 和Face++公司的ShuffleNet [5] 等,采用了輕量級的網(wǎng)絡(luò)結(jié)構(gòu),且保持了較為實用的準(zhǔn)確率。


1557132400471583.jpg

1557132400403949.jpg

  5 邊緣計算前端部署

  邊緣計算算法可以借助硬件加速來提高運行效率,例如瑞芯微RK3399、高通驍龍855或華為麒麟980芯片都是基于ARM核,采用了多核、Mali GPU以及支持ARM NEON加速。其中在異構(gòu)多核處理器調(diào)度方面,針對優(yōu)化目標(biāo)分別從滿足性能、功耗優(yōu)化、滿足公平性和并發(fā)程序瓶頸優(yōu)化等方面進(jìn)行優(yōu)化部署,除了利用多核特性實現(xiàn)對算法的整體調(diào)度優(yōu)化外,深度學(xué)習(xí)等智能算法也需要硬件加速,如圖3所示,可以利用ARM NEON單元實現(xiàn)卷積運算的加速。每次1x1卷積操作時,將輸出特征圖按照8個每組使用OpenMP平分給設(shè)備可調(diào)用的每個CPU以充分利用硬件資源。之后針對每8個輸出特征圖,會以1x8的小塊為單位同時進(jìn)行8個輸出特征圖的計算。

  一些公司也開發(fā)了前端部署方案,例如ARM公司OPEN AI LAB的Tengine框架 [6] 、Google公司的TensorFlow Lite [7] 、騰訊公司的NCNN框架 [2] ,小米公司的MACE框架 [8] 和百度公司的Mobile-deep-learning [9] 、亞馬遜公司的TVM [10]和美國高通公司的 SNPE [11] 等,都是通過借助多核和加速單元實現(xiàn)卷積的快速計算,從而在移動設(shè)備上有效的實現(xiàn)深度學(xué)習(xí)算法。

  同時針對具體硬件平臺,ARM公司OPENAI LAB開發(fā)了基于RK3399芯片的EAIDK開發(fā)套件 [6] 、中科創(chuàng)達(dá)公司開發(fā)了基于高通驍龍845芯片Thundercomm TurboX AI Kit開發(fā)套件 [12] 、NVIDIA Jetson Nano開發(fā)套件等 [13] 。

  6 邊緣計算實例

  本實驗室的張英杰、張粵和李智豪三位同學(xué)在邊緣計算環(huán)境Thundercomm AI Kit平臺上實現(xiàn)了結(jié)合自然語言理解和環(huán)境認(rèn)知的智能服務(wù)系統(tǒng),用于機(jī)器人結(jié)合場景的對話系統(tǒng)中,如圖4所示。例如人問機(jī)器人“瓶子在哪里”,機(jī)器人通過自然語言處理得到語義文本信息;與此同時,機(jī)器人對視覺圖片也在進(jìn)行目標(biāo)檢測,根據(jù)訓(xùn)練樣本集VOC的物體類別,在圖片中可以識別出“瓶子”和“顯示器”并框選出來;接著通過相似度的評價方法對語言理解語義和視覺認(rèn)知的物體名稱進(jìn)行匹配,并根據(jù)物體的坐標(biāo)信息,可得出“瓶子在顯示器右側(cè)”。

  整個過程主要包括:(1)自然語言理解,由于語音數(shù)據(jù)量不大,同時有較多的基于云端的商業(yè)解決方案,因此借助訊飛公司的語音識別SDK實現(xiàn)語音處理,獲得語義文本;(2)物體目標(biāo)檢測采用深度學(xué)習(xí)的思路實現(xiàn),但傳統(tǒng)的深度網(wǎng)絡(luò)計算量大,不能在邊緣端運行,因此需要對網(wǎng)絡(luò)輕量化并選取合適的前端硬件部署方案,本項目利用VOC數(shù)據(jù)集在Caffe框架下訓(xùn)練MobileNet-SSD輕量級深度網(wǎng)絡(luò),并利用NCNN框架實現(xiàn)在硬件上的部署;(3)利用相似度評價方法實現(xiàn)文本語義和物體指稱的匹配,最終確定出物體的相對位置。

  相對于傳統(tǒng)的非場景對話系統(tǒng),本系統(tǒng)人機(jī)交互程度高,可用于人與機(jī)器人協(xié)作過程中,同時整個系統(tǒng)在嵌入式平臺上進(jìn)行了實現(xiàn)并成功部署。本系統(tǒng)參加了2018年中科創(chuàng)達(dá)技術(shù)大會并進(jìn)行了現(xiàn)場實物演示,獲得了一等獎。

  參考文獻(xiàn)

  [1]胡又文 (ID:axzqjsj),華爾街見聞專欄作者,邊緣計算,5G時代新風(fēng)口,https://wallstreetcn.com/articles/3487892,2019.03.05

  [2] NCNN[eb/ol], https://github.com/Tencent/ncnn

  [3] Howard A G, Zhu M, Chen B, et al. MobileNets: Efficient Convolutional Neural Networks forMobile Vision Applications[J/OL]. https://arxiv.org/pdf/1704.04861.pdf, 2017.

  [4] Iandola F N, Moskewicz M W, Ashraf K, et al. SqueezeNet: AlexNet-level accuracy with 50xfewer parameters and <1MB model size[J/OL]. https://arxiv.org/pdf/1602.07360.pdf, 2016.

  [5] Zhang X, Zhou X, Lin M, et al. ShuffleNet: An Extremely Efficient Convolutional NeuralNetwork for Mobile Devices[J/OL]. https://arxiv.org/pdf/1707.01083.pdf, 2017.

  [6] Tengine[eb/ol], http://www.openailab.com/, 2019,2019.04.10

  [7] TensorFlow Lite[eb/ol],https://tensorflow.google.cn/lite/, 2019.04.10

  [8] MACE[eb/ol], https://github.com/XiaoMi/mace/blob/master/README_zh.md, 2019.04.10

  [9] Mobile-deep-learning[eb/ol], https://github.com/PaddlePaddle/paddle-mobile, 2019.04.10

  [10] TVM[eb/ol], https://tvm.ai/,2019.04.10

  [11] SNPE[eb/ol] , https://developer.qualcomm.com/docs/snpe/overview.html,2019.04.10

  [12] Thundercomm TurboX AI Kit[eb/ol],https://www.thundercomm.com/app_zh/product/1536844968290219,2019.04.10

  [13] NVIDIA Jetson Nano[eb/ol], https://www.nvidia.cn/autonomous-machines/embedded-systems/jetson-nano/,2019.04.10

  作者簡介

  畢盛(1978-),男,博士,副教授,主要從事智能機(jī)器人、FPGA快速處理算法、嵌入式智能終端及智能手機(jī)研究和開發(fā)工作。

  本文來源于科技期刊《電子產(chǎn)品世界》2019年第5期第14頁,歡迎您寫論文時引用,并注明出處



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉