扩展阅读:CSV格式的目标检测(Object Detection)标注文件示例
CSV 格式的 目标检测(Object Detection)标注文件 ,采用的是 边界框(Bounding Box)标注,属于 矩形框标注(Axis-Aligned Bounding Box, AABB) 类型。这个 CSV 格式存储的目标检测边界框标注文件,采用 (x_min, y_min, x_max, y_max) 表示人脸位置,属于 矩形框标注(Bounding Box Annotatio
CSV 格式的 目标检测(Object Detection)标注文件 ,采用的是 边界框(Bounding Box)标注,属于 矩形框标注(Axis-Aligned Bounding Box, AABB) 类型。
CSV示例内容:
image_name,x_min,y_min,x_max,y_max,label
image_1.jpg,30,50,150,200,face
image_2.jpg,20,40,180,220,face
这个 CSV 格式存储的目标检测边界框标注文件,采用 (x_min, y_min, x_max, y_max) 表示人脸位置,属于 矩形框标注(Bounding Box Annotation),常用于人脸检测、通用目标检测等任务。
🔍详细解析:
每一行的字段含义如下:
| 字段名 | 含义 |
|---|---|
image_name |
图像文件名 |
x_min |
边界框左上角的 x 坐标(最小 x) |
y_min |
边界框左上角的 y 坐标(最小 y) |
x_max |
边界框右下角的 x 坐标(最大 x) |
y_max |
边界框右下角的 y 坐标(最大 y) |
label |
目标类别标签(这里是 "face") |
这种表示方式是目标检测任务中 非常常见的一种标注格式,尤其在以下场景中广泛使用:
- 自定义数据集训练(如 YOLO、Faster R-CNN、SSD 等模型的前期数据准备)
- Kaggle 竞赛中的检测任务
- 简单的 CSV 格式便于人工检查和编辑
与其他常见标注格式对比:
| 格式 | 特点 | 示例 |
|---|---|---|
| CSV(如你所示) | 简洁、易读、适合单框或多框(每行一个框) | image.jpg,10,20,100,150,face |
| Pascal VOC (XML) | 结构化 XML,支持多目标、难例标记等 | <bndbox><xmin>10</xmin>...</bndbox> |
| COCO (JSON) | 复杂但功能强大,支持检测、分割、关键点 | "bbox": [x, y, width, height] |
| YOLO (TXT) | 每张图一个 .txt 文件,归一化坐标 |
0 0.5 0.6 0.2 0.3 |
注意:这个 CSV 示例使用的是 (x_min, y_min, x_max, y_max) 格式,而 YOLO 格式使用的是 (center_x, center_y, width, height) 且坐标归一化到 [0,1],两者不同。
如何使用这种 CSV 标注?
-
训练模型前转换:
大多数深度学习框架(如 Detectron2、MMDetection、YOLOv5/v8)不直接读取 CSV,需要先转换为对应格式(如 COCO JSON 或 YOLO TXT)。 -
自定义 Dataset 类(PyTorch 示例):
import pandas as pd from torch.utils.data import Dataset from PIL import Image class CSVDataset(Dataset): def __init__(self, csv_file, img_dir, transform=None): self.annotations = pd.read_csv(csv_file) self.img_dir = img_dir self.transform = transform def __len__(self): return len(self.annotations) def __getitem__(self, idx): img_path = os.path.join(self.img_dir, self.annotations.iloc[idx, 0]) image = Image.open(img_path).convert("RGB") bbox = self.annotations.iloc[idx, 1:5].values.astype("float32") # [x_min, y_min, x_max, y_max] label = self.annotations.iloc[idx, 5] # ... 转换为 tensor 等 -
可视化检查:
可用 OpenCV 或 Matplotlib 读取 CSV 并在图像上画框,验证标注质量。
更多推荐


所有评论(0)