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.pswp.cn/pingmian/81232.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/81232.shtml
英文地址,請注明出處:http://en.pswp.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 復現一個用于標準干涉槽型設計計算及仿真的界面程序,旨在幫助工程師和…