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文章
3184浏览量
48763 -
数据集
+关注
关注
4文章
1205浏览量
24656 -
命令行
+关注
关注
0文章
77浏览量
10382
原文标题:【新特性演示】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++推理演示效果。
如何修改YOLOv8的源码
很多人也想跟修改YOLOv5源码一样的方式去修改YOLOv8的源码,但是在github上面却发现找到的YOLOv8项目下面TAG分支是空的,然后就直接从master/main下面把源码克隆出来一通
YOLOv8实现任意目录下命令行训练
当你使用YOLOv8命令行训练模型的时候,如果当前执行的目录下没有相关的预训练模型文件,YOLOv8就会自动下载模型权重文件。这个是一个正常操作,但是你还会发现,当你在参数model中指定已有
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系统
评论