好長一段時間沒更博了,沒更新部落格的這段時間博主都有在努力產出,前段時間好多朋友私信問我說自己的yolov5模型是比較老的版本,使用LabVIEW推理的時候會報錯。為各位朋友新老版本都能相容,博主這段時間做了一個LabVIEW YOLOv5的外掛,裡面包含了大部分的新舊版本,老版本的朋友們也可以愉快的使用LabVIEW來實現推理了。等後面整理好了分享給大家。今天我們先一起來看一下如何使用LabVIEW實現yolox的目標檢測。
LabVIEW實現YOLOX目標檢測
YOLOX是曠視科技開源的高效能實時目標檢測網路,曠視的研究者將解耦頭、資料增強、無錨點以及標籤分類等目標檢測領域的優秀進展與 YOLO 進行了巧妙的整合組合,提出了 YOLOX,不僅實現了超越 YOLOv3、YOLOv4 和 YOLOv5 的 AP,而且取得了極具競爭力的推理速度。如下圖:
YOLOX提供了支援 ONNX、TensorRT、NCNN 和 Openvino 的部署版本。今天我們主要針對YOLOX 的ONNX在LabVIEW中實現部署推理。
下面我們來介紹兩種模型獲取的方式(以yoloxs為例,想要獲取其他模型的方式也一樣,只需要修改名字即可)
下載具體地址如下:https://github.com/Megvii-BaseDetection/YOLOX/tree/main/demo/ONNXRuntime
下載對應版本模型的weights,點選github即可下載onnx模型。
1、安裝YOLOX
在https://github.com/Megvii-BaseDetection/YOLOX中下載yolox原始碼並解壓,在YOLOX-main資料夾中開啟cmd,輸入以下指令安裝需要的庫及yolox:
pip3 install -U pip && pip3 install -r requirements.txt
python3 setup.py develop
2、安裝pycocotools
pip install pycocotools
!!!注:若安裝pycocotools時遇到ERROR: Could not build wheels for pycocotools ……,則使用以下指令來安裝:
pip install pycocotools-windows
3、從基準表下載標準預訓練模型:https://github.com/Megvii-BaseDetection/YOLOX
將yolox_s.pth模型放置到如下路徑:
4、將標準模型pth轉化為onnx
執行以下指令實現模型的轉換
python3 tools/export_onnx.py --output-name yolox_s.onnx -n yolox-s -c yolox_s.pth
也可使用如下指令轉化自己的模型:
#通過 -f 轉換標準 YOLOX 模型。使用 -f 時,上述命令等價於:
python3 tools/export_onnx.py --output-name yolox_s.onnx -f exps/default/yolox_s.py -c yolox_s.pth
# 要轉換您的自定義模型,請使用 -f:
python3 tools/export_onnx.py --output-name your_yolox.onnx -f exps/your_dir/your_yolox.py -c your_yolox.pth
輸出如下,得到yolox_s.onnx
通過對比我們會發現,先下載標準模型,再轉換為onnx模型比較麻煩,需要設定很多環境,如果只是想要實現YOLOX的推理,則可以使用方式一,直接在官網下載對應的模型即可。但是如果想要轉換自己訓練好的onnx模型,則可採用第二種方式,將訓練好的pth轉化為onnx。
將我們的onnx模型放置到model資料夾中,修改程式中載入的模型,本專案中已經下載好了yolox_s.onnx和yolox_m.onnx兩種模型,如需其他模型,讀者也可自行放置到model資料夾下,實現模型的載入。
本例中使用LabvVIEW ONNX工具包中的Create_Session.vi載入onnx模型,可選擇使用cpu,cuda,tensorRT進行推理加速。【若安裝的是onnx cpu版,則只可使用cpu推理加速】
我們可以使用netron 檢視yolov5m.onnx的網路結構,瀏覽器中輸入連結:https://netron.app/,點選Open Model,開啟相應的網路模型檔案即可。
如下圖所示是轉換之後的yolox_s.onnx的屬性:
可以看到圖片輸入大小為640640
輸出為18400*85
如下圖所示,載入模型及圖片實現目標檢測
本程式執行時,載入模型為:yolox_s.onnx,實際執行時需要修改圖片路徑為實際路徑,否則會報錯。
執行結果如下:
大家也可以檢測其他圖片來測試檢測效果。
實時檢測過程,我們可以選擇使用CUDA或者tensorRT實現推理加速,我們發現相同環境下,yolox的實時檢測速度和精度都比其他的yolo模型要更好。
可以看到使用CUDA進行推理加速,速度還是很快的。大家也可以使用tensorRT進行推理加速。
連結:https://pan.baidu.com/s/1FMRH1F3DSKTQBiuB3Ofe3Q?pwd=8cnf
以上就是今天要給大家分享的內容。大家可根據連結下載相關原始碼與模型。
如果有問題可以在評論區裡討論,提問前請先點贊支援一下博主哦,如您想要探討更多關於LabVIEW與人工智慧技術,歡迎加入我們的705637299。
**如果文章對你有幫助,歡迎✌關注、