yolov8是yolov5作者發(fā)布的新作品
目錄
1、下載源碼
2、下載權(quán)重
3、配置環(huán)境
4、導(dǎo)出onnx格式
?5、OpenCV DNN 推理
1、下載源碼
git clone https://github.com/ultralytics/ultralytics.git
2、下載權(quán)重
git clone https://github.com/ultralytics/assets/releases/download/v0.0.0/yolov8n.pt
3、配置環(huán)境
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
4、導(dǎo)出onnx格式
項(xiàng)目下models/export.md有說明:
?我在目錄下用命令行沒有反應(yīng),所以在項(xiàng)目目錄下新建一個(gè)python文件【my_export.py】,輸入:
from ultralytics import YOLO
# Load a model
model = YOLO('yolov8n.pt') # load an official model
# model = YOLO('path/to/best.pt') # load a custom trained
# Export the model
model.export(format='onnx')
然后執(zhí)行:
python my_export.py
輸出如下:
?5、OpenCV DNN 推理
用之前博客寫的代碼進(jìn)行推理,發(fā)現(xiàn)有報(bào)錯(cuò):
?用netron查看onnx格式模型:

再查看之前成功部署過的yolov5n.onnx:

?所以部署代碼可能不通用。
又在項(xiàng)目下examples/YOLOv8-CPP-Inference找到部署代碼,運(yùn)行一下依然報(bào)錯(cuò):
?看一下Cmakelist.txt:
?項(xiàng)目里面的C++推理代碼應(yīng)該也是基于OpenCV DNN的。
然后我就在網(wǎng)上找原因,發(fā)現(xiàn)是OpenCV版本低了,yolov8? opencv-dnn部署需要4.7以上的版本,我現(xiàn)在用的是OpenCV 4.5.5。
如果是onnxruntime的話就不需要,應(yīng)該4.0以上的版本都可以,但是之前博客寫的yolov5 的onnxruntime C++推理代碼還是用不了,因?yàn)閥olov8的輸出與yolov5的輸出不一樣:
1、輸出維度順序已經(jīng)變了(可以從上面的netron展示圖看到)
2、另外yolov8輸出中的84維度是少了一個(gè)yolov5的置信度(yolov5是85維度)文章來源:http://www.zghlxwxcb.cn/news/detail-463096.html
寫到這里頭有點(diǎn)大,思考后選擇用onnxruntime推理。因?yàn)椴幌朐傺bopencv4.7了,opencv-C++編譯安裝起來確實(shí)有點(diǎn)麻煩。文章來源地址http://www.zghlxwxcb.cn/news/detail-463096.html
到了這里,關(guān)于yolov8 OpenCV DNN 部署 推理報(bào)錯(cuò)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!