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


至此环境搭建完成。

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

相关推荐
想唱rap1 小时前
C++ list 类的使用
c语言·开发语言·数据结构·c++·笔记·算法·list
朝新_2 小时前
【EE初阶】JVM
java·开发语言·网络·jvm·笔记·算法·javaee
牛马大师兄3 小时前
STM32实现低功耗管理使用配置知识梳理笔记
笔记·stm32·单片机·嵌入式硬件·物联网·低功耗
chushiyunen5 小时前
neo4j图数据库笔记
数据库·笔记·neo4j
丰锋ff6 小时前
2005 年真题配套词汇单词笔记(考研真相)
笔记
摇滚侠6 小时前
Spring Boot3零基础教程,生命周期启动加载机制,笔记64
spring boot·笔记
摇滚侠6 小时前
Spring Boot3零基础教程,整合 Redis,笔记69
spring boot·redis·笔记
JJJJ_iii6 小时前
【机器学习08】模型评估与选择、偏差与方差、学习曲线
人工智能·笔记·python·深度学习·学习·机器学习
CosimaLi7 小时前
CMake学习笔记
笔记·学习
岑梓铭7 小时前
《考研408数据结构》第六章(5.1+5.2+5.3树、二叉树、线索二叉树)复习笔记
数据结构·笔记·考研·408·1024程序员节