Luckfox Pico RKNN 推理测试

拉灯是我干掉的
原创
发布时间: 2025-06-24 18:16:03 | 阅读数 0收藏数 0评论数 0
封面
RV1103是一款专门用于人工智能相关应用的高度集成 IPC 视觉处理器 SoC。它基于单核 ARM Cortex-A7 32 位内核,集成了 NEON 和 FPU,并内置 NPU 支持 INT4 / INT8 / INT16 混合运算,计算能力高达 0.5TOPs。LuckFox Pico是基于瑞芯微 RV1103 芯片的低成本微型 linux 开发板。本文为你介绍它的NPU使用方法,学习如何使用NPU进行yolov5的推理测试。
1

rknn-Toolkit2 安装(PC ubuntu22.0

在前面的文章中,我曾经介绍过虚拟机软件安装、Ubuntu系统安装、conda软件安装和它的简单操作命令,如果有不懂的地方请查看之前教程。

  1. 环境要求

操作系统版本

Ubuntu18.04(x64)

Ubuntu20.04(x64)

Ubuntu22.04(x64)

Python版本

3.6/3.7

3.8/3.9

3.10/3.11

  1. 下载rknn-toolkit2

git clone https://github.com/rockchip-linux/rknn-toolkit2

  1. 创建 RKNN-Toolkit2 开发 Conda 环境

conda create -n rknn-toolkit2 python=3.10

conda activate rknn-toolkit2

  1. 安装RKNN-ToolKit2依赖包

pip3 install -r rknn-toolkit2/packages/requirements_cpxx-1.6.0.txt


# such as:

pip3 install -r rknn-toolkit2/packages/requirements_cp310-1.6.0.txt

根据不同的Python版本,选择安装对应的依赖包:


Python版本

RKNN-Toolkit2依赖包

3.6

requirements_cp36-1.6.0.txt

3.7

requirements_cp37-1.6.0.txt

3.8

requirements_cp38-1.6.0.txt

3.9

requirements_cp39-1.6.0.txt

3.10

requirements_cp310-1.6.0.txt

3.11

requirements_cp311-1.6.0.txt

  1. 安装RKNN-ToolKit2

pip3 install rknn-toolkit2/packages/rknn_toolkit2-x.x.x+xxxxxxxx-cpxx-cpxx-linux_x86_64.whl


# such as:

pip3 install rknn-toolkit2/packages/rknn_toolkit2-1.6.0+81f21f4d-cp310-cp310-linux_x86_64.whl

包名格式为:rknn_toolkit2-{版本号}+{commit 号}-cp{Python 版本}-cp{Python 版本}-linux_x86_64.whl,根据不同的Python版本,选择安装对应的安装包:


Python版本

RKNN-Toolkit2安装包

3.6

rknn_toolkit2-{版本号}+{commit 号}-cp36-cp36m-linux_x86_64.whl

3.7

rknn_toolkit2-{版本号}+{commit 号}-cp36-cp37m-linux_x86_64.whl

3.8

rknn_toolkit2-{版本号}+{commit 号}-cp36-cp38m-linux_x86_64.whl

3.9

rknn_toolkit2-{版本号}+{commit 号}-cp36-cp39m-linux_x86_64.whl

3.10

rknn_toolkit2-{版本号}+{commit 号}-cp36-cp310m-linux_x86_64.whl

3.11

rknn_toolkit2-{版本号}+{commit 号}-cp36-cp311m-linux_x86_64.whl

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

python3

from rknn.api import RKNN


2

下载rknn-moel-zoo

1、下载代码

git clone git@github.com:airockchip/rknn_model_zoo.git # ssh下载

git clone https://github.com/airockchip/rknn_model_zoo.git # http下载

2、编译示例代码

./build-linux.sh -t <target> -a <arch> -d <build_demo_name> [-b <build_type>] [-m]

-t : target (rk356x/rk3588/rk3576/rv1106/rk1808/rv1126)

-a : arch (aarch64/armhf)

-d : demo name

-b : build_type(Debug/Release)

-m : enable address sanitizer, build_type need set to Debug

Note: 'rk356x' represents rk3562/rk3566/rk3568, 'rv1106' represents rv1103/rv1106, 'rv1126' represents rv1109/rv1126


# Here is an example for compiling yolov5 demo for 64-bit Linux RK3566.

./build-linux.sh -t rk356x -a aarch64 -d yolov5


3

转换模型

关于yolov5的模型本次不再赘述,直接使用脚本下载官方的模型。

cd rknn_model_zoo/examples/yolov5/model

./download_model.sh

或者将自己的ONNX模型文件拷贝至 rknn_model_zoo/examples/yolov5/model 目录

cp your_yolov5s.onnx rknn_model_zoo/examples/yolov5/model

执行 rknn_model_zoo/examples/yolov5/python 目录下的模型转换程序 convert.py,使用方法:

conda activate RKNN-Toolkit2

cd ~/rknn_model_zoo/examples/yolov5/python

python3 convert.py ../model/yolov5s.onnx rv1106

# output model will be saved as ../model/yolov5.rknn

python3 convert.py <onnx_model> <TARGET_PLATFORM> <dtype(optional)> <output_rknn_path(optional)>


4

编译推理代码

  1. 成功将 ONNX 模型转换成 RKNN 模型后,现在对 rknn_model_zoo/examples/yolov5 目录下的例程进行交叉编译,编译例程前需要设置如下环境变量:

export GCC_COMPILER=<SDK目录>/tools/linux/toolchain/arm-rockchip830-linux-uclibcgnueabihf/bin/arm-rockchip830-linux-uclibcgnueabihf

我的代码

export GCC_COMPILER=/home/mxf/linux/luckfox-pico/tools/linux/toolchain/arm-rockchip830-linux-uclibcgnueabihf/bin/arm-rockchip830-linux-uclibcgnueabihf

  1. 执行 rknn_model_zoo 目录下的 build-linux.sh 脚本。该脚本将编译例程:
chmod +x ./build-linux.sh
./build-linux.sh -t rv1106 -a armv7l -d yolov5
编译过程:
(RKNN-Toolkit2) luckfox@luckfox:~/rknn_model_zoo$ ./build-linux.sh -t rv1106 -a armv7l -d yolov5
./build-linux.sh -t rv1106 -a armv7l -d yolov5
/home/luckfox-pico/tools/linux/toolchain/arm-rockchip830-linux-uclibcgnueabihf/bin/arm-rockchip830-linux-uclibcgnueabihf
===================================
BUILD_DEMO_NAME=yolov5
BUILD_DEMO_PATH=examples/yolov5/cpp
TARGET_SOC=rv1106
TARGET_ARCH=armv7l
BUILD_TYPE=Release
ENABLE_ASAN=OFF
INSTALL_DIR=/home/rknn_model_zoo/install/rv1106_linux_armv7l/rknn_yolov5_demo
BUILD_DIR=/home/rknn_model_zoo/build/build_rknn_yolov5_demo_rv1106_linux_armv7l_Release
CC=/home/luckfox-pico/tools/linux/toolchain/arm-rockchip830-linux-uclibcgnueabihf/bin/arm-rockchip830-linux-uclibcgnueabihf-gcc
CXX=/home/luckfox-pico/tools/linux/toolchain/arm-rockchip830-linux-uclibcgnueabihf/bin/arm-rockchip830-linux-uclibcgnueabihf-g++
===================================
-- Configuring done
-- Generating done
-- Build files have been written to: /home/rknn_model_zoo/build/build_rknn_yolov5_demo_rv1106_linux_armv7l_Release
Consolidate compiler generated dependencies of target imagedrawing
Consolidate compiler generated dependencies of target imageutils
Consolidate compiler generated dependencies of target fileutils
[ 40%] Built target fileutils
[ 40%] Built target imagedrawing
[ 60%] Built target imageutils
Consolidate compiler generated dependencies of target rknn_yolov5_demo
[100%] Built target rknn_yolov5_demo
[ 20%] Built target imageutils
[ 40%] Built target fileutils
[ 60%] Built target imagedrawing
[100%] Built target rknn_yolov5_demo
Install the project...
-- Install configuration: "Release"
-- Installing: /home/rknn_model_zoo/install/rv1106_linux_armv7l/rknn_yolov5_demo/./rknn_yolov5_demo
-- Set runtime path of "/home/rknn_model_zoo/install/rv1106_linux_armv7l/rknn_yolov5_demo/./rknn_yolov5_demo" to "$ORIGIN/lib"
-- Installing: /home/rknn_model_zoo/install/rv1106_linux_armv7l/rknn_yolov5_demo/./model/bus.jpg
-- Installing: /home/rknn_model_zoo/install/rv1106_linux_armv7l/rknn_yolov5_demo/./model/coco_80_labels_list.txt
-- Installing: /home/rknn_model_zoo/install/rv1106_linux_armv7l/rknn_yolov5_demo/model/yolov5.rknn
-- Installing: /home/rknn_model_zoo/install/rv1106_linux_armv7l/rknn_yolov5_demo/lib/librknnmrt.so
-- Installing: /home/rknn_model_zoo/install/rv1106_linux_armv7l/rknn_yolov5_demo/lib/librga.so


5

运行程序

将编译好的程序和库文件模型文件拷贝到开发板,运行结果如图所示。

./rknn_yolov5_demo model/yolov5.rknn model/bus.jpg


阅读记录0
点赞0
收藏0
禁止 本文未经作者允许授权,禁止转载
猜你喜欢
评论/提问(已发布 0 条)
评论 评论
收藏 收藏
分享 分享
pdf下载 下载