国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

yolov5訓(xùn)練pt模型并轉(zhuǎn)換為rknn模型,部署在RK3588開發(fā)板上——從訓(xùn)練到部署全過(guò)程

這篇具有很好參考價(jià)值的文章主要介紹了yolov5訓(xùn)練pt模型并轉(zhuǎn)換為rknn模型,部署在RK3588開發(fā)板上——從訓(xùn)練到部署全過(guò)程。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

目錄

一、任務(wù)介紹

二、實(shí)驗(yàn)過(guò)程

2.1 使用正確版本的yolov5進(jìn)行訓(xùn)練(平臺(tái):x86機(jī)器windows系統(tǒng))

2.2 best.pt轉(zhuǎn)換為best.onnx(平臺(tái):x86機(jī)器window系統(tǒng))

2.3 best.onnx轉(zhuǎn)換為best.rknn(平臺(tái):x86機(jī)器Linux系統(tǒng))

2.3.1 環(huán)境準(zhǔn)備和工具包安裝

2.3.2 onnx轉(zhuǎn)換為rknn

2.4 RK3588部署rknn實(shí)現(xiàn)NPU加速(平臺(tái):aarch板子Linux系統(tǒng))

三、總結(jié)


一、任務(wù)介紹

????????瑞芯微RK3588是一款搭載了NPU的國(guó)產(chǎn)開發(fā)板。NPU(neural-network processing units)可以說(shuō)是為了嵌入式神經(jīng)網(wǎng)絡(luò)和邊緣計(jì)算量身定制的,但若想調(diào)用RK3588的NPU單元進(jìn)行推理加速,則需要首先將模型轉(zhuǎn)換為.rknn格式的模型,否則無(wú)法使用。

? ? ? ? 這次我們的任務(wù)是將yolov5訓(xùn)練得到的pt模型,一步步轉(zhuǎn)換為rknn模型,并將rknn模型部署在搭載RK3588的StationPC M3主機(jī)上,使用NPU推理。(官網(wǎng)NPU教程:NPU使用 — Firefly Wiki)查閱資料和官網(wǎng)后發(fā)現(xiàn)轉(zhuǎn)換和使用過(guò)程分以下幾步,首先總結(jié)給大家,后文細(xì)說(shuō):

1.使用正確版本(v5.0)的yolov5進(jìn)行訓(xùn)練得到pt模型

2.將pt模型使用yolov5工程中的export.py轉(zhuǎn)換為onnx模型;

3.將onnx模型使用rknn-toolkit2中onnx文件夾的test.py轉(zhuǎn)換為rknn模型;

4.在板子上使用rknpu2工具調(diào)用rknn模型,實(shí)現(xiàn)NPU推理加速。

? ? ? ? 接下來(lái)進(jìn)行詳細(xì)介紹。

二、實(shí)驗(yàn)過(guò)程

2.1 使用正確版本的yolov5進(jìn)行訓(xùn)練(平臺(tái):x86機(jī)器windows系統(tǒng))

? ? ? ? 在這次任務(wù)之前,博主本人甚至不知道yolov5有不同的版本(小白落淚),更不知道用不同版本訓(xùn)練得到的pt模型會(huì)決定rknn模型轉(zhuǎn)換的成功與否。一開始我使用的是最新版本的yolov5(大概是v7.0)進(jìn)行訓(xùn)練,最后模型轉(zhuǎn)換自然是不成功。網(wǎng)上也有許多使用新版本yolov5訓(xùn)練,之后修改onnx模型的教程,但都比較麻煩。人菜就要跟著官方教程做,請(qǐng)看官方教程:

rknn-toolkit/examples/pytorch/yolov5 at master · rockchip-linux/rknn-toolkit · GitHub

? ? ? ? 需要指出的是,雖然我們后面要使用的是rknn-toolkit2工具進(jìn)行模型轉(zhuǎn)換,但教程卻在rknn-toolkit工程中,github二者的父目錄如圖:

yolov5 rknn,嵌入式硬件,邊緣計(jì)算,pytorch,深度學(xué)習(xí)

? ? ? ? ?進(jìn)入rknn-toolkit工程,瀏覽至/example/pytorch/yolov5,在README中赫然寫著:

yolov5 rknn,嵌入式硬件,邊緣計(jì)算,pytorch,深度學(xué)習(xí)

? ? ? ? 這就是我們本次要使用的“正確版本的yolov5” ,怕麻煩的讀者請(qǐng)一定按照這個(gè)id去yolov5官網(wǎng)找到工程并克隆下來(lái)。進(jìn)入yolov5官網(wǎng)GitHub - ultralytics/yolov5: YOLOv5 ?? in PyTorch > ONNX > CoreML > TFLite

在右上角搜索這個(gè)commit id并進(jìn)入“In this repository”,如圖所示:

yolov5 rknn,嵌入式硬件,邊緣計(jì)算,pytorch,深度學(xué)習(xí)

? ? ? ? ?進(jìn)入commits,點(diǎn)擊右邊的commit id,再次進(jìn)入后點(diǎn)擊Browse files,如下三圖所示:

? ? ? ? commit id:

yolov5 rknn,嵌入式硬件,邊緣計(jì)算,pytorch,深度學(xué)習(xí)

? ? ? ? Browse files:

yolov5 rknn,嵌入式硬件,邊緣計(jì)算,pytorch,深度學(xué)習(xí)

? ? ? ? 對(duì)應(yīng)版本的源碼:

yolov5 rknn,嵌入式硬件,邊緣計(jì)算,pytorch,深度學(xué)習(xí)

????????非常棒,至此我們已經(jīng)找到了正確版本的yolov5!接下來(lái)就是把代碼克隆到本地或者云服務(wù)器,開始訓(xùn)練自己的pt模型;此處實(shí)際上是yolov5 5.0版本的工程,其中未包含預(yù)訓(xùn)練模型yolov5s.pt,需要我們自行下載,在releasesl鏈接中找到V5.0下載yolov5s.pt,鏈接如下:

https://github.com/ultralytics/yolov5/releases

yolov5 rknn,嵌入式硬件,邊緣計(jì)算,pytorch,深度學(xué)習(xí)

? ? ? ? 關(guān)于yolov5的運(yùn)行環(huán)境配置、參數(shù)修改和訓(xùn)練命令,網(wǎng)上教程很多,滿足package的要求,可以開始訓(xùn)練收斂即可,不作為本文重點(diǎn)。最終在經(jīng)過(guò)若干輪訓(xùn)練后,我們得到了自己的best.pt模型,本部分告一段落。

2.2 best.pt轉(zhuǎn)換為best.onnx(平臺(tái):x86機(jī)器window系統(tǒng))

? ? ? ? 此處依然參考rknn-toolkit工程中的教程進(jìn)行轉(zhuǎn)換,切記以下步驟!??!

yolov5 rknn,嵌入式硬件,邊緣計(jì)算,pytorch,深度學(xué)習(xí)

? ? ? ? 注意:在訓(xùn)練時(shí)不要修改yolo.py的這段代碼,訓(xùn)練完成后使用export.py進(jìn)行模型導(dǎo)出轉(zhuǎn)換時(shí)一定要進(jìn)行修改,不然會(huì)導(dǎo)致后面的rknn模型轉(zhuǎn)換失敗!?

? ? ? ? 修改后將best.pt移動(dòng)至export.py同一文件夾下,在命令行調(diào)用以下命令:

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

? ? ? ? 我們便可以得到成功轉(zhuǎn)換的模型best.onnx。

2.3 best.onnx轉(zhuǎn)換為best.rknn(平臺(tái):x86機(jī)器Linux系統(tǒng))

2.3.1 環(huán)境準(zhǔn)備和工具包安裝

? ? ? ? 有了以上的best.onnx模型作為基礎(chǔ),現(xiàn)在可以正式開始rknn模型的轉(zhuǎn)換了。此處的轉(zhuǎn)換工具rknn-toolkit2只能在Linux系統(tǒng)上運(yùn)行,這里我使用的是PC上的Ubuntu虛擬機(jī)。在上文提到的鏈接中下載rknn-toolkit2,下載后的文件夾如圖:

yolov5 rknn,嵌入式硬件,邊緣計(jì)算,pytorch,深度學(xué)習(xí)

? ? ? ? 首先安裝rknn-toolkit2的環(huán)境,?其環(huán)境要求在./doc/requirements_cp38-1.4.0.txt中,這里我使用的是miniconda創(chuàng)建的python3.8虛擬環(huán)境,和windows下anaconda使用方法類似,方便且占用空間小,推薦大家在管理python環(huán)境時(shí)使用。創(chuàng)建環(huán)境并命名為rknn,使用pip安裝requirements_cp38-1.4.0.txt中的包,過(guò)程如下圖:

yolov5 rknn,嵌入式硬件,邊緣計(jì)算,pytorch,深度學(xué)習(xí)

? ? ? ? ?環(huán)境滿足需求后便可以安裝rknn-toolkit2工具包了,瀏覽至./packages中,輸入以下命令:

pip install rknn_toolkit2-1.4.0_22dcfef4-cp38-cp38-linux_x86_64.whl

? ? ? ? 提示安裝完成后我們可以檢查是否安裝成功,在終端中運(yùn)行python,輸入:

from rknn.api import RKNN

? ? ? ? 若不報(bào)錯(cuò)說(shuō)明我們的工具包已經(jīng)安裝成功,之后便可進(jìn)行rknn模型的轉(zhuǎn)換了~

2.3.2 onnx轉(zhuǎn)換為rknn

? ? ? ? 在rknn-toolkit2工程文件夾中瀏覽至./examples/onnx/yolov5,將我們?cè)?.2中轉(zhuǎn)換得到的best.onnx復(fù)制到該文件夾下,修改該文件夾下的test.py中的內(nèi)容為自己模型的名字,要修改的地方如下:

yolov5 rknn,嵌入式硬件,邊緣計(jì)算,pytorch,深度學(xué)習(xí)

yolov5 rknn,嵌入式硬件,邊緣計(jì)算,pytorch,深度學(xué)習(xí)

?????????在這個(gè)test.py的main函數(shù)中(在第239行附近)可以了解到這個(gè)python文件的作用:

? ? ? ?【?配置——加載onnx模型—導(dǎo)出rknn模型——rknn模型推理——后處理——輸出結(jié)果

? ? ? ? 運(yùn)行test.py,神奇的轉(zhuǎn)換過(guò)程就開始了...

python test.py

yolov5 rknn,嵌入式硬件,邊緣計(jì)算,pytorch,深度學(xué)習(xí)

? ? ? ? 最終彈窗得到post process result,若結(jié)果正確,說(shuō)明我們的rknn模型轉(zhuǎn)換成功了!這里的test.py構(gòu)建了一個(gè)虛擬的NPU運(yùn)行環(huán)境,模擬在RK3588上真實(shí)運(yùn)行的情況。結(jié)果正確說(shuō)明離最終完成任務(wù)只差部署在板子上這一步了。

yolov5 rknn,嵌入式硬件,邊緣計(jì)算,pytorch,深度學(xué)習(xí)

?????????這時(shí)在當(dāng)前文件夾./example/onnx/yolov5中可以看到生成的best.rknn模型。至此,我們離勝利就不遠(yuǎn)了。

2.4 RK3588部署rknn實(shí)現(xiàn)NPU加速(平臺(tái):aarch板子Linux系統(tǒng))

? ? ? ? 終于RK3588板子登場(chǎng)的時(shí)候了,但如果它還是原生的安卓系統(tǒng),請(qǐng)按官網(wǎng)教程給它安裝一個(gè)Linux系統(tǒng)吧。我這里使用TF卡燒錄安裝了Ubuntu系統(tǒng)。

? ? ? ? 依然找到官網(wǎng),下載其中的rknpu2工具,鏈接如下:https://github.com/rockchip-linux/rknpu2

? ? ? ? 這一部分借鑒了該博客,十分詳細(xì),大家可以將轉(zhuǎn)換后的best.rknn模型復(fù)制到板子上,并按照這個(gè)步驟進(jìn)行操作:yolov5訓(xùn)練并生成rknn模型以及3588平臺(tái)部署_新鑫信心的博客-CSDN博客_rknn yolov5

yolov5 rknn,嵌入式硬件,邊緣計(jì)算,pytorch,深度學(xué)習(xí)

?????????最終安裝的命令如上圖最后一行代碼所示,第一個(gè)參數(shù)為生成的推理程序,第二個(gè)參數(shù)為我們之前訓(xùn)練和轉(zhuǎn)換得到的best.rknn模型,第三個(gè)參數(shù)為待檢測(cè)的圖片。最終會(huì)輸出推理結(jié)果out.jpg。若讀者想要在自己編寫的python代碼中調(diào)用該程序,可以使用subprocess.Popen()命令,我書寫的代碼段如下,僅供參考:

p = subprocess.Popen(['./rknn_yolov5_demo', './model/RK3588/best.rknn', './defect_det.jpg'])
p.wait()
picDetected = cv2.imread('out.jpg')

??????? 我得到的out.jpg如下,一個(gè)簡(jiǎn)單的二分類缺陷檢測(cè):yolov5 rknn,嵌入式硬件,邊緣計(jì)算,pytorch,深度學(xué)習(xí)

??????? 到了這一步,我們已經(jīng)成功完成了任務(wù),撒花~~~但調(diào)用了NPU之后,與CPU相比究竟有沒有實(shí)現(xiàn)加速呢?這里進(jìn)行一個(gè)對(duì)比:

????????NPU推理速度(69ms左右):

yolov5 rknn,嵌入式硬件,邊緣計(jì)算,pytorch,深度學(xué)習(xí)

????????CPU推理速度(2.16s左右):?

yolov5 rknn,嵌入式硬件,邊緣計(jì)算,pytorch,深度學(xué)習(xí)

? ? ? ? 推理速度快了30多倍!NPU還是很給力的。

三、總結(jié)

? ? ? ? 本文比較好地實(shí)現(xiàn)了yolov5模型從訓(xùn)練pt模型,到轉(zhuǎn)換為rknn模型,最終部署在RK3588板子上使用NPU加速推理的過(guò)程。其它教程指出也可以使用rknn-toolkit-lite在RK3588上完成部署,這部分沒有時(shí)間驗(yàn)證了,歡迎大家進(jìn)行探索。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-777399.html

到了這里,關(guān)于yolov5訓(xùn)練pt模型并轉(zhuǎn)換為rknn模型,部署在RK3588開發(fā)板上——從訓(xùn)練到部署全過(guò)程的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • yolov5-6.0項(xiàng)目部署+自用Pytorch模型轉(zhuǎn)換rknn模型并在RK3568 linux(Debian)平臺(tái)上使用qt部署使用NPU推理加速攝像頭目標(biāo)識(shí)別詳細(xì)新手教程

    yolov5-6.0項(xiàng)目部署+自用Pytorch模型轉(zhuǎn)換rknn模型并在RK3568 linux(Debian)平臺(tái)上使用qt部署使用NPU推理加速攝像頭目標(biāo)識(shí)別詳細(xì)新手教程

    1 我們打開yolov的官網(wǎng),Tags選擇6.0版本 2. 下載該壓縮包并解壓到工程目錄下 3. 我們這里使用pycharm,專門針對(duì)python的IDE,用起來(lái)非常方便,下載方式就是官網(wǎng)直接下載,用的是社區(qū)版 4. 我們需要安裝環(huán)境,這里我推薦安裝Anaconda在電腦上,這是一個(gè)非常方便的包管理工具,可

    2024年02月05日
    瀏覽(32)
  • 36、RK3399Pro 環(huán)境搭建和Yolov5 c++調(diào)用opencv進(jìn)行RKNN模型部署和使用

    36、RK3399Pro 環(huán)境搭建和Yolov5 c++調(diào)用opencv進(jìn)行RKNN模型部署和使用

    基本思想:記錄rk3399 pro配置環(huán)境和c++ npu開發(fā)記錄,主要想搞一份c++代碼和其它圖像算法結(jié)合一下,好進(jìn)行部署,淘寶鏈接見附錄 ?需要的python3.7對(duì)應(yīng)的aarch64的whl包:包含opencv-whl 、h5py-whl包: 鏈接: https://pan.baidu.com/s/1cvCAmHBa_4KgEjrcFIYnig 提取碼: 5ui4 鏈接: https://pan.baidu.com/s/1hrc

    2024年02月07日
    瀏覽(28)
  • 使用rknn-toolkit2把YOLOV5部署到OK3588上

    使用rknn-toolkit2把YOLOV5部署到OK3588上

    首先在PC的ubuntu系統(tǒng)安裝虛擬環(huán)境: 我的服務(wù)器是ubuntu18.04版本,所以安裝python3.6 conda create -n ok3588 python=3.6 需要鍵盤輸入y,然后完成虛擬環(huán)境安裝。 其他系統(tǒng)的對(duì)應(yīng)關(guān)系: Ubuntu 18.04 python 3.6 / Ubuntu 20.04 python 3.8 / Ubuntu 22.04 python 3.10 進(jìn)入虛擬環(huán)境 conda activate ok3588 首先安裝正

    2024年02月16日
    瀏覽(24)
  • RK3588平臺(tái)開發(fā)系列講解(項(xiàng)目篇)YOLOv5部署測(cè)試

    RK3588平臺(tái)開發(fā)系列講解(項(xiàng)目篇)YOLOv5部署測(cè)試

    平臺(tái) 內(nèi)核版本 安卓版本 RK3588 Linux 5.10 Android 12 沉淀、分享、成長(zhǎng),讓自己和他人都能有所收獲!??

    2024年02月06日
    瀏覽(27)
  • 瑞芯微RK3568/RK3588平臺(tái)YOLOV5實(shí)時(shí)視頻算法的部署小白教程

    瑞芯微RK3568/RK3588平臺(tái)YOLOV5實(shí)時(shí)視頻算法的部署小白教程

    本文實(shí)現(xiàn)整體的部署流程比較小白,首先在PC上分別實(shí)現(xiàn)工程中的模型仿真推理、yolov5-pytorch仿真推理、自己訓(xùn)練yolov5模型仿真推理,完成仿真之后再在板端分別實(shí)現(xiàn)rk提供模型的板端推理、yolov5-pytorch板端推理、自己訓(xùn)練的yolov5模型板端推理,最后實(shí)現(xiàn)自己訓(xùn)練的yolov5模型實(shí)

    2024年02月06日
    瀏覽(220)
  • YOLOV5(二):將pt轉(zhuǎn)為onnx模型并用opencv部署

    YOLOV5(二):將pt轉(zhuǎn)為onnx模型并用opencv部署

    yolov5s 6.0自帶export.py程序可將.pt轉(zhuǎn)為.onnx等,只需配置需要的環(huán)境即可。 1. 安裝環(huán)境 報(bào)錯(cuò):NVIDIA-tensorrt安裝失?。?解決:從源碼安裝TensorRt: ①安裝CUDNN和CudaToolKit等GPU配置 ②從官網(wǎng)下載需要的rt版本:https://developer.nvidia.com/nvidia-tensorrt-8x-download ③解壓后,將lib文件夾添加到

    2024年02月10日
    瀏覽(21)
  • 瑞芯微RK3588 C++部署Yolov8檢測(cè)和分割模型

    瑞芯微RK3588 C++部署Yolov8檢測(cè)和分割模型

    最近這一個(gè)月在研究國(guó)產(chǎn)瑞芯微板子上部署yolov8的檢測(cè)和分割模型,踩了很多坑,記錄一下部署的過(guò)程和遇到的一些問(wèn)題: 需要的環(huán)境和代碼主要包括: (1)rknn-toolkit2-1.5.2:工具鏈,開發(fā)環(huán)境 (2)rockchip-yolov8:pt模型轉(zhuǎn)onnx模型 (3)yolov8_onnx2rknn:在(2)的基礎(chǔ)上轉(zhuǎn)檢測(cè)

    2024年04月09日
    瀏覽(27)
  • RK3588平臺(tái)開發(fā)系列講解(AI 篇)RKNN-Toolkit2 模型的加載

    RK3588平臺(tái)開發(fā)系列講解(AI 篇)RKNN-Toolkit2 模型的加載

    沉淀、分享、成長(zhǎng),讓自己和他人都能有所收獲!?? ?? RKNN-Toolkit2 目前支持 Caffe 、 TensorFlow 、 TensorFlowLite 、 ONNX 、 DarkNet 、 PyTorch 等模型的加載轉(zhuǎn)換,這些模型在加載時(shí)需調(diào)用對(duì)應(yīng)的接口,以下為這些接口的詳細(xì)說(shuō)明。

    2024年02月11日
    瀏覽(89)
  • rk3588下yolov5火焰識(shí)別圖片輸出log

    post process config: box_conf_threshold = 0.25, nms_threshold = 0.45 Loading mode… sdk version: 1.5.2 (c6b7b351a@2023-08-23T15:28:22) driver version: 0.9.3 model input num: 1, output num: 3 index=0, name=images, n_dims=4, dims=[1, 640, 640, 3], n_elems=1228800, size=1228800, w_stride = 640, size_with_stride=1228800, fmt=NHWC, type=INT8, qnt_type=AFFINE, zp

    2024年03月13日
    瀏覽(15)
  • RK3588平臺(tái)開發(fā)系列講解(項(xiàng)目篇)基于yolov5的物體識(shí)別

    RK3588平臺(tái)開發(fā)系列講解(項(xiàng)目篇)基于yolov5的物體識(shí)別

    平臺(tái) 內(nèi)核版本 安卓版本 RK3588 Linux 5.10 Android 12 沉淀、分享、成長(zhǎng),讓自己和他人都能有所收獲!?? ?? 本篇將給大家介紹,如

    2024年02月06日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包