RKNN开发环境搭建(ubuntu22.04)

以下情况在RV1106G3的平台上验证正常。
1、conda安装
    1)conda --version//确认是否安装
    2)创建一个安装目录,进行下一步
    3)wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-4.6.14-Linux-x86_64.sh
    4)安装miniconda
        chmod 777 Miniconda3-4.6.14-Linux-x86_64.sh
        bash Miniconda3-4.6.14-Linux-x86_64.sh
    5)source ~/miniconda3/bin/activate
        conda的一些指令:
        conda create -n RKNN-Toolkit2 python=3.8 //新建环境
        conda activate RKNN-Toolkit2 //激活环境
        conda deactivate //退出环境
        conda info --envs //查看已经创建的环境
    6)创建环境
        conda create -n RKNN-Toolkit2 python=3.8//新建环境
        conda activate RKNN-Toolkit2//激活环境
        python --version//确认python的版本
        以下都在conda环境进行,基于python3.8
        git clone https://github.com/rockchip-linux/rknn-toolkit2.git
        
        cd rknn-toolkit2
        pip install tf-estimator-nightly==2.8.0.dev2021122109 
        pip install -r rknn-toolkit2/packages/requirements_cp38-1.6.0.txt -i https://pypi.mirrors.ustc.edu.cn/simple/
        pip install rknn-toolkit2/packages/rknn_toolkit2-1.6.0+81f21f4d-cp38-cp38-linux_x86_64.whl
        
        python
        >>> from rknn.api import RKNN
        运行成功。
        
       
2、模型训练
    git clone https://github.com/airockchip/yolov5.git
    cd yolov5
    
    创建conda环境yolov5:conda create -n yolov5 python=3.9
    conda activate yolov5
    pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple/
    pip install -r requirements.txt
    
    #测试模型检测是否正常
    python detect.py --source ./data/images/ --weights yolov5s.pt  
    
    #转为onnx
    #####这里的pt文件可以从别的地方训练好,在这边来转为onnx
    python export.py --rknpu --weight yolov5s.pt --img-size 320 320
    
3、rknpu2驱动确认
    dmesg | grep -i rknpu
    //版本需要是v0.9.2以上
    [root@luckfox root]# dmesg | grep -i rknpu
    [    2.807065] RKNPU ff660000.npu: RKNPU: rknpu iommu device-tree entry not found!, using non-iommu mode
    [    2.810135] RKNPU ff660000.npu: RKNPU: Initialized RKNPU driver: v0.9.2 for 20230825
    [    2.810244] RKNPU ff660000.npu: dev_pm_opp_set_regulators: no regulator (rknpu) found: -19
        
    驱动所在目录:/oem/usr/lib,文件为librknnmrt.so,替换即可。
        
4、转模
    conda activate RKNN-Toolkit2
    cd rk/luckfox_pico_rknn_example/scripts/luckfox_onnx_to_rknn/convert
    
    python convert.py ../model/yolov5.onnx ../dataset/yolov5_dataset.txt ../model/yolov5_fzk.rknn Yolov5
    python convert.py ../model/yolov5s_320x320.onnx ../dataset/yolov5_dataset.txt ../model/yolov5s_320x320.rknn Yolov5

5、luckfox_pico_rknn_example
    git clone https://github.com/LuckfoxTECH/luckfox_pico_rknn_example.git
    cd luckfox_pico_rknn_example/scripts/luckfox_onnx_to_rknn
    
    cd luckfox_pico_rknn_example
    export LUCKFOX_SDK_PATH=/home/f/Desktop/rk/luckfox_rv1106g3/luckfox-pico
    ./build.sh
    install的目录复制到板卡 :
    cd /0_fzk
    ./luckfox_pico_yolov5 ./model/yolov5.rknn    

6、luckfox_pico_rkmpi_example
    git clone https://github.com/LuckfoxTECH/luckfox_pico_rkmpi_example.git
    cd luckfox_pico_rkmpi_example
    export LUCKFOX_SDK_PATH=/home/f/Desktop/rk/luckfox_rv1106g3/luckfox-pico
    ./build.sh
    install的目录复制到板卡 :
    cd /0_fzk
    ./luckfox_pico_rtsp_yolov5
    vlc:
    ffplay -fflags nobuffer -flags low_delay -rtsp_transport tcp rtsp://192.168.1.168/live/0
    
7、npu的负载查看
        cat /proc/rknpu/load

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/81232.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Flutter到HarmonyOS Next 的跨越:memory_info库的鸿蒙适配之旅

Flutter到鸿蒙的跨越:memory_info库的鸿蒙适配之旅 本项目作者:kirk/坚果 您可以使用这个Flutter插件来更改应用程序图标上的角标 作者仓库:https://github.com/MrOlolo/memory_info/tree/master/memory_info 在数字化浪潮的推动下&#…

VLAN扩展技术

端口隔离 🌐 一、原理总结: 端口隔离功能:实现同一VLAN内端口之间的二层隔离。 用户只需将端口加入同一个隔离组(Port-isolate group),即可实现这些端口之间不能互通。 实现效果:更安全、更加…

设计模式 - 单例模式 - Tips

为什么双重检查会带来空指针异常问题? if (instance null) { synchronized (Singleton.class) { if (instance null) { instance new Singleton(); } } …

【Ragflow】22.RagflowPlus(v0.3.0):用户会话管理/文件类型拓展/诸多优化更新

概述 在历经三周的阶段性开发后,RagflowPlus顺利完成既定计划,正式发布v0.3.0版本。 开源地址:https://github.com/zstar1003/ragflow-plus 新功能 1. 用户会话管理 在后台管理系统中,新增用户会话管理菜单。在此菜单中&…

c++重要知识点汇总(不定期更新)

前言 真心希望各位dalao点赞收藏~ 树状数组 作用:高效求出区间前缀和,允许进行修改操作。 举个栗子: 刚开始有8项,分别为1-8。 首先构建二叉树: 1-8/ |/ |/ |/ |/ |1-4 5-8/ | / |/ | / |1-…

Predict Podcast Listening Time-(回归+特征工程+xgb)

Predict Podcast Listening Time 题意: 给你没个播客的信息,让你预测观众的聆听时间。 数据处理: 1.构造新特征收听效率进行分组 2.对数据异常处理 3.对时间情绪等进行数值编码 4.求某特征值求多项式特征 5.生成特征组合 6.交叉验证并enc…

Class类的详细说明

Class类的详细说明 Class 类是Java反射机制的核心,每个Java类或接口在JVM中都有一个对应的 Class 对象,用于表示该类的元数据(如类名、方法、字段、构造器等)。以下是其核心知识点: 1. 获取Class对象的三种方式 方式…

[逆向工程]C++实现DLL注入:原理、实现与防御全解析(二十五)

[逆向工程]C实现DLL注入:原理、实现与防御全解析(二十五) 引言 DLL注入(DLL Injection)是Windows系统下实现进程间通信、功能扩展、监控调试的核心技术之一。本文将从原理分析、代码实现、实战调试到防御方案&#x…

【ROS2实战】在中国地区 Ubuntu 22.04 上安装 ROS 2 Humble 教程

本文介绍如何在中国大陆环境下顺利安装 ROS 2 Humble,包括使用清华镜像源、解决 locale 和 GPG 密钥问题、安装 ROS 软件包以及配置自动环境加载。 🌟 ROS 2 版本简介 ROS 2 是机器人操作系统的第二代版本,目前主要有两个长期支持&#xff0…

嵌入式学习笔记 - STM32 ADC 模块工作模式总结

ADC 模式总结: 一 单ADC模式(是指ADC1,ADC2,ADC3中只有一个ADC被使用) ①单通道: 非连续模式:非连续的意思就是单次,一次转换完成后就停止转换,除非再次被软件或者被外部触发启动&#xff1b…

Python训练打卡Day26

函数专题1:函数定义与参数 知识点回顾: 函数的定义变量作用域:局部变量和全局变量函数的参数类型:位置参数、默认参数、不定参数传递参数的手段:关键词参数传递参数的顺序:同时出现三种参数类型时 到目前为…

使用Docker部署Nacos

sudo systemctl start docker sudo systemctl enable docker docker --version 步骤 2: 拉取 Nacos Docker 镜像 拉取 Nacos 镜像: 你可以从 Docker Hub 上拉取官方的 Nacos 镜像,使用以下命令: docker pull nacos/nacos-server 这会从 …

Ubuntu 添加系统调用

实验内容 通过内核编译法添加一个不用传递参数的系统调用,其功能可自定义。 (1)添加系统调用号,系统会根据这个号找到syscall_table中的相应表项。具体做法是在syscall_64.tbl文件中添加系统调用号和调用函数的对应关系。 &#…

Javascript:WebAPI

获取网页元素 queryselector queryselector是 JavaScript 中用于选择 DOM 元素的重要方法,它允许使用 CSS 选择器语法来查找页面中的元素。 一般queryselector获取的元素都是html中第一个选择器的元素 支持选择器类型:类选择器(.class) &#xff0c…

十二、Hive 函数

作者:IvanCodes 日期:2025年5月1日 专栏:Hive教程 在数据处理的广阔天地中,我们常常需要对数据进行转换、计算、清洗或提取特定信息。Hive 提供了强大的内置运算符和丰富的内置函数库,它们就像魔法师手中的魔法棒&…

Linux之Nginx安装及配置原理篇(一)

Nginx安装及配置 前情回顾 首先针对Nginx进程模型,我们回顾一下它的原理机制,我们知道它是通过Master通过fork分发任务节点给予work节点,然后work节点触发了event事件,之后通过一个access_muttex互斥锁,来单线程调用我…

嵌入式培训之数据结构学习(五)栈与队列

一、栈 (一)栈的基本概念 1、栈的定义: 注:线性表中的栈在堆区(因为是malloc来的);系统中的栈区存储局部变量、函数形参、函数返回值地址。 2、栈顶和栈底: 允许插入和删除的一端…

深度学习---知识蒸馏(Knowledge Distillation, KD)

一、知识蒸馏的本质与起源 定义: 知识蒸馏是一种模型压缩与迁移技术,通过将复杂高性能的教师模型(Teacher Model)所学的“知识”迁移到轻量级的学生模型(Student Model),使学生模型在参数量和计…

ARP Detection MAC-Address Static

一、ARP Detection(ARP检测) ✅ 定义: ARP检测是一种防止ARP欺骗攻击的安全机制。它通过监控或验证网络中的ARP报文,来判断是否存在伪造的ARP信息。 🔍 工作原理: 网络设备(如交换机&#xf…

基于 Python 的界面程序复现:标准干涉槽型设计计算及仿真

基于 Python 的界面程序复现:标准干涉槽型设计计算及仿真 在工业设计与制造领域,刀具的设计与优化是提高生产效率和产品质量的关键环节之一。本文将介绍如何使用 Python 复现一个用于标准干涉槽型设计计算及仿真的界面程序,旨在帮助工程师和…