點選上方 藍字 關註我們
微信公眾號: OpenCV學堂
關註獲取更多電腦視覺與深度學習知識
YOLOv8 OBB介紹
YOLOv8框架在在支持分類、物件檢測、例項分割、姿態評估的基礎上更近一步,現已經支持旋轉物件檢測(OBB),基於DOTA數據集,支持航拍影像的15個類別物件檢測,包括車輛、船只、典型各種場地等。包含2800多張影像、18W個例項物件。
不同尺度的YOLOv8 OBB模型的精度與輸入格式列表如下:
匯出與預測
基於YOLOv8命令列推理測試:
## 匯出
yolo export model=yolov8s-obb.pt format=onnx
## 推理
yolo obb predict model=yolov8n-obb.pt source=plane_03.jpg
輸入與輸出結構說明
基於OpenCV4.8 DNN與ONNX格式模型直接預測推理,首先看一下ONNX格式的YOLOv8-OBB輸入與輸出格式:
OpenCV4.8 C++ 推理演示我把YOLOv8 OBB C++推理封裝成一個類YOLOv8ObbDetector,客戶端呼叫只有參照表頭檔,然後三行程式碼即可實作YOLOv8旋轉物件檢測C++ 的推理,程式碼演示如下:
#include<yolov8_obb_opencv.h>
#include<iostream>
#include<fstream>
std::string label_map = "D:/python/my_yolov8_train_demo/dotav1.txt";
intmain(int argc, char** argv){
std::vector<std::string> classNames;
std::ifstream fp(label_map);
std::string name;
while (!fp.eof()) {
getline(fp, name);
if (name.length()) {
classNames.push_back(name);
}
}
fp.close();
std::shared_ptr<YOLOv8ObbDetector> detector(new YOLOv8ObbDetector());
detector->initConfig("D:/python/my_yolov8_train_demo/yolov8s-obb.onnx", 0.4f, 1024, 1024);
cv::Mat frame = cv::imread("D:/python/my_yolov8_train_demo/wh300.jpg");
detector->detect(frame, classNames);
cv::imshow("YOLOv8 旋轉物件檢測 + OpenCV4.8", frame);
cv::waitKey(0);
cv::destroyAllWindows();
return0;
}
執行結果如下:
掃碼學習YOLOv8視訊課程
推薦閱讀
好書推薦
【OpenCV套用開發:入門、進階與工程化實踐】 全書共計16個章節,重點聚焦OpenCV開發常用模組詳解與工程化開發實踐,提升OpenCV套用開發能力,助力讀者成為OpenCV開發者,同時包含深度學習模型訓練與部署加速等知識,幫助OpenCV開發者進一步拓展技能地圖,滿足工業計畫落地所需技能提升。購買請點連結:
https://item.jd.com/10092255924058.html
學習課程有專屬答疑群
負責貼身答疑解惑
讀者專屬QQ群 :657875553
進群暗號:OpenCV4讀者