专栏感知yolov8-obb训练自己的数据集

yolov8-obb训练自己的数据集

王云阗2024-05-29
113
0

一、引言

在计算机视觉领域,目标检测一直是一个重要且活跃的研究方向。传统的目标检测方法,如经典的YOLO(You Only Look Once)系列,通过在图像中绘制轴对齐的矩形边界框来定位目标。然而,对于某些应用场景,如遥感图像、无人驾驶和工业检测等,目标往往具有任意的方向和姿态。传统的轴对齐边界框可能无法精确地描述这些目标的形状和位置。

为了解决上述问题,YOLOv8-OBB(Oriented Bounding Boxes)引入了定向边界框的概念。在YOLOv8-OBB中,每个边界框不仅包含目标的中心点坐标和尺寸信息,还包括目标的旋转角度。这使得模型能够更精确地定位和描述那些具有复杂姿态的目标,从而提高检测的精度和鲁棒性。

YOLOv8-OBB延续了YOLO系列的高效性和实时性,能够在保证高检测精度的同时,仍然保持较快的推理速度。

本文将详细介绍YOLOv8-OBB的训练过程。通过这些介绍,读者将能够了解如何利用YOLOv8-OBB进行高精度的目标检测,并在实际应用中获得优异的表现。

二、数据标注

关于旋转框的标注,采用rolabelimg进行标注。
选定需要标注的文件夹后,可用快捷键“E”创建一个旋转矩形框,然后通过zxcv对其进行旋转z(v)较大角度的逆(顺)时针旋转,x(c)较小角度的逆(顺)时针旋转,同时用鼠标调整矩形框的大小,尽可能采用更小的矩形框框选被标注的物体。标注完成后保存进行下一张的标注。
Description

三、标签转换

由于rolabelimg标注图片只能保存xml格式的文件,如果想要使用yolov8进行训练还要对标签文件进行转换。
xml文件中保存了矩形框的中心点横纵坐标、长、宽以及矩形框旋转角度。由此可以一个python程序得到矩形框在图片中的四点横纵坐标,再通过ultralytics/ultralytics/data/converter.py文件中的代码进行归一化即可得到yolo所需的txt标签格式。

代码如下:

接着修改converter.py程序中的类别。

在项目代码根目录下,创建下面的文件,并将图片和标签文件放到相应的文件夹中:

Description

再运行以下代码:

这样就将txt文件进行归一化转换得到我们需要的txt标注文件了。

四、模型训练

和正常训练yolov8模型类似

  1. ultralytics\ultralytics\cfg\datasets路径下,创建my-data8-obb.yaml:
  1. 修改yolov8-obb.yaml:
Description
  1. 训练,新建train.py,根据不同需求,修改不同参数
感知
评论0
0/1000