电子产业一站式赋能平台

PCB联盟网

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

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

[复制链接]

528

主题

528

帖子

2940

积分

三级会员

Rank: 3Rank: 3

积分
2940
发表于 昨天 12:03 | 显示全部楼层 |阅读模式
星标+置顶,掌握嵌入式AIoT前沿技术资讯( A) d$ m4 L" s/ L. P- K% J
点赞+关注,一起变得更加优秀!
( q# T; `2 L( {3 d开发环境的软硬件设备描述, J" ]1 {, p* `

6 P, [4 X2 ~" R; c9 p3 s8 X* p9 X

+ t" L) f4 [) i5 _" r- {3 {PC主机:Windows11(32GB内存,1TB 固态硬盘): J  [) W# B! I; G  Q
虚拟机:Ubuntu22.04(分配16GB内存,512GB硬盘)& K! h! g4 E, x) s. E5 A
开发板:ELF2(RK3588 4G+32G),运行Ubuntu22.04 Desktop系统4 G' b( o. q% t6 F; G
/ ^8 M3 ~; M; x4 [5 ~' K
学习过程
2 C4 l- O2 K2 ^6 l$ z
. x5 L+ N% x" f! [- J
& \- U0 v9 a% V. F
按照开发板提供的学习文档《基于 RK3588 的AI模型训练到部署.pdf》的第一章和第二章的内容,基本上可以把开发环境搭建起来,手册可以点击【阅读原文】获取。) c2 x# D( W" `$ l$ y! m) t

8 ^8 y5 n# I' z( W; U按照手册提供的章节目录,第三章和第四章偏重于理论概念,我这边习惯先从实际操作出发,把实操环节先执行一遍,于是直接跳到了“第五章-模型部署与转换“进行学习。+ x0 }; S, t# ?/ A- ?
# L  e0 D- @% {7 H

abog512r5046402793617.png

abog512r5046402793617.png

/ V4 f4 T! k) u& v% A" j- b3 Z1 j" a0 Q( L0 }& _
第五章是使用瑞芯微提供的rknn_model_zoo模型库进行演示的,一顿猛如虎的操作之后,基本可以总结出以下规律:$ a+ ^6 c& ?3 u: G

* H: `0 w, _) ]) M7 p7 [1、在虚拟机Ubuntu22.04中解压 rknn_model_zoo-2.1.0压缩包。7 u8 g, w. N) M1 ?/ P: G
1 z0 a' r$ a9 ~. @
2、使用 export GCC_COMPILER设置环境变量。. o: X8 k, `/ H+ v' n6 E2 E

# X: g6 a; E) ]3 u4 ]  C3、进入rknn_model_zoo-2.1.0/exampes目录,选择模型例程。0 \3 _, _1 B" t7 m. W' m& q! U
: m! T! H% @6 R: l4 S
4、执行download_model.sh脚本,把模型下载到虚拟机。
0 L  y# S# Y4 ~; K) F4 O# c; g2 O0 L
) v( q6 f- Q1 Z0 J3 M9 i

. ^/ m$ l7 m+ p: P  h5 m5、执行Python脚本开始把下载的模型转换为RKNN模型。8 x" a9 X" |5 `3 X* }. r) i
; F# |( s+ u0 l
4 \+ j" @+ z% X' J1 U. e! C/ ^
6、执行build-linux.sh脚本,编译例程源码,生成可执行文件。
, N) o$ H; T4 ]9 p# |7 u# ~( _* m
# B2 z% m4 g7 F* h1 |1 G6 O
9 Y. }9 H9 K' z8 Z; f( O6 w8 }9 W- Q
7、在rknn_model_zoo-2.1.0/install目录下,会找到生成的例程。' L1 ^# u& S. J' m6 a0 V, @

* G  Q. z8 `7 a8、上传到开发板运行,可以在终端里面看到例程的执行结果。
. m& E" {, u0 n8 J( e% i2 |4 s! w8 h
在以上过程里面,第4/5/6步是与模型的下载-转换-部署相关的,基本上整个第五章都是遵循这个流程。. a/ D! }5 o7 _* h5 @, F9 ?+ s9 _0 H

" c; q2 v5 e3 o5 v" {- a" \& T1 j& I因为rknn_model_zoo是瑞芯微封装好的模型集合,所以我们跟着手册学习这个模型库的时候,基本上都是step by step的操作,更深入的细节还需要我们去学习分析。
: e: n: e  x+ J) ~% k
6 F! }& ?" y7 F7 E比如,打开download_model.sh文件,发现是在网络直接下载已经训练好的模型,但模型的训练细节与优化在该脚本没有描述(也没必要描述),直接先用别人训练好的模型。. |4 j+ G% D8 T! b+ A
8 l6 x; h5 ?7 X/ Y- I
每个例程都有一个Python文件夹,比如resnet例程,会有一个resnet.py脚本,这个脚本是用来把其他格式的模型转换为rknn格式的模型,这个Python脚本是如何编写出来的,还需要进行更深入的学习。
6 G3 E  W4 [) Z
( i. S6 G+ c+ P4 b3 D1 `. Xbuild-linux.sh脚本是编译例程的可执行文件,执行完这个脚本之后,就可以得出该例程在开发板上面的可执行文件,但build-linux.sh脚本的执行细节,需要自行找资料进行学习。. Z- S  @' i9 D: K

0 c, |$ r( ~1 u2 U把转换为rknn格式的模型和应用程序都上传到开发板,采用命令行的方式运行应用程序,就可以得出期望的输出结果。! C2 s  @2 v$ |1 r7 H3 ~
# M' K6 p( W  f/ a, m- e- |

cyrmvw5cz1f6402793717.jpg

cyrmvw5cz1f6402793717.jpg
3 m; }3 I8 D" v* w6 n( v2 l; E4 H/ o

( k! K& X  u8 {( @8 S总结
2 l: Z9 R/ b0 p( b) c# A, B; |+ }. z- Y: _, S* I1 Y4 l) e
整个章节学习下来,基本上是比较简单的step by step操作,没太大的难度,预计花费半天到一天左右,学习了这个章节之后,会对模型的转换和部署有一个直观的认识。
. {: y4 _+ b5 N. I6 R( v# |
5 ~6 [( C9 e& J下一步,我们继续尝试学习一下rkllm-toolkit的部署,这是瑞芯微提供的一个大语言模型,并且尝试在ELF2开发板上面部署DeepSeek。( R- ~2 w, L) L" m

* W& j4 O2 K' H0 O感谢阅读!: h: s. ]& d& V" U5 h5 u+ J$ ~
-END-
% W# V& ~* \2 x/ \  F往期推荐:点击图片即可跳转阅读& r% b7 Z# s- C6 n6 }

y3gwocdwiom6402793817.jpg

y3gwocdwiom6402793817.jpg

2 }6 E. p7 l7 D# H: \8 N7 L嵌入式AI入坑第一步,先把开发环境搭建起来!* j$ S% g# e4 y6 @  e: e

k1jpefucvek6402793917.jpg

k1jpefucvek6402793917.jpg

4 N, Z3 a  k: f+ ^1 E  n好玩的嵌入式 AI ,机器视觉和音视频处理5 N" E* Z. N5 d8 v% P$ N

wjkmfun3s556402794017.jpg

wjkmfun3s556402794017.jpg
5 J) f8 c. W+ u$ ]# z4 ?( Q
今年35岁,大专学历,学习嵌入式端侧AI技术,还合适吗?1 A7 S* `( _/ M6 I3 I
星标+置顶,掌握嵌入式AIoT前沿技术资讯, y  g! H3 C6 j, d( W- w; \6 F( A& |
点赞+关注,一起变得更加优秀!
回复

使用道具 举报

发表回复

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

本版积分规则


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