若该文为原创文章,转载请注明原文出处。
由于对AI的好奇,想要学习如何部署AI,所以从RV1126到RK3568中过渡。
一、介绍
RK3568开发板使用的是正点原子新出的ATK-DLRK3568 开发板,主要是学习从训练到部署的全过程,并记录,为自己的学习作个总结。关于ATK-DLRK3568 开发板,正点原子正在出教程,资料也开源,手册目前相对少一点,但不影响学习,因为主要是AI部分,所以基本要自己摸索。
本篇从开发环境搭建开始记录,大部分在03【正点原子】ATK-DLRK3568_AI例程测试手册V1.0.pdf里有,具体要了解,可以去下载资料。
虚拟机和系统自行安装,博主使用的是原子哥提供好的虚拟环境。
接下来记录:SDK编译,RKNN环境安装。
开发板系统主要使用的是linux,其他系统自行测试。
二、安装 RK3568 Linux SDK
1、安装依赖软件包
sudo apt-get update
sudo apt-get install curl python2.7 python-pyelftools git ssh make gcc libssl-dev liblz4-tool expect g++
patchelf chrpath gawk texinfo chrpath diffstat binfmt-support qemu-user-static live-build bison flex
fakeroot cmake gcc-multilib g++-multilib unzip device-tree-compiler python3-pip libncurses-dev python3-pyelftools vim mtd-utils
2、设置python 版本
将 python2 设置为系统默认 python 版本:
sudo rm -rf /usr/bin/python
sudo ln -s /usr/bin/python2 /usr/bin/python
3、安装 SDK
解压网盘里的SDK,
atk-
rk3568_linux_release_v1.0_20230620.tgz
mkdir ~/rk3568_linux_sdk
tar xvf atk-rk3568_linux_release_v1.0_20230620.tgz -C ~/rk3568_linux_sdk
检出源码
cd ~/rk3568_linux_sdk/
.repo/repo/repo sync -l -j10
完成后就可以看到源码了
SDK
工程目录介绍
SDK
源码根目录下包含有
app
、
buildroot
、
debian
、
device
、
external
、
tools
、
u-boot
、
yocto
等多个目录,每个目录或其子目录会对应一个
git
工程;因为
SDK
的代码和相关文档被划分成
了若干
git
仓库分别进行版本管理(所以
SDK
实际上包含有若干
git
仓库),它们按照功能、所
属模块划分,分别组织到不同的目录下。
⚫
app
:存放上层应用
app
,包括
Qt
应用程序,以及其它的
C/C++
应用程序。
⚫
buildroot
:基于
buildroot
开发的根文件系统。
⚫
debian
:基于
Debian
开发的根文件系统。
⚫
device/rockchip
:存放各芯片板级配置文件和
Parameter
分区表文件,以及一些编译与
打包固件的脚本和预备文件。
⚫
docs
:存放芯片模块开发指导文档、平台支持列表、芯片平台相关文档、
Linux
开发指
南等。
⚫
external
:存放所需的第三方库,包括音频、视频、网络、
recovery
等。
⚫
kernel
:
Linux 4.19
版本内核源码。
⚫
prebuilts
:存放交叉编译工具链。
⚫
rkbin
:存放
Rockchip
相关的
Binary
和工具。
⚫
rockdev
:存放编译输出固件,编译
SDK
后才会生成该文件夹。
⚫
tools
:存放
Linux
和
Windows
操作系统环境下常用的工具,包括镜像烧录工具、
SD
卡
升级启动制作工具、批量烧录工具等,譬如前面给大家介绍的
RKDevTool
工具以及
Linux_Upgrade_Tool
工具都存放在该目录。
⚫
u-boot
:基于
v2017.09
版本进行开发的
uboot
源码。
⚫
yocto
:基于
Yocto
开发的根文件系统。
软件框图:
4、SDK 编译
编译可以单独编译,也可以全自动编译,首次编译检测全自动编译。
首先进入到
SDK
源码根目录下,配置板级文件。
./build.sh lunch
接下来,拷贝第三方库,
开发板资料包里有提供,即dl文件。
将dl.tgz解压到<SDK>/buildroot
目录下
tar -xzf dl.tgz -C ~/rk3568_linux_sdk/buildroot/
接下来就是编译,编译的时间长短和电脑有关,我编译了大概半小时,无意外,编译成功。
./build.sh all
暂时没有做其他的功能,单纯的想要弄AI,所以没单独编译,可以看手册跟着原子哥做一遍。
三、RKNN开发环境搭建
1、安装交叉编译工具链
资料包里提供了工具链
atk-dlrk3568-toolchain-arm-buildroot-linux-gnueabihf-x86_64-20230621-v1.0.0.run,直接安装就好,拷贝到虚拟机里。
chmod a+x atk-dlrk3568-toolchain-arm-buildroot-linux-gnueabihf-x86_64-20230621-v1.0.0.run
./atk-dlrk3568-toolchain-arm-buildroot-linux-gnueabihf-x86_64-20230621-v1.0.0.run
2、anaconda 的下载安装
下载anaconda
mkdir ~/software
cd ~/software
wget -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2023.03-1-Linux-x86_64.sh
安装
bash Anaconda3-2023.03-1-Linux-x86_64.sh
安装完成后,重启下ubuntu,重新
打开终端会发现前面多了个(
base
)。
为了方便,执行下面命令,不自动进入conda的虚拟环境
conda config --set auto_activate_base false
3、anaconda 的环境配置
a
、首先执行以下命令查看下当前镜像源,显示只有个
defaults
默认源。
conda config --show channels
b
、接下来我们添加清华源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
四、安装 rknn-toolkit2 转换环境
1、下载 rknn-toolkit2
资料包里提供了rknn-toolkit2-1.5.0.zip文件,也可以在github上下载
2、新建 conda 环境
conda create --name py3.8 python=3.8
3、安装 rknn-toolkit2
激活
conda
环境
conda activate py3.8
进入rknn-toolkit2-1.5.0/doc目录,安装依赖
pip install -r requirements_cp38-1.5.0.txt -i https://mirror.baidu.com/pypi/simple
4、安装 rknn-toolkit2 工具
进入
rknn-toolkit2-1.5.0/packages目录
pip install rknn_toolkit2-1.5.0+1fa95b5c-cp38-cp38-linux_x86_64.whl
5、测试 rknn-toolkit2
们进到对应的
tflite
的例程目录,测试下
mobilenet_v1
的例程是否正常。
进入到rknn-toolkit2-1.5.0/examples/tflite/mobilenet_v1/目录下,执行下面命令测试。
python test.py
五、测试 buildroot 下的 python 推理例程
1、安装 RKNN Toolkit Lite2
RKNN Toolkit Lite2
为
Rockchip NPU
平台提供
Python
编程接口,帮助用户部署
RKNN
模
型,加速
AI
应用的落地。接下来我们讲解下如何在板子上安装那个
rknn-toolkit-lite2
环境。
安装 RKNN Toolkit Lite2,需要把rknn_toolkit_lite2-1.5.0-cp38-cp38-linux_aarch64.whl放到板子上在安装。
所以先在ubuntu使用adb方式传到开发板,执行下面命令:
进到 rknn-toolkit2-1.5.0/rknn_toolkit_lite2/packages
目录
adb push rknn_toolkit_lite2-1.5.0-cp38-cp38-linux_aarch64.whl /userdata
传输完成后打开开发板串口终端或者
ssh
终端,进到目录
userdata
目录
输入以下命令进行安装。
cd /userdata
pip install rknn_toolkit_lite2-1.5.0-cp38-cp38-linux_aarch64.whl
2、测试 python 下的 AI 例程
进入
rknn_toolkit_lite2 目录,把例程传到开发板
adb push examples/inference_with_lite/ /userdata
传输完毕后,打开开发板的串口终端,进入到
/userdata/inference_with_lite/
目录
输入以下命令执行看下效果。
cd /userdata/inference_with_lite/
python test.py
至此环境搭建完成。
如有侵权,或需要完整代码,请及时联系博主。