YOLO格式转换工具

在不同的YOLO版本及其他目标检测格式之间转换您的数据集和模型,无缝衔接您的AI开发工作流程。

工具推荐

我们目前正在开发自己的格式转换工具。在此期间,我们收集了一些优秀的第三方转换工具,推荐您使用这些免费资源来满足YOLO相关的格式转换需求。

在线转换工具

Roboflow - 通用格式转换平台

Roboflow支持30多种计算机视觉标注格式之间的相互转换,包括各种YOLO版本、COCO、VOC、TensorFlow等格式。完全免费用于个人项目和实验。

YOLOv5 YOLOv8 COCO VOC TensorFlow
  • 支持所有主流YOLO版本之间的转换
  • YOLO与其他格式(COCO、VOC等)之间的转换
  • 自动生成数据集配置文件(YAML)
  • 免费使用,支持有限的图像数量
访问Roboflow格式转换工具

开源代码工具

Ultralytics转换工具

Ultralytics官方提供的数据转换工具集,支持COCO、YOLO、分割等多种格式的互相转换。

YOLOv5/v8 COCO 分割 Python
# COCO转YOLO
from ultralytics.data.converter import convert_coco
convert_coco("path/to/coco/annotations/")
访问Ultralytics转换文档

JSON2YOLO

将JSON格式(特别是COCO格式)的标注转换为YOLO格式的专用工具。

COCO JSON YOLO Python
访问JSON2YOLO GitHub仓库

YOLO-to-COCO-format-converter

将YOLO格式标注转换为COCO格式的工具,支持从YOLO标记工具输出转换到COCO JSON格式。

YOLO COCO Python
访问YOLO-to-COCO GitHub仓库

pybboxes

一个轻量级Python库,专门用于在不同边界框格式之间进行转换,包括YOLO、VOC、COCO等。

YOLO VOC COCO Python
import pybboxes as pbx
yolo_bbox = (0.5, 0.5, 0.3, 0.2)
W, H = 640, 480
voc_bbox = pbx.convert_bbox(yolo_bbox, from_type="yolo", to_type="voc", image_size=(W, H))
访问pybboxes PyPI页面

常见格式介绍

YOLO格式

每个图像对应一个文本文件,每行表示一个对象:

<class_id> <x_center> <y_center> <width> <height>

所有值均为归一化后的相对值(0到1之间)。

COCO格式

使用JSON格式存储,结构较为复杂:

{
  "images": [...]
  "annotations": [...]
  "categories": [...]
}

坐标以像素为单位,表示为[x,y,width,height]。

VOC格式

使用XML文件存储标注信息:

<annotation>
  <object>
    <name>类别</name>
    <bndbox>
      <xmin>...</xmin>
    </bndbox>
  </object>
</annotation>

坐标以像素为单位,表示为[xmin,ymin,xmax,ymax]。

不同YOLO版本区别

  • • YOLOv5/v8: 需要额外的YAML配置文件
  • • YOLOv3 Keras: 使用相对坐标,但格式略有不同
  • • YOLOv8-OBB: 支持旋转边界框,格式更复杂
  • • Darknet YOLO: 原始YOLO格式,简单的txt文件

注意事项

我们推荐的第三方工具均为开源或提供免费服务的平台,但部分工具可能对使用量或功能有一定限制。如需处理大量数据或商业用途,请查阅相应工具的商业许可条款。同时,请注意保护您的数据安全,在上传数据前确认平台的隐私政策。