將模型轉(zhuǎn)為onnx、RT等用于部署
yolov5s 6.0自帶export.py程序可將.pt轉(zhuǎn)為.onnx等,只需配置需要的環(huán)境即可。
1. 安裝環(huán)境
activate pytorch
pip install -r requirements.txt coremltools onnx onnx-simplifier onnxruntime openvino-dev tensorflow-cpu # CPU
pip install -r requirements.txt coremltools onnx onnx-simplifier onnxruntime-gpu openvino-dev tensorflow # GPU
報錯:NVIDIA-tensorrt安裝失?。?br> 解決:從源碼安裝TensorRt:
①安裝CUDNN和CudaToolKit等GPU配置
②從官網(wǎng)下載需要的rt版本:https://developer.nvidia.com/nvidia-tensorrt-8x-download
③解壓后,將lib文件夾添加到環(huán)境變量path中
④將lib中全部文件復(fù)制到CUDA的lib\x64文件夾下,并將該x64文件夾路徑添加到環(huán)境變量path中
⑤安裝RT依賴:
activate pytorch
pip install E:\Anaconda3.5\TensorRT-8.6.1.6.Windows10.x86_64.cuda-11.8\TensorRT-8.6.1.6\python\tensorrt-8.6.1-cp39-none-win_amd64.whl
安裝完成后會出現(xiàn)successfully的字樣,到這里tensorrt已經(jīng)安裝結(jié)束。
2. pt轉(zhuǎn)onnx
yolov5自帶的export.py可進行轉(zhuǎn)換。yolov5 v6.0版本以后的支持opencv,不需要更改網(wǎng)絡(luò)層。
命令行啟動:
python export.py --weights yolov5s.pt --include onnx --opset 12
程序啟動修改處:
*** opset參數(shù)與protobuf有關(guān),當前使用的opencv470,需要設(shè)定opset參數(shù)為12時才能識別對應(yīng)的onnx文件。按F5啟動程序后,會在原pt文件夾下生成同名的onnx文件。***
測試①:
用yolov5自帶的detect.py檢測生成的onnx文件,若報錯:“onnxruntime::Model::Model Unknown model file format version“
解決:降低onnxruntime版本:文章來源:http://www.zghlxwxcb.cn/news/detail-691054.html
pip install onnxruntime-gpu==1.14 -i https://pypi.tuna.tsinghua.edu.cn/simple
測試②:
重新配置C++、opencv4.7環(huán)境,用opencv的dnn接口讀取onnx并檢測目標。
:1.用斷點調(diào)試,測試net讀取模型(net = readNet(netPath))能否成功,也有readNetFromONNX等。
2.注意繪圖時的邊界問題。
3.修改類別、圖像路徑、權(quán)重路徑。
//main:文章來源地址http://www.zghlxwxcb.cn/news/detail-691054.html
#include <opencv2/opencv.hpp>
#include <opencv2/dnn.hpp>
#include <highgui/highgui_c.h>
#include <iostream>
#include "yolov5.h"
using namespace cv;
using namespace cv::dnn;
using namespace std;
int main()
{
string img_path = "F:/vscode/006.jpg";
string model_path = "F:/Object Detec
到了這里,關(guān)于YOLOV5(二):將pt轉(zhuǎn)為onnx模型并用opencv部署的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!