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

yolov5模型(.pt)在RK3588(S)上的部署(實時攝像頭檢測)

這篇具有很好參考價值的文章主要介紹了yolov5模型(.pt)在RK3588(S)上的部署(實時攝像頭檢測)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

github倉庫

  • 所需:
    • 安裝了Ubuntu20系統(tǒng)的RK3588
    • 安裝了Ubuntu18的電腦或者虛擬機
一、yolov5 PT模型獲取

Anaconda教程
YOLOv5教程
經(jīng)過上面兩個教程之后,你應該獲取了自己的best.pt文件

二、PT模型轉(zhuǎn)onnx模型
  • models/yolo.py文件中的class類下的forward函數(shù)由:
def forward(self, x):
    z = []  # inference output
    for i in range(self.nl):
        x[i] = self.m[i](x[i])  # conv
        bs, _, ny, nx = x[i].shape  # x(bs,255,20,20) to x(bs,3,20,20,85)
        x[i] = x[i].view(bs, self.na, self.no, ny, nx).permute(0, 1, 3, 4, 2).contiguous()
        if not self.training:  # inference
            if self.dynamic or self.grid[i].shape[2:4] != x[i].shape[2:4]:
                self.grid[i], self.anchor_grid[i] = self._make_grid(nx, ny, i)
            if isinstance(self, Segment):  # (boxes + masks)
                xy, wh, conf, mask = x[i].split((2, 2, self.nc + 1, self.no - self.nc - 5), 4)
                xy = (xy.sigmoid() * 2 + self.grid[i]) * self.stride[i]  # xy
                wh = (wh.sigmoid() * 2) ** 2 * self.anchor_grid[i]  # wh
                y = torch.cat((xy, wh, conf.sigmoid(), mask), 4)
            else:  # Detect (boxes only)
                xy, wh, conf = x[i].sigmoid().split((2, 2, self.nc + 1), 4)
                xy = (xy * 2 + self.grid[i]) * self.stride[i]  # xy
                wh = (wh * 2) ** 2 * self.anchor_grid[i]  # wh
                y = torch.cat((xy, wh, conf), 4)
            z.append(y.view(bs, self.na * nx * ny, self.no))
    return x if self.training else (torch.cat(z, 1),) if self.export else (torch.cat(z, 1), x)

改為:

def forward(self, x):
    z = []  # inference output
    for i in range(self.nl):
        x[i] = self.m[i](x[i])  # conv
    return x
  • export.py文件中的run函數(shù)下的語句:
shape = tuple((y[0] if isinstance(y, tuple) else y).shape)  # model output shape

改為:

shape = tuple((y[0] if isinstance(y, tuple) else y))  # model output shape
  • 將你訓練模型對應的run/train/目錄下的exp/weighst/best.pt文件移動至與export.py同目錄下
  • 保證工作目錄位于yolov5主文件夾,在控制臺執(zhí)行語句:
cd yolov5 
python export.py --weights best.pt --img 640 --batch 1 --include onnx --opset 12
  • 然后在主文件夾下出現(xiàn)了一個best.onnx文件,在Netron中查看模型是否正確
  • 點擊左上角菜單->Properties…
  • 查看右側(cè)OUTPUTS是否出現(xiàn)三個輸出節(jié)點,是則ONNX模型轉(zhuǎn)換成功。
  • 如果轉(zhuǎn)換好的best.onnx模型不是三個輸出節(jié)點,則不用嘗試下一步,會各種報錯。
三、onnx模型轉(zhuǎn)rknn模型
  • 我使用的是VMWare虛擬機安裝的Ubuntu18.04系統(tǒng),注意,不是在RK3588上,是在你的電腦或者虛擬機上操作這一步驟。

  • rknn-toolkit2-1.4.0所需python版本為3.6所以需要安裝Miniconda來幫助管理。

  • 安裝Miniconda for Linux

    • 進入到下載得到的Miniconda3-latest-Linux-x86_64.sh所在目錄
      chmod +x Miniconda3-latest-Linux-x86_64.sh
      ./Miniconda3-latest-Linux-x86_64.sh
      
    • 提示什么都一直同意,直到安裝完畢。
    • 安裝成功后,重新打開終端。
    • 如果安裝成功,終端最前面應該會有一個(base)
    • 安裝失敗的去參考別的Miniconda3安裝教程。
    • 創(chuàng)建虛擬環(huán)境:
      conda create -n rknn3.6 python=3.6 
      
    • 激活虛擬環(huán)境:
      conda activate rknn3.6
      
    • 激活成功時,終端最前面應該會有一個(rknn3.6)
  • 下載rknn-toolkit2-1.4.0

    • 到Ubuntu,下載源代碼下的RK356X/RK3588 RKNN SDK
    • 進入百度網(wǎng)盤:RKNN_SDK-> RK_NPU_SDK_1.4.0 下載 rknn-toolkit2-1.4.0
    • 下載到Ubuntu后,進入rknn-toolkit2-1.4.0目錄
      pip install packages/rknn_toolkit2-1.4.0_22dcfef4-cp36-cp36m-linux_x86_64.whl 
      
    • 等待安裝完畢檢查是否安裝成功:
      python
      from rknn.api import RKNN
      
    • 如果沒有報錯則成功。
    • 如果報錯:
      • 1.是否處于rknn3.6虛擬環(huán)境下;
      • 2.pip install packages/rknn_toolkit2-1.4.0_22dcfef4-cp36-cp36m-linux_x86_64.whl是否報錯;
      • 3.pip install報錯的時候,提示缺什么就用pip install或者sudo apt-get install安裝什么;
  • 上述所需都安裝并且驗證成功,則開始下一步。

  • best.onnx模型轉(zhuǎn)換為best.rknn模型文章來源地址http://www.zghlxwxcb.cn/news/detail-463236.html

    • 進入轉(zhuǎn)換目錄:
      cd examples/onnx/yolov5
      
    • 最好是復制一份test.py出來進行修改:
      cp test.py ./mytest.py
      
    • 將一開始定義的文件進行修改,這是我修改之后的:
      ONNX_MODEL = 'best.onnx'    #待轉(zhuǎn)換的onnx模型
      RKNN_MODEL = 'best.rknn'    #轉(zhuǎn)換后的rknn模型
      IMG_PATH = './1.jpg'        #用于測試圖片
      DATASET = './dataset.txt'   #用于測試的數(shù)據(jù)集,內(nèi)容為多個測試圖片的名字
      QUANTIZE_ON = True          #不修改
      OBJ_THRESH = 0.25           #不修改
      NMS_THRESH = 0.45           #不修改
      IMG_SIZE = 640              #不修改
      CLASSES = ("person")        #修改為你所訓練的模型所含的標簽
      
    • if __name__ == '__main__':中的語句:
      rknn.config(mean_values=[[0, 0, 0]], std_values=[[255, 255, 255]])
      
    • 修改為
      rknn.config(mean_values=[[0, 0, 0]], std_values=[[255, 255, 255]], target_platform='rk3588')
      
    • 想要程序執(zhí)行完,展示推理效果,將以下語句:
      # cv2.imshow("post process result", img_1)
      # cv2.waitKey(0)
      # cv2.destroyAllWindows()
      
    • 注釋打開:
      cv2.imshow("post process result", img_1)
      cv2.waitKey(0)
      cv2.destroyAllWindows()
      
    • 終端執(zhí)行:
      python mytest.py
      
    • 運行完展示效果,以及文件夾中出現(xiàn)best.rknn則該步驟成功。
四、在RKNN3588上部署rknn模型并實時攝像頭推理檢測
  • RKNN3588Ubuntu20系統(tǒng)上安裝Miniconda,需要注意的是,RKNN3588Ubuntu20系統(tǒng)為aarch架構(gòu)因此下載的Miniconda版本和之前有所不同,需要選擇對應的aarch版本。
  • aarchMiniconda下載
  • 安裝不再贅述。
  • 創(chuàng)建虛擬環(huán)境,因為在RK3588上要用到rknn-toolkit-lite2所以需要安裝python3.7:
    • conda create -n rknnlite3.7 python=3.7
    • conda activate rknnlite3.7
  • 下載rknn-toolkit-lite2RK3588,也就是下載rknn-toolkit2-1.4.0,不再贅述。
  • 安裝rknn-toolkit-lite2
    • 進入rknn-toolkit2-1.4.0/rknn-toolkit-lite2目錄
      pip install packages/rknn_toolkit_lite2-1.4.0-cp37-cp37m-linux_aarch64.whl
      
    • 等待安裝完畢
    • 測試是否安裝成功:
      python
      from rknnlite.api import RKNNLite
      
    • 不報錯則成功
  • example文件夾下新建一個test文件夾
  • 在其中放入你轉(zhuǎn)換成功的best.rknn模型以及文章開頭github倉庫下的detect.py文件
  • detect.py文件中需要修改的地方:
    • 定義
      RKNN_MODEL = 'best.rknn'      #你的模型名稱
      IMG_PATH = './1.jpg'          #測試圖片名
      CLASSES = ("cap")             #標簽名
      
    • if __name__ == '__main__'::
      capture = cv2.VideoCapture(11)      #其中的數(shù)字為你Webcam的設備編號
      
      • 關(guān)于設備編號,在終端中運行:
        v4l2-ctl --list-devices     
        
      • 打印出的Cam之類的字眼對應的/dev/video11中的11就是你的設備編號。
  • 運行腳本:
    python detect.py
    
  • 部署完成。

到了這里,關(guān)于yolov5模型(.pt)在RK3588(S)上的部署(實時攝像頭檢測)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領支付寶紅包贊助服務器費用

相關(guān)文章

  • yolov5-6.0項目部署+自用Pytorch模型轉(zhuǎn)換rknn模型并在RK3568 linux(Debian)平臺上使用qt部署使用NPU推理加速攝像頭目標識別詳細新手教程

    yolov5-6.0項目部署+自用Pytorch模型轉(zhuǎn)換rknn模型并在RK3568 linux(Debian)平臺上使用qt部署使用NPU推理加速攝像頭目標識別詳細新手教程

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

    2024年02月05日
    瀏覽(33)
  • RK3588平臺開發(fā)系列講解(項目篇)YOLOv5部署測試

    RK3588平臺開發(fā)系列講解(項目篇)YOLOv5部署測試

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

    2024年02月06日
    瀏覽(27)
  • 輕量級實時跟蹤算法NanoTrack在瑞芯微RK3588上的部署以及使用

    輕量級實時跟蹤算法NanoTrack在瑞芯微RK3588上的部署以及使用

    文章目錄 前言 一、模型轉(zhuǎn)換 1.環(huán)境配置 2.模型解構(gòu) 二、rk3588平臺使用 1.模型初始化 2.推理 github: https://github.com/Try2ChangeX/NanoTrack_RK3588_python: python版本基于rk3588的NanoTrack,每秒可達120FPS 主要參考: SiamTrackers/NanoTrack at master · HonglinChu/SiamTrackers · GitHub GitHub - rockchip-linux/rknn-tool

    2024年02月13日
    瀏覽(33)
  • 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)境 報錯:NVIDIA-tensorrt安裝失敗! 解決:從源碼安裝TensorRt: ①安裝CUDNN和CudaToolKit等GPU配置 ②從官網(wǎng)下載需要的rt版本:https://developer.nvidia.com/nvidia-tensorrt-8x-download ③解壓后,將lib文件夾添加到

    2024年02月10日
    瀏覽(22)
  • c++讀取yolov5模型進行目標檢測(讀取攝像頭實時監(jiān)測)

    c++讀取yolov5模型進行目標檢測(讀取攝像頭實時監(jiān)測)

    文章介紹 本文是篇基于yolov5模型的一個工程,主要是利用c++將yolov5模型進行調(diào)用并測試,從而實現(xiàn)目標檢測任務 任務過程中主要重點有兩個,第一 版本問題,第二配置問題 一,所需軟件及版本 ? ? ? 訓練部分 pytorch==1.13.0? opencv==3.4.1? ?其他的直接pip即可 ? ? ? c++部署?

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

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

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

    2024年04月09日
    瀏覽(27)
  • YOLOV5-LITE實時目標檢測(onnxruntime部署+opencv獲取攝像頭+NCNN部署)python版本和C++版本

    使用yolov5-lite自帶的export.py導出onnx格式,圖像大小設置320,batch 1 之后可以使用 onnxsim對模型進一步簡化 onnxsim參考鏈接:onnxsim-讓導出的onnx模型更精簡_alex1801的博客-CSDN博客 這個版本的推理FPS能有11+FPS 這兩處換成自己的模型和訓練的類別即可: ??? parser.add_argument(\\\'--modelpa

    2024年02月04日
    瀏覽(30)
  • rk3588下yolov5火焰識別圖片輸出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日
    瀏覽(16)
  • RK3588平臺開發(fā)系列講解(項目篇)基于yolov5的物體識別

    RK3588平臺開發(fā)系列講解(項目篇)基于yolov5的物體識別

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

    2024年02月06日
    瀏覽(21)
  • yolov5 pt 模型 導出 onnx

    yolov5 pt 模型 導出 onnx

    在訓練好的yolov5 pt 模型 可以 通過 export.py 進行導出 onnx 導出流程 在 export.py 設置模型和數(shù)據(jù)源的yaml 在官方的文檔中 說明了可以導出的具體的類型。 在 --include 添加導出的類型, 不同的 類型的 環(huán)境要求不一樣,建議虛擬環(huán)境,比如onnx 和 openvino 的numpy 版本要求不一只,一

    2024年02月11日
    瀏覽(23)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領取紅包

二維碼2

領紅包