怎么建设一个简单的网站,长春做高端网站公司,上海封闭饿死多少人,东莞网上推广平台这是一个非常核心且重要的问题。理解这三种主流标注格式的区别#xff0c;对于进行目标检测任务至关重要。
我将通过一个 核心对比表格 和 详细的逐一解析 来帮助你彻底弄懂它们。
核心对比一览表
特性PASCAL VOC 格式YOLO 格式COCO 格式文件类型XML (.xml)文本文件 (.txt)…这是一个非常核心且重要的问题。理解这三种主流标注格式的区别对于进行目标检测任务至关重要。
我将通过一个 核心对比表格 和 详细的逐一解析 来帮助你彻底弄懂它们。
核心对比一览表
特性PASCAL VOC 格式YOLO 格式COCO 格式文件类型XML (.xml)文本文件 (.txt)JSON (.json)文件结构每个图像一个标注文件每个图像一个标注文件整个数据集一个总标注文件坐标表示绝对像素坐标 (角点)brxmin, ymin, xmax, ymax归一化相对坐标 (中心点)brx_center, y_center, width, height绝对像素坐标 (左上角宽高)br[x_min, y_min, width, height]标注丰富度中等 (主要用于目标检测)简单 (专为目标检测设计)极高 (检测、分割、关键点、描述等)易用性较易读但冗长非常简单易于手动创建和脚本处理复杂不适合手动编辑需工具支持典型应用早期研究许多工具的基础格式YOLO系列模型追求速度和简洁学术界标准大型复杂数据集多任务 1. PASCAL VOC (Visual Object Classes) 格式
这是早期目标检测研究中非常流行的格式许多标注工具都支持导出为这种格式。 特点 文件类型 XML 格式具有良好的可读性。 文件结构 一对一。每张图片如 image001.jpg都有一个同名的XML文件image001.xml与之对应。 坐标系统 使用绝对像素值来定义边界框的左上角和右下角两个点。 xmin: 边界框左上角点的 x 坐标。 ymin: 边界框左上角点的 y 坐标。 xmax: 边界框右下角点的 x 坐标。 ymax: 边界框右下角点的 y 坐标。 示例 (image001.xml): annotationfolderimages/folderfilenameimage001.jpg/filenamepath/path/to/images/image001.jpg/pathsizewidth800/widthheight600/heightdepth3/depth/sizeobjectnamecat/nameposeUnspecified/posetruncated0/truncateddifficult0/difficultbndboxxmin150/xminymin200/yminxmax450/xmaxymax500/ymax/bndbox/object
/annotation 2. YOLO (You Only Look Once) 格式
这是为YOLO系列模型量身定制的格式追求极致的简洁和高效。 特点 文件类型 TXT 纯文本格式。 文件结构 一对一。和VOC一样每张图片image001.jpg都有一个同名的TXT文件image001.txt。 坐标系统 使用归一化的相对坐标所有值都在 0 到 1 之间。这使得它对图像尺寸变化不敏感。 class_id: 物体类别的索引整数从0开始。通常需要一个单独的 classes.txt 或 data.yaml 文件来映射索引和类别名称。 x_center: 边界框中心的 x 坐标 / 图像总宽度。 y_center: 边界框中心的 y 坐标 / 图像总高度。 width: 边界框的宽度 / 图像总宽度。 height: 边界框的高度 / 图像总高度。 示例 (image001.txt): 假设 cat 在 classes.txt 中是第0类图片尺寸为 800x600猫的边界框是 (xmin:150, ymin:200, xmax:450, ymax:500)。 x_center (150 450) / 2 / 800 0.375 y_center (200 500) / 2 / 600 0.583 width (450 - 150) / 800 0.375 height (500 - 200) / 600 0.5 image001.txt 文件的内容将是每行代表一个物体 0 0.375000 0.583333 0.375000 0.500000 IGNORE_WHEN_COPYING_START content_copydownload Use code with caution. IGNORE_WHEN_COPYING_END 3. COCO (Common Objects in Context) 格式
这是目前学术界和工业界最流行、功能最强大的标注格式由微软团队推出。 特点 文件类型 JSON 格式结构化但非常庞大。 文件结构 N对一。整个数据集如训练集或验证集只有一个JSON文件里面包含了所有图片的信息、所有物体的标注信息、类别信息等。 坐标系统 使用绝对像素值但格式与VOC不同。 [x_min, y_min, width, height]: 分别是边界框左上角点的x、y坐标以及边界框的宽度和高度。 标注丰富度 这是其最大优势。除了目标检测的边界框它还支持 实例分割 (Instance Segmentation): 用多边形点集精确勾勒物体轮廓。 关键点检测 (Keypoint Detection): 标注人体关节点等。 图像描述 (Image Captioning): 对图片进行文字描述。 示例 (JSON文件片段): {info: {...},licenses: [...],images: [{id: 1,width: 800,height: 600,file_name: image001.jpg}],annotations: [{id: 1,image_id: 1, // 关联到ID为1的图片category_id: 17, // 关联到ID为17的类别segmentation: [[150, 200, 450, 200, 450, 500, 150, 500]], // 分割多边形area: 90000,bbox: [150, 200, 300, 300], // [x, y, width, height]iscrowd: 0}],categories: [{id: 17,name: cat,supercategory: animal}]
} IGNORE_WHEN_COPYING_START content_copydownload Use code with caution. Json IGNORE_WHEN_COPYING_END 我应该用哪种格式 如果你正在训练 YOLO 模型 首选 YOLO 格式。如果你的数据是其他格式最好先将其转换为YOLO格式。 如果你想进行复杂的任务如实例分割、关键点检测 必须使用 COCO 格式。它是这类任务的事实标准。 如果你需要一个易于人类阅读和调试的格式 VOC 格式 是一个不错的选择但它的功能不如COCO。 如果你刚开始学习目标检测 从 YOLO 格式 入手最简单因为它只需要创建简单的文本文件。
许多标注工具如 LabelImg, CVAT, LabelMe都支持在这些格式之间进行导出和转换非常方便。