-
如何在MCU上實(shí)現(xiàn)AIoT?
2021-12-20 12:18:25
物聯(lián)網(wǎng)設(shè)備越來越多地采用人工智能技術(shù)來創(chuàng)建智能“物聯(lián)網(wǎng)”(AIoT),這使很多應(yīng)用從中受益。同時(shí)也為MCU(微控制器)開辟了新的市場(chǎng),賦能越來越多的新應(yīng)用和新用例,以利用簡(jiǎn)單的 MCU搭配AI加速來促進(jìn)智能控制。這些AI加持的MCU融合了DSP計(jì)算和機(jī)器學(xué)習(xí)(ML)推理能力,適合關(guān)鍵字識(shí)別、傳感器融合、振動(dòng)分析和語(yǔ)音識(shí)別等多種應(yīng)用。更高性能的MCU還可以支持更復(fù)雜的視覺和成像應(yīng)用,例如人臉識(shí)別、指紋分析和自主機(jī)器人等。
本文圍繞AI技術(shù)、如何通過MCU實(shí)現(xiàn)AIoT以及邊緣AI等方面進(jìn)行了系統(tǒng)的分析。推薦給大家。
物聯(lián)網(wǎng)設(shè)備越來越多地采用人工智能技術(shù)來創(chuàng)建智能“物聯(lián)網(wǎng)”(AIoT),這使很多應(yīng)用從中受益。這些智能物聯(lián)網(wǎng)設(shè)備從數(shù)據(jù)中學(xué)習(xí),并在無需人工干預(yù)的情況下做出自主決策,從而使產(chǎn)品與其環(huán)境之間實(shí)現(xiàn)更合乎邏輯、更接近人類的交互。
AI和物聯(lián)網(wǎng)的結(jié)合為MCU(微控制器)開辟了新的市場(chǎng),賦能越來越多的新應(yīng)用和新用例,以利用簡(jiǎn)單的 MCU搭配AI加速來促進(jìn)智能控制。這些AI加持的MCU融合了DSP計(jì)算和機(jī)器學(xué)習(xí)(ML)推理能力,適合關(guān)鍵字識(shí)別、傳感器融合、振動(dòng)分析和語(yǔ)音識(shí)別等多種應(yīng)用。更高性能的MCU還可以支持更復(fù)雜的視覺和成像應(yīng)用,例如人臉識(shí)別、指紋分析和自主機(jī)器人等。
以下是為物聯(lián)網(wǎng)設(shè)備帶來AI功能的部分使能技術(shù):
-
機(jī)器學(xué)習(xí) (ML):機(jī)器學(xué)習(xí)算法根據(jù)代表性數(shù)據(jù)構(gòu)建模型,使設(shè)備能夠在無需人工干預(yù)的情況下自動(dòng)識(shí)別模式。ML供應(yīng)商提供算法、API 和工具以構(gòu)建訓(xùn)練模型,然后將模型植入到嵌入式系統(tǒng)中。輸入新的數(shù)據(jù)后,這些嵌入式系統(tǒng)就可以利用預(yù)先訓(xùn)練的模型進(jìn)行推理或預(yù)測(cè),這類應(yīng)用示例包括傳感器融合、關(guān)鍵字識(shí)別、預(yù)測(cè)性維護(hù)和分類等。
-
深度學(xué)習(xí)(DL):深度學(xué)習(xí)是機(jī)器學(xué)習(xí)的一種,它使用多層神經(jīng)網(wǎng)絡(luò)從復(fù)雜的輸入數(shù)據(jù)中逐步提取更高級(jí)別的特征和模式,從而訓(xùn)練系統(tǒng)。深度學(xué)習(xí)可以適應(yīng)非常龐大、多樣化和復(fù)雜的輸入數(shù)據(jù),并讓系統(tǒng)不斷迭代學(xué)習(xí),逐步改善輸出結(jié)果。其應(yīng)用示例包括圖像處理、客服機(jī)器人和人臉識(shí)別等。
-
自然語(yǔ)言處理 (NLP):NLP是人工智能的一個(gè)分支,可以實(shí)現(xiàn)系統(tǒng)與人類之間用自然語(yǔ)言進(jìn)行交互。NLP幫助系統(tǒng)理解和解釋人類語(yǔ)言(文本或語(yǔ)音),并基于此做出決策。其應(yīng)用示例包括語(yǔ)音識(shí)別系統(tǒng)、機(jī)器翻譯和預(yù)測(cè)性打字等。
-
計(jì)算機(jī)視覺:機(jī)器/計(jì)算機(jī)視覺是人工智能的一個(gè)領(lǐng)域,它訓(xùn)練機(jī)器收集、解釋并理解圖像數(shù)據(jù),并根據(jù)這些數(shù)據(jù)采取行動(dòng)。機(jī)器通過攝像頭收集數(shù)字圖像/視頻,使用深度學(xué)習(xí)模型和圖像分析工具準(zhǔn)確識(shí)別和分類對(duì)象,并根據(jù)它們所“看到”的采取相應(yīng)的行動(dòng)。其應(yīng)用示例包括制造裝配線上的故障檢測(cè)、醫(yī)療診斷、零售店的人臉識(shí)別和無人駕駛汽車測(cè)試等。
02 通過MCU實(shí)現(xiàn)AIoT
過去,AI屬于MPU和GPU的應(yīng)用范疇,它們擁有強(qiáng)大的CPU內(nèi)核、大內(nèi)存資源和進(jìn)行AI分析的云連接。但近年來,隨著邊緣智能程度的不斷提高,我們開始看到MCU被用于嵌入式AIoT應(yīng)用中。向邊緣轉(zhuǎn)移是基于延遲和成本的考慮,同時(shí)還可以讓計(jì)算處理更接近數(shù)據(jù)源?;贛CU的物聯(lián)網(wǎng)設(shè)備具有AI功能可以實(shí)現(xiàn)實(shí)時(shí)決策和更快的事件響應(yīng),而且還有更多其它優(yōu)勢(shì),諸如更低的帶寬要求、更低的功耗、更低的延遲、更低的成本和更高的安全性。有了更高計(jì)算能力的新型MCU加持,再加上更適合資源受限MCU的神經(jīng)網(wǎng)絡(luò) (NN) 框架,AIoT得以實(shí)現(xiàn)。
神經(jīng)網(wǎng)絡(luò)是很多節(jié)點(diǎn)的集合,這些節(jié)點(diǎn)按層排列。每一層都接收來自前一層的輸入,并根據(jù)輸入的權(quán)重和偏置總和進(jìn)行計(jì)算,以生成輸出。輸出沿其所有傳出連接傳遞到下一層。在訓(xùn)練過程中,訓(xùn)練數(shù)據(jù)被饋入網(wǎng)絡(luò)的第一層或輸入層,每一層的輸出再傳遞到下一層。最后一層或輸出層生成模型的預(yù)測(cè),將其與已知的預(yù)期值進(jìn)行比較從而評(píng)估模型的誤差。訓(xùn)練的過程需要在每次迭代中使用稱為“反向傳播”的過程完善步驟,或調(diào)整網(wǎng)絡(luò)每一層的權(quán)重和偏置,直到網(wǎng)絡(luò)輸出與預(yù)期值密切相關(guān)。換句話說,網(wǎng)絡(luò)從輸入數(shù)據(jù)集中迭代“學(xué)習(xí)”,并逐步提高輸出預(yù)測(cè)的準(zhǔn)確性。
神經(jīng)網(wǎng)絡(luò)的訓(xùn)練需要極高的計(jì)算性能和內(nèi)存,通常在云端進(jìn)行。訓(xùn)練之后,這個(gè)預(yù)訓(xùn)練的神經(jīng)網(wǎng)絡(luò)(NN)模型被嵌入到MCU中,即可作為推理引擎對(duì)新傳入數(shù)據(jù)進(jìn)行處理。
圖1: 神經(jīng)網(wǎng)絡(luò)的訓(xùn)練與推理
這種推理生成所需要的計(jì)算性能比訓(xùn)練模型要低很多,在MCU上即可實(shí)現(xiàn)。這種預(yù)訓(xùn)練的神經(jīng)網(wǎng)絡(luò)模型權(quán)重是固定的,可以保存在閃存中,從而減少所需的SRAM數(shù)量,使其適用于更多資源受限的MCU。
03 如何在MCU上實(shí)現(xiàn)AIoT
MCU上的AIoT實(shí)現(xiàn)包含多個(gè)步驟。最常見的實(shí)現(xiàn)方法是使用現(xiàn)有的神經(jīng)網(wǎng)絡(luò) (NN) 框架模型之一,例如Caffe或Tensorflow Lite,它們適用于基于MCU的終端設(shè)備解決方案。用于機(jī)器學(xué)習(xí)的NN模型訓(xùn)練可由AI專業(yè)人員使用 AI供應(yīng)商提供的工具在云端完成。NN模型優(yōu)化和MCU集成可以使用AI供應(yīng)商和MCU制造商提供的工具進(jìn)行。推理則在MCU上采用預(yù)訓(xùn)練的NN模型完成。
上述過程的第一步可以完全離線完成,涉及從終端設(shè)備或應(yīng)用捕獲大量數(shù)據(jù),并用于訓(xùn)練NN模型。模型的拓?fù)浣Y(jié)構(gòu)由AI開發(fā)人員定義,以充分利用現(xiàn)有數(shù)據(jù)并提供應(yīng)用要求的輸出。NN模型的訓(xùn)練是通過將數(shù)據(jù)集迭代傳遞給模型來完成的,目的是不斷最小化模型輸出的誤差。NN框架提供的工具可以幫助完成這個(gè)過程。
在第二步中,針對(duì)特定功能(如關(guān)鍵字識(shí)別或語(yǔ)音識(shí)別)進(jìn)行了優(yōu)化的預(yù)訓(xùn)練模型被轉(zhuǎn)換為適應(yīng)MCU的格式。在這個(gè)過程中,首先利用AI轉(zhuǎn)換器工具將模型轉(zhuǎn)換為flat buffer文件,也可以選擇通過量化器來轉(zhuǎn)換,以減小尺寸并針對(duì)MCU優(yōu)化。然后,將該flat buffer文件轉(zhuǎn)換為C代碼,并作為運(yùn)行時(shí)可執(zhí)行文件傳輸給目標(biāo)MCU。
配備了預(yù)訓(xùn)練嵌入式AI模型的MCU現(xiàn)在就可以部署在終端設(shè)備中了。當(dāng)新數(shù)據(jù)導(dǎo)入時(shí),它在模型中運(yùn)行,并根據(jù)訓(xùn)練生成推理。當(dāng)新的數(shù)據(jù)類別出現(xiàn)時(shí),NN模型可以被發(fā)送回云端重新進(jìn)行訓(xùn)練,然后可以通過OTA(空中更新)固件升級(jí)將重新訓(xùn)練后的新模型編入MCU。
構(gòu)建基于MCU的AI解決方案有兩種不同的方式。為便于討論,本文我們假設(shè)目標(biāo)MCU采用Arm Cortex-M內(nèi)核。
圖2:通過離線預(yù)訓(xùn)練模型在MCU上實(shí)現(xiàn)AI。
在第一種方法中,轉(zhuǎn)換后的NN模型在Cortex-M CPU內(nèi)核上執(zhí)行,并通過CMSIS-NN庫(kù)加速。這是一種簡(jiǎn)單的配置,無需任何額外的硬件加速,適用于較簡(jiǎn)單的AI應(yīng)用,例如關(guān)鍵字識(shí)別、振動(dòng)分析和傳感器集合等。
另一種更復(fù)雜和更高性能的選擇則需要在MCU上配置NN加速器或微神經(jīng)處理單元(u-NPU)硬件。這些u-NPU 可在資源受限的IoT終端設(shè)備中加速機(jī)器學(xué)習(xí),并且可能還支持壓縮以降低模型的功耗和大小。所支持的運(yùn)算可以完全執(zhí)行大多數(shù)常見的NN網(wǎng)絡(luò),以用于音頻處理、語(yǔ)音識(shí)別、圖像分類和對(duì)象檢測(cè)。u-NPU不支持的網(wǎng)絡(luò)可以回退到主CPU內(nèi)核,并由CMSIS-NN庫(kù)加速。在這種方法中,NN模型是在uNPU上執(zhí)行的。
在配置了MCU的設(shè)備中實(shí)現(xiàn)AI不只有這兩種方法。隨著MCU的性能不斷推向更高的水平,逐漸接近MPU的預(yù)期水準(zhǔn),我們將會(huì)看到完全的AI功能直接構(gòu)建在MCU上,而且具有輕量級(jí)的學(xué)習(xí)算法和推理功能。
在資源受限的MCU上實(shí)現(xiàn)AI將在未來呈指數(shù)級(jí)增長(zhǎng)。隨著MCU性能的不斷提升,MCU和MPU之間的界限越來越模糊,同時(shí)出現(xiàn)越來越多適用于資源受限設(shè)備的“瘦”神經(jīng)網(wǎng)絡(luò)模型,新的應(yīng)用和用例將不斷浮現(xiàn)。
未來,隨著MCU性能的提高,我們將會(huì)看到除推理之外的輕量級(jí)學(xué)習(xí)算法直接在MCU上實(shí)現(xiàn)。這將為MCU制造商開辟新的市場(chǎng)與應(yīng)用,并將成為其重要的投資領(lǐng)域。
0
深圳市嘉鴻時(shí)代科技有限公司 粵ICP備16109508號(hào)
電話:0755-26727961 / 26727962 / 26727968 地址:深圳市南山區(qū)科技南十路6號(hào)航天科技創(chuàng)新研究院大廈B507-508室