数据标注
YOLO (You Only Look Once) 是一种流行的实时目标检测算法,其训练需要大量带有标注框的图片数据。数据标注是为图像中的目标物体添加边界框(bounding box)并分类的过程,是构建高质量YOLO模型的基础。其核心特点是将目标检测作为单一的回归问题处理,通过单个神经网络直接从完整图像预测边界框和类别概率。与传统的两阶段检测器不同,YOLO实现了端到端的检测,具有速度快、效率高的优势。Yolo算法依赖于高质量的数据集和精确的数据标注。
-
YOLO模型的性能直接取决于训练数据的质量
-
高质量数据集需要精确的数据标注作为基础
YOLO标注格式特点
坐标系统定义
- 图像左上角为原点(0,0)
- 向右为x轴正方向
- 向下为y轴正方向
各参数计算方式
| 参数 | 计算公式 | 示例 |
|---|---|---|
| x_center | (框左x + 框右x)/2 / 图像宽度 | (100+180)/2/640=0.21875 |
| y_center | (框上y + 框下y)/2 / 图像高度 | (50+150)/2/480=0.20833 |
| width | (框右x - 框左x) / 图像宽度 | (180-100)/640=0.125 |
| height | (框下y - 框上y) / 图像高度 | (150-50)/480=0.20833 |
- 每个图像对应一个.txt文本文件
- 每行表示一个目标:
<class_id> <x_center> <y_center> <width> <height> - 坐标值是相对于图像宽度/高度归一化的(0-1范围)
常用格式比较
| 特性 | YOLO格式 | Pascal VOC | COCO |
|---|---|---|---|
| 文件形式 | 每图一个.txt | 每图一个.xml | 单个.json |
| 坐标表示 | 归一化值 | 绝对像素值 | 绝对像素值 |
| 存储效率 | 高 | 中 | 低 |
| 可读性 | 需解析 | 易读 | 需解析 |
| 扩展性 | 低 | 中 | 高 |
| 适用场景 | YOLO训练 | 通用 | 大型数据集 |
常用标注工具
CVAT
CVAT 即计算机视觉标注工具,是一款功能强大、高效的开源数据标注平台,由英特尔公司开发,适用于机器学习项目,支持YOLO格式的直接导出。在自动驾驶、医疗影像、零售业、安防监控、农业等多个领域都有广泛应用,如标注自动驾驶中的车辆、行人、交通标志,协助医生标注医疗影像中的异常等。
特性
-
多样化标注类型:支持矩形框标注、多边形分割、语义分割、3D 点云标注等,能满足从简单图像分类到复杂实例分割等各种计算机视觉任务的需求。
-
自动标注功能:集成了 Segment Anything、Faster RCNN、Mask RCNN 等深度学习模型,支持自动标注,可将标注速度提升至 10 倍,且算法能在 CPU 或 GPU 上运行,为用户提供灵活选择。
-
协作功能:支持多人协作标注,可给不同用户分配不同角色和权限,让大规模数据标注项目的管理更简单高效。
-
丰富的数据格式支持:支持 TFRecord 等多种常见数据格式,能无缝集成到各种机器学习工作流程中。
优点:专业性强,功能全面,支持大规模标注项目,良好的性能表现,活跃的开源社区支持
缺点:部署相对复杂,学习曲线较陡峭
安装
安装过程网上自行搜索,建议使用docker部署
使用
安装完成后,访问 http://localhost:8080 登录(无账户先进行注册)
创建项目
选择右侧+号,选择Create a new project创建一个新的项目,
创建项目时,需创建标签,可通过Labels下的Constructor页创建标签,设置完标签名称、类型、颜色等后点击Continue保存,标签名称不要使用中文
创建Task
进入项目后,选择下方的+按钮Create a new task菜单创建一个任务,任务类型分为的Train、Test、Validation分别对应训练集、测试集和验证集
创建Task时需要导入图像,保存后自动生成一个Job
开始标注
点击Task右侧的Open按钮进行Task,Task中Jobs中会默认有一个Job
点击Job的名称(一个超链接,一般为蓝色字体)进入图像标注页面,选择矩形方式(用By 4 Points),在图像上进行标注,在右侧可选择标签名称
按N键快速标注下一个目标
按F键进入下一个图像
导出数据集
当所有任务完成之后,进入Projects页,点击项目下方的三个点的按钮,选择Export dataset导出数据集,导出时会导出所有任务
数据格式选择Ultralytics YOLO Detection 1.0,选择Save Images,当导出完成后会提示,点击提示或在Requests页选择下载到本地
使用限制
| 关键限制点 | 具体说明 |
|---|---|
| 云服务配额 | 官方云(app.cvat.ai)限 10 个任务、500MB 数据;本地部署无此限制 |
| 任务拆分 | 仅在上传时可拆分任务 / 作业,标注后不支持直接拆分数据集为 train/val/test |
| 验证集(QA) | 无强制数量,建议 5–15%;小样本(如 30 帧)可到 30%,以保证评估可靠性 |
Label Studio
Label Studio 是一款由 Human Signal(原 Heartex)推出的免费开源数据标注工具。适合开发人员微调大型语言模型、准备训练数据或验证 AI 模型。