COCO 数据集

COCO 数据集

COCO(Common Objects in Context)是计算机视觉领域广泛使用的目标检测、实例分割和关键点检测数据集,由微软发布。其特点包括:

  1. 数据规模

    包含超过 33 万张图像,标注对象超过 250 万个,涵盖 80 个常见物体类别(如人、车、动物等)。

  2. 标注类型

    • 目标检测边界框: (x,y,width,height)
    • 实例分割:多边形点集或 RLE 编码
    • 关键点检测:人体 17 个关键点坐标
    • 图像描述:每张图配有 5 句文字描述
  3. 数据结构

    采用 JSON 格式组织,核心字段包括:

    json 复制代码
    {
      "images": [{"id": 1, "file_name": "0001.jpg", "width": 640, "height": 480}],
      "annotations": [{
        "id": 1,
        "image_id": 1,
        "category_id": 1,
        "bbox": [x,y,w,h],
        "segmentation": [[x1,y1,x2,y2,...]]
      }],
      "categories": [{"id": 1, "name": "person"}]
    }

转换为 YOLO 训练数据格式

YOLO 要求的数据格式为:

复制代码
<类别索引> <中心点_x> <中心点_y> <宽度> <高度>

其中所有坐标值需归一化到 \[0,1\] 区间。

转换步骤:
  1. 数据归一化

    对于每个边界框 (x,y,w,h) :
    xcenter=x+w/2Wycenter=y+h/2Hwnorm=wWhnorm=hH \begin{aligned} x_{\text{center}} &= \frac{x + w/2}{W} \\ y_{\text{center}} &= \frac{y + h/2}{H} \\ w_{\text{norm}} &= \frac{w}{W} \\ h_{\text{norm}} &= \frac{h}{H} \end{aligned} xcenterycenterwnormhnorm=Wx+w/2=Hy+h/2=Ww=Hh

    其中 W 和 H 为图像宽高。

  2. 文件结构

    • 每张图像对应一个 .txt 标注文件

    • 文件内容示例:

      复制代码
      0 0.35 0.48 0.12 0.23
      2 0.62 0.31 0.08 0.15
  3. 转换脚本示例

python 复制代码
import json

# 加载 COCO 标注文件
with open('annotations.json') as f:
    coco_data = json.load(f)

# 创建类别映射字典
cat_map = {cat['id']: idx for idx, cat in enumerate(coco_data['categories'])}

# 处理每张图像
for img in coco_data['images']:
    img_id = img['id']
    W, H = img['width'], img['height']
    
    # 收集当前图像的所有标注
    annotations = [a for a in coco_data['annotations'] if a['image_id'] == img_id]
    
    # 生成 YOLO 格式文本
    with open(f'labels/{img["file_name"].replace(".jpg", ".txt")}', 'w') as f:
        for ann in annotations:
            x, y, w, h = ann['bbox']
            x_center = (x + w/2) / W
            y_center = (y + h/2) / H
            w_norm = w / W
            h_norm = h / H
            
            # 写入归一化坐标
            f.write(f"{cat_map[ann['category_id']]} {x_center} {y_center} {w_norm} {h_norm}\n")
注意事项:
  1. 确保图像路径与标注文件路径匹配
  2. 类别索引需从 0 开始连续编号
  3. 对于分割任务需额外处理掩码数据
  4. 坐标值保留 6 位小数防止精度丢失

此转换适用于 YOLOv3/v4/v5/v6/v7/v8 等系列模型训练。

相关推荐
Easy_API9 小时前
2.8万亿参数,编程反超GPT-6 Astra:Kimi K3.1 Pro把开源模型推到了哪一步
大数据·人工智能·gpt·深度学习
GlobalInfo9 小时前
2026年机器人多指灵巧手市场分析报告——涵盖行业调查、趋势分析与发展前景
大数据·人工智能·microsoft·微服务·机器人
紧跟先前的步伐9 小时前
Go AI Agent 实战 24|工具系统工程化收尾与阶段验收
人工智能·ai·golang·1024程序员节
释厄62310 小时前
AI学习层更新与跨体转移律——人类社会同构·不缺理解缺 U
人工智能·学习
老金带你玩AI11 小时前
集万家所长,一键复制的Agent.md!
人工智能
ZhuoAIStage11 小时前
舞台工艺多专业审图提速:用 AI 智能体编排 A+B+C+G 四段读图流水线
人工智能·自动化·工作流编排·舞台工艺·审图智能体
小奶包他干奶奶11 小时前
AI学习——1、机器学习概念
人工智能·机器学习
展讯快报11 小时前
悬浮提词器免费App评估报告:说得AI的免费策略与可用性分析
人工智能
Yuzhiyuxia11 小时前
【AI Agent面试系列】AI Agent记忆机制知识点1
人工智能·面试·职场和发展
2601_9654488711 小时前
AI视频制作:做系列历史人物视频音色不搭,AI 音色克隆的方法实测
人工智能·音视频