2. 开发环境准备

2.1 RKNN-Toolkit2版本介绍

RKNN-Toolkit2 总共有支持两种不同的版本,一种是 x86版本,另外一种是 ARM64版本,两个版本的安装教程都一样。 :::info 注意

  • ARM64版本不支持docker安装。

  • ARM64版本仅支持转换模型时使用onnx和pytorch框架下的模型,其他框架的模型暂时不支持。 :::

目前RKNN-Toolkit2的2个版本所支持深度学习框架的差异:

深度学习框架

x86版本

ARM64版本

Caffe

✔️

TensorFlow

✔️

TF Lite

✔️

ONNX

✔️

✔️

DarkNet

✔️

PyTorch

✔️

✔️

两者所依赖的工具差异:

依赖工具

x86版本

ARM64版本

adb

✔️

rknn_server

✔️

rknn runtime

✔️

✔️

两个版本使用差异:

主要差异在于调试功能包含精度分析,连板调试,内存和性能分析部分。

ARM64版本直接在Linux系统的板端安装之后,只需直接使用上述对应功能,不需要启动rknn_server,只需保证板端上的/usr/lib64有对应的 librknnrt.so ,即可调用调试功能。由于ARM64版本不支持adb,所以所有调试功能都仅能在当前板端使用。

x86版本需要更新并启动rknn_server,并且支持adb功能连接其他设备所以需保证adb正常使用状态下才能使用调试功能。

除此之外,x86版本和ARM64版本可能会存在性能差异,特别是在精度分析上或者使用大量图片做量化的情况下。

2.2 RKNN-Toolkit2安装

本章节提供两种RKNN-Toolkit2安装方式,通过Docker方式安装和通过pip方式安装,用户可自行选择任意一种方式进行安装。

2.2.1 通过Docker方式安装

2.2.1.1 安装Docker工具

已安装Docker工具的用户可跳过此步骤,未安装的用户请根据官方手册进行安装:[Docker官方安装手册链接](https://docs.docker.com/install/ linux/docker-ce/ubuntu/)

:::tip 注意事项 需要将用户添加到docker用户组

# 创建docker用户组
sudo groupadd docker
# 把当前用户加入docker用户组
sudo usermod -aG docker $USER
# 更新激活docker用户组
newgrp docker
# 验证不需要sudo执行docker命令
docker run hello-world

正确运行结果展示:

Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
719385e32844: Pull complete
Digest: sha256:88ec0acaa3ec199d3b7eaf73588f4518c25f9d34f58ce9a0df68429c5af48e8d
Status: Downloaded newer image for hello-world:latest
Hello from Docker!

:::

2.2.1.2 镜像准备

本节介绍两种RKNN-Toolkit2镜像环境准备方式,可任选一种方式进行操作。

  1. 通过Dockerfile创建镜像环境

在RKNN-Toolkit2工程中docker/docker_file文件夹下,提供了构建RKNN-Toolkit2开发环境的Dockerfile文件,用户通过Docker命令创建镜像, 如下所示。

# 注:以下xx和x.x.x代表版本号,请根据实际数值进行替换
cd docker/docker_file/ubuntu_xx_xx_cpxx
docker build -f Dockerfile_ubuntu_xx_xx_for_cpxx -t rknn-toolkit2:x.x.x-cpxx.
  1. 加载已打包所有开发环境的Docker镜像

下载对应版本的RKNN-Toolkit2工程文件,解压后在docker/docker_image文件夹下获取已打包所有开发环境的Docker镜像。

网盘下载链接:https://console.zbox.filez.com/l/I00fc3。提取码:rknn

执行以下命令加载对应Python版本的镜像文件。

# 注:x.x.x代表RKNN-Toolkit2的版本号,cpxx代表的是Python的版本号
docker load --input rknn-toolkit2-x.x.x-cpxx-docker.tar.gz

2.2.1.3 查询镜像信息

创建或加载镜像成功后,查看Docker的镜像信息。

docker images

相应的RKNN-Toolkit2镜像信息显示。

REPOSITORY

TAG

IMAGE ID

CREATED

SIZE

rknn-toolkit2

x.x.x-cpxx

xxxxxxxxxxxx

1 hours ago

5.89GB

2.2.1.4 运行镜像

执行以下命令运行Docker镜像,运行后将进入镜像的bash环境。

docker run -t -i --privileged -v /dev/bus/usb:/dev/bus/usb rknn-toolkit2:x.x.x-cpxx /bin/bash

将文件夹examples代码映射进Docker环境可通过附加“-v <host src folder>:<image dst folder>”参数。

docker run -t -i --privileged -v /dev/bus/usb:/dev/bus/usb -v /your/rknn-toolkit2-x.x.x/examples:/examples 
rknn-toolkit2:x.x.x-cpxx /bin/bash

2.2.1.5 运行Demo

cd examples/onnx/yolov5
python test.py

脚本运行成功后结果如下。

class score xmin, ymin, xmax, ymax
person 0.884 [ 208, 244, 286, 506]
person 0.868 [ 478, 236, 559, 528]
person 0.825 [ 110, 238, 230, 534]
person 0.339 [ 79, 353, 122, 516]
bus 0.705 [ 92, 128, 554, 467]

2.2.2 通过Pip方式安装

2.2.2.1 安装Python环境

若已安装Python环境,则可省略此步骤。

sudo apt-get update
sudo apt-get install python3 python3-dev python3-pip
sudo apt-get install libxslt1-dev zlib1g zlib1g-dev libglib2.0-0 libsm6 libgl1-mesa-glx libprotobuf-dev gcc

若想安装RKNN-Toolkit2工具在本地环境(非Conda虚拟环境)中,请在安装好Python环境后跳至步骤2.1.2.4。

2.2.2.2 安装Miniforge工具

如果系统中同时有多个版本的Python环境,建议使用Miniforge管理Python环境。

检查是否安装Miniforge和版本信息,若已安装则可省略此小节步骤。

conda -V # 提示conda: command not found则表示未安装miniforge
conda # 提示例如版本conda 23.9.0

下载Miniforge安装包

wget -c https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh

安装Miniforge

chmod 777 Miniforge3-Linux-x86_64.sh 
bash Miniforge3-Linux-x86_64.sh

ARM64版本

# 下载Miniforge安装包arm64版本
wget -c https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-aarch64.sh

安装Miniforge arm64

chmod 777 Miniforge3-Linux-aarch64.sh 
bash Miniforge3-Linux-aarch64.sh

2.2.2.3 创建RKNN-Toolkit2 Conda环境

进入Conda base环境

source ~/miniforge3/bin/activate # Miniforge安装的目录
# (base) xxx@xxx-pc:~\$

创建一个名为RKNN-Toolkit2且Python版本为3.8(建议版本)的Conda环境

conda create -n RKNN-Toolkit2 python=3.8

进入RKNN-Toolkit2 Conda环境

conda activate RKNN-Toolkit2
# (RKNN-Toolkit2) xxx@xxx-pc:~\$

2.2.2.4 安装RKNN-Toolkit2

激活RKNN-Toolkit2 Conda环境后,可通过pip源或者本地wheel包这两种方式安装RKNN-Toolkit2:

  1. 通过pip源安装

pip install rknn-toolkit2 -i https://pypi.org/simple
# 如果已安装RKNN-Toolkit2,可通过以下命令升级RKNN-Toolkit2
pip install rknn-toolkit2 -i https://pypi.org/simple --upgrade
  1. 通过本地wheel包安装

# 请根据不同的python版本及处理器架构,选择不同的requirements文件,例如: 
# python3.8 x86_64对应requirements_cp38.txt 
# python3.8 ARM64对应arm64_requirements_cp38.txt 
pip install -r /rknn-toolkit2/packages/requirements_cpxx.txt 
# pip install -r packages/arm64_requirements_cpxx.txt
# 安装RKNN-Toolkit2 
# 请根据不同的python版本及处理器架构,选择不同的wheel安装包文件: 
# 其中x.x.x是RKNN-Toolkit2版本号,cpxx 是 python 版本号,<arch> 是处理器架构类型 (x86_64 对应x86_64/aarch64 对应 ARM64)
pip install /rknn-toolkit2/packages/rknn_toolkit2--x.x.x-cpxx-cpxx-manylinux_2_17_<arch>.manylinux2014_<arch>.whl

若执行以下命令没有报错,则安装成功。

$ python3
>>> from rknn.api import RKNN