色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

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

想在STM32 MCU上部署機器學習模型?這份入門教程,讓你一學就會~

jf_pJlTbmA9 ? 來源:得捷電子DigiKey ? 作者:得捷電子DigiKey ? 2023-10-18 17:45 ? 次閱讀

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

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

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

tinyML用例介紹

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

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

wKgZomUD3GaAWiBTAABWBtQkMlk196.jpg

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

許多嵌入式環(huán)境開發(fā)人員感興趣的另一個tinyML用例為圖像識別。微控制器從攝像頭捕獲圖像,然后將其輸入預先訓練的模型。模型可以辨別圖中的內(nèi)容。例如,模型可以確定是否有貓、狗或者魚等等。圖像識別用于邊緣的一個很好的例子是視頻門鈴。視頻門鈴通常可以檢測門口是否有人,或者是否有放下的包裹。

最后一個非常常見的用例是用tinyML進行預見性維護。預見性維護使用ML基于異常檢測、分類算法和預測模型來預測設(shè)備狀態(tài)。同樣,從HVAC系統(tǒng)到工廠車間設(shè)備,應用非常廣泛。

盡管上述三個用例是目前常見的tinyML,但開發(fā)人員無疑還可以找到更多潛在的用例。以下是相關(guān)應用的列表:

手勢分類

異常檢測

模擬量表讀取器

指導和控制 (GNC)

包裝檢測

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

1、捕獲數(shù)據(jù)
2、標記數(shù)據(jù)
3、訓練神經(jīng)網(wǎng)絡(luò)
4、轉(zhuǎn)換模型
5、在微控制器上運行模型

捕獲、標記和訓練“Hello World”模型

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

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

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

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

wKgZomUD3GiAfdR1AABX5FVxXAY183.jpg

圖2:TensorFlow模型正弦波預測與實際值的對比。(圖片來源:Beningo Embedded Group)

選擇開發(fā)板

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

wKgaomUD3GmAH5J6AAC5mki5xek257.jpg

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

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

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

wKgZomUD3GuAd0PDAAF-thlE0eo941.jpg

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

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

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

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

wKgaomUD3GyABOpgAABOKqEk0gA652.jpg

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

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

wKgZomUD3G2AIJRxAACkayUUNdU843.jpg

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

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

wKgaomUD3HCAPv0RAADXLI6HXQE951.jpg

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

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

wKgZomUD3HGAOpdlAABeRUUPfy0910.jpg

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

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

wKgZomUD3HOAI2ECAABXU-7lVRg129.jpg

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

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

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

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

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

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

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

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

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

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

本文小結(jié)

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

來源:得捷電子DigiKey
免責聲明:本文為轉(zhuǎn)載文章,轉(zhuǎn)載此文目的在于傳遞更多信息,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權(quán)問題,請聯(lián)系小編進行處理

審核編輯 黃宇

聲明:本文內(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

    文章

    17316

    瀏覽量

    352229
  • STM32
    +關(guān)注

    關(guān)注

    2270

    文章

    10923

    瀏覽量

    357076
  • 模型
    +關(guān)注

    關(guān)注

    1

    文章

    3298

    瀏覽量

    49063
  • ML
    ML
    +關(guān)注

    關(guān)注

    0

    文章

    149

    瀏覽量

    34695
  • 機器學習
    +關(guān)注

    關(guān)注

    66

    文章

    8438

    瀏覽量

    132921
收藏 人收藏

    評論

    相關(guān)推薦

    AI模型部署邊緣設(shè)備的奇妙之旅:目標檢測模型

    智視覺模塊上部署 PaddleDetection 模型如果說有自己制作數(shù)據(jù)的話,需要將數(shù)據(jù)上傳,然后在修改全局配置項,修改數(shù)據(jù)集地址以及對應的類別數(shù)。 按照廠家提供的配置直接進行訓練轉(zhuǎn)換。 訓練完成后,會自動生成個rknn
    發(fā)表于 12-19 14:33

    構(gòu)建云原生機器學習平臺流程

    構(gòu)建云原生機器學習平臺是個復雜而系統(tǒng)的過程,涉及數(shù)據(jù)收集、處理、特征提取、模型訓練、評估、部署和監(jiān)控等多個環(huán)節(jié)。
    的頭像 發(fā)表于 12-14 10:34 ?166次閱讀

    如何在STM32f4系列開發(fā)板上部署STM32Cube.AI,

    已下載STM32Cube.AI擴展包,但是無法使用,感覺像是沒有部署AI模型,我是想要通過攝像頭拍照,上傳圖像后,經(jīng)過開發(fā)板處理器進行AI模型處理識別過后,告訴我識別結(jié)果,顯示在TFL
    發(fā)表于 11-18 09:39

    AI大模型與傳統(tǒng)機器學習的區(qū)別

    AI大模型與傳統(tǒng)機器學習在多個方面存在顯著的區(qū)別。以下是對這些區(qū)別的介紹: 模型規(guī)模與復雜度 AI大
    的頭像 發(fā)表于 10-23 15:01 ?931次閱讀

    【「大模型時代的基礎(chǔ)架構(gòu)」閱讀體驗】+ 未知領(lǐng)域的感受

    ”,好奇于這種大模型算力中心到底是如何建設(shè)的,用什么設(shè)備、什么架構(gòu)建設(shè)的?對這些問題真是無所知,甚至都沒有想過,帶著這份好奇開始閱讀。 先瀏覽目錄,共分十三章,目錄中出現(xiàn)最多的就是GPU,比如
    發(fā)表于 10-08 10:40

    篇:V1.5-STM32f103c8t6智能小車筆記 標準庫開發(fā) 6612電機驅(qū)動新手入門項目

    這是全網(wǎng)最詳細、性價比最高的STM32實戰(zhàn)項目入門教程,通過合理的硬件設(shè)計和詳細的視頻筆記介紹,硬件使用STM32F103主控資料多方便學習,通過3萬字筆記、12多個小時視頻、20多章
    的頭像 發(fā)表于 08-12 18:25 ?1738次閱讀
    第<b class='flag-5'>一</b>篇:V1.5-<b class='flag-5'>STM32</b>f103c8t6智能小車筆記 標準庫開發(fā) 6612電機驅(qū)動新手<b class='flag-5'>入門</b>項目

    【《大語言模型應用指南》閱讀體驗】+ 俯瞰全書

    上周收到《大語言模型應用指南》書,非常高興,但工作項目繁忙,今天才品鑒體驗,感謝作者編寫了部內(nèi)容豐富、理論應用相結(jié)合、印刷精美的著作,也感謝電子發(fā)燒友論壇提供了
    發(fā)表于 07-21 13:35

    基于MCU的神經(jīng)網(wǎng)絡(luò)模型設(shè)計

    力不從心。神經(jīng)網(wǎng)絡(luò)作為種強大的機器學習模型,能夠提供高效的數(shù)據(jù)處理和分析能力,但其計算復雜度和資源需求往往超出了普通MCU的能力范圍。因此
    的頭像 發(fā)表于 07-12 18:21 ?1196次閱讀

    Al大模型機器

    豐富的知識儲備。它們可以涵蓋各種領(lǐng)域的知識,并能夠回答相關(guān)問題。靈活性與通用性: AI大模型機器人具有很強的靈活性和通用性,能夠處理各種類型的任務和問題。持續(xù)學習和改進: 這些模型可以
    發(fā)表于 07-05 08:52

    基于stm32h743IIK在cubeai上部署keras模型模型輸出結(jié)果都是同組概率數(shù)組,為什么?

    基于stm32h743IIK,在cubeai上部署keras模型模型輸出結(jié)果都是同組概率數(shù)組,
    發(fā)表于 05-20 08:18

    FPGA與MCU的區(qū)別入門難度如何

    如題,目前我的MCU入門了,請問FPGA的入門如何,需要怎么樣去學習
    發(fā)表于 03-16 07:16

    使用CUBEAI部署tflite模型STM32F0中,模型創(chuàng)建失敗怎么解決?

    看到CUBE_AI已經(jīng)支持到STM32F0系列芯片,就想拿來入門嵌入式AI。 生成的模型很小,是可以部署到F0上的,但是直無法創(chuàng)建成功。
    發(fā)表于 03-15 08:10

    allegro快速入門教程

    電子發(fā)燒友網(wǎng)站提供《allegro快速入門教程.pdf》資料免費下載
    發(fā)表于 02-29 09:32 ?71次下載

    盤點那些硬件+項目學習套件:STM32U5單片機開發(fā)板及入門常見問題解答

    入門+項目進階開發(fā)板。主控為ST新代超低功耗MCU旗艦版STM32U5,開發(fā)板采用底板+核心板的分離設(shè)計,底板統(tǒng), 支持
    發(fā)表于 02-19 16:59

    盤點那些硬件+項目學習套件:STM32MP157 Linux開發(fā)板及入門常見問題解答

    STM32開發(fā)是完全沒問題的。 初學者要STM32,比較推薦我們的 STM32U5開發(fā)板,手把手教你
    發(fā)表于 02-01 14:25
    主站蜘蛛池模板: 亚洲男人的天堂久久精品麻豆 | 亚洲破处女 | 亚洲欧洲日产国码久在线 | 中国成人在线视频 | 男生插曲女生身全过程 | 欧美性情一线免费http | 久久精品动漫99精品动漫 | 一本道mw高清码二区三区 | 欧美成人精品高清在线观看 | 成 人 动漫3d 在线看 | 99精品网站| 海角国精产品一区一区三区糖心 | 久久99亚洲AV无码四区碰碰 | 久久日韩精品无码一区 | 老师机影院 | 黄网13区 | 湖南电台在线收听 | 无码人妻99久久密AV | 午夜亚洲动漫精品AV网站 | 亚洲欧美日韩另类精品一区二区三区 | 男男h啪肉np文总受 男男h开荤粗肉h文1v1 | 99久久久无码国产精品免费人妻 | 99精品视频在线观看免费播放 | 美女与男人对肌免费网站 | 青青草视频在线ac | 国产亚洲精品久久精品69 | 国产精品1卡二卡三卡四卡乱码 | 国产亚洲欧洲日韩在线三区 | 午夜阳光影院在线观看视频 | 奇米色偷偷| 伊人大香线蕉影院在线播放 | 国产午夜永久福利视频在线观看 | 久久在精品线影院 | 人人澡人人擦人人免费 | 麻豆国产精品va在线观看约 | 色欲无码国产喷水AV精品 | 日本特交大片免费观看 | 久久精品热99看二 | 99久久国产极品蜜臀AV酒店 | 亚洲精品AV无码喷奶水糖心 | 亚洲精品乱码久久久久久直播 |