苏州建设银行招聘网站,管理案例网站,福州网站制作培训,简述网络营销的概念与特点目的
由于项目里面需要用到机载的旋转目标检测#xff08;Oriented Bounding Box, OBB#xff09;,本来想在yolov8上面直接加obb检测相关的模块#xff0c;没想到官方更新了DOTAv2数据的yaml文件#xff0c;意味着v8已经支持了obb检测#xff0c;但是现在版本还不是很完善…目的
由于项目里面需要用到机载的旋转目标检测Oriented Bounding Box, OBB,本来想在yolov8上面直接加obb检测相关的模块没想到官方更新了DOTAv2数据的yaml文件意味着v8已经支持了obb检测但是现在版本还不是很完善遂记录一下在这里面的一些坑。
安装YOLOv8
可供参考的官网地址https://docs.ultralytics.com/zh/modes/ 官方支持用pip、conda、gitclone、Docker4种方法安装需要注意的是在当前2024.1.2使用pip安装是不包含obb检测的只能去git上面clone一下代码 克隆ultralytics仓库git clone https://github.com/ultralytics/ultralytics导航到克隆的目录cd ultralytics为开发安装可编辑模式下的包pip install -e .将DOTAv2的数据集装换成YOLOv8可以训练的模式
v8用起来爽的地方就是无脑用官方已经更新了一个英文版教程参考https://docs.ultralytics.com/datasets/obb/#yolo-obb-format 这个过程中间其实还有挺多问题的这里也记录一下 obb检测方法里面旋转框的表示方法有好几种v8这里使用的是 class_index, x1, y1, x2, y2, x3, y3, x4, y4需要做归一化 示例0 0.780811 0.743961 0.782371 0.74686 0.777691 0.752174 0.776131 0.749758 要用自己数据的小伙伴们记得把数据转成这个格式。 把DOTAv2数据集转成YOLOv8可训练的模式 官方已经写好了代码
from ultralytics.data.converter import convert_dota_to_yolo_obbconvert_dota_to_yolo_obb(path/to/DOTA)记得要自己新建一个py文件然后把path改成指向DOTAv2数据集的地址。
DOTAv2数据集准备的形式 Notes:The directory structure assumed for the DOTA dataset:- DOTA├─ images│ ├─ train│ └─ val└─ labels├─ train_original└─ val_originalAfter execution, the function will organize the labels into:- DOTA└─ labels├─ train└─ val注意DOTA数据集有3个版本需要用v2的标注1和1.5第一二行都是图片来源介绍会有bug
准备好数据和模型之后就可以直接开始训练了参考代码
yolo detect train dataDOTAv2.yaml modelyolov8n.pt epochs100 imgsz640单卡3090ti训不动的我把batch改成了4好卡都给学生了哈哈哈哈
有一个该看但是我还没看的地方是关于DOTA数据集里图像裁切的问题我看DOTA数据集提供的toolkit里面自带了这个功能但是v8有没有集成暂时还没有去细究