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

COCO 数据集

COCO 数据集

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

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

  2. 标注类型

    • 目标检测边界框:$ (x,y,width,height) $
    • 实例分割:多边形点集或 RLE 编码
    • 关键点检测:人体 17 个关键点坐标
    • 图像描述:每张图配有 5 句文字描述
  3. 数据结构
    采用 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. 转换脚本示例

importjson# 加载 COCO 标注文件withopen('annotations.json')asf:coco_data=json.load(f)# 创建类别映射字典cat_map={cat['id']:idxforidx,catinenumerate(coco_data['categories'])}# 处理每张图像forimgincoco_data['images']:img_id=img['id']W,H=img['width'],img['height']# 收集当前图像的所有标注annotations=[aforaincoco_data['annotations']ifa['image_id']==img_id]# 生成 YOLO 格式文本withopen(f'labels/{img["file_name"].replace(".jpg",".txt")}','w')asf:foranninannotations: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 等系列模型训练。

http://www.cnnetsun.cn/news/137078.html

相关文章:

  • 国内好用的测试用例管理工具有哪些?
  • 24、COM+ 事务管理与补偿资源管理器详解
  • YOLO深度学习模型的训练参数配置与优化
  • 数字孪生可视化模板怎么用?5大行业Demo拆解,帮你快速复用提效
  • 必藏!程序员转型AI大模型:机遇、路径与成功率拆解
  • 《智构空间:AIOS 与全时域 3D 交互范式》第 0 篇:前言 —— 触摸语义的厚度
  • 如何将照片从 Android 传输到 Android
  • 前端Vue使用js-audio-plugin实现录音功能
  • 测试用例之翻页功能详解
  • 音乐平台歌曲盗版维权全攻略:权利卫士录屏取证+可信时间戳认证实操指南
  • 根据您提供的 package.json 片段,涉及的 @vue/cli-plugin-babel 和 @vue/cli-service 版本为 ~4.2.0。以下是针对该版本的详细解决方案,结合相关依
  • electron-egg打包win7
  • 8种网络故障分析及测试命令大全
  • 新人必看盘点知名CTF练习靶场,从零基础入门到精通,收藏这一篇就够了!
  • Pythonselenium自动化测试实战项目
  • 关于Comtos Linux (朱雀)主体源码的选择
  • 超级Mini小车功能说明
  • STC32G12单片机替换成STC32F12单片机,直接替换的结果
  • SIEMENS 6SL3210-1PE33-0CL0 变频器
  • 软件测试常用的7种方法,最后一个是升职加薪关键!(零基础小白转行IT互联网高效进阶)
  • 【RTOS】EasyLog的移植与使用
  • 在数据库里玩“平行宇宙”:MatrixOne Data Branch 让数据也拥有Git 的分支/合并/对比/回滚(含跨集群同步)
  • 基于单片机的全自动洗衣机系统的设计
  • 5.6 模型部署与智能体集成实战
  • 基于单片机的球赛计分牌的设计
  • ArcGIS Pro 从入门到实战基础篇(10):地图菜单
  • Kotaemon与Redis/Memcached集成:构建高速缓存层
  • 【鸿蒙三方库编译】lycium_plusplus(lycium++)高效完成鸿蒙C/C++编译
  • 2025年度GEO服务商权威甄选指南:技术深度与商业价值的双重考量
  • 收藏备用!Java程序员转AI大模型:从技术沉淀到AI爆发的进阶之路