当前位置: 首页 > news >正文

rknn环境搭建之docker篇

目录

  • 1. rknn简介
  • 2. 环境搭建
    • 2.1 下载 RKNN-Toolkit2 仓库
    • 2.2 下载 RKNN Model Zoo 仓库
    • 2.3 下载交叉编译器
    • 2.4 下载Docker镜像
    • 2.5 下载ndk
    • 2.5 加载docker镜像
    • 2.6 docker run 命令创建并运行 RKNN Toolkit2 容器
    • 2.7 安装cmake
  • 3. 模型转换
    • 3.1 下载模型
    • 3.2 模型转换
  • 4. 编译c++demo
  • 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 仓库

git clone https://github.com/airockchip/rknn-toolkit2.git --depth 1

2.2 下载 RKNN Model Zoo 仓库

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镜像

docker load --input rknn-toolkit2-v2.3.0-cp38-docker.tar.gz

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

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

apt-get install cmake

3. 模型转换

3.1 下载模型

以RetinaFace为例

# 进入 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 模型转换

# 进入 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

# 添加到 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

http://www.lryc.cn/news/521102.html

相关文章:

  • OpenCV相机标定与3D重建(56)估计物体姿态(即旋转和平移)的函数solvePnPRansac()的使用
  • vue倒计时组件封装,根据每个循环项的倒计时是否结束添加新类名。
  • 缩放 对内外参的影响
  • SQL面试题2:留存率问题
  • 晨辉面试抽签和评分管理系统之九:随机编排考生的分组(以教师资格考试面试为例)
  • 【EtherCATBridge】- KRTS C++示例精讲(9)
  • C++实现设计模式--- 观察者模式 (Observer)
  • iOS 解决两个tableView.嵌套滚动手势冲突
  • Lianwei 安全周报|2025.1.13
  • rtthread学习笔记系列(2) -- 宏
  • 美摄科技PC端视频编辑解决方案,为企业打造专属的高效创作平台
  • 服务端开发模式-thinkphp-重新整理workman
  • HTB:Access[WriteUP]
  • 【论文笔记】SmileSplat:稀疏视角+pose-free+泛化
  • 电机控制的数字化升级:基于DSP和FPGA的仿真与实现
  • 1/14 C++
  • java springboot3.x jwt+spring security6.x实现用户登录认证
  • YOLOv5训练长方形图像详解
  • 【2025最新】Poe保姆级订阅指南,Poe订阅看这一篇就够了!最方便使用各类AI!
  • type1-100,2 words
  • Leetcode 377. 组合总和 Ⅳ 动态规划
  • 计算机网络(五)——传输层
  • 【SQL】进阶知识 -- 删除表的几种方法(包含表内单个字段的删除方法)
  • 【搭建JavaEE】(3)前后端交互,请求响应机制,JDBC数据库连接
  • 项目概述、开发环境搭建(day01)
  • 车联网安全--TLS握手过程详解
  • 【python】OpenCV—Extract Horizontal and Vertical Lines—Morphology
  • Redis十大数据类型详解
  • Open FPV VTX开源之betaflight配置
  • AT32 bootloader程序与上位机程序