news 2026/8/21 22:13:56

COCO 数据集

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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 等系列模型训练。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/20 20:24:50

请你说说hashCode()和equals()的区别,为什么重写equals()就要重写hashCode()

区别&#xff1a; equals()方法用于比较两个对象是否相等。默认情况下&#xff08;从Object类继承&#xff09;&#xff0c;它比较的是两个对象的引用是否指向同一内存地址。但通常我们会重写它&#xff0c;以便根据对象的内容&#xff08;即属性值&#xff09;来比较是否相等。…

作者头像 李华
网站建设 2026/8/21 20:46:37

canvas绘制图片

项目中有一个点击图片&#xff0c;在点击区域画圆标注的需求&#xff0c;需要知道点击的位置&#xff0c;并判断位置是否正确&#xff0c;类似“找不同”小游戏。这种就需要用到canvas了基本说明canvas 是 一个 HTML 元素&#xff0c;用于绘制图形和图像&#xff0c;通过 JavaS…

作者头像 李华
网站建设 2026/8/21 11:09:17

常用日志积累

1)正则查询cat protocol-2025-12-12.log | grep -E PRT_PAY_BUY_*|PAY_NOT_CAN_CHARGE|PRT_GIFT_FUN_SYN | grep 104936含义:查询还有购买的&#xff0c;购买不成功的&#xff0c;同步购买次数协议。

作者头像 李华
网站建设 2026/8/21 19:30:08

2025CTF逆向工程“新范式”:当Jadx装上AI大脑,逆向效率提升

随着人工智能技术的快速发展&#xff0c;2025年以来&#xff0c;Model Context Protocol&#xff08;MCP&#xff09;逐渐成为逆向工程领域的新宠。各类主流工具如IDA、Jadx等纷纷推出对应的MCP插件&#xff0c;通过结合大模型能力&#xff0c;大幅提升了代码分析效率。尽管早期…

作者头像 李华
网站建设 2026/8/21 17:36:51

2025年AI学习必备网站与高效上手全攻略:从认知到实战的完整路径

在塔猴、Coursera、edX和B站构成的多元化学习生态中&#xff0c;超过2500万用户正在通过系统化课程掌握AI技能。而Perplexity、Midjourney等前沿AI工具则从应用端简化了入门门槛。如今&#xff0c;AI技术已不再仅仅是一个前沿概念&#xff0c;它正逐渐转变为一项必备的职场技能…

作者头像 李华
网站建设 2026/8/20 3:56:40

oracle迁移到sqlserver的注意点

迁移工具可以考虑结合&#xff1a; 1.kdts在转换sysdate默认值字段的时候会错误&#xff0c;在sqlserver中可以考虑改用getdate()或sysdatetime()&#xff0c;精度不同。分区表迁移到sqlserver自动转成普通表。 2.ssma for oracle&#xff0c;需vpn下载 https://www.microsof…

作者头像 李华