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镜像环境准备方式,可任选一种方式进行操作。
通过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.
加载已打包所有开发环境的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:
通过pip源安装
pip install rknn-toolkit2 -i https://pypi.org/simple
# 如果已安装RKNN-Toolkit2,可通过以下命令升级RKNN-Toolkit2
pip install rknn-toolkit2 -i https://pypi.org/simple --upgrade
通过本地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