电子产业一站式赋能平台

PCB联盟网

搜索
查看: 113|回复: 0
收起左侧

嵌入式AI入坑第二步,模型转换与部署!

[复制链接]

568

主题

568

帖子

4221

积分

四级会员

Rank: 4

积分
4221
发表于 2025-3-9 12:03:00 | 显示全部楼层 |阅读模式
星标+置顶,掌握嵌入式AIoT前沿技术资讯& S" _- z3 b  |4 f; _
点赞+关注,一起变得更加优秀!% S/ U% p* P, C) z) O
开发环境的软硬件设备描述
' S* l; ?& \# ^5 v- D: W3 K: p
5 q2 [5 q5 h* {% s) D

) b' t3 b; S% v2 o! b5 N. rPC主机:Windows11(32GB内存,1TB 固态硬盘); Z; g4 k6 `5 a: p: H9 u/ y
虚拟机:Ubuntu22.04(分配16GB内存,512GB硬盘)6 y5 J$ n# u7 r4 H* v
开发板:ELF2(RK3588 4G+32G),运行Ubuntu22.04 Desktop系统
0 g+ Z* D5 ~# n/ c& b% Q& t5 o2 E! Y) d" G
学习过程
! g. J4 I+ `; P/ Z0 \( m8 m+ {$ [3 Q! Y5 [( z

- u: V; }( a; o按照开发板提供的学习文档《基于 RK3588 的AI模型训练到部署.pdf》的第一章和第二章的内容,基本上可以把开发环境搭建起来,手册可以点击【阅读原文】获取。3 r, c/ H9 A6 Y" j. g) Q1 u! T1 g

1 ~! Z9 `8 Z) A) \: V按照手册提供的章节目录,第三章和第四章偏重于理论概念,我这边习惯先从实际操作出发,把实操环节先执行一遍,于是直接跳到了“第五章-模型部署与转换“进行学习。
  X! G; H8 ]3 a" ?# T2 [2 S+ |7 J7 x/ R: x# `" W8 K

abog512r5046402793617.png

abog512r5046402793617.png
: {$ f* E; w, P

+ l2 @2 g( K$ K4 A/ t第五章是使用瑞芯微提供的rknn_model_zoo模型库进行演示的,一顿猛如虎的操作之后,基本可以总结出以下规律:
0 d+ q. E7 [- q: W4 \0 z! k/ d
) H5 X# O# r7 `. I1、在虚拟机Ubuntu22.04中解压 rknn_model_zoo-2.1.0压缩包。
1 C1 f5 }7 x1 \/ M6 L+ G! I% r% _3 o9 P* S* _6 [( P5 V4 c
2、使用 export GCC_COMPILER设置环境变量。) m0 M6 |! p, {/ I2 h. T/ ^

# X2 n: V) o. }/ _3 O- x3、进入rknn_model_zoo-2.1.0/exampes目录,选择模型例程。
' a2 \; j8 k% h0 U9 L6 _- f
& t) E: e0 i! w5 _; {: W4、执行download_model.sh脚本,把模型下载到虚拟机。
7 g3 z7 h' b3 q# o% M6 p! m1 _7 J# G: h4 s& j
+ {: A3 w6 R& q: h
5、执行Python脚本开始把下载的模型转换为RKNN模型。
( j0 ^0 V9 C, [% g& {7 _4 m- ~, \: `0 {, ]$ R  S
% Z: _1 n: q( T. j6 X5 k; u9 z- p
6、执行build-linux.sh脚本,编译例程源码,生成可执行文件。1 h+ B! w7 F. z. Y2 Q8 L5 q. `& ?; L. q
9 R4 N7 P+ K# U. T9 O* r# p1 T

4 V9 I9 K0 f5 x7、在rknn_model_zoo-2.1.0/install目录下,会找到生成的例程。
: W! q! d. g# U
1 k+ B: n- t! T( I8、上传到开发板运行,可以在终端里面看到例程的执行结果。) K) j$ s* F% z/ f
! u9 q! U- S  x) v( }+ _: v
在以上过程里面,第4/5/6步是与模型的下载-转换-部署相关的,基本上整个第五章都是遵循这个流程。
/ b" K7 |) A: c/ e9 r! h  n3 g% T7 G  Z' P9 L
因为rknn_model_zoo是瑞芯微封装好的模型集合,所以我们跟着手册学习这个模型库的时候,基本上都是step by step的操作,更深入的细节还需要我们去学习分析。
, r0 Z+ q7 d& L* U( B1 \- a) C3 y& j5 I/ {7 R
比如,打开download_model.sh文件,发现是在网络直接下载已经训练好的模型,但模型的训练细节与优化在该脚本没有描述(也没必要描述),直接先用别人训练好的模型。
) \9 w5 P4 n) d8 w1 D4 O+ s! E1 R2 c& X2 w. }, f4 j# T0 N6 w
每个例程都有一个Python文件夹,比如resnet例程,会有一个resnet.py脚本,这个脚本是用来把其他格式的模型转换为rknn格式的模型,这个Python脚本是如何编写出来的,还需要进行更深入的学习。
( t  o( b% l8 s1 \5 L; o' n! f! E9 o
build-linux.sh脚本是编译例程的可执行文件,执行完这个脚本之后,就可以得出该例程在开发板上面的可执行文件,但build-linux.sh脚本的执行细节,需要自行找资料进行学习。* W  ?, n: h9 R0 _+ G5 R9 W& v
8 n, g( j/ V* T0 @& @: W+ b7 r0 A
把转换为rknn格式的模型和应用程序都上传到开发板,采用命令行的方式运行应用程序,就可以得出期望的输出结果。6 f0 r0 s- @& W* {4 `5 U# q

( m. k8 U; v9 _8 f" F

cyrmvw5cz1f6402793717.jpg

cyrmvw5cz1f6402793717.jpg

. E# g0 g6 U' {8 Q- P% b, P
* T) S+ u( h/ t) ~总结. V  f  a4 z( m% L

. h6 i3 V! F" N" ?5 Z6 z整个章节学习下来,基本上是比较简单的step by step操作,没太大的难度,预计花费半天到一天左右,学习了这个章节之后,会对模型的转换和部署有一个直观的认识。* X7 b) ]  E3 g% V/ r

$ K- o. q7 `( A- r, F下一步,我们继续尝试学习一下rkllm-toolkit的部署,这是瑞芯微提供的一个大语言模型,并且尝试在ELF2开发板上面部署DeepSeek。
$ L) B" M% V" I9 L! q8 x, i- A5 L6 z. w2 @
感谢阅读!! F1 C! f1 @; H0 V
-END-& ?- q: ]4 |/ i) ~5 j5 j7 Z. I3 a
往期推荐:点击图片即可跳转阅读; L) Y% d4 m5 R9 U& k# [4 E

y3gwocdwiom6402793817.jpg

y3gwocdwiom6402793817.jpg
0 C& r% T% \# R. m
嵌入式AI入坑第一步,先把开发环境搭建起来!
. K, I1 `( e6 ]) }9 `, _5 S8 g

k1jpefucvek6402793917.jpg

k1jpefucvek6402793917.jpg
" k/ ~( L! J$ W! O3 C! K
好玩的嵌入式 AI ,机器视觉和音视频处理
1 _4 T7 X; p$ r/ |

wjkmfun3s556402794017.jpg

wjkmfun3s556402794017.jpg

! [0 }" `, q) ?# k% t4 d: g. W2 j今年35岁,大专学历,学习嵌入式端侧AI技术,还合适吗?0 Z; C5 ?% n! X6 K/ X5 A& h
星标+置顶,掌握嵌入式AIoT前沿技术资讯
; n$ Z  u, J$ e5 u! V( i1 i点赞+关注,一起变得更加优秀!
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


联系客服 关注微信 下载APP 返回顶部 返回列表