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

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

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

3天內不再提示

如何將AI模型部署到嵌入式系統中

Linux閱碼場 ? 來源:Linuxer ? 2020-08-03 16:28 ? 次閱讀

本期我們分享主題是如何將 AI 模型部署到嵌入式系統中,下一期將介紹如何在 RT-Thread 操作系統上運行 Mnist Demo(手寫數字識別)。

嵌入式關聯 AI

AI落地一直是一個很紅火的前景和朝陽行業。我的好奇心也比較旺盛,所以關于任何嵌入式和 AI 相關的都是想嘗一嘗。本系列文章將帶你一步一步把 AI 模型部署在嵌入式平臺,移植到 RT-Thread 操作系統上,實現你從菜鳥到起飛的第一步甚至第 n 步!

開發環境:

后續開發過程將基于 STM32H743ZI-Nucleo 開發板,并且使用 STM32CubeMX.AI 工具。它可以基于訓練好的 AI Model (僅限 Keras/TF-Lite),自動生成嵌入式項目工程(包括但是不局限于 MDK、STM32CubeIDE 等)。該工具易于上手,適合嵌入式 AI 入門開發。

STM32CubeMX 是 ST 公司推出的一種自動創建單片機工程及初始化代碼的工具,適用于旗下所有 STM32 系列產品,現在其 AI 組件可以提供 AI 模型到嵌入式 C 代碼的轉換功能。

1. 準備工作

1.1 安裝開發環境

我是用的操作系統是 Ubuntu 18.04。本次實驗要用到如下開發工具,軟件的安裝過程很簡單,網上都有很成熟的教程,在此不再贅述。該篇教程同樣適用于 Windows 環境,實驗步驟完全相同。

STM32CubeMx

STM32CubeIDE

STM32CubeProgrammer

STM32CubeProgrammer 在 ubuntu 環境下使用可能會出現如下錯誤:

安裝好之后,在終端執行安裝包路徑下的bin文件夾下的執行文件,會報錯誤:找不到或無法加載主類 “com.st.app.Main”,這時候只要將 Ubuntu 默認的 Open-JDK 換成 Oracle JDK 就好了,下面是切換成 Oracle JDK 成功的截圖:

1# Oracle官網中下載 JavaSEJDK壓縮包 2$sudotarzxvfjdk-8u172-linux-x64.tar.gz-C/usr/lib/jvm 3#將下載的JDK注冊到系統中 4$sudoupdate-alternatives--install/usr/bin/javajava/usr/lib/jvm/jdk1.8.0_172/bin/java300 5#切換JDK 6$sudoupdate-alternatives--configjava 7#查看JDK版本 8$java-version

1.2 在 PC 端搭建極簡神經網絡

首先將如下開源倉庫克隆到本地:

Github:https://github.com/Lebhoryi/Edge_AI/tree/master/Project1

在本次實驗中我選擇了最簡單的一個線性回歸(Linear Regression) Tensor Flow2 Demo 作為示例,模型相關源文件說明如下:

tf2_linear_regression.ipynb 內含三種不同方式搭建網絡結構

tf2_線性回歸_擴展.ipynb 內含不同方式訓練模型

其中,在模型搭建的時候,重新溫習了一下,有三種方式(各個方式的優缺點已經放在參考文章當中,感興趣的同學自行查閱):

Sequence

函數式 API

子類

后面將 AI 模型導入到 CubeMx 的過程中,如果使用后兩種方式生成的網絡模型,將會遇到如下報錯:

1INVALIDMODEL:Couldn'tloadKerasmodel/home/lebhoryi/RT-Thread/Edge_AI/Project1/keras_model.h5, 2error:Unknownlayer:Functional暫時的解決方式是采用Sequence方式搭建神經網絡,訓練好的 AI Model 會被保存為Keras 格式,后綴為 .h5,例如keras_model.h5。 示例模型我已經保存好了,大家可以直接下載該模型進行實驗,下載地址如下: https://github.com/Lebhoryi/Edge_AI/tree/master/Project1/model 本次示例所訓練的神經網絡模型結構如下:

2. 使用 CubeMX AI生成工程

在 CubeMX 中選擇 STM32H743ZI Nucleo 開發板,這里其實不限制開發板型號,常見的

2.1 打開CubeMX

2.2 安裝CUBE-AI 軟件包

打開菜單欄中的 Help,選擇 Embedded Software Packages Manager,然后在 STMicroelectronics 一欄中選擇 X-CUBE-AI 插件的最新版本,安裝好之后點擊右下角的 Close。

在工程中導入X-CUBE-AI插件:

會出現如下界面:

接下來選擇用于通信的串口,這里選擇串口 3,因為該串口被用于 STlink 的虛擬串口。

2.3 導入 AI 模型到工程中

將 AI 模型燒錄到開發板前,需要先分析 Model,檢查其是否可以被正常轉換為嵌入式工程,本次實驗使用的模型比較簡單,分析起來也也比較快,結果如下所示:

接下來我們要在開發板上驗證轉換后的嵌入式工程,在這個過程中 CubeMX AI 工具會根據你導入的 AI 模型,自動生成嵌入式工程,并且將編譯后的可執行文件燒錄到開發板中,并通過 STlink 的虛擬串口驗證運行的結果。我的系統是 Ubuntu,不支持 MDK,所以在這里選擇自動生成 STM32CubeIDE 工程。

驗證成功界面如下所示:

2.4 生成項目工程

上一步我們只是進行了項目結果的驗證,但是并沒有生成項目源代碼,接下來我們將生成項目工程,如下圖所示:

生成后的 Project 文件夾樹如下所示:

1(base)#(07/03/20@10:51上午)(lebhoryi@RT-AI):~/RT-Thread/Edge_AI@master??? 2tree-L2./Project1 3./Project1 4├──DNN#CubeMX生成工程路徑 5│├──DNN.ioc#CubeMX類型文件 6│├──Drivers 7│├──Inc 8│├──Middlewares 9│├──network_generate_report.txt 10│├──Src 11│├──Startup 12│├──STM32CubeIDE 13│├──STM32H743ZITX_FLASH.ld 14│└──STM32H743ZITX_RAM.ld 15├──image#相關圖片保存文件夾 16│├──mymodel1.png#model 17│└──STM32H743.jpg#H743 18├──model#model保存路徑 19│└──keras_model.h5 20├──Readme.md 21├──tf2_linear_regression.ipynb 22└──tf2_線性回歸_擴展.ipynb至此,神功練成了一大半,剩下的就是代碼調試的工作了。

3. 代碼調試

關于 STM32CubeIDE 的初步認識:基礎說明與開發流程:https://blog.csdn.net/Naisu_kun/article/details/95935283

3.1 導入工程

選擇 File 選項 --> import:

選擇先前導出工程的路徑:

導入成功的界面如下所示:

接下來就可以使用 STM32Cube IDE 來調試生成的工程了。

3.2 生成 bin文件

在編譯的過程中還會自動生成相應的 bin 文件,后續可以通過 stm32cubeProgramer 工具將 bin 文件燒錄到開發板中。

3.3 燒錄 .bin文件

打開STM32CubeProgramming,點擊右上角connect,然后選擇Open file,選擇要打開的.bin 文件。

燒錄成功的界面:

3.4 Other

在 ubuntu 系統中我們可以使用串口工具cutecom 來查看最終程序的運行結果,程序運行結果如下:

在使用 cutecom 連接串口前,記得斷開 STM32Programer 和開發板的連接,否則會出現串口打開錯誤的情況。

可以看到我們的 AI 模型已經在開發板上歡快地跑了起來 ,奧里給!!!

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

    關注

    88

    文章

    34421

    瀏覽量

    275800
  • RT-Thread
    +關注

    關注

    32

    文章

    1372

    瀏覽量

    41565

原文標題:【嵌入式AI入門日記】將 AI 模型移植到 RT-Thread 上(1)

文章出處:【微信號:LinuxDev,微信公眾號:Linux閱碼場】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    嵌入式AI技術漫談:怎么為訓練AI模型采集樣本數據

    Q 需要為嵌入式AI模型提供多少樣本數據? 我在向客戶介紹如何使用AI方法設計一款客戶產品時,客戶理解,AI
    的頭像 發表于 06-11 16:30 ?323次閱讀

    ETAS全新的嵌入式AI解決方案

    訓練后的AI神經網絡模型,自動化生成安全且高效的C代碼,用于嵌入式系統” ,近日ETAS攜全新的智能化工具Embedded
    的頭像 發表于 05-07 11:43 ?434次閱讀
    ETAS全新的<b class='flag-5'>嵌入式</b><b class='flag-5'>AI</b>解決方案

    從DeepSeekQwen,AI模型的移植與交互實戰指南-飛凌嵌入式

    在不久前發布的《技術實戰|OK3588-C開發板上部署DeepSeek-R1大模型的完整指南》一文,小編為大家介紹了DeepSeek-R1在飛凌嵌入式OK3588-C開發板上的移植
    的頭像 發表于 03-28 08:06 ?1465次閱讀
    從DeepSeek<b class='flag-5'>到</b>Qwen,<b class='flag-5'>AI</b>大<b class='flag-5'>模型</b>的移植與交互實戰指南-飛凌<b class='flag-5'>嵌入式</b>

    AI來襲!嵌入式開發者該如何應對轉型?

    設計和低功耗的編程方式,但現在,AI技術的涌入要求我們如何應對轉型,如何將傳統的嵌入式開發與新興的AI技術融合,是每個嵌入式開發者必須思考的
    的頭像 發表于 03-04 14:41 ?712次閱讀
    <b class='flag-5'>AI</b>來襲!<b class='flag-5'>嵌入式</b>開發者該如何應對轉型?

    如何將python文件導入ROS系統

    本文通過使用myCobot機械臂進行QR碼視覺追蹤的實踐案例分析,介紹如何將 python 文件導入 ROS 系統
    的頭像 發表于 02-11 11:08 ?700次閱讀
    <b class='flag-5'>如何將</b>python文件導入<b class='flag-5'>到</b>ROS<b class='flag-5'>系統</b><b class='flag-5'>中</b>

    嵌入式機器學習的應用特性與軟件開發環境

    作者:DigiKey Editor 在許多嵌入式系統,必須采用嵌入式機器學習(Embedded Machine Learning)技術,這是指
    的頭像 發表于 01-25 17:05 ?572次閱讀
    <b class='flag-5'>嵌入式</b>機器學習的應用特性與軟件開發環境

    新手怎么學嵌入式?

    基本的概念。嵌入式系統是一種將計算機技術嵌入特定設備系統,它通常具有特定的功能和有限的資源
    發表于 12-12 10:51

    AI模型部署邊緣設備的奇妙之旅:如何實現手寫數字識別

    處理,而不必傳輸到外部服務器,這有助于更好地保護用戶隱私和數據安全。 然而,邊緣計算也帶來了獨特的挑戰,特別是在資源受限的嵌入式系統部署復雜的AI
    發表于 12-06 17:20

    嵌入式和人工智能究竟是什么關系?

    對人工智能應用的實時響應。與此同時,嵌入式系統在邊緣計算和物聯網領域,也為人工智能的應用提供了廣闊的空間。 在邊緣計算嵌入式系統能夠
    發表于 11-14 16:39

    嵌入式系統的未來趨勢有哪些?

    (ML)技術的快速發展,嵌入式系統更多地整合這些先進技術,以支持智能決策和自動化。在設備上直接運行AI和ML模型,進行圖像識別、自然語言處
    發表于 09-12 15:42

    開啟全新AI時代 智能嵌入式系統快速發展——“第六屆國產嵌入式操作系統技術與產業發展論壇”圓滿結束

    嵌入式系統是電子信息產業的基礎,是智能系統的核心。大模型催生AI走入千家萬戶、喚醒端側AI的需求
    發表于 08-30 17:24

    恩智浦加速嵌入式AI創新應用開發

    AI應用飛速發展的今天,如何能夠AI嵌入式系統開發有機結合起來,營造新的開發生態,打造與眾不同的創新用例,一直是
    的頭像 發表于 08-27 09:46 ?1103次閱讀

    嵌入式機電一體化系統設計與實現》讀后感

    刻的認識。從硬件上將外圍器件整合到CPU內部,軟件上在操作系統內核嵌入應用程序,再到軟件內核或應用文件
    發表于 08-21 08:45

    嵌入式軟件開發與AI整合

    嵌入式軟件開發與AI整合是當前技術發展的重要趨勢之一。隨著人工智能技術的快速發展,嵌入式系統越來越多地集成了AI算法,以實現更復雜的智能功能
    的頭像 發表于 07-31 09:25 ?1257次閱讀
    <b class='flag-5'>嵌入式</b>軟件開發與<b class='flag-5'>AI</b>整合

    深度學習算法在嵌入式平臺上的部署

    隨著人工智能技術的飛速發展,深度學習算法在各個領域的應用日益廣泛。然而,深度學習算法部署資源受限的嵌入式平臺上,仍然是一個具有挑戰性的任務。本文將從
    的頭像 發表于 07-15 10:03 ?2859次閱讀
    主站蜘蛛池模板: 人人玩人人弄人人曰 | 亚洲天堂第一页 | 欧美成人aaaa免费高清 | 国产高清视频在线免费观看 | 亚洲三级免费 | 在线永久免费播放视频 | 四月激情网| 午夜在线视频免费观看 | xxxx日本黄色 | 国产一级真人毛爱做毛片 | 亚洲电影天堂网 | 国产欧美日韩haodiaose | 亚洲aⅴ久久久噜噜噜噜 | 女bbbbxxxx毛片视频丶 | 啪啪小视频网站 | 无遮挡很爽很污很黄很色的网站 | 成在线人视频免费视频 | 一级特黄色毛片免费看 | 亚洲高清资源 | 欧美黄色一级视频 | 日本高清www | 毛片官网 | 特级黄色淫片 | 成人午夜视频免费看欧美 | 欧美满足你的丝袜高跟ol | 天天亚洲 | 手机福利在线 | 亚洲国产一区二区三区a毛片 | 欧美天天色 | 日本大片黄色 | tube69hdxxxx日本| 男女爱爱爽爽福利免费视频 | 国产福利萌白酱喷水视频铁牛 | 手机在线看片你懂的 | 羞羞视频靠逼视频大全 | 欧美四色 | 亚洲欧洲一区二区三区在线观看 | 99热最新| 成人欧美精品一区二区不卡 | 午夜国产大片免费观看 | 特级毛片aaaa免费观看 |