0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

【YOLOv5】LabVIEW+TensorRT的yolov5部署實戰(zhàn)(含源碼)

王立奇 ? 來源:wangstoudamire ? 作者:wangstoudamire ? 2023-08-21 22:20 ? 次閱讀

前言

前面我們給大家介紹了使用OpenCV以及ONNX工具包實現(xiàn)yolov5在LabVIEW中的部署,有英偉達顯卡的朋友們可能已經(jīng)感受過使用cuda加速時yolov5的速度,今天主要和大家分享在LabVIEW中使用純TensoRT工具包快速部署并實現(xiàn)yolov5的物體識別, 本博客中使用的智能工具包可到主頁置頂博客[https://blog.csdn.net/virobotics/article/details/129304465]
中安裝
。若配置運行過程中遇到困難,歡迎大家評論區(qū)留言,博主將盡力解決。

以下是YOLOv5的相關(guān)筆記總結(jié),希望對大家有所幫助。

【YOLOv5】LabVIEW+OpenVINO讓你的YOLOv5在CPU上飛起來https://blog.csdn.net/virobotics/article/details/124951862
【YOLOv5】LabVIEW OpenCV dnn快速實現(xiàn)實時物體識別(Object Detection)https://blog.csdn.net/virobotics/article/details/124929483
【YOLOv5】手把手教你使用LabVIEW ONNX Runtime部署 TensorRT加速,實現(xiàn)YOLOv5實時物體識別(含源碼)https://blog.csdn.net/virobotics/article/details/124981658

一、關(guān)于YOLOv5

YOLOv5是在 COCO 數(shù)據(jù)集上預(yù)訓(xùn)練的一系列對象檢測架構(gòu)和模型。表現(xiàn)要優(yōu)于谷歌開源的目標(biāo)檢測框架 EfficientDet,在檢測精度和速度上相比yolov4都有較大的提高。本博客,我們以YOLOv5 6.1版本來介紹相關(guān)的部署開發(fā)。

在這里插入圖片描述
YOLOv5相比于前面yolo模型的主要特點是:
1、小目標(biāo)的檢測精度上有明顯的提高;
2、能自適應(yīng)錨框計算
3、具有數(shù)據(jù)增強功能,隨機縮放,裁剪,拼接等功能
4、靈活性極高、速度超快,模型超小、在模型的快速部署上具有極強優(yōu)勢

關(guān)于YOLOv5的網(wǎng)絡(luò)結(jié)構(gòu)解釋網(wǎng)上有很多,這里就不再贅述了,大家可以看其他大神對于YOLOv5網(wǎng)絡(luò)結(jié)構(gòu)的解析。

二、YOLOv5模型的獲取

為方便使用, 博主已經(jīng)將yolov5模型轉(zhuǎn)化為onnx格式 ,可在百度網(wǎng)盤下載
鏈接:[https://pan.baidu.com/s/15dwoBM4W-5_nlRj4G9EhRg?pwd=yiku]
提取碼:yiku

1.下載源碼

將Ultralytics開源的YOLOv5代碼Clone或下載到本地,可以直接點擊Download ZIP進行下載,

下載地址:[https://github.com/ultralytics/yolov5]
在這里插入圖片描述

2.安裝模塊

解壓剛剛下載的zip文件,然后安裝yolov5需要的模塊,記住cmd的工作路徑要在yolov5文件夾下:
在這里插入圖片描述
打開cmd切換路徑到y(tǒng)olov5文件夾下,并輸入如下指令,安裝yolov5需要的模塊

pip install -r requirements.txt

3.下載預(yù)訓(xùn)練模型

打開cmd,進入python環(huán)境,使用如下指令下載預(yù)訓(xùn)練模型:

import torch

# Model
model = torch.hub.load('ultralytics/yolov5', 'yolov5s')  # or yolov5n - yolov5x6, custom

成功下載后如下圖所示:
在這里插入圖片描述

4.轉(zhuǎn)換為onnx模型

將.pt文件轉(zhuǎn)化為.onnx文件,在cmd中輸入轉(zhuǎn)onnx的命令(記得將export.py和pt模型放在同一路徑下):

python export.py --weights yolov5s.pt --include onnx

如下圖所示為轉(zhuǎn)化成功界面
在這里插入圖片描述
其中yolov5s可替換為yolov5myolov5myolov5lyolov5x
在這里插入圖片描述

三、LabVIEW+TensorRT的yolov5部署實戰(zhàn)(yolov5_trt_img.vi)

如需要查看TensorRT工具包相關(guān)vi含義,可查看:[https://blog.csdn.net/virobotics/article/details/129492651]

1.onnx轉(zhuǎn)化為engine(onnx to engine.vi)

使用onnx_to_engine.vi,將該vi拖拽至前面板空白區(qū)域,創(chuàng)建并輸入onnx的路徑以及engine的路徑,type即精度,可選擇FP32或FP16,肉眼觀看精度無大差別。(一般FP16模型比FP32速度快一倍)
在這里插入圖片描述
轉(zhuǎn)換的完整程序如下:
在這里插入圖片描述

點擊運行,等待1~3分鐘,模型轉(zhuǎn)換成功,可在剛剛設(shè)定的路徑中找到我們轉(zhuǎn)化好的mobilenet.engine.

Q:為什么要轉(zhuǎn)換模型,不直接調(diào)用ONNX?> A:tensorRT內(nèi)部加載ONNX后其實是做了一個轉(zhuǎn)換模型的工作,該過程時間長、占用內(nèi)存巨大。因此不推薦每次初始化都加載ONNX模型,而是加載engine。

2.部署

模型初始化

  1. 加載yolov5s.engine文件
  2. 設(shè)置輸入輸出緩存
    ? 輸入大小為13640640
    ? 輸出大小為1
    25200*85
    在這里插入圖片描述

yolov5的預(yù)處理

  1. LetterBox
  2. blobFromImage,包含如下步驟:
1) img=img/255.0
2) img = img[None] #從(640,640,3)擴充維度至(1,640,640,3)
3) input=img.transpose(0,3,1,2) # BHWC to BCHW

1.png

在這里插入圖片描述

模型推理

  1. 推薦使用數(shù)據(jù)指針作為輸入給到run.vi
  2. 數(shù)據(jù)的大小為13640*640
    在這里插入圖片描述

獲取推理結(jié)果

  1. 循環(huán)外初始化一個25200*85的二維數(shù)組
  2. 此數(shù)組作為Get_Result的輸入,另一個輸入為index=0
  3. 輸出為25200*85的二維數(shù)組結(jié)果

在這里插入圖片描述

后處理

本范例中,后處理方式和使用onnx一樣

在這里插入圖片描述

完整源碼

在這里插入圖片描述

運行結(jié)果

1.png

項目源碼

源碼下載鏈接:https://pan.baidu.com/s/1y0scJ8tg5nzjJK4iPvNwNQ?pwd=yiku

附加說明

  • 操作系統(tǒng):Windows10
  • python:3.6及以上
  • LabVIEW:2018及以上 64位版本
  • 視覺工具包:techforce_lib_opencv_cpu-1.0.0.98.vip
  • LabVIEW TensorRT工具包:virobotics_lib_tensorrt-1.0.0.22.vip
  • 運行結(jié)果所用顯卡:RTX3060

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • LabVIEW
    +關(guān)注

    關(guān)注

    1958

    文章

    3651

    瀏覽量

    321443
  • 源碼
    +關(guān)注

    關(guān)注

    8

    文章

    630

    瀏覽量

    29074
  • 目標(biāo)檢測
    +關(guān)注

    關(guān)注

    0

    文章

    197

    瀏覽量

    15571
收藏 人收藏

    評論

    相關(guān)推薦

    YOLOv5LabVIEW+YOLOv5快速實現(xiàn)實時物體識別(Object Detection)源碼

    前面我們給大家介紹了基于LabVIEW+YOLOv3/YOLOv4的物體識別(對象檢測),今天接著上次的內(nèi)容再來看看YOLOv5。本次主要是和大家分享使用LabVIEW快速實現(xiàn)
    的頭像 發(fā)表于 03-13 16:01 ?2038次閱讀

    手把手教你使用LabVIEW ONNX Runtime部署 TensorRT加速,實現(xiàn)YOLOv5實時物體識別

    今天我們就一起來看一下如何使用LabVIEW開放神經(jīng)網(wǎng)絡(luò)交互工具包實現(xiàn)TensorRT加速YOLOv5
    的頭像 發(fā)表于 03-20 16:36 ?2519次閱讀
    手把手教你使用<b class='flag-5'>LabVIEW</b> ONNX Runtime<b class='flag-5'>部署</b> <b class='flag-5'>TensorRT</b>加速,實現(xiàn)<b class='flag-5'>YOLOv5</b>實時物體識別

    Yolov5算法解讀

    yolov5于2020年由glenn-jocher首次提出,直至今日yolov5仍然在不斷進行升級迭代。 Yolov5YOLOv5s、YOLOv5
    的頭像 發(fā)表于 05-17 16:38 ?8022次閱讀
    <b class='flag-5'>Yolov5</b>算法解讀

    yolov5轉(zhuǎn)onnx在cubeAI上部署失敗的原因?

    第一個我是轉(zhuǎn)onnx時 想把權(quán)重文件變小點 就用了半精度 --half,則說17版本不支持半精度 后面則是沒有縮小的單精度 但是顯示哪里溢出了···· 也不說是哪里、、。。。 到底能不能部署yolov5這種東西?。?? 也沒看見幾個部署
    發(fā)表于 03-14 06:23

    基于迅為RK3588【RKNPU2項目實戰(zhàn)1】:YOLOV5實時目標(biāo)分類

    【RKNPU2項目實戰(zhàn)1】:YOLOV5實時目標(biāo)分類 https://www.bilibili.com/video/BV1ZN411D7V8/?spm_id_from=333.999.0.0
    發(fā)表于 08-15 10:51

    龍哥手把手教你學(xué)視覺-深度學(xué)習(xí)YOLOV5

    利用labview部署yolov5導(dǎo)出的模型,能利用攝像頭動態(tài)檢測輸出目標(biāo)檢測結(jié)果。根據(jù)工業(yè)視覺外觀檢測的速度和準(zhǔn)確性要求,龍哥視覺結(jié)合labview編程平臺推出了
    發(fā)表于 09-03 09:39

    怎樣使用PyTorch Hub去加載YOLOv5模型

    使用 PyTorch Hub 加載自定義 20 類VOC訓(xùn)練的YOLOv5s 模型'best.pt'。TensorRT、ONNX 和 OpenVINO 模型PyTorch Hub 支持對大多數(shù) YOLOv5
    發(fā)表于 07-22 16:02

    如何YOLOv5測試代碼?

    使用文檔“使用 YOLOv5 進行對象檢測”我試圖從文檔第 10 頁訪問以下鏈接(在 i.MX8MP 上部署 yolov5s 的步驟 - NXP 社區(qū)) ...但是這樣做時會被拒絕訪問。該文檔沒有說明需要特殊許可才能下載 tes
    發(fā)表于 05-18 06:08

    基于YOLOv5的目標(biāo)檢測文檔進行的時候出錯如何解決?

    你好: 按Milk-V Duo開發(fā)板實戰(zhàn)——基于YOLOv5的目標(biāo)檢測 安裝好yolov5環(huán)境,在執(zhí)行main.py的時候會出錯,能否幫忙看下 main.py: import torch
    發(fā)表于 09-18 07:47

    YOLOv5 7.0版本下載與運行測試

    支持實例分割了,從此YOLOv5實現(xiàn)了圖像分類、對象檢測、實例分割三個支持,從訓(xùn)練到部署。
    的頭像 發(fā)表于 11-30 15:55 ?3568次閱讀

    yolov5訓(xùn)練部署全鏈路教程

    本教程針對目標(biāo)檢測算法yolov5的訓(xùn)練和部署到EASY-EAI-Nano(RV1126)進行說明。
    的頭像 發(fā)表于 01-05 18:00 ?3032次閱讀
    <b class='flag-5'>yolov5</b>訓(xùn)練<b class='flag-5'>部署</b>全鏈路教程

    在C++中使用OpenVINO工具包部署YOLOv5模型

    下載并轉(zhuǎn)換YOLOv5預(yù)訓(xùn)練模型的詳細(xì)步驟,請參考:《基于OpenVINO?2022.2和蝰蛇峽谷優(yōu)化并部署YOLOv5模型》,本文所使用的OpenVINO是2022.3 LTS版。
    的頭像 發(fā)表于 02-15 16:53 ?4399次閱讀

    使用旭日X3派的BPU部署Yolov5

    本次主要介紹在旭日x3的BPU中部署yolov5。首先在ubuntu20.04安裝yolov5,并運行yolov5并使用pytoch的pt模型文件轉(zhuǎn)ONNX。
    的頭像 發(fā)表于 04-26 14:20 ?808次閱讀
    使用旭日X3派的BPU<b class='flag-5'>部署</b><b class='flag-5'>Yolov5</b>

    【教程】yolov5訓(xùn)練部署全鏈路教程

    本教程針對目標(biāo)檢測算法yolov5的訓(xùn)練和部署到EASY-EAI-Nano(RV1126)進行說明,而數(shù)據(jù)標(biāo)注方法可以參考我們往期的文章《Labelimg的安裝與使用》。
    的頭像 發(fā)表于 01-29 15:25 ?3290次閱讀
    【教程】<b class='flag-5'>yolov5</b>訓(xùn)練<b class='flag-5'>部署</b>全鏈路教程

    yolov5和YOLOX正負(fù)樣本分配策略

    整體上在正負(fù)樣本分配中,yolov7的策略算是yolov5和YOLOX的結(jié)合。因此本文先從yolov5和YOLOX正負(fù)樣本分配策略分析入手,后引入到YOLOv7的解析中。
    發(fā)表于 08-14 11:45 ?2123次閱讀
    <b class='flag-5'>yolov5</b>和YOLOX正負(fù)樣本分配策略