99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

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

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

如何基于STM32Cube.AI 從零開(kāi)始創(chuàng)建AI項(xiàng)目

意法半導(dǎo)體中國(guó) ? 來(lái)源:意法半導(dǎo)體中國(guó) ? 作者:意法半導(dǎo)體中國(guó) ? 2022-07-30 09:31 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

在之前的文章中,我們介紹了沒(méi)有AI基礎(chǔ)知識(shí)的工程師如何使用NanoEdge AI快速訓(xùn)練一個(gè)用于風(fēng)扇異常檢測(cè)的模型。

該模型根據(jù)來(lái)自電機(jī)控制板的電流信號(hào),檢測(cè)風(fēng)扇過(guò)濾單元的堵塞百分比。我們知道,當(dāng)風(fēng)扇發(fā)生堵塞時(shí),電機(jī)的電流信號(hào)形狀會(huì)與正常時(shí)不同,而傳統(tǒng)算法很難有效地處理這種差異。因此,機(jī)器學(xué)習(xí)算法成為解決該問(wèn)題的明智選擇。對(duì)于機(jī)器學(xué)習(xí)算法,我們通常使用scikit-learn庫(kù)來(lái)訓(xùn)練模型。今天我們將展示如何自行訓(xùn)練機(jī)器學(xué)習(xí)模型,然后使用STM32Cube.AI 將其部署到同一設(shè)備上,以便讓大家充分了解兩種工具的不同之處。

NanoEdgeAI是一款端到端工具,允許對(duì)數(shù)據(jù)進(jìn)行一些預(yù)處理,并進(jìn)行訓(xùn)練和算法選擇,而STM32Cube.AI 則需要工程師具備一定的AI建模經(jīng)驗(yàn),因?yàn)镾TM32Cube.AI 暫不支持模型訓(xùn)練。

硬件和軟件準(zhǔn)備

用于驅(qū)動(dòng)風(fēng)扇的P-NUCLEO-IHM03電機(jī)控制套件包括一塊NUCLEO-G431RB主板、一塊電機(jī)控制擴(kuò)展板,以及一臺(tái)無(wú)刷電機(jī)。

在軟件準(zhǔn)備方面,您需要配置anaconda環(huán)境,并安裝sklearn、pandas、ONNX等必要的庫(kù)。

讓我們回顧一下創(chuàng)建AI項(xiàng)目的一些關(guān)鍵步驟,然后據(jù)此逐步演示如何基于STM32Cube.AI 從零開(kāi)始創(chuàng)建AI項(xiàng)目。

在步驟1中,用戶需要收集用于機(jī)器學(xué)習(xí)模型創(chuàng)建的數(shù)據(jù)。該數(shù)據(jù)集的一部分(訓(xùn)練數(shù)據(jù)集)將用于訓(xùn)練模型,另一部分(測(cè)試數(shù)據(jù)集)稍后將用于評(píng)估所構(gòu)建模型的性能。機(jī)器學(xué)習(xí)的數(shù)據(jù)集中的典型比率為:訓(xùn)練數(shù)據(jù)集占80%,測(cè)試數(shù)據(jù)集占20%。我們此次試驗(yàn)用的數(shù)據(jù)集與之前NanoedgeAI訓(xùn)練模型使用的數(shù)據(jù)是一樣的。

在步驟2中,用戶需要對(duì)數(shù)據(jù)進(jìn)行標(biāo)記;基本上,我們需要告訴機(jī)器收集的數(shù)據(jù)屬于哪一類(lèi)(例如“跑步”、“散步”、“靜止”……) 分類(lèi)指的是根據(jù)您認(rèn)為重要的屬性對(duì)數(shù)據(jù)進(jìn)行分組:這種屬性在機(jī)器學(xué)習(xí)領(lǐng)域被稱(chēng)為“類(lèi)”。

接下來(lái),在步驟3中,用戶使用預(yù)先準(zhǔn)備的數(shù)據(jù)集訓(xùn)練機(jī)器學(xué)習(xí)模型。該任務(wù)也稱(chēng)為“擬合”。訓(xùn)練結(jié)果的準(zhǔn)確性在很大程度上取決于用于訓(xùn)練的數(shù)據(jù)的內(nèi)容和數(shù)量。

在步驟4中,用戶將訓(xùn)練過(guò)的機(jī)器學(xué)習(xí)模型嵌入到系統(tǒng)中。對(duì)于在計(jì)算機(jī)上執(zhí)行的機(jī)器學(xué)習(xí),用戶可以利用Python庫(kù)直接執(zhí)行模型。對(duì)于在MCU等器件上運(yùn)行的機(jī)器學(xué)習(xí),用戶可以在執(zhí)行之前將該庫(kù)轉(zhuǎn)換為C代碼。

最后在步驟5中,用戶驗(yàn)證機(jī)器學(xué)習(xí)模型。如果驗(yàn)證結(jié)果與預(yù)期的結(jié)果不匹配,則用戶必須確定上述步驟中需要改進(jìn)的部分,以及如何改進(jìn)。比如增加數(shù)據(jù),更改模型,調(diào)整模型超參數(shù)等。

至此,我們已經(jīng)幫大家重新梳理了一次AI項(xiàng)目的建模過(guò)程。接下來(lái)我們將按照這樣的過(guò)程完成我們今天的實(shí)驗(yàn)。

首先,導(dǎo)入一些必要的庫(kù)

304a7cc8-0f1f-11ed-ba43-dac502259ad0.png

為了便于對(duì)比,我們使用了之前NanoEdgeAI訓(xùn)練模型中使用的數(shù)據(jù)集。我們使用pandas從csv文件讀取數(shù)據(jù),然后用于模型訓(xùn)練。

在訓(xùn)練之前,讓我們先來(lái)了解一下該數(shù)據(jù)集。讓我們打印出數(shù)據(jù)集的維度。

305fe658-0f1f-11ed-ba43-dac502259ad0.png

可以看到,該數(shù)據(jù)集一共有119條數(shù)據(jù)和128個(gè)特征,最后一列實(shí)際上是我們的數(shù)據(jù)標(biāo)簽。

接下來(lái),我們將數(shù)據(jù)集分為訓(xùn)練集和測(cè)試集,訓(xùn)練集用于訓(xùn)練模型,測(cè)試集用于檢驗(yàn)?zāi)P偷姆夯芰?。我們?0%的數(shù)據(jù)用于訓(xùn)練,20%的數(shù)據(jù)用于測(cè)試

30738e6a-0f1f-11ed-ba43-dac502259ad0.png

一旦數(shù)據(jù)集準(zhǔn)備就緒,我們就可以開(kāi)始訓(xùn)練模型。

30810e1e-0f1f-11ed-ba43-dac502259ad0.png

訓(xùn)練完成后,我們可以在測(cè)試集上驗(yàn)證模型的性能。我們發(fā)現(xiàn),該模型在測(cè)試集上可以達(dá)到約83%的準(zhǔn)確率。

30931334-0f1f-11ed-ba43-dac502259ad0.png

最后,我們保存經(jīng)過(guò)訓(xùn)練的模型,將得到一個(gè)ONNX格式的文件random_forest.onnx

30abcf5a-0f1f-11ed-ba43-dac502259ad0.png

我們使用netron查看模型的結(jié)構(gòu)如下

30bd1fb2-0f1f-11ed-ba43-dac502259ad0.png

STM32Cube集成使得STM32Cube.AI 用戶能夠有效地在廣泛的STM32微控制器系列產(chǎn)品之間移植模型,并且(在相似型號(hào)適用于不同產(chǎn)品的情況下)在STM32產(chǎn)品之間輕松遷移。

該插件擴(kuò)展了STM32CubeMX功能,可自動(dòng)轉(zhuǎn)換訓(xùn)練好的AI模型,生成的優(yōu)化庫(kù)集成到用戶項(xiàng)目中,而不是人工構(gòu)建代碼,并支持將深度學(xué)習(xí)解決方案嵌入到廣泛的STM32微控制器產(chǎn)品組合中,從而為每個(gè)產(chǎn)品添加新的智能化功能。

STM32Cube.AI 原生支持各種深度學(xué)習(xí)框架,如Keras、TensorFlow Lite、ConvNetJs,并支持可導(dǎo)出為ONNX標(biāo)準(zhǔn)格式的所有框架,如PyTorch、Microsoft Cognitive Toolkit、MATLAB等。

此外,STM32Cube.AI 支持來(lái)自廣泛ML開(kāi)源庫(kù)Scikit-Learn的標(biāo)準(zhǔn)機(jī)器學(xué)習(xí)算法,如隨機(jī)森林、支持向量機(jī)(SVM)、K-Means。

30d25724-0f1f-11ed-ba43-dac502259ad0.png

現(xiàn)在,我們準(zhǔn)備將模型部署到MCU。我們使用STM32Cube.AI 的命令行模式將模型轉(zhuǎn)換為經(jīng)過(guò)優(yōu)化的C代碼。我們運(yùn)用以下命令執(zhí)行模型轉(zhuǎn)換。

stm32ai generate -m random_forest.onnx

如果轉(zhuǎn)換成功,我們將看到以下消息。

30f52556-0f1f-11ed-ba43-dac502259ad0.png

在stm32ai_output文件夾中,我們將看到有以下文件生成。其中,network.c/.h包含關(guān)于模型拓?fù)涞囊恍┬畔?,而network_data.c/.h則記錄了關(guān)于模型權(quán)重的一些信息。

310a0c78-0f1f-11ed-ba43-dac502259ad0.png

此時(shí),我們準(zhǔn)備好將生成的模型集成到stm32項(xiàng)目中。在CLI模式下,我們需要手動(dòng)添加STM32Cube.AI 的運(yùn)行環(huán)境到項(xiàng)目,所以我們可以調(diào)用network.h中的函數(shù)來(lái)運(yùn)行模型。

當(dāng)然,STM32Cube.AI 提供一種更簡(jiǎn)便的方式來(lái)集成AI模型。假設(shè)您的項(xiàng)目從一個(gè)ioc文件開(kāi)始,我們可以將AI模型添加到cubeMX的代碼生成階段,然后一起生成代碼。

311b84ee-0f1f-11ed-ba43-dac502259ad0.png

啟用cubeMX中的AI功能如下,選擇對(duì)應(yīng)的STM32Cube.AI 的版本。

31449866-0f1f-11ed-ba43-dac502259ad0.png

我們可借此將AI模型集成到項(xiàng)目中。

就這樣,在我們生成代碼后,AI模型轉(zhuǎn)化為優(yōu)化的C代碼,然后與STM32Cube.AI 運(yùn)行環(huán)境的對(duì)應(yīng)版本一起集成到項(xiàng)目中。

31555d18-0f1f-11ed-ba43-dac502259ad0.png

這樣,我們就可以調(diào)用network.h中的函數(shù)將模型運(yùn)行起來(lái)。

最終,我們通過(guò)這種方式順利地將模型集成到了項(xiàng)目中。通過(guò)比較這兩種不同的方法,我們可以發(fā)現(xiàn)STM32Cube.AI 和NanoEdgeAI之間的差異。NanoEdgeAI更簡(jiǎn)單、高效,而STM32Cube.AI 則更加靈活且可定制。

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

    關(guān)注

    2291

    文章

    11026

    瀏覽量

    363781
  • AI
    AI
    +關(guān)注

    關(guān)注

    88

    文章

    34868

    瀏覽量

    277619
  • 機(jī)器學(xué)習(xí)

    關(guān)注

    66

    文章

    8499

    瀏覽量

    134394

原文標(biāo)題:AI技術(shù)專(zhuān)題之十三:用STM32Cube.AI 部署ONNX 模型實(shí)操示例:風(fēng)扇堵塞檢測(cè)

文章出處:【微信號(hào):STMChina,微信公眾號(hào):意法半導(dǎo)體中國(guó)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

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

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

    STM32CubeMX在F7子板上從零開(kāi)始創(chuàng)建TouchGFX UI項(xiàng)目

    -software-development-tools/stm32-configurators-and-code-generators/stm32cubemx.html從零開(kāi)始創(chuàng)建TouchGFX UI
    發(fā)表于 03-23 16:30

    Cube ai簡(jiǎn)介

    )。stm32cube.ai是廣泛使用的stm32cubemx配置和代碼生成工具的擴(kuò)展包,支持基于stm32 arm cortex -m的微控制器上的ai。要訪問(wèn)它,請(qǐng)下載并安裝
    發(fā)表于 08-03 06:38

    如何使用stm32cube.ai部署神經(jīng)網(wǎng)絡(luò)?

    如何用stm32cube.ai簡(jiǎn)化人工神經(jīng)網(wǎng)絡(luò)映射?如何使用stm32cube.ai部署神經(jīng)網(wǎng)絡(luò)?
    發(fā)表于 10-11 08:05

    STM32Cube.AI工具包使用初探

    STM32近日推出了Cube.AI人工智能神經(jīng)網(wǎng)絡(luò)開(kāi)發(fā)工具包,目標(biāo)是將AI引入微控制器供電的智能設(shè)備,位于節(jié)點(diǎn)邊緣,以及物聯(lián)網(wǎng),智能建筑,工業(yè)和醫(yī)療應(yīng)用中的深度嵌入式設(shè)備。 簡(jiǎn)而言之,以后就可以在
    發(fā)表于 02-22 06:50

    X-CUBE-AI STM32Cube擴(kuò)展包精選資料推薦

    【X-CUBE-AI】是一個(gè)STM32Cube擴(kuò)展包,它是STM32Cube.AI生態(tài)系統(tǒng)的一部分。它擴(kuò)展了STM32CubeMX的功能,自動(dòng)轉(zhuǎn)換預(yù)訓(xùn)練的人工智能算法,包括神經(jīng)網(wǎng)絡(luò)和經(jīng)
    發(fā)表于 11-29 07:43

    請(qǐng)問(wèn)STM32WL可以與STM32Cube.AI一起使用嗎?

    新手問(wèn)題 - 我可以將 AISTM32WL SoC 一起使用嗎?我想訓(xùn)練一個(gè)模型,然后用STM32Cube.AI放到STM32WLE5CC上。這樣我就可以在終端設(shè)備上使用
    發(fā)表于 12-07 07:45

    ST MCU邊緣AI開(kāi)發(fā)者云 - STM32Cube.AI

    STM32微控制器生成優(yōu)化的C代碼,無(wú)需事先安裝軟件。數(shù)據(jù)科學(xué)家和開(kāi)發(fā)人員受益于STM32Cube.AI久經(jīng)考驗(yàn)的神經(jīng)網(wǎng)絡(luò)優(yōu)化性能,以開(kāi)發(fā)邊緣AI項(xiàng)目。? 訪問(wèn)
    發(fā)表于 02-02 09:52

    STM32Cube.AI庫(kù)的高級(jí)特性

    STM32Cube.AI是意法半導(dǎo)體AI生態(tài)系統(tǒng)的一部分,是STM32Cube的一個(gè)擴(kuò)展包,它可以自動(dòng)轉(zhuǎn)換和優(yōu)化預(yù)先訓(xùn)練的神經(jīng)網(wǎng)絡(luò)模型并將生成的優(yōu)化庫(kù)集成到用戶項(xiàng)目中,從而擴(kuò)展了
    的頭像 發(fā)表于 11-16 16:59 ?3543次閱讀
    <b class='flag-5'>STM32Cube.AI</b>庫(kù)的高級(jí)特性

    小白初學(xué)者從零開(kāi)始創(chuàng)建stm32工程(包括帶著的FreeRTOS實(shí)時(shí)操作系統(tǒng)快速入門(mén))

    小白初學(xué)者從零開(kāi)始創(chuàng)建stm32工程(包括帶著的FreeRTOS實(shí)時(shí)操作系統(tǒng)快速入門(mén))
    發(fā)表于 12-05 18:21 ?21次下載
    小白初學(xué)者<b class='flag-5'>從零開(kāi)始創(chuàng)建</b><b class='flag-5'>stm32</b>工程(包括帶著的FreeRTOS實(shí)時(shí)操作系統(tǒng)快速入門(mén))

    STM32Cube.AI將神經(jīng)網(wǎng)絡(luò)轉(zhuǎn)換為STM32的優(yōu)化代碼

      STM32Cube.AI 工具箱的美妙之處在于它使開(kāi)發(fā)人員能夠立即開(kāi)始使用神經(jīng)網(wǎng)絡(luò),即使他們不是數(shù)據(jù)挖掘和拓?fù)浞矫娴膶?zhuān)家。
    的頭像 發(fā)表于 05-16 10:24 ?2207次閱讀

    意法半導(dǎo)體發(fā)布STM32Cube.AI開(kāi)發(fā)工具

    意法半導(dǎo)體(ST)發(fā)布了STM32Cube.AI version 7.2.0,這是微控制器廠商推出的首款支持超高效深度量化神經(jīng)網(wǎng)絡(luò)的人工智能(AI)開(kāi)發(fā)工具。
    的頭像 發(fā)表于 08-09 17:56 ?1643次閱讀

    STM32Cube.AI v7.3能夠在推理時(shí)間和RAM之間找到完美的平衡

    STM32Cube.AI 7.3 啟動(dòng)了一個(gè)新系統(tǒng),使開(kāi)發(fā)人員能夠選擇是優(yōu)先考慮 RAM、性能還是兩者之間的平衡方法。因此,它建立在先前版本 STM32Cube.AI 7.2的工作基礎(chǔ)上,該版本引入了擴(kuò)展層和深度量化神經(jīng)網(wǎng)絡(luò),并允許用戶根據(jù)其約束對(duì)其進(jìn)行微調(diào)算法。
    的頭像 發(fā)表于 02-02 10:09 ?1292次閱讀

    STM32Cube.AI部署ONNX模型實(shí)操示例:風(fēng)扇堵塞檢測(cè)

    STM32Cube.AI 部署ONNX 模型實(shí)操示例:風(fēng)扇堵塞檢測(cè)
    的頭像 發(fā)表于 09-28 16:25 ?2934次閱讀
    用<b class='flag-5'>STM32Cube.AI</b>部署ONNX模型實(shí)操示例:風(fēng)扇堵塞檢測(cè)

    如何在OpenMV生態(tài)系統(tǒng)中集成STM32Cube.AI生成的代碼

    電子發(fā)燒友網(wǎng)站提供《如何在OpenMV生態(tài)系統(tǒng)中集成STM32Cube.AI生成的代碼.pdf》資料免費(fèi)下載
    發(fā)表于 09-20 09:55 ?0次下載
    如何在OpenMV生態(tài)系統(tǒng)中集成<b class='flag-5'>STM32Cube.AI</b>生成的代碼