当前位置: 首页 > news >正文

数据标注之数据集的类型与如何标注

目录

一、常见数据标注格式

1. PASCAL VOC (XML格式)

2. COCO (JSON格式)

3. YOLO (TXT格式)

4. TFRecord (TensorFlow专用)

5. 其他格式

二、数据标注工具对比

三、标注流程示例(以LabelImg为例)


一、常见数据标注格式

1. PASCAL VOC (XML格式)

  • 适用任务:目标检测、图像分类

  • 文件结构

    • Annotations/:存放XML标注文件(每个图像对应一个XML文件)

    • JPEGImages/:存放原始图像

    • ImageSets/:存放训练/验证/测试集划分文件(如train.txt

标注内容:例如

<annotation><filename>image1.jpg</filename><size><width>800</width><height>600</height><depth>3</depth>  <!-- RGB图像 --></size><object><name>cat</name><bndbox><xmin>100</xmin>  <!-- 边界框左上角x坐标 --><ymin>200</ymin>  <!-- 边界框左上角y坐标 --><xmax>300</xmax>  <!-- 边界框右下角x坐标 --><ymax>400</ymax>  <!-- 边界框右下角y坐标 --></bndbox></object>
</annotation>
  • 如何标注

    • 使用工具:LabelImg(开源)、CVAT、RectLabel(Mac)

    • 标注步骤:

      1. 打开图像,用矩形框标注物体。

      2. 输入类别名称(如cat)。

      3. 工具自动生成XML文件。

2. COCO (JSON格式)

  • 适用任务:目标检测、实例分割、关键点检测

  • 文件结构

    • 单个annotations.json文件,包含所有图像的标注信息。

  • 标注内容(关键字段):

{"images": [{"id": 1,"file_name": "image1.jpg","width": 800,"height": 600}],"annotations": [{"id": 1,"image_id": 1,"category_id": 1,  // 类别ID(对应categories中的"cat")"bbox": [100, 200, 200, 200],  // [x, y, width, height]"area": 40000,"segmentation": [[...]]  // 多边形坐标(实例分割用)}],"categories": [{"id": 1, "name": "cat"}]
}
  • 如何标注

    • 使用工具:LabelMe、CVAT、Supervisely

    • 标注步骤:

      1. 标注物体边界框或多边形(分割任务)。

      2. 导出为COCO JSON格式。

3. YOLO (TXT格式)

  • 适用任务:目标检测(轻量级,适合嵌入式设备)

  • 文件结构

    • 每个图像对应一个.txt文件,内容格式:

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

例如:

0 0.25 0.5 0.1 0.2  # 类别0,中心点(25%宽度, 50%高度),宽高占10%和20%
  • 如何标注

    • 使用工具:LabelImg(需设置YOLO导出格式)、Roboflow

    • 标注步骤:

      1. 标注矩形框并指定类别。

      2. 工具自动将坐标转换为归一化值(相对于图像宽高)。

4. TFRecord (TensorFlow专用)

  • 适用任务:大规模数据集(TensorFlow训练用)

  • 文件结构

    • 二进制文件(.tfrecord),存储图像和标注的序列化数据。

  • 如何标注

    • 需先将其他格式(如COCO/VOC)转换为TFRecord:

# 使用TensorFlow Dataset API转换
tf.data.TFRecordDataset("data.tfrecord")

5. 其他格式

格式特点适用场景
CSV简单表格(文件路径+bbox坐标)快速标注/小数据集
Mask R-CNN多任务(检测+分割)实例分割
KITTI自动驾驶(3D框+雷达数据)自动驾驶

二、数据标注工具对比

工具支持格式特点
LabelImgVOC (XML), YOLO (TXT)开源,简单易用
CVATCOCO, VOC, YOLO在线协作,支持视频标注
LabelMeCOCO, JSON支持多边形标注(分割任务)
Roboflow所有主流格式在线平台,支持自动预处理

三、标注流程示例(以LabelImg为例)

安装LabelImg

pip install labelImg
labelImg  # 启动

标注步骤

  • 打开图像文件夹(Open Dir)。

  • 绘制矩形框(快捷键W),输入类别名称。

  • 保存为PASCAL VOC XML或YOLO TXT格式。

  • 导出到Annotations/目录。

http://www.lryc.cn/news/613466.html

相关文章:

  • 时间并非维度:论其作为空间变化的转换系数
  • 大模型LL04 微调prompt-Tuning方法入门(背景与发展)
  • 深度学习的视觉惯性里程计(VIO)算法优化实践
  • 数据结构学习之二叉树
  • 深度学习(2):自动微分
  • LSTM 单变量时序预测—pytorch
  • JAVA第六学:数组的使用
  • 【数据结构】二叉树练习
  • S7-1200 串行通信介绍
  • 一场 Dark Theme A/B 测试的复盘与提效实践
  • Linux上MySql CPU 占用异常
  • SpringBoot中的单例注入方式
  • windows有一个企业微信安装包,脚本执行并安装到d盘。
  • VSCode ssh一直在Setting up SSH Host xxx: Copying VS Code Server to host with scp等待
  • 开发避坑指南(20) :MyBatis操作Oracle插入NULL值异常“无效列类型1111“解决方案
  • DrissionPage实战案例:小红书旅游数据爬取
  • TDengine IDMP 文档介绍
  • 腾讯位置服务 —— 预估订单路线金额(使用Drools规则引擎处理)
  • 机器学习在量化中的应用:如何从逻辑回归到XGBoost实现高效预测?
  • [Oracle] DECODE()函数
  • DBeaver 25.1.0 转储数据库失败解决方案(适配最新版界面)
  • [Oracle] GREATEST()函数
  • 数据库入门:从零开始构建你的第一个数据库
  • 一个基于固定 IP地址查询天气的 C 语言程序,通过调用第三方天气 API:
  • Oracle 关闭 impdp任务
  • Oracle 12c + Pl/Sql windows系统下表空间创建、迁移,dmp备份导入,数据库字符集更改
  • 图论(1):图数据结构
  • 攻防世界WEB(新手模式)2-2-upload1
  • 【YOLO学习笔记】YOLOv8详解解读
  • 工业相机使用 YOLOv8深度学习模型 及 OpenCV 实现目标检测简单介绍