You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

YOLO新手求助:xview数据集.geojson转YOLOv7标签格式方法

YOLOv7目标检测标签格式说明

一、YOLOv7所需的标签格式

YOLO系列(包括v7)采用归一化TXT格式标签,每个目标对应一行内容,每行格式为:
类别ID 归一化x_center 归一化y_center 归一化宽度 归一化高度

核心细节:

  • 类别ID:从0开始的连续整数,需和数据集的类别映射表一一对应
  • 归一化坐标:将目标框的坐标、尺寸分别除以对应图片的宽度和高度,最终得到0-1区间的数值
  • 标签文件命名:每个图片对应一个同名TXT文件,可放在图片同目录,也可单独存入指定的labels文件夹

二、将xview数据集的.geojson转换为YOLO格式

xview的.geojson文件存储了目标的边界框、类别及对应图片ID信息,转换步骤如下:

1. 解析.geojson数据

用Python的json或geopandas库读取文件,提取每个目标的关键信息:

  • 对应图片的ID
  • 目标边界框的像素坐标(若为经纬度,需先通过图像的地理参数转换为像素坐标)
  • 原始类别ID,后续需映射为YOLO要求的0起始连续ID

2. 坐标归一化处理

假设geojson中边界框格式为[xmin, ymin, xmax, ymax],按以下步骤计算归一化值:

  • 中心坐标:x_center = (xmin + xmax) / 2,y_center = (ymin + ymax) / 2
  • 框体宽高:width = xmax - xmin,height = ymax - ymin
  • 归一化:将上述四个值分别除以对应图片的宽度和高度(x轴对应宽,y轴对应高)

3. 生成YOLO格式TXT文件

针对每张图片,将所有目标的归一化信息按格式写入同名TXT文件,示例代码片段:

import json
import os

# 读取geojson标签文件
with open('xview_labels.geojson', 'r') as f:
    label_data = json.load(f)

# 自定义类别映射:xview原始类别ID转YOLO的0起始ID,需根据实际类别调整
class_map = {1:0, 2:1, 3:2, ...}

# 创建存储标签的文件夹
os.makedirs('yolo_labels', exist_ok=True)

for feature in label_data['features']:
    img_id = feature['properties']['image_id']
    # 提取边界框坐标,需根据geojson实际结构调整
    bbox_coords = feature['geometry']['coordinates'][0]
    xmin, ymin, xmax, ymax = bbox_coords
    # 获取映射后的YOLO类别ID
    yolo_class_id = class_map[feature['properties']['type_id']]
    
    # 假设对应图片尺寸为1024x1024,实际需替换为图片真实宽高
    img_w, img_h = 1024, 1024
    # 计算归一化参数
    x_center = (xmin + xmax) / (2 * img_w)
    y_center = (ymin + ymax) / (2 * img_h)
    norm_width = (xmax - xmin) / img_w
    norm_height = (ymax - ymin) / img_h
    
    # 写入标签文件
    txt_path = os.path.join('yolo_labels', f'{img_id}.txt')
    with open(txt_path, 'a', encoding='utf-8') as txt_file:
        txt_file.write(f"{yolo_class_id} {x_center:.6f} {y_center:.6f} {norm_width:.6f} {norm_height:.6f}\n")

关键注意事项

  • 若geojson中是经纬度坐标,需结合图片的地理参考信息(如投影、分辨率)转换为像素坐标,避免标签错位
  • 类别映射需保证连续无断层,否则训练时会出现类别ID不匹配的错误
  • 转换完成后随机抽取几组标签与对应图片核对,确认边界框位置正确

内容的提问来源于stack exchange,提问作者slaam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 18:45:30