前言
旋转框目标检测(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