人工智能(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)重要,,特別是在連接有限或無(wú)連接的環(huán)境中。
TinyML是指在小型,、低功耗設(shè)備上應(yīng)用機(jī)器學(xué)習(xí)模型,,尤其是在微控制器(MCU)平臺(tái)上,這些MCU經(jīng)過(guò)優(yōu)化,,可以在設(shè)備有限的資源體系內(nèi)運(yùn)行,。這使得邊緣設(shè)備能夠?qū)崿F(xiàn)智能決策,支持實(shí)時(shí)處理并減少延遲,。量化(Quantization)和剪枝(Pruning)等技術(shù)用于減小模型大小并提高推理速度,。量化通過(guò)降低模型權(quán)重的精度,顯著減少內(nèi)存使用而幾乎不影響準(zhǔn)確性,;剪枝則通過(guò)去除不太重要的神經(jīng)元,,進(jìn)一步減小模型規(guī)模并提升延遲性能。這些方法對(duì)于在資源有限的設(shè)備上部署ML模型至關(guān)重要,。
PyTorch和TensorFlow Lite都是實(shí)現(xiàn)機(jī)器學(xué)習(xí)模型的主流框架,。PyTorch是一個(gè)開(kāi)源機(jī)器學(xué)習(xí)庫(kù),,被廣泛用于人工智能應(yīng)用的開(kāi)發(fā),包括可以部署在微控制器上的應(yīng)用程序,。PyTorch提供了用于機(jī)器學(xué)習(xí)的工具和庫(kù),,包括計(jì)算機(jī)視覺(jué)和自然語(yǔ)言處理,可用于低功耗和小尺寸設(shè)備,。
TensorFlow Lite for Microcontroller(TFLM)能夠在非常受限的MCU類設(shè)備上運(yùn)行具有Flatbuffer轉(zhuǎn)換功能的TF Lite模型,。這減少了模型的大小,并優(yōu)化了它在MCU上的推理,。
另一個(gè)重要的工具是來(lái)自ARM的CMSIS-NN庫(kù),,它為Cortex-M處理器提供了優(yōu)化的神經(jīng)網(wǎng)絡(luò)內(nèi)核來(lái)運(yùn)行TFLM模型。CMSIS-NN庫(kù)提高了性能并減少了內(nèi)存占用,,使其更容易在基于ARM的MCU上運(yùn)行ML模型,。
此外,一些MCU還配備了專用的AI/ML硬件加速器,,如Silicon Labs(芯科科技)的EFM32無(wú)線SoC和MCU,,可以顯著提高M(jìn)L模型的性能,使更復(fù)雜的應(yīng)用程序能夠在這些設(shè)備上更快,、更高效地運(yùn)行,。人工智能加速器擅長(zhǎng)并行化任務(wù),如矩陣乘法,、卷積和圖形處理,。通過(guò)利用多樣化的并行性,它們可以一次執(zhí)行大量的計(jì)算,。這使得人工智能工作負(fù)載的速度大大提高,,同時(shí)保持低功耗。這些加速器還增強(qiáng)了內(nèi)存訪問(wèn)模式,,減少了數(shù)據(jù)傳輸開(kāi)銷,,主CPU—CortexM可以進(jìn)入低功耗睡眠模式,以節(jié)省更多的能量或管理額外的任務(wù),。通過(guò)使數(shù)據(jù)更接近計(jì)算單元,,它們減少了等待時(shí)間。其結(jié)果是增強(qiáng)了性能,、降低了功耗和延遲,。
實(shí)際應(yīng)用
TinyML的實(shí)際應(yīng)用是多種多樣且有影響力的。一個(gè)值得注意的示例是音頻和視覺(jué)喚醒詞,,當(dāng)說(shuō)出特定的關(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è)來(lái)異常并在故障發(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à)值的見(jiàn)解,。在農(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)這樣需要長(zhǎng)時(shí)間電池壽命和實(shí)時(shí)數(shù)據(jù)處理的設(shè)備,都能夠極大地受益于這項(xiàng)技術(shù),。此外,,智能床傳感器可以在沒(méi)有直接接觸的情況下評(píng)估病人的呼吸模式,為遠(yuǎn)程觀察提供不間斷的健康數(shù)據(jù),。這一創(chuàng)新在管理老年人護(hù)理和慢性疾病方面特別有價(jià)值,,因?yàn)槌掷m(xù)監(jiān)測(cè)有助于及早發(fā)現(xiàn)潛在的健康問(wèn)題,。
啟動(dòng)開(kāi)發(fā)
要開(kāi)始構(gòu)建自己的TinyML應(yīng)用,,您需要了解TinyML的基礎(chǔ)知識(shí)并選擇合適的硬件。根據(jù)您的應(yīng)用,,您可能需要傳感器來(lái)收集數(shù)據(jù),,例如加速度計(jì)、麥克風(fēng)或攝像頭,。設(shè)置開(kāi)發(fā)環(huán)境包括安裝Simplicity Studio集成開(kāi)發(fā)環(huán)境(IDE),、SDK和TinyML所需的資源庫(kù)。
下一步是收集和準(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)練,。這可能包括過(guò)濾噪聲、對(duì)數(shù)值進(jìn)行歸一化處理以及將數(shù)據(jù)分割到窗口中,。為此,,芯科科技提供了數(shù)據(jù)采集和預(yù)處理工具。
數(shù)據(jù)采集工具則由合作伙伴SensiML提供:https://github.com/sensiml/sensiml_xG24_dual_audio_imu_capture
模型訓(xùn)練
模型選擇:根據(jù)應(yīng)用選擇合適的ML模型,。常用的模型包括決策樹(shù)(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ǔ)和快速地訪問(wèn),。這個(gè)過(guò)程對(duì)于在內(nèi)存和處理能力有限的微控制器上運(yùn)行機(jī)器學(xué)習(xí)模型至關(guān)重要。FlatBuffers支持直接訪問(wèn)模型而無(wú)需解壓,。一旦采用FlatBuffer格式,,該模型可以由微控制器執(zhí)行,使其能夠執(zhí)行推理任務(wù)。這種轉(zhuǎn)換減小了模型大小,,使其適用于內(nèi)存非常有限的設(shè)備,,并且可以快速訪問(wèn)和執(zhí)行模型,而無(wú)需進(jìn)行大量解析,。此外,,它還確保該模型可以在運(yùn)行速率低于1GHz、代碼空間有限(通常低于3MB),、SRAM有限(約256KB)的MCU上被無(wú)縫集成和執(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é)果,。
軟件工具鏈:新的軟件工具包旨在支持開(kāi)發(fā)人員使用一些最流行的工具套件(如TinyML和TensorFlow)快速構(gòu)建和部署人工智能和機(jī)器學(xué)習(xí)算法。AI/ML軟件幫助設(shè)計(jì)人員創(chuàng)建新的應(yīng)用程序,。除了原生支持TensorFlow來(lái)為高效推理提供優(yōu)化內(nèi)核之外,,芯科科技還與一些領(lǐng)先的AI/ML工具提供商(如SensiML和Edge Impulse)合作,以確保開(kāi)發(fā)人員擁有端到端的工具鏈來(lái)簡(jiǎn)化機(jī)器學(xué)習(xí)模型的開(kāi)發(fā),,這些模型針對(duì)無(wú)線應(yīng)用的嵌入式部署進(jìn)行了優(yōu)化,。通過(guò)將這一全新的AI/ML工具鏈與芯科科技的Simplicity Studio開(kāi)發(fā)平臺(tái)以及xG24、xG28和xG26系列SoC結(jié)合使用,,開(kāi)發(fā)人員可以創(chuàng)建能夠從各種互聯(lián)設(shè)備獲取信息的應(yīng)用,,這些設(shè)備都可以相互通信,從而做出智能的,、由機(jī)器學(xué)習(xí)驅(qū)動(dòng)的決策,。
芯科科技提供各種工具和資源來(lái)支持ML應(yīng)用,。以下是其中一些例子:
機(jī)器學(xué)習(xí)應(yīng)用:芯科科技提供集成化的硬件,、軟件和開(kāi)發(fā)工具,幫助客戶快速創(chuàng)建適用于工業(yè)和商業(yè)應(yīng)用場(chǎng)景的,、安全的智能設(shè)備,。開(kāi)發(fā)平臺(tái)支持嵌入式機(jī)器學(xué)習(xí)(TinyML)模型推理,由Tensorflow Lite for Microcontrollers(TFLM)框架支持,。該存儲(chǔ)庫(kù)包含一組利用ML的嵌入式應(yīng)用程序:https://github.com/SiliconLabs/machine_learning_applications
機(jī)器學(xué)習(xí)工具包(MLTK):這是一個(gè)帶有命令行實(shí)用程序和腳本的Python軟件包,,可支持基于芯科科技的嵌入式平臺(tái)開(kāi)發(fā)的機(jī)器學(xué)習(xí)模型。它包括從命令行界面或Python腳本執(zhí)行ML操作的各項(xiàng)功能,并可確定ML模型在嵌入式平臺(tái)上的執(zhí)行效率,,以及使用谷歌Tensorflow訓(xùn)練ML模型,。
參考數(shù)據(jù)集:MLTK附帶參考模型使用的數(shù)據(jù)集。這些數(shù)據(jù)集可以在Github上找到:
https://github.com/SiliconLabs/mltk/blob/master/docs/python_api/datasets/index.md
音頻特征生成器(Audio Feature Generator):芯科科技提供了與TensorFlow Lite模型一起使用的音頻特征生成器,。它根據(jù)sl_ml_audio_feature_generation_config.h中的配置去進(jìn)行前端的初始化來(lái)生成功能,,并以流模式來(lái)初始化和啟動(dòng)麥克風(fēng)。https://docs.silabs.com/machine-learning/latest/machine-learning-tensorflow-lite-api/ml-audio-feature-generation
MLPerf Tiny Benchmark:MLPerf Tiny Benchmark是由一家開(kāi)放工程聯(lián)盟MLCommons設(shè)計(jì)的性能評(píng)估套件,。它旨在衡量ML系統(tǒng)在推理方面的性能和能效,,將訓(xùn)練好的ML模型應(yīng)用于新數(shù)據(jù)。該基準(zhǔn)是專門(mé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í)別和視覺(jué)喚醒詞等應(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ǔ)音和音頻應(yīng)用中很常見(jiàn),。
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)盟提供了可簡(jiǎn)化綜合解決方案開(kāi)發(fā)的平臺(tái),,使初學(xué)者更容易接觸到邊緣的AI/ML,。
TinyML在MCU上的優(yōu)勢(shì):
·成本低-MCU價(jià)格合理
·綠色環(huán)保-能耗低
·易于集成-可輕松將MCU集成到現(xiàn)有環(huán)境中
·隱私與安全-在本地處理數(shù)據(jù),,無(wú)需聯(lián)網(wǎng)傳輸
·快速原型開(kāi)發(fā)-快速開(kāi)發(fā)概念驗(yàn)證解決方案
·自主可靠-微型設(shè)備在任何環(huán)境下都能穩(wěn)定運(yùn)行
·實(shí)時(shí)處理-將延遲降至最低
嵌入式開(kāi)發(fā)應(yīng)用流程
開(kāi)發(fā)具有機(jī)器學(xué)習(xí)功能的應(yīng)用需要兩個(gè)不同的工作流程:
·使用Simplicity Studio來(lái)創(chuàng)建無(wú)線應(yīng)用的嵌入式應(yīng)用開(kāi)發(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)該打開(kāi)或關(guān)閉,。然而,當(dāng)員工在辦公桌前打字時(shí),,由于動(dòng)作僅限于手和手指,,因?yàn)檫\(yùn)動(dòng)傳感器本身無(wú)法識(shí)別他們的存在,所以可能會(huì)出現(xiàn)自動(dòng)關(guān)燈而無(wú)法為員工可提供照明,。通過(guò)將音頻傳感器與運(yùn)動(dòng)探測(cè)器連接起來(lái),,額外的音頻數(shù)據(jù)(如打字的聲音)可以通過(guò)機(jī)器學(xué)習(xí)算法進(jìn)行處理,從而使照明系統(tǒng)能夠更明智地決定燈是應(yīng)該打開(kāi)還是關(guān)閉,。
預(yù)測(cè)性維護(hù):可使用芯科科技的EFR32 MCU來(lái)開(kāi)發(fā)一個(gè)預(yù)測(cè)性維護(hù)系統(tǒng),。這需要使用連接的傳感器來(lái)收集機(jī)器的振動(dòng)和溫度數(shù)據(jù),同時(shí)訓(xùn)練一個(gè)模型來(lái)根據(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è)模型來(lái)檢測(cè)數(shù)據(jù)中的異常。在MCU上部署該模型,,幫助用戶對(duì)健康情況提供實(shí)時(shí)分析了解,。
智能農(nóng)業(yè):使用芯科科技的MCU開(kāi)發(fā)智能灌溉系統(tǒng)。使用連接的傳感器收集土壤濕度和天氣數(shù)據(jù),。訓(xùn)練一個(gè)模型,,以便根據(jù)這些數(shù)據(jù)來(lái)優(yōu)化水的使用。將該模型部署在MCU上,,控制灌溉系統(tǒng),,提高作物產(chǎn)量。
結(jié)論
MCU不再局限于簡(jiǎn)單任務(wù),,而是正成為實(shí)現(xiàn)AI的強(qiáng)大平臺(tái),。通過(guò)探索面向AI優(yōu)化的MCU,我們可以為電池供電的智能設(shè)備開(kāi)辟新的潛在應(yīng)用,。無(wú)論是智能家居設(shè)備還是工業(yè)傳感器,,AI驅(qū)動(dòng)的MCU正在重塑嵌入式系統(tǒng)的未來(lái),。
更多精彩內(nèi)容歡迎點(diǎn)擊==>>電子技術(shù)應(yīng)用-AET<<