rknn环境搭建之docker篇

目录

  • [1. rknn简介](#1. rknn简介)
  • [2. 环境搭建](#2. 环境搭建)
    • [2.1 下载 RKNN-Toolkit2 仓库](#2.1 下载 RKNN-Toolkit2 仓库)
    • [2.2 下载 RKNN Model Zoo 仓库](#2.2 下载 RKNN Model Zoo 仓库)
    • [2.3 下载交叉编译器](#2.3 下载交叉编译器)
    • [2.4 下载Docker镜像](#2.4 下载Docker镜像)
    • [2.5 下载ndk](#2.5 下载ndk)
    • [2.5 加载docker镜像](#2.5 加载docker镜像)
    • [2.6 docker run 命令创建并运行 RKNN Toolkit2 容器](#2.6 docker run 命令创建并运行 RKNN Toolkit2 容器)
    • [2.7 安装cmake](#2.7 安装cmake)
  • [3. 模型转换](#3. 模型转换)
    • [3.1 下载模型](#3.1 下载模型)
    • [3.2 模型转换](#3.2 模型转换)
  • [4. 编译c++demo](#4. 编译c++demo)
  • [5. 推送到板端运行](#5. 推送到板端运行)

1. rknn简介

RKNN 是由瑞芯微电子公司开发的一个跨平台的神经网络推理框架。它主要具有以下特点:

  • 跨平台支持:

    RKNN 可以在多种硬件平台上运行,包括 ARM CPU、x86 CPU 以及瑞芯微的 NPU 等。这使得 RKNN 具有良好的灵活性和适用性。

  • 高性能推理:

    RKNN 针对不同硬件平台进行了优化,能够提供高效的神经网络推理性能。在瑞芯微 NPU 上的性能尤其出色。

  • 模型转换:

  • RKNN 支持将主流的深度学习框架(如 TensorFlow、PyTorch、Caffe 等)训练的模型转换为 RKNN 格式,以便在目标硬件上部署运行。

  • 丰富的算子支持:

    RKNN 支持业界主流的神经网络算子,能够覆盖绝大部分的深度学习应用场景。

  • 易用性:

    RKNN 提供了友好的 API 和工具,方便开发者进行神经网络的部署和优化

2. 环境搭建

2.1 下载 RKNN-Toolkit2 仓库

bash 复制代码
git clone https://github.com/airockchip/rknn-toolkit2.git --depth 1

2.2 下载 RKNN Model Zoo 仓库

bash 复制代码
git clone https://github.com/airockchip/rknn_model_zoo.git --depth 1

2.3 下载交叉编译器

https://console.zbox.filez.com/l/H1fV9a (提取码是:rknn)
将其解压拷贝到rknn_model_zoo目录下

2.4 下载Docker镜像

Docker 镜像文件网盘下载链接:https://console.zbox.filez.com/l/I00fc3 (提取码:rknn)

2.5 下载ndk

https://github.com/android/ndk/wiki/Unsupported-Downloads
下载android-ndk-r19c,并将其解压拷贝到rknn_model_zoo目录下

2.5 加载docker镜像

bash 复制代码
docker load --input rknn-toolkit2-v2.3.0-cp38-docker.tar.gz

2.6 docker run 命令创建并运行 RKNN Toolkit2 容器

bash 复制代码
docker run -t -i --privileged \
    -v /dev/bus/usb:/dev/bus/usb \
    -v /root/wyw/rknn_model_zoo:/rknn_model_zoo \
   rknn-toolkit2:2.3.0-cp38 \
   /bin/bash

/root/wyw/rknn_model_zoo-宿主机目录

/rknn_model_zoo-映射的docker目录

2.7 安装cmake

进入docker后安装cmake

bash 复制代码
apt-get install cmake

3. 模型转换

3.1 下载模型

以RetinaFace为例

bash 复制代码
# 进入 rknn_model_zoo/examples/yolov5/model 目录
cd rknn_model_zoo/examples/RetinaFace/model
# 运行 download_model.sh 脚本,下载 yolov5 onnx 模型
# 例如,下载好的 onnx 模型存放路径为 model/yolov5s_relu.onnx
./download_model.sh

3.2 模型转换

bash 复制代码
# 进入 rknn_model_zoo/examples/RetinaFace/python 目录
cd /rknn_model_zoo/examples/RetinaFace/python
# 运行 convert.py 脚本,将原始的 ONNX 模型转成 RKNN 模型
# 用法: python convert.py model_path [rv1103|rv1103b|rv1106|rv1106b] [i8/fp] [output_path]
python convert.py ../model/RetinaFace_mobile320.onnx rk3568 i8 ../model/RetinaFace_mobile320.rknn
# 注:rv1103、rv1106和rv1103b、rv1106b生成的模型不能共用


注意:在model目录下有一个dataset.txt文件是用来量化生成校准表的,下载数据集(5000+),通过find 1500/ -type f > dataset.txt命令生成dataset.txt

4. 编译c++demo

我是用于Android端,因此编译使用ndk

bash 复制代码
# 添加到 build-linux.sh 脚本的开头位置即可
GCC_COMPILER=/rknn_model_zoo/arm-rockchip830-linux-uclibcgnueabihf/bin/arm-rockchip830-linux-uclibcgnueabihf
ANDROID_NDK_PATH=/rknn_model_zoo/android-ndk-r19c
./build-android.sh -t rk3568 -a arm64-v8a -d yolov5

5. 推送到板端运行

详见:01_Rockchip_RV1106_RV1103_Quick_Start_RKNN_SDK_V2.3.0_CN.pdf

相关推荐
杰克逊的日记29 分钟前
k8s的ip地址分别都是从哪里来的
tcp/ip·容器·kubernetes
苦逼IT运维42 分钟前
详解 Docker 启动 Windows 容器第一篇:多种方式及实用配置指南
windows·docker·容器
小白电脑技术1 小时前
在爱快iKuai路由系统上添加docker功能!操作很简单
docker·电脑
众拾达人2 小时前
基于 SSH 的任务调度系统
运维·ssh
白手小弟2 小时前
docker 部署Nginx UI
nginx·docker·容器
凯子坚持 c2 小时前
深度解析如何使用Linux中的git操作
linux·运维·git
相忘于江湖吧2 小时前
浅尝Appium自动化框架
运维·appium·自动化
shark_西瓜甜2 小时前
Kubernetes Gateway API-5-后端协议和网关基础设置标签
容器·kubernetes·gateway
come-昂-3 小时前
Jenkins使用入门
运维·jenkins
会飞的爱迪生3 小时前
nginx负载均衡-基于多域名的负载均衡(二)
运维·nginx·负载均衡