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
相关文章:
rknn环境搭建之docker篇
目录 1. rknn简介2. 环境搭建2.1 下载 RKNN-Toolkit2 仓库2.2 下载 RKNN Model Zoo 仓库2.3 下载交叉编译器2.4 下载Docker镜像2.5 下载ndk2.5 加载docker镜像2.6 docker run 命令创建并运行 RKNN Toolkit2 容器2.7 安装cmake 3. 模型转换3.1 下载模型3.2 模型转换 4. 编译cdem…...
OpenCV相机标定与3D重建(56)估计物体姿态(即旋转和平移)的函数solvePnPRansac()的使用
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 使用RANSAC方案从3D-2D点对应关系中找到物体的姿态。 cv::solvePnPRansac 是 OpenCV 中用于估计物体姿态(即旋转和平移)的…...
vue倒计时组件封装,根据每个循环项的倒计时是否结束添加新类名。
1.创建countdown.vue文件: <template><p style"font-size: 10px">{{time}}</p> </template> <script>export default{data () {return {time : ,flag : false}},mounted () {let time setInterval(() > {if (this.fla…...
缩放 对内外参的影响
当你对图像进行同比例缩小时,图像的内参需要相应地变化,但外参通常保持不变。 相机内参 相机内参(内参矩阵)描述了相机的固有属性,包括焦距和主点(光轴与图像平面的交点)的坐标。 当你对图像…...
SQL面试题2:留存率问题
引言 场景介绍: 在互联网产品运营中,用户注册量和留存率是衡量产品吸引力和用户粘性的关键指标,直接影响产品的可持续发展和商业价值。通过分析这些数据,企业可以了解用户行为,优化产品策略,提升用户体验…...
晨辉面试抽签和评分管理系统之九:随机编排考生的分组(以教师资格考试面试为例)
晨辉面试抽签和评分管理系统(下载地址:www.chenhuisoft.cn)是公务员招录面试、教师资格考试面试、企业招录面试等各类面试通用的考生编排、考生入场抽签、候考室倒计时管理、面试考官抽签、面试评分记录和成绩核算的面试全流程信息化管理软件。提供了考生…...
【EtherCATBridge】- KRTS C++示例精讲(9)
EtherCATBridge示例讲解 文章目录 EtherCATBridge示例讲解结构说明代码说明 项目打开请查看【BaseFunction精讲】。 结构说明 EtherCATBridge.h :数据定义 EtherCATBridge.cpp :应用层源码 EtherCATBridge_dll.cpp :内核层源码 其余文件说明…...
C++实现设计模式--- 观察者模式 (Observer)
观察者模式 (Observer) 观察者模式 是一种行为型设计模式,它定义了一种一对多的依赖关系,使得当一个对象的状态发生改变时,其依赖者(观察者)会收到通知并自动更新。 意图 定义对象之间的一对多依赖关系。当一个对象状…...
iOS 解决两个tableView.嵌套滚动手势冲突
我们有这样一个场景,就是页面上有一个大的tableView, 每一个cell都是和屏幕一样高的,然后cell中还有一个可以 tableView,比如直播间的情形,这个时候如果我们拖动 cell里面的tableView滚动的话,如果滚动到内…...
Lianwei 安全周报|2025.1.13
新的一周又开始了,以下是本周「Lianwei周报」,我们总结推荐了本周的政策/标准/指南最新动态、热点资讯和安全事件,保证大家不错过本周的每一个重点! 政策/标准/指南最新动态 01 美国国土安全部发布《公共部门生成式人工智能部署手…...
rtthread学习笔记系列(2) -- 宏
文章目录 2.链接文件2.0. 参考链接2.1._stext 和 _etext2.2. "."与"*符号作用2.3..linkonce 段2.4. KEEP2.5 ENTRY2.6 PROVIDE2.7 AT2.8 SORT2.9 NOLOAD 源文件路径:https://github.com/wdfk-prog/RT-Thread-Study 2.链接文件 2.0. 参考链接 https://home.cs…...
美摄科技PC端视频编辑解决方案,为企业打造专属的高效创作平台
在当今这个信息爆炸的时代,视频已成为不可或缺的重要内容形式,美摄科技推出了PC端视频编辑解决方案的私有化部署服务,旨在为企业提供一款量身定制的高效创作平台。 一、全面功能,满足企业多样化需求 美摄科技的PC端视频编辑解决…...
服务端开发模式-thinkphp-重新整理workman
一、登录接口 <?php /*** 登录退出操作* User: 龙哥三年风水* Date: 2024/10/29* Time: 15:53*/ namespace app\controller\common; use app\controller\Emptys; use app\model\permission\Admin; use app\model\param\System as SystemModel; use Email\EmailSender; use…...
HTB:Access[WriteUP]
目录 连接至HTB服务器并启动靶机 信息收集 使用rustscan对靶机TCP端口进行开放扫描 将靶机TCP开放端口号提取并保存 使用nmap对靶机TCP开放端口进行脚本、服务扫描 使用nmap对靶机TCP开放端口进行漏洞、系统扫描 使用nmap对靶机常用UDP端口进行开放扫描 尝试匿名连接至…...
【论文笔记】SmileSplat:稀疏视角+pose-free+泛化
还是一篇基于dust3r的稀疏视角重建工作,作者联合优化了相机内外参与GS模型,实验结果表明优于noposplat。 abstract 在本文中,提出了一种新颖的可泛化高斯方法 SmileSplat,可以对无约束(未标定相机的)稀疏多…...
电机控制的数字化升级:基于DSP和FPGA的仿真与实现
数字信号处理器(DSP,Digital Signal Processor)在工业自动化领域的应用日益广泛。DSP是一种专门用于将模拟信号转换成数字信号并进行处理的技术,能够实现信号的数字滤波、重构、调制和解调等多项功能,确保信号处理的精…...
1/14 C++
练习:将图形类的获取周长和获取面积函数设置成虚函数,完成多态 再定义一个全局函数,能够在该函数中实现:无论传递任何图形,都可以输出传递的图形的周长和面积 #include <iostream>using namespace std; class Sh…...
java springboot3.x jwt+spring security6.x实现用户登录认证
springboot3.x jwtspring security6.x实现用户登录认证 什么是JWT JWT(JSON Web Token)是一种开放标准(RFC 7519),它用于在网络应用环境中传递声明。通常,JWT用于身份验证和信息交换。JWT的一个典型用法是…...
YOLOv5训练长方形图像详解
文章目录 YOLOv5训练长方形图像详解一、引言二、数据集准备1、创建文件夹结构2、标注图像3、生成标注文件 三、配置文件1、创建数据集配置文件2、选择模型配置文件 四、训练模型1、修改训练参数2、开始训练 五、使用示例1、测试模型2、评估模型 六、总结 YOLOv5训练长方形图像详…...
【2025最新】Poe保姆级订阅指南,Poe订阅看这一篇就够了!最方便使用各类AI!
1.Poe是什么? Poe, 全称Platform for Open Exploration。 Poe本身并不提供基础的大语言模型,而是整合多个来自不同科技巨头的基于不同模型的AI聊天机器人,其中包括来自OpenAI的ChatGPT,Anthropic的Claude、Google的PaLM…...
Qwen3.5-2B模型环境搭建保姆级教程:从Anaconda安装到模型调用
Qwen3.5-2B模型环境搭建保姆级教程:从Anaconda安装到模型调用 1. 开篇:为什么选择这个教程? 如果你刚接触AI大模型,可能会被各种环境配置问题搞得头大。别担心,这篇教程就是为你准备的。我们将从最基础的Anaconda安装…...
5 鸿蒙应用权限配置快速落地实操 | 鸿蒙开发筑基实战
鸿蒙应用权限配置快速落地实操 | 鸿蒙开发筑基实战 作者:杨建宾(华夏之光永存) 摘要 本文面向鸿蒙开发新手与普通工程师,详细讲解鸿蒙应用权限配置的完整实操流程,包含权限分类、配置文件声明、运行时申请、权限校验等…...
连国家药监局都重磅发文!AI + 药品监管落地方向,学AI刻不容缓!
4 月 2 日,国家药监局正式发布《关于 “人工智能 药品监管” 的实施意见》,明确要把 AI 技术深度融入药品全生命周期监管,给行业带来新一轮数智化升级信号。作为关注医药行业的学长,今天用清晰易懂的方式,把这份文件的…...
Linux 命令mkdir详细教程
Linuxmkdir命令详细教程一、mkdir命令的基本功能mkdir(Make Directory)是 Linux 系统中用于创建新目录(文件夹)的基础命令。它支持一次性创建单个或多个目录,以及递归创建多层目录结构,是文件系统操作中最常…...
AI Agent 系统设计方法导论
从"调用模型"到"系统工程"在当前 AI 领域,单纯的 Prompt Engineering 已无法满足日益复杂的业务逻辑。作为后端 AI 工程师,我们必须建立一个核心共识:"模型能力的上限决定了产品的下限,而架构设计的优劣…...
阶跃星辰新版模型上线,Token 消耗最高降 56%
4 月 2 日消息,阶跃星辰新版模型 Step 3.5 Flash 2603 正式上线并向 Step Plan 用户开放。该模型优化升级,带来核心改进,Token 消耗最高降 56%。新版模型正式上线阶跃星辰宣布新版模型 Step 3.5 Flash 2603 上线,向所有 Step Plan…...
LangChain实战:如何用ConversationalRetrievalQA构建带记忆的智能问答系统(附完整代码)
LangChain实战:构建带记忆的智能问答系统全流程解析 在当今AI应用开发领域,对话系统的"记忆力"已成为衡量其智能水平的关键指标。想象一下,当用户第三次询问"刚才提到的方案有哪些优势"时,如果AI回答"您…...
2026最权威的AI科研神器解析与推荐
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 在当下的学术环境当中,把论文AI网站进行高效利用,已然成为了研究者去…...
FGA开源工具问题速解:从入门到精通的实战指南
FGA开源工具问题速解:从入门到精通的实战指南 【免费下载链接】FGA Auto-battle app for F/GO Android 项目地址: https://gitcode.com/gh_mirrors/fg/FGA 一、基础配置问题:3步定位法解决启动障碍 1.1 权限访问失败:系统级操作权限配…...
HS2-HF_Patch深度解析:游戏模组生态系统的技术架构与实现原理
HS2-HF_Patch深度解析:游戏模组生态系统的技术架构与实现原理 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch HS2-HF_Patch作为Honey Select 2游戏的…...
