• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁(yè) > 設(shè)計(jì)應(yīng)用 > Arm MCU在邊緣AI落地的方法

    Arm MCU在邊緣AI落地的方法

    作者:魯 冰 時(shí)間:2019-09-25 來(lái)源:電子產(chǎn)品世界 收藏

      魯?冰?(《電子產(chǎn)品世界》編輯)

    本文引用地址:http://www.czjhyjcfj.com/article/201909/405225.htm

      (人工智能)在M級(jí)的便宜的小器件上能不能落地?它需要什么資源,性能又怎么樣?不久前,Arm中國(guó)攜手恩智浦半導(dǎo)體在全國(guó)進(jìn)行了巡回講演。Arm中國(guó)高級(jí)市場(chǎng)經(jīng)理Eric Yang分享了的基礎(chǔ)知識(shí),分析認(rèn)為邊緣可以通過(guò)在MCU這樣的小芯片上實(shí)現(xiàn),并推介了Arm的軟件中間件NN——可以有效地對(duì)接算法和具體芯片,最后列舉出了的應(yīng)用案例。

      1 邊緣AI潛力巨大

      AI有沒(méi)有前途?

      前兩年AI非常火,AI公司支付的薪水很高。不過(guò),2019年上半年以來(lái),很多AI公司活得并不是很好。AI到底有沒(méi)有機(jī)會(huì)?還需不需要關(guān)注?

      如果借鑒歷史,大約在5億年前是單細(xì)胞生物,之后生物學(xué)上出現(xiàn)了寒武紀(jì)大爆發(fā),產(chǎn)生了大量的新生物,其中帶智能的生物慢慢進(jìn)化出來(lái)。

      現(xiàn)在從嵌入式或者產(chǎn)業(yè)角度來(lái)看,有點(diǎn)類(lèi)似于寒武紀(jì)的前夕。如果從身邊去觀察,會(huì)發(fā)現(xiàn)無(wú)論是生活還是工作環(huán)境安裝了很多傳感器,而且傳感器有越來(lái)越多的趨勢(shì)。Arm的孫正義先生認(rèn)為,現(xiàn)在還是百億級(jí)、千億級(jí)傳感器的量,到2025年會(huì)有約1萬(wàn)億的設(shè)備連上傳感器,相當(dāng)于2025年時(shí)到了寒武紀(jì)大爆發(fā)時(shí)期。

      不過(guò),那么多傳感器相連,如果都靠傳統(tǒng)的計(jì)算方式,即完全是靠你的算法或控制去實(shí)現(xiàn)一些功能/性能的時(shí)候,是有很大的瓶頸的。所以大量傳感器可能會(huì)采用AI技術(shù),一部分AI在云端,更多的是在嵌入式端。

      2 AI中遇到的概念

      AI、機(jī)器學(xué)習(xí)(ML)、深度學(xué)習(xí)(DL),這些概念到底什么關(guān)系?

      AI是用機(jī)器來(lái)模擬人的思維習(xí)慣,讓機(jī)器來(lái)達(dá)到人的決策的能力。要實(shí)現(xiàn)這一功能,就需要讓機(jī)器做學(xué)習(xí),這主要是通過(guò)概率論、統(tǒng)計(jì)論之類(lèi)的方法,讓機(jī)器找到算法,以實(shí)現(xiàn)機(jī)器能夠?qū)W習(xí)這樣的功能(如圖1)。

    微信截圖_20191010094300.png

      實(shí)現(xiàn)機(jī)器學(xué)習(xí)里面有種方法叫深度學(xué)習(xí)。深度學(xué)習(xí)相當(dāng)于你準(zhǔn)備大量的數(shù)據(jù),然后放到那個(gè)模型里邊去,讓它學(xué)會(huì)“感知+判斷+思維”的能力。在深度學(xué)習(xí)下面,會(huì)有我們經(jīng)常聽(tīng)到的算法,諸如、RNN等。

      3

      在機(jī)器學(xué)習(xí)方面有兩個(gè)方面需要去理解:訓(xùn)練和推斷。第一是若在云端,叫訓(xùn)練,云端需要有巨大的數(shù)據(jù)量做訓(xùn)練;第二是設(shè)備端。設(shè)備端主要是做推斷,即把云端訓(xùn)練好的模型思維方式下載到設(shè)備端,設(shè)備端再根據(jù)獲得的信號(hào)得出一個(gè)推斷的結(jié)果。

      訓(xùn)練需要大量的數(shù)據(jù),需要非常高的性能、大量的帶寬去實(shí)現(xiàn)。所以一般要在服務(wù)器、GPU、加速卡上運(yùn)行。

      在設(shè)備端,因?yàn)橐呀?jīng)有現(xiàn)成的訓(xùn)練模型,所以只做判斷/推斷,相對(duì)來(lái)講要考慮的地方較為簡(jiǎn)單,例如性能方面,中低端的性能就可實(shí)現(xiàn);效率方面,包括成本效率、功耗效率;再有,因?yàn)樵O(shè)備端涉及到聯(lián)網(wǎng),還要有安全隱私的考慮。

      那么,哪些功能適合放在設(shè)備端或服務(wù)器端/云端?如圖2,分別從AI的3個(gè)典型應(yīng)用——視覺(jué)、音頻以及健康管理來(lái)分析。圖2左都是大型的機(jī)器學(xué)習(xí),在服務(wù)器上面,圖2右是設(shè)備端可以實(shí)現(xiàn)的應(yīng)用與技術(shù)。

    微信截圖_20191010094323.png

      以視覺(jué)來(lái)看,首先,如果做具體物體的識(shí)別,例如,這是一條狗,這條是什么品種的狗,或者人臉識(shí)別,這種方式基本上放在服務(wù)器端。如果做類(lèi)的識(shí)別,例如是狗、車(chē)還是飛機(jī),這種識(shí)別就可以放在設(shè)備端了。CIFAR-10就是一種常用來(lái)做的標(biāo)準(zhǔn)模型。

      例如在音頻方面,如果只是做一個(gè)關(guān)鍵字的識(shí)別,或簡(jiǎn)單的一個(gè)命令的識(shí)別,可以放在設(shè)備端;如果是做語(yǔ)義的識(shí)別(例如你講一句話,讓機(jī)器知道你的意思,回答你下一句話),通常放在云端/服務(wù)器端。

      同樣,在健康管理方面,如果讓手機(jī)、手環(huán)或智能手表做一個(gè)動(dòng)作的識(shí)別,例如解釋你是在走路、跑步還是蹲下,這可在設(shè)備端實(shí)現(xiàn);如果要是做具體的疾病識(shí)別,要放在服務(wù)器端實(shí)現(xiàn)。

      在嵌入式系統(tǒng)里面,做ML要考慮哪些因素?列表如表1所示。

      首先在系統(tǒng)層,你要考慮到效率,因?yàn)榍度胧皆O(shè)備一般都會(huì)有成本的考慮,因?yàn)榱糠浅4螅荚O(shè)的端點(diǎn)非常多。另外是功耗的考慮,有的設(shè)備涉及到電池供電。之后還有帶寬,因?yàn)樾枰?wù)器/云去通訊。最后還需要考慮到隱私和加密。

      在AI部分,可能你要考慮到的你輸入的種類(lèi)、參數(shù)、轉(zhuǎn)換的效率、你要得到結(jié)果的精度、你所選用的設(shè)備的算法,或者你要達(dá)到這樣精度要消耗的內(nèi)存資源。

      在ML部分經(jīng)常聽(tīng)到一些算法,諸如、DNN、RNN、LSTN。這些算法對(duì)應(yīng)的常用的應(yīng)用場(chǎng)景,例如CNN適合視覺(jué)識(shí)別、圖片識(shí)別,DNN比較適合語(yǔ)音識(shí)別。

      表2是Arm做的不同ML算法在不同的內(nèi)存資源和CPU資源情況下得到的結(jié)果。

    1570671873268176.png

    1570671873824242.png

      可見(jiàn)準(zhǔn)確度、消耗的資源跟你的系統(tǒng)呈對(duì)應(yīng)關(guān)系。例如分散式CNN算法可以達(dá)到95%的準(zhǔn)確度,最小的時(shí)候可能只占了不到40 kB內(nèi)存,消耗的CPU運(yùn)算能力只有5.4MOps,這相當(dāng)于人們常見(jiàn)的M0嵌入式設(shè)備就能運(yùn)行起來(lái)。可見(jiàn),在Arm生態(tài)系統(tǒng)里,從M0到M7,都可以在這些芯片上面去實(shí)現(xiàn)ML功能(如圖3)。這顛覆了人們以前的觀念——一定要有很大的GPU、服務(wù)器、手機(jī)平臺(tái)等去做。

      在硬件方面,Arm推動(dòng)MCU芯片合作伙伴,加外設(shè)、加功能去做具體芯片出來(lái)。同樣,在軟件方面,Arm也提供了軟件中間件,叫。

      4

      該軟件中間件的一個(gè)出發(fā)點(diǎn)是全球比較大的一些公司,包括國(guó)內(nèi)的百度、阿里等經(jīng)常無(wú)償?shù)靥峁C(jī)器學(xué)習(xí)的算法,讓免費(fèi)使用,以在其服務(wù)器上得到接口。但落地時(shí)候怎么辦?因?yàn)椴煌緯?huì)提供不同種類(lèi)的算法,如果你對(duì)每種算法都去做支持,整個(gè)開(kāi)發(fā)維護(hù)的工作量會(huì)非常大的,尤其對(duì)于嵌入式設(shè)備的廠家更是如此。

    微信截圖_20191010094445.png

      Arm在中間做了一個(gè)標(biāo)準(zhǔn)化的接口優(yōu)化。上面直接去對(duì)接算法,下面去對(duì)接具體的硬件。這就把AI機(jī)器學(xué)習(xí)當(dāng)做是一個(gè)以前的通訊庫(kù),或者是API來(lái)用,就可以了。圖4是具體應(yīng)用的流程。

      在Cortex-M上來(lái)實(shí)現(xiàn)的軟件庫(kù),是在2018年1月發(fā)布的,是開(kāi)源的,你可以看到所有源代碼,因此不會(huì)存在安全、自主可控的困惑。

      不僅如此,現(xiàn)在NN 還 針 對(duì) 大 核 , 例 如系列以及Mali GPU,也是開(kāi)源的,于2018年年中發(fā)布。

      至此,可以運(yùn)行在Arm所有CPU上。

      相比只從那些算法公司下載開(kāi)源程序、把它移植到Arm CPU上去運(yùn)行,分別對(duì)卷積、池化以及激活函數(shù)方面做對(duì)比,對(duì)比圖如圖5。可見(jiàn)在池化時(shí),用CMSIS-NN,可以達(dá)到4.6倍性能的提升。

    微信截圖_20191010094507.png

      CMSIS-NN效率很高。恩智浦半導(dǎo)體做的一個(gè)在相同的硬件環(huán)境下,CMSIS-NN與的性能對(duì)比。采用的芯片分別是Cortex-M4和的 芯 片 , 在 做 C I F A R - 1 0 時(shí) ,(注:提供的嵌入式版本的CNN模型)用約120 ms才能完成某個(gè)識(shí)別;只需要20 ms左右。

      CMSIS-NN一直在更新,基本上每個(gè)季度有優(yōu)化版。

      5 用CMSIS-NN做ML的應(yīng)用案例

    微信截圖_20191010094521.png

      第一個(gè)應(yīng)用是CMSIS-NN如何與恩智浦半導(dǎo)體的AI平臺(tái)——eIQ平臺(tái)對(duì)接(如圖6)。它是把算法集成好,對(duì)用戶來(lái)講,首先是找到一個(gè)事先做好的模型,選擇是否也需要做壓縮的算法。如果不做壓縮,就把它做模型轉(zhuǎn)換到Cortex-M系列里的語(yǔ)言里。只需要把傳感器的信號(hào)輸入,恩智浦的芯片(例如:i.MX RT)就會(huì)做出一個(gè)決策。

      實(shí)際上,用芯片做成的產(chǎn)品已有商用化的案例。美國(guó)的Amiko公司做的哮喘治療器(如圖7)采用ML算法來(lái)做監(jiān)測(cè)、統(tǒng)計(jì)。它的原理比較簡(jiǎn)單,其中的傳感器可以識(shí)別幾個(gè)內(nèi)容。第一,把設(shè)備從正常的狀態(tài)顛倒過(guò)來(lái),變成放到嘴里的狀態(tài)。其次,它可以監(jiān)測(cè)到吸入的流量大小。實(shí)現(xiàn)方法是:在云端做好了一個(gè)模型之后,它可以通過(guò)這模型來(lái)指導(dǎo)這個(gè)吸入哮喘劑是否正確,以及吸的量夠不夠。

    微信截圖_20191010094552.png

      本文來(lái)源于科技期刊《電子產(chǎn)品世界》2019年第10期第87頁(yè),歡迎您寫(xiě)論文時(shí)引用,并注明出處。



    關(guān)鍵詞: 201910 Arm MCU AI CNN CMSIS-NN

    評(píng)論


    相關(guān)推薦

    技術(shù)專(zhuān)區(qū)

    關(guān)閉
    主站蜘蛛池模板: 东至县| 兴国县| 宜兰县| 乌什县| 龙游县| 百色市| 宣武区| 黄骅市| 南充市| 常熟市| 调兵山市| 正阳县| 武穴市| 临高县| 海阳市| 滨海县| 会昌县| 塔河县| 芜湖市| 巨鹿县| 和龙市| 辛集市| 英德市| 桓台县| 额尔古纳市| 鹤岗市| 开化县| 喀喇| 通榆县| 石家庄市| 迁西县| 莫力| 蓝山县| 宁武县| 孝义市| 无棣县| 新干县| 宁阳县| 监利县| 湖南省| 革吉县|