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

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

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

3天內不再提示

如何基于STM32Cube.AI 從零開始創建AI項目

意法半導體中國 ? 來源:意法半導體中國 ? 作者:意法半導體中國 ? 2022-07-30 09:31 ? 次閱讀

在之前的文章中,我們介紹了沒有AI基礎知識的工程師如何使用NanoEdge AI快速訓練一個用于風扇異常檢測的模型。

該模型根據來自電機控制板的電流信號,檢測風扇過濾單元的堵塞百分比。我們知道,當風扇發生堵塞時,電機的電流信號形狀會與正常時不同,而傳統算法很難有效地處理這種差異。因此,機器學習算法成為解決該問題的明智選擇。對于機器學習算法,我們通常使用scikit-learn庫來訓練模型。今天我們將展示如何自行訓練機器學習模型,然后使用STM32Cube.AI 將其部署到同一設備上,以便讓大家充分了解兩種工具的不同之處。

NanoEdgeAI是一款端到端工具,允許對數據進行一些預處理,并進行訓練和算法選擇,而STM32Cube.AI 則需要工程師具備一定的AI建模經驗,因為STM32Cube.AI 暫不支持模型訓練。

硬件和軟件準備

用于驅動風扇的P-NUCLEO-IHM03電機控制套件包括一塊NUCLEO-G431RB主板、一塊電機控制擴展板,以及一臺無刷電機

在軟件準備方面,您需要配置anaconda環境,并安裝sklearn、pandas、ONNX等必要的庫。

讓我們回顧一下創建AI項目的一些關鍵步驟,然后據此逐步演示如何基于STM32Cube.AI 從零開始創建AI項目。

在步驟1中,用戶需要收集用于機器學習模型創建的數據。該數據集的一部分(訓練數據集)將用于訓練模型,另一部分(測試數據集)稍后將用于評估所構建模型的性能。機器學習的數據集中的典型比率為:訓練數據集占80%,測試數據集占20%。我們此次試驗用的數據集與之前NanoedgeAI訓練模型使用的數據是一樣的。

在步驟2中,用戶需要對數據進行標記;基本上,我們需要告訴機器收集的數據屬于哪一類(例如“跑步”、“散步”、“靜止”……) 分類指的是根據您認為重要的屬性對數據進行分組:這種屬性在機器學習領域被稱為“類”。

接下來,在步驟3中,用戶使用預先準備的數據集訓練機器學習模型。該任務也稱為“擬合”。訓練結果的準確性在很大程度上取決于用于訓練的數據的內容和數量。

在步驟4中,用戶將訓練過的機器學習模型嵌入到系統中。對于在計算機上執行的機器學習,用戶可以利用Python庫直接執行模型。對于在MCU等器件上運行的機器學習,用戶可以在執行之前將該庫轉換為C代碼。

最后在步驟5中,用戶驗證機器學習模型。如果驗證結果與預期的結果不匹配,則用戶必須確定上述步驟中需要改進的部分,以及如何改進。比如增加數據,更改模型,調整模型超參數等。

至此,我們已經幫大家重新梳理了一次AI項目的建模過程。接下來我們將按照這樣的過程完成我們今天的實驗。

首先,導入一些必要的庫

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

為了便于對比,我們使用了之前NanoEdgeAI訓練模型中使用的數據集。我們使用pandas從csv文件讀取數據,然后用于模型訓練。

在訓練之前,讓我們先來了解一下該數據集。讓我們打印出數據集的維度。

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

可以看到,該數據集一共有119條數據和128個特征,最后一列實際上是我們的數據標簽

接下來,我們將數據集分為訓練集和測試集,訓練集用于訓練模型,測試集用于檢驗模型的泛化能力。我們將80%的數據用于訓練,20%的數據用于測試

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

一旦數據集準備就緒,我們就可以開始訓練模型。

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

訓練完成后,我們可以在測試集上驗證模型的性能。我們發現,該模型在測試集上可以達到約83%的準確率。

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

最后,我們保存經過訓練的模型,將得到一個ONNX格式的文件random_forest.onnx

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

我們使用netron查看模型的結構如下

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

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

該插件擴展了STM32CubeMX功能,可自動轉換訓練好的AI模型,生成的優化庫集成到用戶項目中,而不是人工構建代碼,并支持將深度學習解決方案嵌入到廣泛的STM32微控制器產品組合中,從而為每個產品添加新的智能化功能。

STM32Cube.AI 原生支持各種深度學習框架,如Keras、TensorFlow Lite、ConvNetJs,并支持可導出為ONNX標準格式的所有框架,如PyTorch、Microsoft Cognitive Toolkit、MATLAB等。

此外,STM32Cube.AI 支持來自廣泛ML開源庫Scikit-Learn的標準機器學習算法,如隨機森林、支持向量機(SVM)、K-Means。

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

現在,我們準備將模型部署到MCU。我們使用STM32Cube.AI 的命令行模式將模型轉換為經過優化的C代碼。我們運用以下命令執行模型轉換。

stm32ai generate -m random_forest.onnx

如果轉換成功,我們將看到以下消息。

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

在stm32ai_output文件夾中,我們將看到有以下文件生成。其中,network.c/.h包含關于模型拓撲的一些信息,而network_data.c/.h則記錄了關于模型權重的一些信息。

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

此時,我們準備好將生成的模型集成到stm32項目中。在CLI模式下,我們需要手動添加STM32Cube.AI 的運行環境到項目,所以我們可以調用network.h中的函數來運行模型。

當然,STM32Cube.AI 提供一種更簡便的方式來集成AI模型。假設您的項目從一個ioc文件開始,我們可以將AI模型添加到cubeMX的代碼生成階段,然后一起生成代碼。

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

啟用cubeMX中的AI功能如下,選擇對應的STM32Cube.AI 的版本。

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

我們可借此將AI模型集成到項目中。

就這樣,在我們生成代碼后,AI模型轉化為優化的C代碼,然后與STM32Cube.AI 運行環境的對應版本一起集成到項目中。

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

這樣,我們就可以調用network.h中的函數將模型運行起來。

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

審核編輯:彭靜
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • STM32
    +關注

    關注

    2281

    文章

    10974

    瀏覽量

    360654
  • AI
    AI
    +關注

    關注

    87

    文章

    33169

    瀏覽量

    273414
  • 機器學習
    +關注

    關注

    66

    文章

    8471

    瀏覽量

    133727

原文標題:AI技術專題之十三:用STM32Cube.AI 部署ONNX 模型實操示例:風扇堵塞檢測

文章出處:【微信號:STMChina,微信公眾號:意法半導體中國】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    如何在STM32f4系列開發板上部署STM32Cube.AI

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

    STM32CubeMX在F7子板上從零開始創建TouchGFX UI項目

    -software-development-tools/stm32-configurators-and-code-generators/stm32cubemx.html從零開始創建TouchGFX UI
    發表于 03-23 16:30

    Cube ai簡介

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

    如何使用stm32cube.ai部署神經網絡?

    如何用stm32cube.ai簡化人工神經網絡映射?如何使用stm32cube.ai部署神經網絡?
    發表于 10-11 08:05

    STM32Cube.AI工具包使用初探

    STM32近日推出了Cube.AI人工智能神經網絡開發工具包,目標是將AI引入微控制器供電的智能設備,位于節點邊緣,以及物聯網,智能建筑,工業和醫療應用中的深度嵌入式設備。 簡而言之,以后就可以在
    發表于 02-22 06:50

    X-CUBE-AI STM32Cube擴展包精選資料推薦

    【X-CUBE-AI】是一個STM32Cube擴展包,它是STM32Cube.AI生態系統的一部分。它擴展了STM32CubeMX的功能,自動轉換預訓練的人工智能算法,包括神經網絡和經
    發表于 11-29 07:43

    請問STM32WL可以與STM32Cube.AI一起使用嗎?

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

    ST MCU邊緣AI開發者云 - STM32Cube.AI

    STM32微控制器生成優化的C代碼,無需事先安裝軟件。數據科學家和開發人員受益于STM32Cube.AI久經考驗的神經網絡優化性能,以開發邊緣AI項目。? 訪問
    發表于 02-02 09:52

    STM32Cube.AI庫的高級特性

    STM32Cube.AI是意法半導體AI生態系統的一部分,是STM32Cube的一個擴展包,它可以自動轉換和優化預先訓練的神經網絡模型并將生成的優化庫集成到用戶項目中,從而擴展了
    的頭像 發表于 11-16 16:59 ?3353次閱讀
    <b class='flag-5'>STM32Cube.AI</b>庫的高級特性

    小白初學者從零開始創建stm32工程(包括帶著的FreeRTOS實時操作系統快速入門)

    小白初學者從零開始創建stm32工程(包括帶著的FreeRTOS實時操作系統快速入門)
    發表于 12-05 18:21 ?21次下載
    小白初學者<b class='flag-5'>從零開始創建</b><b class='flag-5'>stm32</b>工程(包括帶著的FreeRTOS實時操作系統快速入門)

    STM32Cube.AI將神經網絡轉換為STM32的優化代碼

      STM32Cube.AI 工具箱的美妙之處在于它使開發人員能夠立即開始使用神經網絡,即使他們不是數據挖掘和拓撲方面的專家。
    的頭像 發表于 05-16 10:24 ?2031次閱讀

    意法半導體發布STM32Cube.AI開發工具

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

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

    STM32Cube.AI 7.3 啟動了一個新系統,使開發人員能夠選擇是優先考慮 RAM、性能還是兩者之間的平衡方法。因此,它建立在先前版本 STM32Cube.AI 7.2的工作基礎上,該版本引入了擴展層和深度量化神經網絡,并允許用戶根據其約束對其進行微調算法。
    的頭像 發表于 02-02 10:09 ?1142次閱讀

    STM32Cube.AI部署ONNX模型實操示例:風扇堵塞檢測

    STM32Cube.AI 部署ONNX 模型實操示例:風扇堵塞檢測
    的頭像 發表于 09-28 16:25 ?2732次閱讀
    用<b class='flag-5'>STM32Cube.AI</b>部署ONNX模型實操示例:風扇堵塞檢測

    如何在OpenMV生態系統中集成STM32Cube.AI生成的代碼

    電子發燒友網站提供《如何在OpenMV生態系統中集成STM32Cube.AI生成的代碼.pdf》資料免費下載
    發表于 09-20 09:55 ?0次下載
    如何在OpenMV生態系統中集成<b class='flag-5'>STM32Cube.AI</b>生成的代碼
    主站蜘蛛池模板: 操她射她 | 欧美乱理伦另类视频 | 免费看美女禁处爆涌视频 | 亚洲啪啪免费视频 | 久色国产 | 婷婷亚洲五月琪琪综合 | 四虎影视免费 | 亚洲国产香蕉视频欧美 | 欧美人成网站免费大全 | 亚洲网站视频 | 在线播放91灌醉迷j高跟美女 | 男女激情做爰叫床声视频偷拍 | 35qao强力打造免费上线高清 | 欧美色频 | 国产伦精品一区二区三区免费 | 国产亚洲精品成人一区看片 | 亚洲大尺度视频 | 97久久天天综合色天天综合色 | 日本a级片在线观看 | 这里只有精品视频 | 欧美在线高清视频 | 91热成人精品国产免费 | 99久久综合狠狠综合久久男同 | 色噜噜噜噜 | 国产视频一二三 | 久久黄色录像 | 波多野结衣在线观看一区二区 | 黄色日批网站 | 男女视频在线观看免费高清观看 | h文 超乳 奶水 | 色综合狠狠 | 91成人免费在线视频 | 亚洲欧美色视频 | 国内精品久久久久影 | 五月天婷婷激情 | 国产精品推荐天天看天天爽 | 亚洲午夜久久影院 | 欧美中出在线 | 美女黄视频免费 | 国产精品国产三级国快看 | 丁香月婷婷 |