一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用高級 MCU 實現(xiàn)加速機器學習應(yīng)用

張濤 ? 來源:ROSE1017 ? 作者:ROSE1017 ? 2022-07-19 11:25 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

How developers can use an advanced wireless microcontroller with an embedded matrix vector processor to speed performance and reduce power consumption in machine-learning inference for the IoT.

從歷史上看,人工智能 (AI) 是一種 GPU / CPU 甚至 DSP 依賴的技術(shù)。然而,最近人工智能正在通過集成到運行在較小微控制器(也稱為 MCU)上的受限應(yīng)用程序中來進入數(shù)據(jù)采集系統(tǒng)。這一趨勢主要由物聯(lián)網(wǎng) (IoT) 市場推動,Silicon Labs 是其中的主要參與者。

為了應(yīng)對這一新的物聯(lián)網(wǎng)趨勢,Silicon Labs 宣布推出一款可以執(zhí)行硬件加速 AI 操作的無線 MCU。為了實現(xiàn)這一點,該 MCU 設(shè)計為嵌入矩陣矢量處理器 (MVP),即 EFR32xG24。

在本文中,我將首先介紹一些 AI 基礎(chǔ)知識,重點介紹 MVP 的用例。最重要的是,如何使用 EFR32xG24 設(shè)計 AI IoT 應(yīng)用程序。

人工智能、機器學習和邊緣計算

人工智能是一個試圖模仿人類行為的系統(tǒng)。更具體地說,它是一種電氣和/或機械實體,可以模擬對輸入的響應(yīng),類似于人類會做的事情。盡管術(shù)語 AI 和機器學習 (ML) 經(jīng)?;Q使用,但它們代表了兩種不同的方法。AI 是一個更廣泛的概念,而 ML 是 AI 的一個子集。

使用機器學習,系統(tǒng)可以在重復(fù)使用所謂的模型后做出預(yù)測并改進(或訓(xùn)練)自身。模型是使用經(jīng)過訓(xùn)練的算法,最終將用于模擬決策。可以通過收集數(shù)據(jù)或使用現(xiàn)有數(shù)據(jù)集來訓(xùn)練該模型。當該系統(tǒng)將其“訓(xùn)練過的”模型應(yīng)用于新獲取的數(shù)據(jù)以做出決策時,我們將其稱為機器學習推理。

如前所述,推理需要通常由高端計算機處理的計算能力。但是,我們現(xiàn)在能夠在不需要連接到此類高端計算機的更多受限設(shè)備上運行推理;這稱為邊緣計算。

通過在 MCU 上運行推理,可以考慮執(zhí)行邊緣計算。邊緣計算涉及在距離獲取數(shù)據(jù)的最近點運行數(shù)據(jù)處理算法。邊緣設(shè)備的示例通常是簡單且受限的設(shè)備,例如傳感器或基本執(zhí)行器(燈泡、恒溫器、門傳感器、電表等)。這些設(shè)備通常在低功耗 ARM Cortex-M 類 MCU 上運行:

點擊查看完整大小的圖片
poYBAGLVd7KAfaCkAAFFRVuWsi8018.pngpoYBAGLVd7KAfaCkAAFFRVuWsi8018.png

執(zhí)行邊緣計算有很多好處。可以說,最有價值的好處是使用邊緣計算的系統(tǒng)不依賴于外部實體。設(shè)備可以在本地“做出自己的決定”。

在本地進行決策具有以下實際好處:

  • 提供更低的延遲
    原始數(shù)據(jù)不需要傳輸?shù)皆贫诉M行處理,這意味著決策可以實時出現(xiàn)在設(shè)備上。
  • 減少所需的互聯(lián)網(wǎng)帶寬
    傳感器會產(chǎn)生大量實時數(shù)據(jù),這反過來又會產(chǎn)生對帶寬的大量需求,即使沒有什么可“報告”,從而使無線頻譜飽和并增加運行成本。
  • 降低功耗
    與傳輸數(shù)據(jù)相比,本地分析數(shù)據(jù)(使用 AI)所需的功率要少得多
  • 符合隱私和安全要求
    通過在本地做出決策,無需將詳細的原始數(shù)據(jù)發(fā)送到云端,只需將推理結(jié)果和元數(shù)據(jù)發(fā)送到云端,從而消除了數(shù)據(jù)隱私泄露的可能性。
  • 降低成本
    在本地分析傳感器數(shù)據(jù)可以節(jié)省使用云基礎(chǔ)設(shè)施和流量的費用。
  • 提高彈性
    如果與云的連接中斷,邊緣節(jié)點仍可以自主運行。

Silicon Labs 用于邊緣計算的 EFR32xG24

EFR32xG24 是一款安全無線 MCU,支持多種 2.4 GHz IoT 協(xié)議(藍牙低功耗、Matter、Zigbee 和 OpenThread 協(xié)議)。它還包括 Secure Vault,這是一種改進的安全功能集,適用于所有 Silicon Labs Series 2 平臺。

但是,除了改進了該 MCU 獨有的安全性和連接性之外,還有一個用于機器學習模型推理的硬件加速器(以及其他加速器),稱為矩陣矢量處理器 (MVP)。

與沒有硬件加速的 ARM Cortex-M 相比,MVP 提供了更高效地運行機器學習推理的能力,功耗降低了 6 倍,速度提高了 2-4 倍(實際改進取決于模型和應(yīng)用程序)。

點擊查看完整大小的圖片
pYYBAGLVd7qAA67FAAMgba_D15E927.pngpYYBAGLVd7qAA67FAAMgba_D15E927.png

MVP 旨在通過處理密集的浮點運算來卸載 CPU。它專為復(fù)雜的矩陣浮點乘法和加法而設(shè)計。

MVP 由專用硬件算術(shù)邏輯單元 (ALU)、加載/存儲單元 (LSU) 和定序器組成。

點擊查看完整大小的圖片
poYBAGLVd8OAbRdwAAEFmvV8160149.pngpoYBAGLVd8OAbRdwAAEFmvV8160149.png

因此,MVP 有助于加速各種應(yīng)用程序的處理并節(jié)省功耗,例如到達角 (AoA)、MUSIC 算法計算、機器學習(本征或基本線性代數(shù)子程序 BLAS)等。

由于該設(shè)備是一個簡單的 MCU,它無法解決 AI/ML 可以涵蓋的所有用例。它旨在解決下面列出的以下四個類別以及實際應(yīng)用:

  • 傳感器信號處理
    • 預(yù)測性維護
    • 生物信號分析
    • 冷鏈監(jiān)控
    • 加速度計用例
  • 音頻模式匹配
    • 玻璃破碎檢測
    • 鏡頭檢測
  • 語音命令
    • 智能家電的文字命令集
    • 喚醒詞檢測
  • 低分辨率視覺
    • 存在檢測
    • 數(shù)數(shù)
    • 指紋

為了幫助解決這些問題,Silicon Labs 提供了基于稱為 TensorFlow 的 AI/ML 框架的專用示例應(yīng)用程序。

TensorFlow 是來自 Google 的用于機器學習的端到端開源平臺。它擁有一個由工具、庫和社區(qū)資源組成的全面、靈活的生態(tài)系統(tǒng),使研究人員能夠推動 ML 的最新技術(shù),開發(fā)人員可以輕松構(gòu)建和部署 ML 驅(qū)動的應(yīng)用程序。

Tensor Flow 項目還針對嵌入式硬件變體進行了優(yōu)化,稱為 TensorFlow Lite for Microcontrollers (TFLM)。這是一個開源項目,其中大部分代碼由社區(qū)工程師貢獻,包括 Silicon Labs 和其他芯片供應(yīng)商。目前,這是與 Silicon Labs Gecko SDK 軟件套件一起交付的用于創(chuàng)建 AI/ML 應(yīng)用程序的唯一框架。

Silicon Labs 提供的 AI/ML 示例有:

  • Zigbee 3.0 帶語音激活的電燈開關(guān)
  • 張量流魔棒
  • 聲控 LED
  • 張量流 Hello world
  • 張量流微演講

要開始開發(fā)基于其中任何一個的應(yīng)用程序,您可以有很少的經(jīng)驗,或者您可以成為專家。Silicon Labs 提供多種機器學習開發(fā)工具供您選擇,具體取決于您的機器學習專業(yè)水平。

對于第一次 ML 開發(fā)人員,您可以從我們的一個示例開始,或者嘗試我們的第 3 方合作伙伴之一。我們的第 3 方 ML 合作伙伴通過功能豐富且易于使用的 GUI 界面支持完整的端到端工作流程,以便為我們的芯片構(gòu)建最佳機器學習模型。

對于希望直接使用 Keras/TensorFlow 平臺的 ML 專家,Silicon Labs 提供了一個自助式、自助式的參考包,將模型開發(fā)工作流程組織成一個專為為 Silicon Labs 芯片構(gòu)建 ML 模型而定制的工作流程。

點擊查看完整大小的圖片
pYYBAGLVd8iAU7tnAAOo0258eqE760.pngpYYBAGLVd8iAU7tnAAOo0258eqE760.png

開發(fā)支持 ML 的應(yīng)用示例:采用 EFR32xG24 的語音控制 Zigbee 開關(guān)

要創(chuàng)建支持 ML 的應(yīng)用程序,需要兩個主要步驟。第一步是創(chuàng)建一個無線應(yīng)用程序,您可以使用 Zigbee、BLE、Matter 或任何基于 2.4 GHz 協(xié)議的專有應(yīng)用程序來完成。它甚至可以是未連接的應(yīng)用程序。第二步是構(gòu)建 ML 模型以將其與應(yīng)用程序集成。

如上所述,Silicon Labs 提供了多種選項來為其 MCU 創(chuàng)建 ML 應(yīng)用程序。此處選擇的方法是使用具有預(yù)定義模型的現(xiàn)有示例應(yīng)用程序。在這個例子中,模型被訓(xùn)練來檢測兩個語音命令:“on”和“off”。

EFR32xG24 應(yīng)用程序入門

poYBAGLVd86AG9UtAADZ1ohpNPs709.pngpoYBAGLVd86AG9UtAADZ1ohpNPs709.png

要開始使用,請獲取 EFR32MG24 開發(fā)人員套件 BRD2601A(左)。

該開發(fā)套件是一個緊湊型電路板,嵌入了多個傳感器(IMU、溫度、相對濕度等)、LED 和 Stereo I 2 S 麥克風。

該項目將使用 I 2 S 麥克風。

這些設(shè)備可能不像 GPU 那樣稀有,但如果您沒有機會獲得這些套件之一,您還可以使用基于系列 1 的舊開發(fā)套件,稱為“Thunderboard Sense 2”參考。SLTB004A(右)。

但是,此 MCU 沒有 MVP,將使用主內(nèi)核執(zhí)行所有推理,無需加速。

poYBAGLVd9OAR50MAACz8CTkmUQ776.pngpoYBAGLVd9OAR50MAACz8CTkmUQ776.png

接下來,您需要 Silicon Labs 的 IDE Simplicity Studio 來創(chuàng)建 ML 項目。它提供了一種下載 Silicon Labs 的 Gecko SDK 軟件套件的簡單方法,該套件提供了應(yīng)用程序所需的庫和驅(qū)動程序,如下所示。

  • 無線網(wǎng)絡(luò)堆棧(本例中為 Zigbee)
  • 硬件驅(qū)動程序(用于 I2S 麥克風以及 MVP)
  • TensorFlow Lite 框架
  • 一個已經(jīng)訓(xùn)練過的用于檢測命令詞的模型

點擊查看完整大小的圖片
pYYBAGLVd9uAO2wYAAO8PCS8nKw902.pngpYYBAGLVd9uAO2wYAAO8PCS8nKw902.png

IDE 還提供工具來進一步分析您的應(yīng)用程序功耗或網(wǎng)絡(luò)操作。

創(chuàng)建啟用 MVP 的 Zigbee 3.0 Switch 項目

Silicon Labs 提供了一個即用型示例應(yīng)用程序 Z3SwitchWithVoice,您將創(chuàng)建和構(gòu)建該應(yīng)用程序。該應(yīng)用程序已經(jīng)附帶了一個 ML 模型,因此您無需創(chuàng)建一個。

創(chuàng)建后,請注意 Simplicity Studio 項目由組件帶來的源文件組成,這些組件是 GUI 實體,通過簡化復(fù)雜軟件的集成,可以輕松使用 Silicon Labs 的 MCU。在這種情況下,您可以看到默認安裝了 MVP 支持和 Zigbee 網(wǎng)絡(luò)堆棧。

點擊查看完整大小的圖片
pYYBAGLVd-OAe3YBAAMfnvXQTIw919.pngpYYBAGLVd-OAe3YBAAMfnvXQTIw919.png

主要應(yīng)用程序代碼位于 app.c 源文件中。

在網(wǎng)絡(luò)方面,應(yīng)用程序可以通過一個簡單的按鈕與任何現(xiàn)有的 Zigbee 3.0 網(wǎng)絡(luò)配對,也稱為“網(wǎng)絡(luò)轉(zhuǎn)向”。聯(lián)網(wǎng)后,MCU 將尋找兼容且可配對的照明設(shè)備,也稱為“綁定”。

當應(yīng)用程序的網(wǎng)絡(luò)部分啟動并運行時,MCU 將定期輪詢麥克風數(shù)據(jù)樣本并在其上運行推理。此代碼位于keyword_detection.c 中。




  ()
{
 
  found_command_index = 0;
 分數(shù) = 0;
  is_new_command =  ;
  current_time_stamp;

 
 current_time_stamp = sl_sleeptimer_tick_to_ms(sl_sleeptimer_get_tick_count());

 TfLiteStatus process_status = command_recognizer->ProcessLatestResults(
 sl_tflite_micro_get_output_tensor(), current_time_stamp, &found_command_index, &score, &is_new_command);

  (process_status != ) {
  SL_STATUS_FAIL;
 }

  (is_new_command) {
  (found_command_index == 0 || found_command_index == 1) {
 printf(  , kCategoryLabels[found_command_index],
 分數(shù),current_time_stamp);
 檢測到的關(guān)鍵字(found_command_index);
 }
 }

 SL_STATUS_OK;
}

檢測到關(guān)鍵字后,app.c 中的處理程序?qū)l(fā)送相應(yīng)的 Zigbee 命令:

  
{
 狀態(tài);

 (emberAfNetworkState()==){
 emberAfGetCommandApsFrame()->  = SWITCH_ENDPOINT;

  (detected_keyword_index == 0) {
 emberAfFillCommandOnOffClusterOn();
 }   (detected_keyword_index == 1) {
 emberAfFillCommandOnOffClusterOff();
 }

 狀態(tài) = emberAfSendCommandUnicastToBindings();
 sl_zigbee_app_debug_print(  ,  , status);
 }
}

此時,您已在無線 MCU 上運行硬件加速推理以進行邊緣計算。

自定義 TensorFlow 模型以使用不同的命令詞

如前所述,實際模型已經(jīng)集成到該應(yīng)用程序中,并且沒有進一步修改。但是,如果您自己集成模型,則可以通過以下步驟進行:

  1. 收集和標記數(shù)據(jù)
  2. 設(shè)計和構(gòu)建模型
  3. 評估和驗證模型
  4. 為嵌入式設(shè)備轉(zhuǎn)換模型

無論您對機器學習多么熟悉,都必須遵循這些步驟。不同之處在于如何構(gòu)建模型,如下所示:

  1. 如果您是 ML 的初學者,Silicon Labs 建議使用我們易于使用的端到端第三方合作伙伴平臺之一:Edge Impulse 或 SensiML 來構(gòu)建您的模型。
  2. 如果您是 Keras/TensorFlow 方面的專家并且不想使用第三方工具,您可以使用機器學習工具包 (MLTK),它是一個自助式、自助式的 Python 包。Silicon Labs 圍繞音頻用例創(chuàng)建了這個參考包,可以擴展、修改或以其他方式挑選專家認為有吸引力的部分。該包將在 GitHub 上提供,附帶文檔。您也可以直接導(dǎo)入一個 .tflite 文件,該文件在 TensorFlow lite 的嵌入式版本上運行,用于為 EFR32 產(chǎn)品線進行微編譯。您必須確保數(shù)據(jù)上的特征提取對于訓(xùn)練模型與在目標芯片上運行推理完全相同。

在 Simplicity Studio 中,后者是最簡單的。要在 Simplicity Studio 中更改模型,請將 .tflite 模型文件復(fù)制到項目的 config/tflite 文件夾中。項目配置器提供了一個工具,可以自動將 .tflite 文件轉(zhuǎn)換為 sl_ml_model 源文件和頭文件。此工具的完整文檔可在Flatbuffer Conversion獲得。

[注意:所有圖片和代碼均由 Silicon Labs 提供。]

審核編輯 黃昊宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    17981

    瀏覽量

    366852
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    FPGA在機器學習中的具體應(yīng)用

    隨著機器學習和人工智能技術(shù)的迅猛發(fā)展,傳統(tǒng)的中央處理單元(CPU)和圖形處理單元(GPU)已經(jīng)無法滿足高效處理大規(guī)模數(shù)據(jù)和復(fù)雜模型的需求。FPGA(現(xiàn)場可編程門陣列)作為一種靈活且高效的硬件加速平臺
    的頭像 發(fā)表于 07-16 15:34 ?309次閱讀

    【「# ROS 2智能機器人開發(fā)實踐」閱讀體驗】視覺實現(xiàn)的基礎(chǔ)算法的應(yīng)用

    視覺巡線,展示了如何從數(shù)據(jù)采集、模型訓(xùn)練到機器人部署的完整流程。 值得注意的是,深度學習模型的實時性對機器人計算資源提出了較高要求,優(yōu)化模型(如TensorRT加速)是實際部署的關(guān)鍵。
    發(fā)表于 05-03 19:41

    18個常用的強化學習算法整理:從基礎(chǔ)方法到高級模型的理論技術(shù)與代碼實現(xiàn)

    本來轉(zhuǎn)自:DeepHubIMBA本文系統(tǒng)講解從基本強化學習方法到高級技術(shù)(如PPO、A3C、PlaNet等)的實現(xiàn)原理與編碼過程,旨在通過理論結(jié)合代碼的方式,構(gòu)建對強化學習算法的全面理
    的頭像 發(fā)表于 04-23 13:22 ?411次閱讀
    18個常用的強化<b class='flag-5'>學習</b>算法整理:從基礎(chǔ)方法到<b class='flag-5'>高級</b>模型的理論技術(shù)與代碼<b class='flag-5'>實現(xiàn)</b>

    傳統(tǒng)機器學習方法和應(yīng)用指導(dǎo)

    在上一篇文章中,我們介紹了機器學習的關(guān)鍵概念術(shù)語。在本文中,我們會介紹傳統(tǒng)機器學習的基礎(chǔ)知識和多種算法特征,供各位老師選擇。 01 傳統(tǒng)機器
    的頭像 發(fā)表于 12-30 09:16 ?1186次閱讀
    傳統(tǒng)<b class='flag-5'>機器</b><b class='flag-5'>學習</b>方法和應(yīng)用指導(dǎo)

    如何選擇云原生機器學習平臺

    當今,云原生機器學習平臺因其彈性擴展、高效部署、低成本運營等優(yōu)勢,逐漸成為企業(yè)構(gòu)建和部署機器學習應(yīng)用的首選。然而,市場上的云原生機器
    的頭像 發(fā)表于 12-25 11:54 ?456次閱讀

    如何在低功耗MCU實現(xiàn)人工智能和機器學習

    人工智能 (AI) 和機器學習 (ML) 的技術(shù)不僅正在快速發(fā)展,還逐漸被創(chuàng)新性地應(yīng)用于低功耗的微控制器 (MCU) 中,從而實現(xiàn)邊緣AI/ML的解決方案。
    的頭像 發(fā)表于 12-17 16:06 ?868次閱讀

    什么是機器學習?通過機器學習方法能解決哪些問題?

    來源:Master編程樹“機器學習”最初的研究動機是讓計算機系統(tǒng)具有人的學習能力以便實現(xiàn)人工智能。因為沒有學習能力的系統(tǒng)很難被認為是具有智能
    的頭像 發(fā)表于 11-16 01:07 ?965次閱讀
    什么是<b class='flag-5'>機器</b><b class='flag-5'>學習</b>?通過<b class='flag-5'>機器</b><b class='flag-5'>學習</b>方法能解決哪些問題?

    NPU與機器學習算法的關(guān)系

    在人工智能領(lǐng)域,機器學習算法是實現(xiàn)智能系統(tǒng)的核心。隨著數(shù)據(jù)量的激增和算法復(fù)雜度的提升,對計算資源的需求也在不斷增長。NPU作為一種專門為深度學習
    的頭像 發(fā)表于 11-15 09:19 ?1216次閱讀

    FPGA加速深度學習模型的案例

    :DE5Net_Conv_Accelerator 應(yīng)用場景 :面向深度學習的開源項目,實現(xiàn)了AlexNet的第一層卷積運算加速。 技術(shù)特點 : 采用了Verilog語言進行編程,與PCIe接口相集成,可以直接插入到
    的頭像 發(fā)表于 10-25 09:22 ?1233次閱讀

    深度學習GPU加速效果如何

    圖形處理器(GPU)憑借其強大的并行計算能力,成為加速深度學習任務(wù)的理想選擇。
    的頭像 發(fā)表于 10-17 10:07 ?613次閱讀

    RISC-V跑AI算法能加速嗎?

    現(xiàn)在好多ARM單片機都帶機器學習加速,RISC-V有這方面的硬件加速嗎?
    發(fā)表于 10-10 22:14

    AI引擎機器學習陣列指南

    云端動態(tài)工作負載以及超高帶寬網(wǎng)絡(luò),同時還可提供高級安全性功能。AI 和數(shù)據(jù)科學家以及軟硬件開發(fā)者均可充分利用高計算密度的優(yōu)勢來加速提升任何應(yīng)用的性能。AI 引擎機器學習擁有先進的張量計
    的頭像 發(fā)表于 09-18 09:16 ?822次閱讀
    AI引擎<b class='flag-5'>機器</b><b class='flag-5'>學習</b>陣列指南

    在TM4C MCU上使用FreeRTOS開發(fā)高級應(yīng)用

    電子發(fā)燒友網(wǎng)站提供《在TM4C MCU上使用FreeRTOS開發(fā)高級應(yīng)用.pdf》資料免費下載
    發(fā)表于 09-06 10:17 ?2次下載
    在TM4C <b class='flag-5'>MCU</b>上使用FreeRTOS開發(fā)<b class='flag-5'>高級</b>應(yīng)用

    基于機器學習的IWR6843AOP跌倒和姿態(tài)檢測實現(xiàn)

    電子發(fā)燒友網(wǎng)站提供《基于機器學習的IWR6843AOP跌倒和姿態(tài)檢測實現(xiàn).pdf》資料免費下載
    發(fā)表于 09-03 10:02 ?3次下載
    基于<b class='flag-5'>機器</b><b class='flag-5'>學習</b>的IWR6843AOP跌倒和姿態(tài)檢測<b class='flag-5'>實現(xiàn)</b>

    MCU如何實現(xiàn)AI功能

    MCU也開始能夠執(zhí)行一些基本的機器學習(ML)和AI任務(wù),特別是通過優(yōu)化算法、使用簡化模型(如量化神經(jīng)網(wǎng)絡(luò))以及嵌入式優(yōu)化庫來實現(xiàn)。
    的頭像 發(fā)表于 07-19 11:51 ?1658次閱讀