91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

如何將AI模型部署到嵌入式系統(tǒng)中

Linux閱碼場 ? 來源:Linuxer ? 2020-08-03 16:28 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

嵌入式關(guān)聯(lián) AI

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

開發(fā)環(huán)境:

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

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

1. 準(zhǔn)備工作

1.1 安裝開發(fā)環(huán)境

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

STM32CubeMx

STM32CubeIDE

STM32CubeProgrammer

STM32CubeProgrammer 在 ubuntu 環(huán)境下使用可能會出現(xiàn)如下錯誤:

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

1# Oracle官網(wǎng)中下載 JavaSEJDK壓縮包 2$sudotarzxvfjdk-8u172-linux-x64.tar.gz-C/usr/lib/jvm 3#將下載的JDK注冊到系統(tǒng)中 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 端搭建極簡神經(jīng)網(wǎng)絡(luò)

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

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

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

tf2_linear_regression.ipynb 內(nèi)含三種不同方式搭建網(wǎng)絡(luò)結(jié)構(gòu)

tf2_線性回歸_擴(kuò)展.ipynb 內(nèi)含不同方式訓(xùn)練模型

其中,在模型搭建的時候,重新溫習(xí)了一下,有三種方式(各個方式的優(yōu)缺點(diǎn)已經(jīng)放在參考文章當(dāng)中,感興趣的同學(xué)自行查閱):

Sequence

函數(shù)式 API

子類

后面將 AI 模型導(dǎo)入到 CubeMx 的過程中,如果使用后兩種方式生成的網(wǎng)絡(luò)模型,將會遇到如下報錯:

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

2. 使用 CubeMX AI生成工程

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

2.1 打開CubeMX

2.2 安裝CUBE-AI 軟件包

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

在工程中導(dǎo)入X-CUBE-AI插件:

會出現(xiàn)如下界面:

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

2.3 導(dǎo)入 AI 模型到工程中

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

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

驗證成功界面如下所示:

2.4 生成項目工程

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

生成后的 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#相關(guān)圖片保存文件夾 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_線性回歸_擴(kuò)展.ipynb至此,神功練成了一大半,剩下的就是代碼調(diào)試的工作了。

3. 代碼調(diào)試

關(guān)于 STM32CubeIDE 的初步認(rèn)識:基礎(chǔ)說明與開發(fā)流程:https://blog.csdn.net/Naisu_kun/article/details/95935283

3.1 導(dǎo)入工程

選擇 File 選項 --> import:

選擇先前導(dǎo)出工程的路徑:

導(dǎo)入成功的界面如下所示:

接下來就可以使用 STM32Cube IDE 來調(diào)試生成的工程了。

3.2 生成 bin文件

在編譯的過程中還會自動生成相應(yīng)的 bin 文件,后續(xù)可以通過 stm32cubeProgramer 工具將 bin 文件燒錄到開發(fā)板中。

3.3 燒錄 .bin文件

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

燒錄成功的界面:

3.4 Other

在 ubuntu 系統(tǒng)中我們可以使用串口工具cutecom 來查看最終程序的運(yùn)行結(jié)果,程序運(yùn)行結(jié)果如下:

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

可以看到我們的 AI 模型已經(jīng)在開發(fā)板上歡快地跑了起來 ,奧里給?。?!

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

    關(guān)注

    91

    文章

    39903

    瀏覽量

    301538
  • RT-Thread
    +關(guān)注

    關(guān)注

    32

    文章

    1615

    瀏覽量

    44912

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

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

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

掃碼添加小助手

加入工程師交流群

    評論

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

    知識分享-嵌入式系統(tǒng)可靠性模型

    嵌入式系統(tǒng)可靠性設(shè)計技術(shù)及案例解析1.3嵌入式系統(tǒng)可靠性模型嵌入式
    的頭像 發(fā)表于 03-11 16:43 ?8次閱讀
    知識分享-<b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)</b>可靠性<b class='flag-5'>模型</b>

    面向嵌入式部署的神經(jīng)網(wǎng)絡(luò)優(yōu)化:模型壓縮深度解析

    更多參數(shù)、每次推理需要更多算術(shù)運(yùn)算,使其難以部署嵌入式硬件上。 對于嵌入式系統(tǒng)而言,資源極其有限。內(nèi)存空間受限,因此在桌面或云平臺上輕松運(yùn)行的模型
    的頭像 發(fā)表于 02-24 15:37 ?5080次閱讀
    面向<b class='flag-5'>嵌入式</b><b class='flag-5'>部署</b>的神經(jīng)網(wǎng)絡(luò)優(yōu)化:<b class='flag-5'>模型</b>壓縮深度解析

    什么是嵌入式應(yīng)用開發(fā)?

    、實現(xiàn)和部署,還包括硬件選擇、軟件設(shè)計、測試、集成和維護(hù)等流程?。 定義和背景 嵌入式應(yīng)用開發(fā)是指軟件部署
    發(fā)表于 01-12 16:13

    嵌入式軟件單元測試AI自動化與人工檢查的協(xié)同機(jī)制研究:基于專業(yè)工具的實證分析

    ? ?摘要****? 本文系統(tǒng)探討嵌入式軟件相較于通用軟件在單元測試層面的特殊性,分析其對高覆蓋率、可追溯性與實時性驗證的嚴(yán)苛需求,并以專業(yè)工具winAMS為技術(shù)載體,深入研究AI驅(qū)動的自動化測試在
    發(fā)表于 12-31 11:22

    基于ETAS嵌入式AI工具鏈機(jī)器學(xué)習(xí)模型部署量產(chǎn)ECU

    AI在汽車行業(yè)的應(yīng)用日益深化,如何將機(jī)器學(xué)習(xí)領(lǐng)域的先進(jìn)模型(如虛擬傳感器)集成ECU軟件,已成為業(yè)界面臨的核心挑戰(zhàn)。
    的頭像 發(fā)表于 12-24 10:55 ?6136次閱讀
    基于ETAS<b class='flag-5'>嵌入式</b><b class='flag-5'>AI</b>工具鏈<b class='flag-5'>將</b>機(jī)器學(xué)習(xí)<b class='flag-5'>模型</b><b class='flag-5'>部署</b><b class='flag-5'>到</b>量產(chǎn)ECU

    【深圳】嵌入式AI實戰(zhàn):半天上手,人形檢測模型部署+優(yōu)化全流程

    12月27日(周六)深圳南山區(qū),我們舉辦一場純干貨的嵌入式AI實戰(zhàn)培訓(xùn)!全程動手操作,半天時間讓你從零上手,完成AI模型部署與優(yōu)化。
    的頭像 發(fā)表于 12-17 15:16 ?779次閱讀
    【深圳】<b class='flag-5'>嵌入式</b><b class='flag-5'>AI</b>實戰(zhàn):半天上手,人形檢測<b class='flag-5'>模型</b><b class='flag-5'>部署</b>+優(yōu)化全流程

    【深圳】嵌入式AI實戰(zhàn):半天上手,人形檢測模型部署+優(yōu)化全流程

    12月27日(周六)深圳南山區(qū),我們舉辦一場純干貨的嵌入式AI實戰(zhàn)培訓(xùn)!全程動手操作,半天時間讓你從零上手,完成AI模型部署與優(yōu)化。
    的頭像 發(fā)表于 12-17 14:40 ?491次閱讀
    【深圳】<b class='flag-5'>嵌入式</b><b class='flag-5'>AI</b>實戰(zhàn):半天上手,人形檢測<b class='flag-5'>模型</b><b class='flag-5'>部署</b>+優(yōu)化全流程

    【深圳】嵌入式AI實戰(zhàn):半天上手,人形檢測模型部署+優(yōu)化全流程

    你是否在項目中遇到這些痛點(diǎn):AI模型太大,無法高效部署資源受限的嵌入式設(shè)備?模型優(yōu)化后,內(nèi)存和
    的頭像 發(fā)表于 12-16 18:31 ?76次閱讀
    【深圳】<b class='flag-5'>嵌入式</b><b class='flag-5'>AI</b>實戰(zhàn):半天上手,人形檢測<b class='flag-5'>模型</b><b class='flag-5'>部署</b>+優(yōu)化全流程

    從小白大牛:Linux嵌入式系統(tǒng)開發(fā)的完整指南

    與 Linux 混合編程)。例如,在嵌入式設(shè)備上部署圖像識別模型,需掌握交叉編譯 AI 框架、優(yōu)化模型體積與運(yùn)行速度。? 工程化能力提升:
    發(fā)表于 12-16 10:42

    RA8P1部署ai模型指南:從訓(xùn)練模型部署?|?本周六

    嵌入式邊緣AI,如何把“訓(xùn)練好的模型”穩(wěn)定地“跑在板子上”,決定了項目能否落地。我們帶你基于RA8P1平臺,跑通從數(shù)據(jù)準(zhǔn)備、模型訓(xùn)練、量
    的頭像 發(fā)表于 11-20 18:06 ?2099次閱讀
    RA8P1<b class='flag-5'>部署</b><b class='flag-5'>ai</b><b class='flag-5'>模型</b>指南:從訓(xùn)練<b class='flag-5'>模型</b><b class='flag-5'>到</b><b class='flag-5'>部署</b>?|?本周六

    新唐科技推出高效AI MCU部署工具NuML Toolkit

    隨著 AI 技術(shù)加速導(dǎo)入各類嵌入式系統(tǒng),如何將訓(xùn)練完成的 AI 模型順利
    的頭像 發(fā)表于 08-01 17:21 ?2293次閱讀

    嵌入式AI技術(shù)漫談:怎么為訓(xùn)練AI模型采集樣本數(shù)據(jù)

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

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

    訓(xùn)練后的AI神經(jīng)網(wǎng)絡(luò)模型,自動化生成安全且高效的C代碼,用于嵌入式系統(tǒng)” ,近日ETAS攜全新的智能化工具Embedded
    的頭像 發(fā)表于 05-07 11:43 ?2073次閱讀
    ETAS全新的<b class='flag-5'>嵌入式</b><b class='flag-5'>AI</b>解決方案

    飛凌嵌入式「2025嵌入式及邊緣AI技術(shù)論壇」議程公布

    4月22日,飛凌嵌入式“2025嵌入式及邊緣AI技術(shù)論壇”將在深圳舉行,論壇以“新生態(tài),智未來”為主題,旨在匯聚行業(yè)智慧,探討嵌入式技術(shù)與邊緣AI
    的頭像 發(fā)表于 04-02 15:12 ?1377次閱讀
    飛凌<b class='flag-5'>嵌入式</b>「2025<b class='flag-5'>嵌入式</b>及邊緣<b class='flag-5'>AI</b>技術(shù)論壇」議程公布

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

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