在图像标注工具 LabelImg 中,生成的标签文件格式(CreateML、PascalVOC、YOLO)各有特点,适用于不同的机器学习任务和框架。以下是它们的核心区别和应用场景:
1. PascalVOC(XML格式)
特点
文件格式:每个图片对应一个
.xml
文件,包含图片尺寸、物体类别和边界框坐标(xmin, ymin, xmax, ymax
)。坐标类型:绝对坐标(基于图片像素值)。
示例内容:
<annotation> <object> <name>cat</name> <bndbox> <xmin>100</xmin> <ymin>200</ymin> <xmax>300</xmax> <ymax>400</ymax> </bndbox> </object> </annotation>
应用场景
传统目标检测任务:如使用 Faster R-CNN、SSD 等基于PascalVOC数据格式训练的模型。
学术研究:许多早期论文和公开数据集(如VOC2007、VOC2012)采用此格式。
兼容性:支持多类别标注和复杂标注(如遮挡、难例标记)。
优缺点
优点:可读性强,支持丰富的信息(如分割掩码、姿态等扩展)。
缺点:文件体积较大,存储效率低。
2. YOLO(TXT格式)
特点
文件格式:每个图片对应一个
.txt
文件,每行表示一个物体,格式为:<class_id> <x_center> <y_center> <width> <height>
坐标类型:归一化坐标(
0~1
,相对于图片宽高)。class_id
是类别索引(从0开始)。
示例内容:
0 0.5 0.5 0.2 0.3 # 类别0,中心点(50%,50%),宽20%,高30%
应用场景
YOLO系列模型:专为 YOLOv3/v4/v5/v8 等设计,直接支持训练。
轻量级部署:适合嵌入式设备或实时检测(如无人机、自动驾驶)。
工业应用:大量标注数据时,TXT格式更节省存储空间。
优缺点
优点:文件体积小,处理速度快;坐标归一化便于数据增强(如缩放)。
缺点:可读性差,需额外文件记录类别名称。
3. CreateML(JSON格式)
特点
文件格式:所有标注信息存储在单个
.json
文件中,结构类似PascalVOC但更简洁。坐标类型:绝对坐标或归一化坐标(取决于工具)。
示例内容:
{ "image": "cat.jpg", "annotations": [{ "label": "cat", "coordinates": {"x": 100, "y": 200, "width": 200, "height": 200} }] }
应用场景
Apple生态系统:专为 Core ML(iOS/macOS端机器学习)优化。
移动端应用:如iPhone上的实时物体检测、AR应用。
Xcode开发:与CreateML工具链无缝集成。
优缺点
优点:JSON结构灵活,适合现代开发流程。
缺点:非通用格式,主要在Apple生态中使用。
对比总结
格式 |
文件类型 |
坐标类型 |
典型应用 |
适合框架 |
---|---|---|---|---|
PascalVOC |
XML |
绝对坐标 |
学术研究、复杂标注 |
Faster R-CNN, SSD |
YOLO |
TXT |
归一化坐标 |
实时检测、工业部署 |
YOLO系列, Darknet |
CreateML |
JSON |
绝对/归一化 |
iOS/macOS应用开发 |
Core ML, CreateML |
如何选择?
训练YOLO模型 → 选 YOLO格式。
兼容传统算法 → 选 PascalVOC。
开发iOS应用 → 选 CreateML。
数据存储效率 → 优先 YOLO(TXT比XML节省空间)。
如果需要转换格式,可使用工具如:
Roboflow(在线转换)
CVAT(标注时多格式导出)
脚本(如
xml_to_yolo.py
)。