YOLOv6在LabVIEW中的推理部署(含原始碼)

2023-07-21 18:06:16

前言

YOLOv6 是美團視覺智慧部研發的一款目標檢測框架,致力於工業應用。如何使用python進行該模型的部署,官網已經介紹的很清楚了,但是對於如何在LabVIEW中實現該模型的部署,筆者目前還沒有看到相關介紹文章,所以筆者在實現YOLOv6 ONNX 在LabVIEW中的部署推理後,決定和各位讀者分享一下如何使用LabVIEW實現YOLOv6的目標檢測。


一、什麼是YOLOv6

YOLOv6 是美團視覺智慧部研發的一款目標檢測框架,致力於工業應用。本框架同時專注於檢測的精度和推理效率,在工業界常用的尺寸模型中:YOLOv6-nano 在 COCO 上精度可達 35.0% AP,在 T4 上推理速度可達 1242 FPS;YOLOv6-s 在 COCO 上精度可達 43.1% AP,在 T4 上推理速度可達 520 FPS。在部署方面,YOLOv6 支援 GPU(TensorRT)、CPU(OPENVINO)、ARM(MNN、TNN、NCNN)等不同平臺的部署,極大地簡化工程部署時的適配工作。

從模型效能對比圖來看,YOLOv6的效能也是再創新高。YOLOv6-s在COCO上精度達到了43.1%AP,在T4上推理速度也高達520FPS!
YOLOv6提供了支援 ONNX、TensorRT、NCNN 和 Openvino 的部署版本。今天我們一起來看一下如何在LabVIEW中部署YOLOv6 ONNX。


二、環境搭建

1、部署本專案時所用環境

  • 作業系統:Windows10
  • python:3.6及以上
  • LabVIEW:2018及以上 64位元版本
  • AI視覺工具包:techforce_lib_opencv_cpu-1.0.0.73.vip
  • onnx工具包:virobotics_lib_onnx_cuda_tensorrt-1.0.0.16.vip【1.0.0.16及以上版本】

2、LabVIEW工具包下載及安裝


三、模型的獲取與轉化

注意:本教學已經為大家提供了YOLOV6的模型,可跳過本步驟,直接進行步驟四-推理。若是想要了解YOLOV6的onnx模型如何獲取,則可繼續閱讀本部分內容。

下面我們來介紹兩種模型獲取的方式(以yolov6s為例,想要獲取其他模型的方式也一樣,只需要修改名字即可)

1、方式一:直接在官網下載yolov6s的onnx模型

具體地址如下:https://github.com/meituan/YOLOv6/tree/main/deploy/ONNX

單擊YOLOv6-s,可直接下載yolov6s.onnx

2、方式二:將標準模型pt轉化為onnx(較為複雜)

1、下載並安裝YOLOv6所依賴的庫
https://github.com/meituan/YOLOv6中下載YOLOv6原始碼並解壓

在YOLOv6-main資料夾中開啟cmd,輸入以下指令安裝需要的庫:

pip3 install -U pip && pip3 install -r requirements.txt

注意:YOLOv6比V5多了一個addict庫,如果之前已經安裝過了YOLOv5的相關庫,也可以只下載一個addict

2、安裝pycocotools

pip install pycocotools

!!!注:若安裝pycocotools時遇到ERROR: Could not build wheels for pycocotools ……,則使用以下指令來安裝:

pip install pycocotools-windows

3、從基準表下載標準預訓練模型
https://github.com/meituan/YOLOv6

將模型放置到如下路徑」\YOLOv6-main\」

4、將標準模型pt轉化為onnx
切換到YOLOv6-main資料夾路徑下,執行以下指令實現模型的轉換

python ./deploy/ONNX/export_onnx.py --weights yolov6s.pt --img 640 --batch 1

輸出如下,得到yolov6s.onnx

四、在LabVIEW實現YOLOV6的部署推理

本專案整體的檔案結構如下圖所示,各位讀者可在文章末尾連結處下載整個專案原始碼。

本例中使用LabVIEW ONNX工具包中的Create_Session.vi載入onnx模型,可選擇使用cpu,cuda進行推理加速。

1、檢視模型

我們可以使用netron 檢視ppyoloe_crn_s_300e_coco.onnx的網路結構,瀏覽器中輸入連結:https://netron.app/,點選Open Model,開啟相應的網路模型檔案即可。

檢視模型屬性,可看到模型的輸入輸出如下圖所示:

我們發現,該模型輸出和YOLOx輸出一直,均為1x8400x85

2、專案執行

將我們已經轉化好的onnx模型放置到model資料夾中,開啟yolov6_onnx_camera.vi,在前面板中修改程式中載入的模型路徑為實際模型路徑,本專案中已經將YOLOV6 onnx模型【yolov6s.onnx】放置到了model資料夾中,如需其他模型,讀者也可自行放置到model檔案及下,實現模型的載入。執行程式,可得到目標檢測的結果。

  • 主程式原始碼如下(可以選擇使用CUDA或者TensorRT進行推理加速):

  • 執行結果如下:


五、完整專案下載連結

連結:https://blog.csdn.net/virobotics/article/details/126356929?spm=1001.2014.3001.5501

總結

以上就是今天要給大家分享的內容。大家可根據連結下載相關原始碼與模型。

如果有問題可以在評論區裡討論,提問前請先點贊支援一下博主哦,如您想要探討更多關於LabVIEW與人工智慧技術,歡迎加入我們的技術交流群:705637299。進群請備註:LabVIEW機器學習

**如果文章對你有幫助,歡迎✌關注、