数据标注与数据集制作是 YOLO11 工程中最耗时但也最决定上限的环节。一个模型的上限,在标注质量定下来的那一刻就已经确定了。
YOLO 格式:简洁的“归一化坐标”体系
YOLO 不直接用像素坐标,而是要求归一化到 0-1 之间。这是最常见的错误来源——忘记归一化,训练时 mAP 会直接归零。
目标检测的格式:每行一个目标,class_id x_center y_center width height。
实例分割的格式:每行一个目标,class_id x1 y1 x2 y2 ... xn yn,即多边形轮廓点,最少 3 个点。
OBB 旋转框的格式:class_id x1 y1 x2 y2 x3 y3 x4 y4,四个角点按顺时针排列。
标注工具选择
LabelImg:最经典的选择,安装极简(pip install labelimg),支持 VOC 和 YOLO 格式一键切换。快捷键 W 画框、A/D 切换图片、Ctrl+S 保存。标注 YOLO 格式时直接生成.txt文件,无需转换。
Label Studio:适合团队协作和云上实践。支持多人同时标注、质量复核、版本管理。工业数据集(航拍屋顶杂物、快递纸箱、下水管道缺陷)的标注流程都采用了 Label Studio。
X-AnyLabeling:功能最强大,集成了 AI 辅助标注(YOLO 系列、RT-DETR、Segment Anything 2),支持矩形框、多边形、旋转框、关键点等所有标注样式。新版本还引入了视觉-文本提示的交互式检测/分割,能大幅提升标注效率。
数据集目录结构
YOLO 期望的目录结构非常固定,文件名必须严格匹配:
my_dataset/ ├── images/ │ ├── train/ │ │ ├── 000001.jpg │ │ └── 000002.jpg │ └── val/ │ └── 000003.jpg └── labels/ ├── train/ │ ├── 000001.txt │ └── 000002.txt └── val/ └── 000003.txt然后创建一个 YAML 配置文件,指定路径和类别名称:
path:D:/datasets/my_datasettrain:images/trainval:images/valnc:2names:['defect','normal']实操中的关键约束
类别不平衡是常态。航拍屋顶数据集中,水箱样本 5727 张,塑料瓶只有 100 张。训练时需要通过数据增强、类别权重等方式补偿。
标注质量决定一切。标注框要紧密贴合目标边缘,不能太松也不能太紧。太松会引入背景噪声,太紧会丢失边缘信息。建议标注完成后用可视化脚本抽查,人眼能发现的问题比指标更多。
小数据集先验证流程。100 张图的数据集适合验证标注流程和训练配置是否跑通,但不足以训练生产级模型。实际项目建议从几千张起步。
版本管理不可跳过。标注修正后要打版本标签(v1.0、v1.1),训练效果不佳时能回滚到上一版数据重新验证。
一句话总结
数据标注的核心是归一化坐标 + 严格的文件名匹配 + YAML 配置。工具选 LabelImg 做快速原型,选 Label Studio 做团队协作,选 X-AnyLabeling 做 AI 辅助提效。标注质量决定模型上限,这个环节省下的时间,会在训练和调参时加倍还回来。