在低功耗MCU上實(shí)現(xiàn)人工智能和機(jī)器學(xué)習(xí)
人工智能(AI)和機(jī)器學(xué)習(xí)(ML)技術(shù)不僅正在快速發(fā)展,還逐漸被創(chuàng)新性地應(yīng)用于低功耗的微控制器(MCU)中,從而實(shí)現(xiàn)邊緣AI/ML解決方案。這些MCU是許多嵌入式系統(tǒng)不可或缺的一部分,憑借其成本效益、高能效以及可靠的性能,現(xiàn)在能夠支持AI/ML應(yīng)用。這種集成化在可穿戴電子產(chǎn)品、智能家居設(shè)備和工業(yè)自動(dòng)化等應(yīng)用領(lǐng)域中,從AI/ML功能中獲得的效益尤為顯著。具備AI優(yōu)化功能的MCU和TinyML的興起(專注于在小型、低功耗設(shè)備上運(yùn)行ML模型),體現(xiàn)了這一領(lǐng)域的進(jìn)步。TinyML對(duì)于直接在設(shè)備上實(shí)現(xiàn)智能決策、促進(jìn)實(shí)時(shí)處理和減少延遲至關(guān)重要,特別是在連接有限或無連接的環(huán)境中。
本文引用地址:http://www.ex-cimer.com/article/202502/467190.htmTinyML是指在小型、低功耗設(shè)備上應(yīng)用機(jī)器學(xué)習(xí)模型,尤其是在微控制器(MCU)平臺(tái)上,這些MCU經(jīng)過優(yōu)化,可以在設(shè)備有限的資源體系內(nèi)運(yùn)行。這使得邊緣設(shè)備能夠?qū)崿F(xiàn)智能決策,支持實(shí)時(shí)處理并減少延遲。量化(Quantization)和剪枝(Pruning)等技術(shù)用于減小模型大小并提高推理速度。量化通過降低模型權(quán)重的精度,顯著減少內(nèi)存使用而幾乎不影響準(zhǔn)確性;剪枝則通過去除不太重要的神經(jīng)元,進(jìn)一步減小模型規(guī)模并提升延遲性能。這些方法對(duì)于在資源有限的設(shè)備上部署ML模型至關(guān)重要。
PyTorch和TensorFlow Lite都是實(shí)現(xiàn)機(jī)器學(xué)習(xí)模型的主流框架。PyTorch是一個(gè)開源機(jī)器學(xué)習(xí)庫,被廣泛用于人工智能應(yīng)用的開發(fā),包括可以部署在微控制器上的應(yīng)用程序。PyTorch提供了用于機(jī)器學(xué)習(xí)的工具和庫,包括計(jì)算機(jī)視覺和自然語言處理,可用于低功耗和小尺寸設(shè)備。
TensorFlow Lite for Microcontroller(TFLM)能夠在非常受限的MCU類設(shè)備上運(yùn)行具有Flatbuffer轉(zhuǎn)換功能的TF Lite模型。這減少了模型的大小,并優(yōu)化了它在MCU上的推理。
另一個(gè)重要的工具是來自ARM的CMSIS-NN庫,它為Cortex-M處理器提供了優(yōu)化的神經(jīng)網(wǎng)絡(luò)內(nèi)核來運(yùn)行TFLM模型。CMSIS-NN庫提高了性能并減少了內(nèi)存占用,使其更容易在基于ARM的MCU上運(yùn)行ML模型。
此外,一些MCU還配備了專用的AI/ML硬件加速器,如Silicon Labs(芯科科技)的EFM32無線SoC和MCU,可以顯著提高M(jìn)L模型的性能,使更復(fù)雜的應(yīng)用程序能夠在這些設(shè)備上更快、更高效地運(yùn)行。人工智能加速器擅長并行化任務(wù),如矩陣乘法、卷積和圖形處理。通過利用多樣化的并行性,它們可以一次執(zhí)行大量的計(jì)算。這使得人工智能工作負(fù)載的速度大大提高,同時(shí)保持低功耗。這些加速器還增強(qiáng)了內(nèi)存訪問模式,減少了數(shù)據(jù)傳輸開銷,主CPU—CortexM可以進(jìn)入低功耗睡眠模式,以節(jié)省更多的能量或管理額外的任務(wù)。通過使數(shù)據(jù)更接近計(jì)算單元,它們減少了等待時(shí)間。其結(jié)果是增強(qiáng)了性能、降低了功耗和延遲。
實(shí)際應(yīng)用
TinyML的實(shí)際應(yīng)用是多種多樣且有影響力的。一個(gè)值得注意的示例是音頻和視覺喚醒詞,當(dāng)說出特定的關(guān)鍵字或在圖像中檢測(cè)到某人時(shí),設(shè)備會(huì)觸發(fā)動(dòng)作。這項(xiàng)技術(shù)被用于智能揚(yáng)聲器和安全攝像頭,支持它們?cè)谧R(shí)別到喚醒詞或檢測(cè)運(yùn)動(dòng)時(shí)激活。另一種應(yīng)用是工業(yè)環(huán)境中的預(yù)測(cè)性維護(hù)。工廠設(shè)備上的傳感器持續(xù)監(jiān)測(cè)振動(dòng)和溫度等參數(shù),可使用TinyML模型檢測(cè)來異常并在故障發(fā)生之前預(yù)測(cè)維護(hù)需求,這有助于減少停機(jī)時(shí)間和維護(hù)成本。
手勢(shì)和活動(dòng)識(shí)別是TinyML的另一種令人興奮的應(yīng)用。配備加速度計(jì)和陀螺儀的可穿戴設(shè)備可以監(jiān)測(cè)身體活動(dòng),如走路、跑步或特定手勢(shì)。這些設(shè)備使用TinyML模型實(shí)時(shí)分析傳感器數(shù)據(jù),為健身追蹤或醫(yī)療診斷提供有價(jià)值的見解。在農(nóng)業(yè)領(lǐng)域,TinyML被用于環(huán)境監(jiān)測(cè)。智能農(nóng)業(yè)系統(tǒng)分析土壤濕度和天氣條件,以優(yōu)化灌溉,提高作物產(chǎn)量和資源效率。
TinyML還增強(qiáng)了健康監(jiān)測(cè)功能。諸如連續(xù)血糖監(jiān)測(cè)儀(CGM)這樣需要長時(shí)間電池壽命和實(shí)時(shí)數(shù)據(jù)處理的設(shè)備,都能夠極大地受益于這項(xiàng)技術(shù)。此外,智能床傳感器可以在沒有直接接觸的情況下評(píng)估病人的呼吸模式,為遠(yuǎn)程觀察提供不間斷的健康數(shù)據(jù)。這一創(chuàng)新在管理老年人護(hù)理和慢性疾病方面特別有價(jià)值,因?yàn)槌掷m(xù)監(jiān)測(cè)有助于及早發(fā)現(xiàn)潛在的健康問題。
啟動(dòng)開發(fā)
要開始構(gòu)建自己的TinyML應(yīng)用,您需要了解TinyML的基礎(chǔ)知識(shí)并選擇合適的硬件。根據(jù)您的應(yīng)用,您可能需要傳感器來收集數(shù)據(jù),例如加速度計(jì)、麥克風(fēng)或攝像頭。設(shè)置開發(fā)環(huán)境包括安裝Simplicity Studio集成開發(fā)環(huán)境(IDE)、SDK和TinyML所需的資源庫。
下一步是收集和準(zhǔn)備與應(yīng)用相關(guān)的數(shù)據(jù)。例如,如果您正在構(gòu)建一個(gè)手勢(shì)識(shí)別系統(tǒng),您需要收集不同手勢(shì)的加速度計(jì)數(shù)據(jù)。收集數(shù)據(jù)后,您需要對(duì)其進(jìn)行預(yù)處理,使其適合訓(xùn)練您的模型。訓(xùn)練模型需要在功能強(qiáng)大的機(jī)器上使用高級(jí)框架,如TensorFlow或PyTorch。一旦訓(xùn)練完畢,模型需要使用量化和剪枝等技術(shù)進(jìn)行優(yōu)化。
在完成優(yōu)化后,即可將模型轉(zhuǎn)換為適合MCU的格式,如TensorFlow Lite格式。最后一步是將優(yōu)化后的模型部署到MCU,將其與應(yīng)用程序代碼集成,并對(duì)其進(jìn)行全面測(cè)試,以確保其滿足性能和精度要求?;趯?shí)際性能的不斷迭代和改進(jìn)對(duì)于完善TinyML應(yīng)用至關(guān)重要。
利用芯科科技的解決方案在微控制器上實(shí)現(xiàn)人工智能和機(jī)器學(xué)習(xí)
芯科科技提供了一系列解決方案,有助于在MCU上實(shí)現(xiàn)AI/ML。EFR32/EFM32(xG24、xG26、xG28)和SiWx917系列微控制器由于其低功耗和強(qiáng)大的性能而非常適合TinyML應(yīng)用。以下是在芯科科技MCU上實(shí)現(xiàn)AI/ML的詳細(xì)技術(shù)指南:
數(shù)據(jù)采集與預(yù)處理
數(shù)據(jù)采集:使用連接到MCU的傳感器采集原始數(shù)據(jù),例如加速度計(jì)、陀螺儀和溫度傳感器等傳感器都可用于各種應(yīng)用。
預(yù)處理:對(duì)數(shù)據(jù)進(jìn)行清理和預(yù)處理,使其適合訓(xùn)練。這可能包括過濾噪聲、對(duì)數(shù)值進(jìn)行歸一化處理以及將數(shù)據(jù)分割到窗口中。為此,芯科科技提供了數(shù)據(jù)采集和預(yù)處理工具。
模型訓(xùn)練
模型選擇:根據(jù)應(yīng)用選擇合適的ML模型。常用的模型包括決策樹(decision tree)和支持向量機(jī)(vector machine)。
訓(xùn)練:在高性能云服務(wù)器或帶有GPU的本地PC上使用TensorFlow訓(xùn)練模型。這包括將預(yù)處理數(shù)據(jù)輸入模型并調(diào)整參數(shù)以最小化誤差。
模型轉(zhuǎn)換:使用TensorFlow Lite轉(zhuǎn)換器將訓(xùn)練模型轉(zhuǎn)換為與TF Lite Micro兼容的格式。TensorFlow Lite for Microcontrollers (TFLM)中的FlatBuffer轉(zhuǎn)換包括將TensorFlow Lite模型轉(zhuǎn)換為FlatBuffer格式,這是一種緊湊的二進(jìn)制格式,可以高效地存儲(chǔ)和快速地訪問。這個(gè)過程對(duì)于在內(nèi)存和處理能力有限的微控制器上運(yùn)行機(jī)器學(xué)習(xí)模型至關(guān)重要。FlatBuffers支持直接訪問模型而無需解壓。一旦采用FlatBuffer格式,該模型可以由微控制器執(zhí)行,使其能夠執(zhí)行推理任務(wù)。這種轉(zhuǎn)換減小了模型大小,使其適用于內(nèi)存非常有限的設(shè)備,并且可以快速訪問和執(zhí)行模型,而無需進(jìn)行大量解析。此外,它還確保該模型可以在運(yùn)行速率低于1GHz、代碼空間有限(通常低于3MB)、SRAM有限(約256KB)的MCU上被無縫集成和執(zhí)行。
模型部署
與Simplicity SDK集成:使用芯科科技的Simplicity SDK將TF Lite Micro與MCU集成。
閃存模型(Flashing the Model):將轉(zhuǎn)換后的模型移植到MCU的Flash上。這可以使用Simplicity Studio完成,它為芯科科技MCU的編程提供了一個(gè)用戶友好的界面。
推理和優(yōu)化:應(yīng)用量化和剪枝等優(yōu)化技術(shù),以減小模型大小并提高性能。
運(yùn)行推理:一旦模型部署完成,它可以在MCU上運(yùn)行推理。這包括向模型中輸入新數(shù)據(jù)并獲得預(yù)測(cè)結(jié)果。
軟件工具鏈:新的軟件工具包旨在支持開發(fā)人員使用一些最流行的工具套件(如TinyML和TensorFlow)快速構(gòu)建和部署人工智能和機(jī)器學(xué)習(xí)算法。AI/ML軟件幫助設(shè)計(jì)人員創(chuàng)建新的應(yīng)用程序。除了原生支持TensorFlow來為高效推理提供優(yōu)化內(nèi)核之外,芯科科技還與一些領(lǐng)先的AI/ML工具提供商(如SensiML和Edge Impulse)合作,以確保開發(fā)人員擁有端到端的工具鏈來簡化機(jī)器學(xué)習(xí)模型的開發(fā),這些模型針對(duì)無線應(yīng)用的嵌入式部署進(jìn)行了優(yōu)化。通過將這一全新的AI/ML工具鏈與芯科科技的Simplicity Studio開發(fā)平臺(tái)以及xG24、xG28和xG26系列SoC結(jié)合使用,開發(fā)人員可以創(chuàng)建能夠從各種互聯(lián)設(shè)備獲取信息的應(yīng)用,這些設(shè)備都可以相互通信,從而做出智能的、由機(jī)器學(xué)習(xí)驅(qū)動(dòng)的決策。
芯科科技提供各種工具和資源來支持ML應(yīng)用。以下是其中一些例子:
機(jī)器學(xué)習(xí)應(yīng)用:芯科科技提供集成化的硬件、軟件和開發(fā)工具,幫助客戶快速創(chuàng)建適用于工業(yè)和商業(yè)應(yīng)用場(chǎng)景的、安全的智能設(shè)備。開發(fā)平臺(tái)支持嵌入式機(jī)器學(xué)習(xí)(TinyML)模型推理,由Tensorflow Lite for Microcontrollers(TFLM)框架支持。該存儲(chǔ)庫包含一組
機(jī)器學(xué)習(xí)工具包(MLTK):這是一個(gè)帶有命令行實(shí)用程序和腳本的Python軟件包,可支持基于芯科科技的嵌入式平臺(tái)開發(fā)的機(jī)器學(xué)習(xí)模型。它包括從命令行界面或Python腳本執(zhí)行ML操作的各項(xiàng)功能,并可確定ML模型在嵌入式平臺(tái)上的執(zhí)行效率,以及使用谷歌Tensorflow訓(xùn)練ML模型。
參考數(shù)據(jù)集:MLTK附帶參考模型使用的數(shù)據(jù)集。
音頻特征生成器(Audio Feature Generator):芯科科技提供了與TensorFlow Lite模型一起使用的音頻特征生成器。它根據(jù)sl_ml_audio_feature_generation_config.h中的配置去進(jìn)行前端的初始化來生成功能,并以流模式來初始化和啟動(dòng)麥克風(fēng)。
MLPerf Tiny Benchmark:MLPerf Tiny Benchmark是由一家開放工程聯(lián)盟MLCommons設(shè)計(jì)的性能評(píng)估套件。它旨在衡量ML系統(tǒng)在推理方面的性能和能效,將訓(xùn)練好的ML模型應(yīng)用于新數(shù)據(jù)。該基準(zhǔn)是專門為低功耗的最小設(shè)備量身定制的,通常用于深度嵌入式應(yīng)用,如物聯(lián)網(wǎng)(IoT)或智能傳感。
芯科科技參與了MLPerf Tiny基準(zhǔn)測(cè)試,提交了展示機(jī)器學(xué)習(xí)工具包(MLTK)功能的解決方案。該工具包包括TinyML基準(zhǔn)測(cè)試使用的幾個(gè)模型,可在GitHub上獲得,涵蓋異常檢測(cè)、圖像分類、關(guān)鍵字識(shí)別和視覺喚醒詞等應(yīng)用程序。
與以前的版本相比,使用MLPerf Tiny v1.0的結(jié)果顯示出了推理速度提高,以及代碼規(guī)模和內(nèi)存使用量的減少。例如,Plumerai的推理引擎表現(xiàn)出了顯著的增強(qiáng),包括支持時(shí)間序列神經(jīng)網(wǎng)絡(luò),如基于LSTM的循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN),這在運(yùn)動(dòng)傳感器、健康傳感器、語音和音頻應(yīng)用中很常見。
AI/ML合作伙伴
芯科科技與業(yè)界領(lǐng)先的供應(yīng)商合作,包括Edge Impulse、SensiML、NeutonAI和Eta Compute等AutoML工具鏈和SaaS云伙伴建立了合作關(guān)系。此外,諸如Sensory和MicroAI等解決方案提供商,以及包括Capgemini和Jabil在內(nèi)的設(shè)計(jì)合作伙伴都是該網(wǎng)絡(luò)的一部分。這些聯(lián)盟提供了可簡化綜合解決方案開發(fā)的平臺(tái),使初學(xué)者更容易接觸到邊緣的AI/ML。
TinyML在MCU上的優(yōu)勢(shì):
● 成本低-MCU價(jià)格合理
● 綠色環(huán)保-能耗低
● 易于集成-可輕松將MCU集成到現(xiàn)有環(huán)境中
● 隱私與安全-在本地處理數(shù)據(jù),無需聯(lián)網(wǎng)傳輸
● 快速原型開發(fā)-快速開發(fā)概念驗(yàn)證解決方案
● 自主可靠-微型設(shè)備在任何環(huán)境下都能穩(wěn)定運(yùn)行
● 實(shí)時(shí)處理-將延遲降至最低
嵌入式開發(fā)應(yīng)用流程
開發(fā)具有機(jī)器學(xué)習(xí)功能的應(yīng)用需要兩個(gè)不同的工作流程:
● 使用Simplicity Studio來創(chuàng)建無線應(yīng)用的嵌入式應(yīng)用開發(fā)工作流程。
● 創(chuàng)建將添加到嵌入式應(yīng)用的機(jī)器學(xué)習(xí)功能的機(jī)器學(xué)習(xí)工作流程。
目標(biāo)應(yīng)用
運(yùn)動(dòng)檢測(cè):在商業(yè)辦公大樓里,許多燈都是由運(yùn)動(dòng)探測(cè)器控制的,該探測(cè)器監(jiān)測(cè)占用情況,以確定燈是否應(yīng)該打開或關(guān)閉。然而,當(dāng)員工在辦公桌前打字時(shí),由于動(dòng)作僅限于手和手指,因?yàn)檫\(yùn)動(dòng)傳感器本身無法識(shí)別他們的存在,所以可能會(huì)出現(xiàn)自動(dòng)關(guān)燈而無法為員工可提供照明。通過將音頻傳感器與運(yùn)動(dòng)探測(cè)器連接起來,額外的音頻數(shù)據(jù)(如打字的聲音)可以通過機(jī)器學(xué)習(xí)算法進(jìn)行處理,從而使照明系統(tǒng)能夠更明智地決定燈是應(yīng)該打開還是關(guān)閉。
預(yù)測(cè)性維護(hù):可使用芯科科技的EFR32 MCU來開發(fā)一個(gè)預(yù)測(cè)性維護(hù)系統(tǒng)。這需要使用連接的傳感器來收集機(jī)器的振動(dòng)和溫度數(shù)據(jù),同時(shí)訓(xùn)練一個(gè)模型來根據(jù)這些數(shù)據(jù)預(yù)測(cè)潛在的故障,然后將該模型部署在MCU上,實(shí)現(xiàn)對(duì)機(jī)器的實(shí)時(shí)監(jiān)控和維護(hù)計(jì)劃。
健康監(jiān)測(cè):使用EFM32 MCU構(gòu)建可穿戴健康監(jiān)測(cè)設(shè)備。使用傳感器收集心率和體溫等生命體征的數(shù)據(jù)。訓(xùn)練一個(gè)模型來檢測(cè)數(shù)據(jù)中的異常。在MCU上部署該模型,幫助用戶對(duì)健康情況提供實(shí)時(shí)分析了解。
智能農(nóng)業(yè):使用芯科科技的MCU開發(fā)智能灌溉系統(tǒng)。使用連接的傳感器收集土壤濕度和天氣數(shù)據(jù)。訓(xùn)練一個(gè)模型,以便根據(jù)這些數(shù)據(jù)來優(yōu)化水的使用。將該模型部署在MCU上,控制灌溉系統(tǒng),提高作物產(chǎn)量。
結(jié)論
MCU不再局限于簡單任務(wù),而是正成為實(shí)現(xiàn)AI的強(qiáng)大平臺(tái)。通過探索面向AI優(yōu)化的MCU,我們可以為電池供電的智能設(shè)備開辟新的潛在應(yīng)用。無論是智能家居設(shè)備還是工業(yè)傳感器,AI驅(qū)動(dòng)的MCU正在重塑嵌入式系統(tǒng)的未來。
評(píng)論