RK3568笔记一:RKNN开发环境搭建

若该文为原创文章,转载请注明原文出处。

由于对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


至此环境搭建完成。

如有侵权,或需要完整代码,请及时联系博主。

相关推荐
nenchoumi31192 分钟前
ROS2 Humble 笔记(四)ROS 的最小工作单元-- Node 节点
笔记·机器人·ros2
搞机械的假程序猿1 小时前
普中51单片机学习笔记-流水灯
笔记·学习·51单片机
lally.1 小时前
未来的一些想法和规划
笔记
xian_wwq2 小时前
【学习笔记】《孙子兵法》与网络安全
网络·笔记·学习
d111111111d2 小时前
STM32外设学习-ADC模数转换器(代码部分)四个模块,光敏,热敏,电位,反射式红外。
笔记·stm32·单片机·嵌入式硬件·学习
nenchoumi31192 小时前
ROS2 Humble 笔记(八)动作 action
笔记·机器人·ros2
三品吉他手会点灯3 小时前
STM32F103学习笔记-16-RCC(第3节)-使用HSE配置系统时钟并使用MCO输出监控系统时钟
c语言·笔记·stm32·单片机·嵌入式硬件·学习
摇滚侠3 小时前
Vue 项目实战《尚医通》,医院详情菜单与子路由,笔记17
前端·vue.js·笔记
CarmenHu3 小时前
IBM RAG挑战赛冠军方案学习笔记
笔记·学习
赶飞机偏偏下雨3 小时前
【MySQL笔记】索引 (非常重要)
笔记