YOLOv8 OBB介紹
YOLOv8框架在在支持分類、對象檢測、實例分割、姿態評估的基礎上更近一步,現已經支持旋轉對象檢測(OBB),基于DOTA數據集,支持航拍圖像的15個類別對象檢測,包括車輛、船只、典型各種場地等。包含2800多張圖像、18W個實例對象。

YOLO OBB標注數據格式,主要是類別與四個角點歸一化到0~1之間的坐標,格式表示如下:
class_index, x1, y1, x2, y2, x3, y3, x4, y4訓練以后的YOLOv8預測xyhwr + 類別數目,不同尺度的YOLOv8 OBB模型的精度與輸入格式列表如下:

導出與預測
基于YOLOv8命令行推理測試:
## 導出 yolo export model=yolov8s-obb.pt format=onnx ##推理 yolo obb predict model=yolov8n-obb.pt source=plane_03.jpg

ONNX推理代碼演示
基于OpenVINO2023與ONNX格式模型直接預測推理,首先看一下ONNX格式的YOLOv8-OBB輸入與輸出格式:

旋轉對象檢測-代碼演示
class_list=load_classes() colors=[(255,255,0),(0,255,0),(0,255,255),(255,0,0)] ie=Core() fordeviceinie.available_devices: print(device) #ReadIR model=ie.read_model(model="yolov8s-obb.onnx") compiled_model=ie.compile_model(model=model,device_name="CPU") output_layer=compiled_model.output(0) ##xywhr frame=cv.imread("D:/wh860.jpg") #frame=cv.imread("wh300.jpg") #frame=cv.imread("obb_01.jpeg") bgr=format_yolov8(frame) img_h,img_w,img_c=bgr.shape start=time.time() image=cv.dnn.blobFromImage(bgr,1/255.0,(1024,1024),swapRB=True,crop=False) res=compiled_model([image])[output_layer]#1x25x8400 rows=np.squeeze(res,0).T boxes,confidences,angles,class_ids=post_process(rows) indexes=cv.dnn.NMSBoxes(boxes,confidences,0.25,0.45) M=np.zeros((2,3),dtype=np.float32) forindexinindexes: box=boxes[index] d1=-angles[index] color=colors[int(class_ids[index])%len(colors)] pts=[(box[0],box[1]),(box[0]+box[2],box[1]),(box[0]+box[2],box[1]+box[3]),(box[0],box[1]+box[3])] rrt_pts=get_rotate_point(pts,M,d1,box) cv.drawContours(frame,[np.asarray(rrt_pts).astype(np.int32)],0,(255,0,255),2) cv.rectangle(frame,(box[0],box[1]-20),(box[0]+box[2],box[1]),color,-1) cv.putText(frame,class_list[class_ids[index]],(box[0],box[1]-8),cv.FONT_HERSHEY_SIMPLEX,.5,(255,255,255)) end=time.time() inf_end=end-start fps=1/inf_end fps_label="FPS:%.2f"%fps cv.putText(frame,fps_label,(20,45),cv.FONT_HERSHEY_SIMPLEX,1,(0,0,255),2) cv.imshow("YOLOv8-obb+OpenVINO2023.xObjectDetection",frame) cv.imwrite("D:/wk_result.jpg",frame) cv.waitKey(0) cv.destroyAllWindows()
審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
模型
+關注
關注
1文章
3752瀏覽量
52111 -
數據集
+關注
關注
4文章
1236瀏覽量
26194 -
命令行
+關注
關注
0文章
83瀏覽量
10763
原文標題:【新特性演示】YOLOv8實現旋轉對象檢測
文章出處:【微信號:CVSCHOOL,微信公眾號:OpenCV學堂】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
熱點推薦
TensorRT 8.6 C++開發環境配置與YOLOv8實例分割推理演示
對YOLOv8實例分割TensorRT 推理代碼已經完成C++類封裝,三行代碼即可實現YOLOv8對象檢測與實例分割模型推理,不需要改任何代
在AI愛克斯開發板上用OpenVINO?加速YOLOv8目標檢測模型
《在 AI 愛克斯開發板上用 OpenVINO 加速 YOLOv8 分類模型》介紹了在 AI 愛克斯開發板上使用 OpenVINO 開發套件部署并測評 YOLOv8 的分類模型,本文將介紹在 AI 愛克斯開發板上使用 OpenVINO 加速
AI愛克斯開發板上使用OpenVINO加速YOLOv8目標檢測模型
《在AI愛克斯開發板上用OpenVINO加速YOLOv8分類模型》介紹了在AI愛克斯開發板上使用OpenVINO 開發套件部署并測評YOLOv8的分類模型,本文將介紹在AI愛克斯開發板上使用OpenVINO加速YOLOv8目標
教你如何用兩行代碼搞定YOLOv8各種模型推理
大家好,YOLOv8 框架本身提供的API函數是可以兩行代碼實現 YOLOv8 模型推理,這次我把這段代碼封裝成了一個類,只有40行代碼左右,可以同時支持YOLOv8
目標檢測算法再升級!YOLOv8保姆級教程一鍵體驗
YOLO作為一種基于圖像全局信息進行預測的目標檢測系統,始終保持著極高的迭代更新率,從YOLOv5到YOLOv8,本次升級主要包括結構算法、命令行界面、PythonAPI等。具體到YOLOv8
三種主流模型部署框架YOLOv8推理演示
部署。這里以YOLOv8為例,演示了YOLOv8對象檢測模型在OpenVINO、ONNXRUNTIME、TensorRT三個主流框架上C++推理演示效果。
OpenCV4.8+YOLOv8對象檢測C++推理演示
自從YOLOv5更新成7.0版本,YOLOv8推出以后,OpenCV4.6以前的版本都無法再加載導出ONNX格式模型了,只有OpenCV4.7以上版本才可以支持最新版本YOLOv5與YOLOv
基于YOLOv8的自定義醫學圖像分割
YOLOv8是一種令人驚嘆的分割模型;它易于訓練、測試和部署。在本教程中,我們將學習如何在自定義數據集上使用YOLOv8。但在此之前,我想告訴你為什么在存在其他優秀的分割模型時應該使用YOLOv8呢?
基于OpenCV DNN實現YOLOv8的模型部署與推理演示
基于OpenCV DNN實現YOLOv8推理的好處就是一套代碼就可以部署在Windows10系統、烏班圖系統、Jetson的Jetpack系統
RV1126 yolov8訓練部署教程
YOLOv8 是 ultralytics 公司在 2023 年 1月 10 號開源的基于YOLOV5進行更新的 下一個重大更新版本,目前支持圖像分類、物體檢測和實例分割任務,鑒于Yolov
使用ROCm?優化并部署YOLOv8模型
作者:AVNET 李鑫杰 一,YOLOv8介紹? YOLOv8 由 Ultralytics 于 2023 年 1 月 10 日發布,在準確性和速度方面提供了前沿的性能。YOLOv8 在之前 YOLO
YOLOv8實現旋轉對象檢測
評論