YOLOv8 OBB介紹
YOLOv8框架在在支持分類、對象檢測、實(shí)例分割、姿態(tài)評估的基礎(chǔ)上更近一步,現(xiàn)已經(jīng)支持旋轉(zhuǎn)對象檢測(OBB),基于DOTA數(shù)據(jù)集,支持航拍圖像的15個(gè)類別對象檢測,包括車輛、船只、典型各種場地等。包含2800多張圖像、18W個(gè)實(shí)例對象。
	
YOLO OBB標(biāo)注數(shù)據(jù)格式,主要是類別與四個(gè)角點(diǎn)歸一化到0~1之間的坐標(biāo),格式表示如下:
class_index, x1, y1, x2, y2, x3, y3, x4, y4訓(xùn)練以后的YOLOv8預(yù)測xyhwr + 類別數(shù)目,不同尺度的YOLOv8 OBB模型的精度與輸入格式列表如下:
	
導(dǎo)出與預(yù)測
基于YOLOv8命令行推理測試:
## 導(dǎo)出 yolo export model=yolov8s-obb.pt format=onnx ##推理 yolo obb predict model=yolov8n-obb.pt source=plane_03.jpg
	
ONNX推理代碼演示
基于OpenVINO2023與ONNX格式模型直接預(yù)測推理,首先看一下ONNX格式的YOLOv8-OBB輸入與輸出格式:
	
旋轉(zhuǎn)對象檢測-代碼演示
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()
審核編輯:湯梓紅
- 
                                模型
                                +關(guān)注
關(guān)注
1文章
3622瀏覽量
51591 - 
                                數(shù)據(jù)集
                                +關(guān)注
關(guān)注
4文章
1229瀏覽量
25993 - 
                                命令行
                                +關(guān)注
關(guān)注
0文章
81瀏覽量
10684 
原文標(biāo)題:【新特性演示】YOLOv8實(shí)現(xiàn)旋轉(zhuǎn)對象檢測
文章出處:【微信號:CVSCHOOL,微信公眾號:OpenCV學(xué)堂】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
使用YOLOv8做目標(biāo)檢測和實(shí)例分割的演示
TensorRT 8.6 C++開發(fā)環(huán)境配置與YOLOv8實(shí)例分割推理演示
    
在AI愛克斯開發(fā)板上用OpenVINO?加速YOLOv8目標(biāo)檢測模型
    
YOLOv8版本升級支持小目標(biāo)檢測與高分辨率圖像輸入
    
AI愛克斯開發(fā)板上使用OpenVINO加速YOLOv8目標(biāo)檢測模型
    
教你如何用兩行代碼搞定YOLOv8各種模型推理
    
目標(biāo)檢測算法再升級!YOLOv8保姆級教程一鍵體驗(yàn)
    
三種主流模型部署框架YOLOv8推理演示
YOLOv8+OpenCV實(shí)現(xiàn)DM碼定位檢測與解析
    
OpenCV4.8+YOLOv8對象檢測C++推理演示
    
基于YOLOv8的自定義醫(yī)學(xué)圖像分割
    
OpenCV4.8 C++實(shí)現(xiàn)YOLOv8 OBB旋轉(zhuǎn)對象檢測
    
基于OpenCV DNN實(shí)現(xiàn)YOLOv8的模型部署與推理演示
    
RV1126 yolov8訓(xùn)練部署教程
    
使用ROCm?優(yōu)化并部署YOLOv8模型
    
          
        
        
YOLOv8實(shí)現(xiàn)旋轉(zhuǎn)對象檢測
                
 
           
            
            
                
            
評論