当前位置: 首页 > news >正文

扩展阅读:CSV格式的目标检测(Object Detection)标注文件示例

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 标注?

  1. 训练模型前转换
    大多数深度学习框架(如 Detectron2、MMDetection、YOLOv5/v8)不直接读取 CSV,需要先转换为对应格式(如 COCO JSON 或 YOLO TXT)。

  2. 自定义 Dataset 类(PyTorch 示例)

    import pandas as pd
    from torch.utils.data import Dataset
    from PIL import Imageclass CSVDataset(Dataset):def __init__(self, csv_file, img_dir, transform=None):self.annotations = pd.read_csv(csv_file)self.img_dir = img_dirself.transform = transformdef __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 等
    
  3. 可视化检查
    可用 OpenCV 或 Matplotlib 读取 CSV 并在图像上画框,验证标注质量。

http://www.dtcms.com/a/549061.html

相关文章:

  • 行政单位门户网站建设规定久久建筑网20g三维图集下载
  • Kotlin Multiplatform Mobile(KMM):实现 iOS 与 Android 共享业务逻辑
  • 利用Selenium和PhantomJS提升网页内容抓取与分析的效率
  • QML学习笔记(四十七)QML与C++交互:上下文对象
  • 农业物联网实践:基于 ESP8266 与土壤传感器的智能灌溉系统开发与部署
  • 【Windows 10 企业版 LSTC】下安装【英特尔® 显卡控制中心】
  • Linux常用操作命令详解
  • 十堰专业网站建设公司网站建设预算
  • 深圳网站设计+建设首选网站开发iis怎么配置
  • Angular【起步】
  • Unity ComputeShader入门指南
  • 铜鼻子冷压端子视觉检测机 尺寸外观瑕疵自动化检测设备
  • 强化学习(RL)简介及其在大语言模型中的应用
  • 沈阳自主建站模板网站代理维护
  • 东莞做展示网站的公司济南网络科技公司排名
  • 云栖实录 | 阿里云发布Elasticsearch Serverless 2.0,重塑AI搜索时代基础设施
  • 解决 InfiniteScroll 滚动 BUG
  • Python实现随机选播视频的示例代码
  • 做网站开发多少钱制作网站步骤
  • CSS实现渐变色边框(Gradient borders)
  • 本地部署集成全能平台 Team.IDE 并实现外部访问
  • 深圳科技网站建设字节跳动公司简介
  • 前端技术栈全景图:从HTML到现代框架的演进之路
  • 手机网站 制作睢宁县凌城做网站的
  • DeerFlow介绍
  • Java 程序员的 Vue 指南 - Vue 万字速览(01)
  • TortoiseSVN 右键不显示的解决方法
  • 仓颉语言实战:从零构建闰年判断工具库
  • 网络基础知识简易急速理解---BGP边界网关协议
  • 【Linux网络】Socket编程实战,基于UDP协议的Echo Server