在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

如何通過STMicroelectronics的STM32微控制器開始使用ML

得捷電子DigiKey ? 來源:得捷電子DigiKey ? 作者:得捷電子DigiKey ? 2022-10-08 10:34 ? 次閱讀

機(jī)器學(xué)習(xí) (ML) 在服務(wù)器和移動應(yīng)用中已經(jīng)風(fēng)靡多年,現(xiàn)在這種趨勢已蔓延到邊緣設(shè)備,并且變得突出。由于邊緣設(shè)備需要節(jié)能,因此開發(fā)人員需要學(xué)習(xí)和了解如何將ML模型部署到基于微控制器的系統(tǒng)中。

在微控制器上運(yùn)行的ML模型通常被稱為tinyML。然而,將模型部署到微控制器并非易事,但它正在變得越來越容易,沒有經(jīng)過任何專業(yè)培訓(xùn)的開發(fā)人員也能在規(guī)定時(shí)間完成部署。

本文探討了嵌入式環(huán)境開發(fā)人員如何通過STMicroelectronics的STM32微控制器開始使用ML。為此,文中展示了如何通過?X-CUBE-AI?將TensorFlow Lite for Microcontrollers模型轉(zhuǎn)換用于STM32CubeIDE,來創(chuàng)建“Hello World”應(yīng)用。

tinyML用例介紹

tinyML是一個(gè)不斷發(fā)展的領(lǐng)域,它將ML功能整合到微控制器等資源和功耗受限的設(shè)備中,通常采用深度神經(jīng)網(wǎng)絡(luò)。然后,這些微控制器設(shè)備可以運(yùn)行ML模型,在邊緣進(jìn)行有價(jià)值的工作。以下幾個(gè)用例中的tinyML非常值得關(guān)注。

第一個(gè)用例常見于許多移動設(shè)備和家庭自動化設(shè)備,即關(guān)鍵詞識別。通過關(guān)鍵詞識別,嵌入式設(shè)備可以使用麥克風(fēng)捕獲語音并檢測預(yù)先訓(xùn)練的關(guān)鍵詞。tinyML模型使用表示語音的時(shí)間序列輸入,將其轉(zhuǎn)換為語音特征,通常為頻譜圖,其中包含隨時(shí)間變化的頻率信息。然后,將頻譜圖輸入經(jīng)過訓(xùn)練的神經(jīng)網(wǎng)絡(luò),以檢測特定的字詞,結(jié)果就是檢測到特定字詞的概率。圖1顯示了這個(gè)過程的示例。

bb6f36e6-4574-11ed-96c9-dac502259ad0.png

圖1:關(guān)鍵詞識別是tinyML的有趣用例。輸入的語音被轉(zhuǎn)換為頻譜圖,然后輸入經(jīng)過訓(xùn)練的神經(jīng)網(wǎng)絡(luò),以確定是否有預(yù)先訓(xùn)練的字詞。(圖片來源:Arm

許多嵌入式環(huán)境開發(fā)人員感興趣的另一個(gè)tinyML用例為圖像識別。微控制器從攝像頭捕獲圖像,然后將其輸入預(yù)先訓(xùn)練的模型。模型可以辨別圖中的內(nèi)容。例如,模型可以確定是否有貓、狗或者魚等等。圖像識別用于邊緣的一個(gè)很好的例子是視頻門鈴。視頻門鈴?fù)ǔ?梢詸z測門口是否有人,或者是否有放下的包裹。 最后一個(gè)非常常見的用例是用tinyML進(jìn)行預(yù)見性維護(hù)。預(yù)見性維護(hù)使用ML基于異常檢測、分類算法和預(yù)測模型來預(yù)測設(shè)備狀態(tài)。同樣,從HVAC系統(tǒng)到工廠車間設(shè)備,應(yīng)用非常廣泛。 盡管上述三個(gè)用例是目前常見的tinyML,但開發(fā)人員無疑還可以找到更多潛在的用例。以下是相關(guān)應(yīng)用的列表:

手勢分類

異常檢測

模擬量表讀取器

指導(dǎo)和控制 (GNC)

包裝檢測

無論哪個(gè)用例,開始熟悉tinyML的最好方法是使用“Hello World”應(yīng)用,它可以幫助開發(fā)人員學(xué)習(xí)和理解實(shí)現(xiàn)并運(yùn)行一個(gè)最基礎(chǔ)的系統(tǒng)所遵循的基本流程。在STM32微控制器上運(yùn)行tinyML模型,有5個(gè)必要步驟:

捕獲數(shù)據(jù)

標(biāo)記數(shù)據(jù)

訓(xùn)練神經(jīng)網(wǎng)絡(luò)

轉(zhuǎn)換模型

在微控制器上運(yùn)行模型

捕獲、標(biāo)記和訓(xùn)練“Hello World”模型

關(guān)于捕獲和標(biāo)記用于訓(xùn)練模型所需的數(shù)據(jù),開發(fā)人員通常有許多選擇。首先,有大量的線上訓(xùn)練數(shù)據(jù)庫。開發(fā)人員可以搜索他人收集和標(biāo)記的數(shù)據(jù)。例如,對于基本的圖像檢測,有CIFAR-10或ImageNet。如需訓(xùn)練模型來檢測照片中的微笑,也有一個(gè)圖像集。從在線數(shù)據(jù)存儲庫開始顯然是不錯的選擇。

如果所需的數(shù)據(jù)尚未在互聯(lián)網(wǎng)上公開,開發(fā)人員也可以生成自己的數(shù)據(jù)。可以使用Matlab或其他工具來生成數(shù)據(jù)集。如果不能自動生成數(shù)據(jù),也可以手動完成。最后,如果覺得這些都太耗時(shí),也可在互聯(lián)網(wǎng)上購買數(shù)據(jù)集。收集數(shù)據(jù)往往是最令人興奮和有趣的選擇,但也最費(fèi)事。

這里探討的“Hello World”示例展示了如何訓(xùn)練模型來生成正弦波并將其部署到STM32上。這個(gè)示例由Pete Warden和Daniel Situnayake整理,當(dāng)時(shí)他們在谷歌開展TensorFlow Litefor Microcontrollers工作。這樣一來,工作變得更容易,因?yàn)樗麄円呀?jīng)整理出了簡單的捕獲、標(biāo)記和訓(xùn)練模型的公開教程。可以在Github上找到(點(diǎn)擊此處);打開鏈接后,開發(fā)人員應(yīng)點(diǎn)擊“Run in Google Colab”(在Google Colab中運(yùn)行)按鈕。Google Colab是Google Collaboratory的簡稱,它允許開發(fā)人員在瀏覽器中編寫和執(zhí)行Python,無需配置,并提供對Google GPU的免費(fèi)訪問。

瀏覽訓(xùn)練示例將輸出兩個(gè)不同的模型文件;一個(gè)是為微控制器量化的model.tflite TensorFlow模型,一個(gè)是沒有量化的model_no_quant.tflite模型。量化可以表明如何以數(shù)字方式存儲模型的激活和偏置。量化后可以得到更小的模型,更適合于微控制器。好奇的讀者可以在圖2中查看訓(xùn)練過的模型結(jié)果與實(shí)際正弦波結(jié)果的對比。模型的輸出以紅色顯示。正弦波輸出并不完美,但對“Hello World”程序而言,其效果已經(jīng)很好了。

bb9d5530-4574-11ed-96c9-dac502259ad0.png

圖2:TensorFlow模型正弦波預(yù)測與實(shí)際值的對比。(圖片來源:BeningoEmbedded Group)

選擇開發(fā)板

在研究如何轉(zhuǎn)換TensorFlow模型以便在微控制器上運(yùn)行之前,需要選擇該模型中部署的微控制器。本文將重點(diǎn)介紹STM32微控制器,因?yàn)镾TMicroelectronics公司有許多tinyML/ML工具,可以很好地轉(zhuǎn)換和運(yùn)行模型。此外,STMicroelectronics有多種與其ML工具兼容的元器件(圖3)。

bbd1a88a-4574-11ed-96c9-dac502259ad0.png

圖3:圖示為STMicroelectronics AI生態(tài)系統(tǒng)目前支持的微控制器和微處理器單元(MPU)。(圖片來源:STMicroelectronics)

如果辦公室里有這樣一塊開發(fā)板,就非常適合啟動和運(yùn)行“HelloWorld”應(yīng)用。然而,如果對本例之外的應(yīng)用感興趣,想要了解手勢控制或關(guān)鍵詞識別,可以選擇STM32 B-L4S5I-IOT01A開發(fā)套件物聯(lián)網(wǎng)節(jié)點(diǎn)(圖4)。

該開發(fā)板帶有STM32L4+系列Arm Cortex-M4處理器。該處理器有2MB閃存和640KB RAM,為tinyML模型提供了充足的空間。該模塊還帶有STMicroelectronics的MP34DT01微機(jī)電系統(tǒng) (MEMS) 麥克風(fēng),可用于關(guān)鍵詞識別的應(yīng)用開發(fā),適用于tinyML用例實(shí)驗(yàn)。此外,同樣來自STMicroelectronics的板載LIS3MDLTR三軸加速計(jì),可用于基于tinyML的手勢檢測。

bc008f10-4574-11ed-96c9-dac502259ad0.png

圖4:STM32 B-L4S5I-IOT01A開發(fā)套件物聯(lián)網(wǎng)節(jié)點(diǎn)搭載Arm Cortex-M4處理器、MEMS麥克風(fēng)和三軸加速計(jì),是適應(yīng)性tinyML實(shí)驗(yàn)平臺。(圖片來源:STMicroelectronics)

使用STM32Cube.AI轉(zhuǎn)換和運(yùn)行TensorFlow Lite模型

憑借可以運(yùn)行tinyML模型的開發(fā)板,開發(fā)人員現(xiàn)在可以開始對TensorFlow Lite模型進(jìn)行轉(zhuǎn)換,以便在微控制器上運(yùn)行。TensorFlowLite模型可以直接在微控制器上運(yùn)行,但需要一個(gè)運(yùn)行時(shí)環(huán)境來處理它。

運(yùn)行模型時(shí),需要執(zhí)行一系列的功能。這些功能首先收集傳感器數(shù)據(jù),然后篩選,提取必要特征,并反饋給模型。該模型輸出結(jié)果,然后對結(jié)果進(jìn)一步篩選,通常還會再進(jìn)行一些操作。圖5顯示了該過程的概況。

bdebe5e0-4574-11ed-96c9-dac502259ad0.png

圖5:數(shù)據(jù)如何從傳感器流向運(yùn)行時(shí),再到tinyML應(yīng)用的輸出。(圖片來源:Beningo Embedded Group)

STM32CubeMx的X-CUBE-AI插件提供了解釋TensorFlow Lite模型的運(yùn)行時(shí)環(huán)境,并提供了開發(fā)人員可以利用的替代運(yùn)行時(shí)和轉(zhuǎn)換工具。X-CUBE-AI插件在項(xiàng)目中默認(rèn)不啟用。然而,在創(chuàng)建新項(xiàng)目并初始化電路板后,在SoftwarePacks-> Select Components(軟件包-> 選擇組件)下,有一個(gè)啟用AI運(yùn)行時(shí)的選項(xiàng)。這里有幾個(gè)選項(xiàng);確保本例中使用的是Application模板,如圖6所示。

be11aca8-4574-11ed-96c9-dac502259ad0.png

圖6:X-CUBE-AI插件需要使用本例的應(yīng)用模板來啟用。(圖片來源:BeningoEmbedded Group)

啟用X-CUBE-AI后,STMicroelectronics X-CUBE-AI類別將出現(xiàn)在工具鏈中。點(diǎn)擊該類別,開發(fā)人員能選擇自己創(chuàng)建的模型文件并設(shè)置模型參數(shù),如圖7所示。可通過分析按鈕對模型進(jìn)行分析,并為開發(fā)人員提供RAM、ROM和執(zhí)行周期信息。強(qiáng)烈建議開發(fā)人員比較Keras和TFLite模型選項(xiàng)。在較小的正弦波模型示例中,沒有顯著差異,但卻可以發(fā)現(xiàn)其中的區(qū)別。點(diǎn)擊“Generate code”(生成代碼)可生成該項(xiàng)目。

bf58c88a-4574-11ed-96c9-dac502259ad0.png

圖7:分析按鈕為開發(fā)人員提供RAM、ROM和執(zhí)行周期信息。(圖片來源:Beningo Embedded Group)

代碼生成器將初始化項(xiàng)目,并為tinyML模型構(gòu)建運(yùn)行時(shí)環(huán)境。但默認(rèn)情況下,不會為模型提供輸入。開發(fā)人員需要添加代碼,為模型提供輸入值 — x值,模型將解釋該值并生成正弦y值。如圖8所示,需要在acquisition_and_process_data和post_process函數(shù)中增加幾段代碼。

bfa0e070-4574-11ed-96c9-dac502259ad0.png

圖8:所示代碼將連接偽輸入傳感器值到正弦波模型。(圖片來源:Beningo Embedded Group)

此時(shí),本例運(yùn)行就緒。注意:添加一些printf語句來獲取模型輸出,以便快速驗(yàn)證。快速編譯和部署能讓“Hello World”tinyML 模型運(yùn)行。獲取整個(gè)周期的模型輸出得到圖9所示的正弦波。它并不完美,但對于首個(gè)tinyML應(yīng)用來說非常優(yōu)秀。由此,開發(fā)人員可以將輸出與脈沖寬度調(diào)制器 (PWM) 聯(lián)結(jié)起來,并產(chǎn)生正弦波。

bfcfd7ae-4574-11ed-96c9-dac502259ad0.png

圖9:在 STM32上運(yùn)行時(shí)的“Hello World”正弦波模型輸出。(圖片來源:Beningo Embedded Group)

嵌入式系統(tǒng)上的ML技巧和竅門

開發(fā)人員若要在基于微控制器的系統(tǒng)上開始使用ML,需要做相當(dāng)多的工作,才能讓自己的首個(gè)tinyML應(yīng)用運(yùn)行起來。然而,記住幾個(gè)“技巧和竅門”,可以簡化和加快其開發(fā):

瀏覽TensorFlow Lite forMicrocontrollers的“Hello World”示例,包括Google Colab文件。花點(diǎn)兒時(shí)間調(diào)整參數(shù),了解這些參數(shù)對經(jīng)過訓(xùn)練的模型的影響。

在微控制器應(yīng)用中使用量化模型。量化模型經(jīng)過壓縮,可以使用uint8_t而非32位浮點(diǎn)數(shù)。因此,該模型更小,執(zhí)行速度更快。

了解TensorFlow Lite forMicrocontrollers資源庫中的其他示例。其他示例包括手勢檢測和關(guān)鍵詞檢測。

以“Hello World”為例,將模型輸出連接到PWM和低通濾波器上,以查看產(chǎn)生的正弦波。執(zhí)行運(yùn)行時(shí)實(shí)驗(yàn),增加和減少正弦波頻率。

選擇包括“額外”傳感器的開發(fā)板,以便嘗試廣泛的ML應(yīng)用。

盡管收集數(shù)據(jù)很有趣,但一般來說,購買或使用開源數(shù)據(jù)庫來訓(xùn)練模型更容易。

開發(fā)人員遵循這些“技巧和竅門”,可以在確保應(yīng)用安全的同時(shí)節(jié)省更多的時(shí)間并省去更多的麻煩。

本文小結(jié)

機(jī)器學(xué)習(xí)已經(jīng)蔓延至網(wǎng)絡(luò)邊緣,而基于資源受限微控制器的系統(tǒng)是其主要目標(biāo)。最新的工具可以轉(zhuǎn)換和優(yōu)化機(jī)器學(xué)習(xí)模型,以在實(shí)時(shí)系統(tǒng)上運(yùn)行。如圖所示,在STM32開發(fā)板上實(shí)現(xiàn)和運(yùn)行模型相對容易,但也會涉及復(fù)雜性問題。雖然只探討了產(chǎn)生正弦波的簡單模型,但也可以實(shí)現(xiàn)更復(fù)雜的模型,如手勢檢測和關(guān)鍵詞識別。

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

    關(guān)注

    48

    文章

    7926

    瀏覽量

    153888
  • 嵌入式
    +關(guān)注

    關(guān)注

    5144

    文章

    19575

    瀏覽量

    315813
  • STM32
    +關(guān)注

    關(guān)注

    2291

    文章

    11019

    瀏覽量

    363044
  • DML模型
    +關(guān)注

    關(guān)注

    0

    文章

    4

    瀏覽量

    6121

原文標(biāo)題:想在STM32 MCU上部署機(jī)器學(xué)習(xí)模型?這份入門教程,讓你一學(xué)就會~

文章出處:【微信號:得捷電子DigiKey,微信公眾號:得捷電子DigiKey】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

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

    Mouser供貨STMicroelectronics超低功耗STM32L4微控制器

    貿(mào)澤電子 (Mouser Electronics) 于2015年9月30日起開始分銷 STMicroelectronics (ST) 的新型STM32L4系列32位微控制器。該系列超低
    發(fā)表于 10-09 11:26 ?1449次閱讀

    如何使用ST微控制器

    你好我想開始使用 ST 微控制器。我使用 8 位 Atmel。有興趣遷移到 ST32我購買了 STM32373C-EVAL 開發(fā)套件我安裝了STM32CUBEIDE我怎樣才能一步一步
    發(fā)表于 12-26 07:31

    如何將ML模型部署到微控制器

    大家好,的我正在嘗試將 ML 模型部署到微控制器,我有兩塊 STM32L4R9I-Discovery 和 STM32H7B3I-Discovery 板。實(shí)驗(yàn)及相關(guān)結(jié)果如下所示:我使用
    發(fā)表于 12-29 13:09

    微控制器STM32L系列(ST)

    微控制器STM32L系列(ST) STM32L系列產(chǎn)品是業(yè)界首款來自全球十大半導(dǎo)體供應(yīng)商之一的超低功耗ARM® Cortex™-M3 微控制器。ST
    發(fā)表于 04-23 09:59 ?2260次閱讀

    STM32系列微控制器存儲與外設(shè)

    STM32系列微控制器存儲與外設(shè)
    發(fā)表于 09-29 14:50 ?7次下載
    <b class='flag-5'>STM32</b>系列<b class='flag-5'>微控制器</b>存儲<b class='flag-5'>器</b>與外設(shè)

    AN5361_開始使用基于STM32CubeIDE雙核STM32H7微控制器的項(xiàng)目

    AN5361_開始使用基于STM32CubeIDE雙核STM32H7微控制器的項(xiàng)目
    發(fā)表于 11-21 08:11 ?3次下載
    AN5361_<b class='flag-5'>開始使用</b>基于<b class='flag-5'>STM32</b>CubeIDE雙核<b class='flag-5'>STM32</b>H7<b class='flag-5'>微控制器</b>的項(xiàng)目

    STM32微控制器上的Octo-SPI接口

    STM32微控制器上的Octo-SPI接口
    發(fā)表于 11-21 08:11 ?4次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>微控制器</b>上的Octo-SPI接口

    STM32微控制器系統(tǒng)內(nèi)存啟動模式

    STM32微控制器系統(tǒng)內(nèi)存啟動模式
    發(fā)表于 11-21 08:11 ?0次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>微控制器</b>系統(tǒng)內(nèi)存啟動模式

    DB4597_STM32WL系列微控制器參考設(shè)計(jì)

    DB4597_STM32WL系列微控制器參考設(shè)計(jì)
    發(fā)表于 11-23 20:26 ?3次下載
    DB4597_<b class='flag-5'>STM32</b>WL系列<b class='flag-5'>微控制器</b>參考設(shè)計(jì)

    DB4564_用于STM32微控制器的自動化機(jī)器學(xué)習(xí)(ML)工具

    DB4564_用于STM32微控制器的自動化機(jī)器學(xué)習(xí)(ML)工具
    發(fā)表于 11-23 20:28 ?0次下載
    DB4564_用于<b class='flag-5'>STM32</b><b class='flag-5'>微控制器</b>的自動化機(jī)器學(xué)習(xí)(<b class='flag-5'>ML</b>)工具

    DB4564_適用于 STM32 微控制器的自動化機(jī)器學(xué)習(xí) (ML) 工具

    DB4564_適用于 STM32 微控制器的自動化機(jī)器學(xué)習(xí) (ML) 工具
    發(fā)表于 11-23 20:28 ?0次下載
    DB4564_適用于 <b class='flag-5'>STM32</b> <b class='flag-5'>微控制器</b>的自動化機(jī)器學(xué)習(xí) (<b class='flag-5'>ML</b>) 工具

    STM32微控制器安全簡介

    電子發(fā)燒友網(wǎng)站提供《STM32微控制器安全簡介.pdf》資料免費(fèi)下載
    發(fā)表于 08-01 14:22 ?0次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>微控制器</b>安全簡介

    STM32微控制器的結(jié)構(gòu)和發(fā)展歷史

    STM32微控制器是由STMicroelectronics公司開發(fā)的一系列基于ARM Cortex-M內(nèi)核的高性能微控制器。自從2007年推出第一代
    發(fā)表于 09-07 16:35 ?2642次閱讀

    STM32微控制器的工作原理和應(yīng)用 STM32微控制器的命名規(guī)則

    STM32微控制器是一種基于ARM Cortex-M內(nèi)核的高性能、低功耗、低成本的微控制器。它廣泛應(yīng)用于各種嵌入式系統(tǒng),包括工業(yè)控制、消費(fèi)電子、醫(yī)療設(shè)備、汽車電子等領(lǐng)域。
    發(fā)表于 09-07 16:38 ?2982次閱讀

    STM32WB系列上開始使用Zigbee

    本應(yīng)用筆記將指導(dǎo)設(shè)計(jì)者完成基于 STM32WB 系列微控制器構(gòu)建特定 Zigbee?應(yīng)用程序所需的所有步驟。闡明了如何與STM32WB 系列微控制器連接,同時(shí)還整合了與 Zigbee?
    發(fā)表于 10-09 17:30 ?0次下載
    主站蜘蛛池模板: 四虎影院最新地址 | 三级在线网站 | 狠狠色丁香婷婷综合欧美 | 夜夜穞狠狠穞 | 中国china体内裑精亚洲毛片 | 午夜女同影院 | 无遮挡很爽很污很黄的网站w | 伦理片日本韩国电影三级在线观看 | 国产在线观看色 | 午夜剧院免费 | 黄色福利站 | 国产色司机在线视频免费观看 | 亚洲高清美女一区二区三区 | 色图综合网 | 成色网| 影院在线观看免费 | 正在播放一区二区 | 黄视频网站免费观看 | 奇米7777 | 2021成人国产精品 | 在线播放免费人成毛片乱码 | 亚洲成人免费网站 | 国产成人影视 | 欧美三级一区二区 | 成人亚洲欧美在线电影www色 | 天天干小说 | 美女国产视频 | 久久婷婷六月 | 国产精品igao在线观看樱花日本 | 入逼视频 | 日本wwwwwwwww | 久久久久久久国产视频 | 久久性妇女精品免费 | 超碰v | 亚洲一区二区三区高清视频 | 成年网站在线观看 | 午夜免费视频 | 一级特黄aa大片一又好看 | se94se亚洲欧美在线 | 久久精品国产乱子伦多人 | 一级欧美视频 |