yolov5 轉換為rknn模型在3588上運行

為了把yolov5在rk3588上跑起來,在網上搜羅了一圈,踩了一些坑。由于瑞芯微的文檔有升級,導致和網絡的文章有出入,所以做個記錄。

rknn-toolkit 轉換文檔:

瑞芯微的轉換文檔在 rknn-toolkit/example/pytorch/yolov5/REAME.md 里

當版本升級到 1.7.5的時候,文檔被刪除,說是要根據airockchip/rknn_model_zoo (github.com) 里的指令來完成。但是model_zoo里的文檔也是沒有說太清楚。

把rknn-toolkit版本退回到,在 1.7.3 版本中還是有的。下面就是按照1.7.3的說明來操作。

yolov-v50 的環境:

官方文檔指定使用yolov5 v5.0,因此需要獲取特定的版本。

需要安裝 pytorch 1.10.0 以下版本,否則會報錯:

AttributeError: ‘Upsample’ object has no attribute ‘recompute_scale_factor’

但是在python 3.10 版本下沒有 pytorch 1.9.1 了,所以要裝python 3.8的環境:

conda create -n YOLOV5-V50 python==3.8

然后把requirement.txt 中的torch 改成 torch<1.10.0

pip3 install -r requirements.txt -i?https://pypi.tuna.tsinghua.edu.cn/simpleSimple Indexicon-default.png?t=N6B9https://pypi.tuna.tsinghua.edu.cn/simple

權重文件:

在執行 python detect.py 默認下載的是最新版本的權重文件,我們需要v5.0的權重文件,所以需要手動下載

wget https://github.com/ultralytics/yolov5/releases/download/v5.0/yolov5s.pt

檢測:

默認使用coco數據集,yolov5s.pt

python detect.py

修改模型,導出

重點是RKNN把最終的sigmoid從模型內部給拿到外部,把sigmoid交給cpu去計算了。具體的參見 rknn-toolkit/example/pytorch/yolov5/REAME.md

3. 直接使用pt模型轉為rknn模型時,需要修改 yolov5/models/yolo.py文件的后處理部分,將class Detect(nn.Module) 類的子函數forward修改為:

def forward(self, x):

? ? ? z = [] # inference output

? ? ? for i in range(self.nl):

? ? ? ? ? ?x[i] = self.m[i](x[i]) # conv

? ? ? return x ```

導出

python export.py --weights yolov5s.pt --img 640 --batch 1 --include onnx

測試和轉換

測試:

測試的時候生成的rknn文件是用于3566的,不知道怎么給弄成3588的,所以測試只能測試

然后把這個.onnx 文件放到

rknn-toolkit2/examples/onnx/yolov5/

修改 test.py,轉換為rknn模型,并查看 result.jpg是不是正確

轉換為3588的:

轉換的腳本不在rknn-toolkit2下,而在 rknpu2/examples/rknn_yolov5_demo/convert_rknn_demo/yolov5 下,修改

platform = 'rk3588' 和 model path,然后運行腳本可以得到rknn

用這個rknn替換掉板子上的文件,可以運行,識別率似乎下降了一點,發現推理時間從20多ms變為30ms左右。

在測試的時候,發現官方提供的onnx是81層,而我們轉化出來的是96層,可能延時時間長跟這個有關系。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/37893.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/37893.shtml
英文地址,請注明出處:http://en.pswp.cn/news/37893.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

LangChain入門:構建LLM驅動的應用程序的初學者指南

LangChain & DemoGPT 一、介紹 你有沒有想過如何使用大型語言模型&#xff08;LLM&#xff09;構建強大的應用程序&#xff1f;或者&#xff0c;也許您正在尋找一種簡化的方式來開發這些應用程序&#xff1f;那么你來對地方了&#xff01;本指南將向您介紹LangChain&#x…

【Sklearn】基于邏輯回歸算法的數據分類預測(Excel可直接替換數據)

【Sklearn】基于邏輯回歸算法的數據分類預測(Excel可直接替換數據) 1.模型原理2.模型參數3.文件結構4.Excel數據5.下載地址6.完整代碼7.運行結果1.模型原理 邏輯回歸是一種用于二分類問題的統計學習方法,盡管名字中含有“回歸”,但實際上是一種分類算法。它的基本原理是通…

網絡基礎--ARP協議介紹

1、ARP作用 ARP&#xff08; Address Resolution Protocol&#xff0c;地址解析協議&#xff09;是將 IP 地址解析為以太網 MAC 地址&#xff08;或稱物理地址&#xff09;的協議。在局域網中&#xff0c;當主機或其它網絡設備有數據要發送給另一個主機或設備時&#xff0c;它必…

Java鷹眼軌跡服務 輕騎小程序 運動健康與社交案例

Java地圖專題課 基本API BMapGLLib 地圖找房案例 MongoDB 百度地圖鷹眼軌跡服務 鷹眼軌跡服務概述 鷹眼是一套軌跡管理服務&#xff0c;提供各端SDK和API供開發者便捷接入&#xff0c;追蹤所管理的車輛/人員等運動物體。 基于鷹眼提供的接口和云端服務&#xff0c;開發者可以迅…

前后端分離------后端創建筆記(05)用戶列表查詢接口(下)

本文章轉載于【SpringBootVue】全網最簡單但實用的前后端分離項目實戰筆記 - 前端_大菜007的博客-CSDN博客 僅用于學習和討論&#xff0c;如有侵權請聯系 源碼&#xff1a;https://gitee.com/green_vegetables/x-admin-project.git 素材&#xff1a;https://pan.baidu.com/s/…

Java通過文件流和文件地址下載文件

通過文件流下載文件 如何使用 MultipartFile 進行文件上傳、下載到本地&#xff0c;并返回保存路徑呢&#xff1a; import org.springframework.web.multipart.MultipartFile;import java.io.BufferedOutputStream; import java.io.FileOutputStream; import java.io.IOExcep…

Redis_緩存2_緩存刪除和淘汰策略

14.5 緩存數據的刪除和替換 14.5.1 過期數據 可以使用ttl查看key的狀態。已過期的數據&#xff0c;redis并未馬上刪除。優先去執行讀寫數據操作&#xff0c;刪除操作延后執行。 14.5.2 刪除策略 redis中每一個value對應一個內存地址&#xff0c;在expires&#xff0c;一個內…

BC117 小樂樂走臺階(附完整代碼)

描述 小樂樂上課需要走n階臺階&#xff0c;因為他腿比較長&#xff0c;所以每次可以選擇走一階或者走兩階&#xff0c;那么他一共有多少種走法&#xff1f; 輸入描述 輸入包含一個整數n (1 ≤ n ≤ 30) 輸出描述 輸出一個整數&#xff0c;即小樂樂可以走的方法數。 思路&a…

分享個試卷去筆跡什么軟件,幾個步驟輕松擦除

試卷擦去筆跡是一項非常關鍵的技能&#xff0c;它可以幫助你更好地管理你的筆記和文件。不管是小伙伴們想重新測試試卷或者是將試卷輸出為電子版&#xff0c;都可以實現的。在這篇文章中&#xff0c;我將分享一些方法和軟件&#xff0c;幫助你更好地進行試卷擦除。有需要的小伙…

個人博客系統測試報告

文章目錄 一、功能測試1.編寫測試用例2.總結測試后發現的BUG 二、UI自動化測試0.搭建測試環境1. 創建公共類2.注冊頁面UI自動化測試用例編寫3.登錄頁面UI自動化測試用例編寫4.用戶博客列表頁面自動化測試5. 修改個信息頁面6. 文章編輯頁面7. 設置密保問題發現bug 8. 所有用戶文…

Stable Diffusion +EbSynth應用實踐和經驗分享

Ebsynth應用 1.安裝ffmpeg 2.安裝pip install transparent-background,下載模型https://www.mediafire.com/file/gjvux7ys4to9b4v/latest.pth/file 放到C:\Users\自己的用戶名.transparent-background\加一個ckpt_base.pth文件 3.秋葉安裝ebsynth插件,重啟webui 填寫項目基本…

Redis 持久化及集群架構

Redis 持久化及集群架構 本篇技術博文將深入探討 Redis 持久化機制的原理、配置和使用方式。我們將介紹兩種常用的持久化方式&#xff1a;RDB 持久化和 AOF 持久化。您將了解到它們的工作原理、優缺點以及如何根據需求選擇合適的持久化方式。 通過深入學習 Redis 持久化及集群…

Rest 優雅的url請求處理風格及注意事項

&#x1f600;前言 本篇博文是關于Rest 風格請求的應用和注意事項&#xff0c;希望能夠幫助到您&#x1f60a; &#x1f3e0;個人主頁&#xff1a;晨犀主頁 &#x1f9d1;個人簡介&#xff1a;大家好&#xff0c;我是晨犀&#xff0c;希望我的文章可以幫助到大家&#xff0c;您…

應急響應-Webshell

文章目錄 一、Webshell概述什么是WebshellWebshell分類基于編程語言基于文件大小/提供的功能多少 Webshell 檢測方法 二、常規處置方法三、技術指南1、初步預判2、 Webshell排查3、Web日志分析&#xff08;查找攻擊路徑及失陷原因&#xff09;4、系統排查4.1 Windows4.2 Linux …

CSS中的position屬性有哪些值,并分別描述它們的作用。

聚沙成塔每天進步一點點 ? 專欄簡介? static? relative? absolute? fixed? sticky? 寫在最后 ? 專欄簡介 前端入門之旅&#xff1a;探索Web開發的奇妙世界 記得點擊上方或者右側鏈接訂閱本專欄哦 幾何帶你啟航前端之旅 歡迎來到前端入門之旅&#xff01;這個專欄是為那…

通達OA SQL注入漏洞【CVE-2023-4166】

通達OA SQL注入漏洞【CVE-2023-4166】 一、產品簡介二、漏洞概述三、影響范圍四、復現環境POC小龍POC檢測工具: 五、修復建議 免責聲明&#xff1a;請勿利用文章內的相關技術從事非法測試&#xff0c;由于傳播、利用此文所提供的信息或者工具而造成的任何直接或者間接的后果及損…

C/C++ 標準模版庫STL(持續更新版)

標準模版庫STL <algorithm> 算法庫 max, min 用于找出一組值中的最大值和最小值 swap 用于交換兩個變量的值 sort 用于對一個范圍內的元素進行排序 lower_bound, upper_bound 用于在已排序的容器中查找元素的下界和上界 unique(a,an)-a 用于在一個范圍內刪除相鄰重…

新的 Python URL 解析漏洞可能導致命令執行攻擊

Python URL 解析函數中的一個高嚴重性安全漏洞已被披露&#xff0c;該漏洞可繞過 blocklist 實現的域或協議過濾方法&#xff0c;導致任意文件讀取和命令執行。 CERT 協調中心&#xff08;CERT/CC&#xff09;在周五的一份公告中說&#xff1a;當整個 URL 都以空白字符開頭時&…

在 docker 中快速啟動 Apache Hive

介紹 在偽分布式模式下&#xff0c;在Docker容器內運行Apache Hive&#xff0c;可以提供以下功能&#xff1a;快速啟動/調試/為Hive準備測試環境。 快速開始 1. 拉取鏡像 從DockerHub&#xff1a;https://hub.docker.com/r/apache/hive/tags中拉取鏡像。目前發布了3個鏡像&…

gitlab修改遠程倉庫地址

目錄 背景&#xff1a; 解決&#xff1a; 1.刪除本地倉庫關聯的遠程地址&#xff0c;添加新的遠程倉庫地址 2.直接修改本地倉庫關聯的遠程倉庫地址 3.打開.git隱藏文件修改遠程倉庫地址 4.拉取代碼報錯(git host key verification failed) 背景&#xff1a; 公司搬家&#…