旋转框目标检测自定义数据集训练测试流程


前言

旋转框目标检测(Rotated bounding box object detection)是计算机视觉领域的一项技术,它用于检测图像中具有任意方向的目标。与传统的水平矩形框目标检测相比,旋转框目标检测能够更准确地描述物体的形状和位置,尤其是对于那些长宽比差异较大或者方向各异的物体,如遥感图像中的建筑物、文本行、车辆等,本文将详细介绍YOLOV11-OBB自定义数据集训练测试流程,帮您实现旋转框目标检测。

一、数据集制作

本次标注软件采用的是X-AnyLabeling,github地址:windows直接下载。
在这里插入图片描述
点击X-AnyLabeling-CPU.exe下载,下载好之后打开,界面如下所示:
在这里插入图片描述
使用方法如下所示:
在这里插入图片描述
标注好数据集之后标签是json格式,运行下面的代码将数据集转化为yolov11所需要的txt格式:

def order_points(points):
    # 1. 计算中心点
    center_x = sum([p[0] for p in points]) / 4
    center_y = sum([p[1] for p in points]) / 4

    # 2. 计算每个点相对于中心点的角度,并排序
    def angle_from_center(point):
        return math.atan2(point[1] - center_y, point[0] - center_x)

    # 按角度逆时针排序
    points = sorted(points, key=angle_from_center, reverse=True)

    # 3. 按"右上、右下、左下、左上"的顺序排列
    ordered_points = [points[0], points[1], points[2], points[3]]

    return ordered_points


import math, os, json

# 定义类别映射字典,键为类别名称,值为类别索引
category_mapping = {
   
    
    "box_top": 0}


def