目标检测常见数据集格式(YOLO、VOC、COCO)

目录

1.YOLO格式数据

1.1数据格式

1.2YOLO格式数据示例

1.3YOLO格式可视化 

2.COCO数据格式

2.1数据格式

2.2COCO格式数据示例

2.3COCO格式可视化 

3.VOC数据格式

3.1数据格式

3.2VOC格式数据示例

3.3COCO格式可视化 


🍓🍓1.YOLO格式数据

🍭1.1数据格式

        YOLO格式数据后缀为txt

🍋1.2YOLO格式数据示例

        YOLO格式数据一般包含图片路径、图片宽度和高度、物体类别和物体位置信息等。其中物体位置信息通常由目标框的左上角坐标(x,y)、目标框的宽度和高度 (w,h) 构成,统称为bounding box (BBox)。

        以下是一个YOLO格式数据的示例:

1 0.5685714285714286 0.39084507042253525 0.02 0.03051643192488263
0 0.8114285714285714 0.5363849765258216 0.022857142857142857 0.04460093896713615
1 0.845 0.6666666666666666 0.024285714285714285 0.046948356807511735
2 0.6335714285714286 0.18427230046948356 0.01 0.01643192488262911

        每一行表示一个目标框,每个目标框由一组5个数字(归一化)组成,每个数字代表的含义如下。

  • label_index :为标签名称在标签数组中的索引,下标从 0 开始。
  • cx:标记框中心点的 x 坐标,数值是原始中心点 x 坐标除以 图宽 后的结果。
  • cy:标记框中心点的 y 坐标,数值是原始中心点 y 坐标除以 图高 后的结果。
  • w:标记框的 宽,数值为 原始标记框的 宽 除以 图宽 后的结果。
  • h:标记框的 高,数值为 原始标记框的 高 除以 图高 后的结果。

🍇1.3YOLO格式可视化 

         YOLO格式的label可视化python代码:

import cv2# 画在原图001.jpg上
img = cv2.imread('001.jpg')
h, w, _ = img.shape# yolo标注数据文件名为001.txt
with open('001.txt', 'r') as f:temp = f.read()temp = temp.split()# 根据公式进行转换
x_, y_, w_, h_ = eval(temp[1]), eval(temp[2]), eval(temp[3]), eval(temp[4])x1 = w * x_ - 0.5 * w * w_
x2 = w * x_ + 0.5 * w * w_
y1 = h * y_ - 0.5 * h * h_
y2 = h * y_ + 0.5* h * h_# 画图验证,注意画图坐标要转换成int格式
cv2.rectangle(img, (int(x1), int(y1)), (int(x2), int(y2)), (255, 0, 0))
cv2.imshow('yolo_display', img)
cv2.waitKey(0)

🍓🍓2.COCO数据格式

🍭2.1数据格式

        coco格式数据后缀为json

        COCO 数据集的格式是基于 JSON(JavaScript Object Notation)的,使用一个主 JSON 文件来描述整个数据集,以及其他辅助的 JSON 文件来存储图像和标注等信息。在 COCO 数据集格式中,主要的 JSON 文件通常被称为 "instance" 文件,它包含了以下重要字段:

  •  "info" 字段:用于描述数据集的基本信息,例如名称、版本、年份等。
  • "license" 字段:包含了数据集使用的许可证信息,可以指定数据集的使用和共享方式。
  • "images" 字段:存储了每张图像的相关信息,包括图像的唯一标识符、文件名、高度、宽度等。
  • "annotations" 字段:记录了每个图像的标注信息,每个标注包含了一些必要的信息,如标注的唯一标识符、所属图像的标识符、类别、边界框信息等。
  • "categories" 字段:定义了数据集中所有类别的信息,包括类别的唯一标识符、名称等。 

🍋2.2COCO格式数据示例

        以下是一个COCO数据格式的JSON文件的例子:

{"info": {"year": 2021,"version": "1.0","description": "COCO Dataset Example","contributor": "John Doe","url": "http://example.com","date_created": "2021-06-01"},"licenses": [{"id": 1,"name": "License 1","url": "http://example.com/license1"},{"id": 2,"name": "License 2","url": "http://example.com/license2"}],"images": [{"id": 1,"width": 500,"height": 400,"file_name": "image1.jpg","license": 1,"date_captured": "2021-01-01"},{"id": 2,"width": 800,"height": 600,"file_name": "image2.jpg","license": 2,"date_captured": "2021-02-01"}],"annotations": [{"id": 1,"image_id": 1,"category_id": 1,"bbox": [100, 100, 200, 200],"area": 40000,"iscrowd": 0},{"id": 2,"image_id": 1,"category_id": 2,"bbox": [300, 200, 150, 250],"area": 37500,"iscrowd": 1},{"id": 3,"image_id": 2,"category_id": 1,"bbox": [50, 50, 300, 400],"area": 120000,"iscrowd": 0}],"categories": [{"id": 1,"name": "cat","supercategory": "animal"},{"id": 2,"name": "dog","supercategory": "animal"}]
}

        JSON文件包含了一个COCO数据集的基本信息。它包括了数据集的信息(年份、版本、描述等)、许可证信息、图像信息(宽度、高度、文件名等)、标注信息(标注ID、图像ID、类别ID、边界框、面积等)以及类别信息(类别ID、类别名称、超类别等)。

🍇2.3COCO格式可视化 

         coco格式的label可视化python代码:

import json
import matplotlib.pyplot as plt
from matplotlib.patches import Rectangle
from PIL import Imagedef load_data(json_file, image_file):with open(json_file, 'r') as f:data = json.load(f)image = Image.open(image_file)return data, imagedef draw_bbox(image, bbox, label):ax = plt.gca()rect = Rectangle((bbox[0], bbox[1]), bbox[2], bbox[3], linewidth=1, edgecolor='red', facecolor='none')ax.add_patch(rect)plt.text(bbox[0], bbox[1], label, fontsize=10, color='red', weight='bold')def visualize(json_file, image_file):data, image = load_data(json_file, image_file)plt.imshow(image)for ann in data['annotations']:label = data['categories'][ann['category_id']]['name']bbox = ann['bbox']draw_bbox(image, bbox, label)plt.axis('off')plt.show()json_file = 'path_to_json_file.json'
image_file = 'path_to_image_file.jpg'
visualize(json_file, image_file)

        记得将path_to_json_file.jsonpath_to_image_file.jpg替换为实际的文件路径。

🍓🍓3.VOC数据格式

🍭3.1数据格式

        VOC格式数据后缀为xml

🍋3.2VOC格式数据示例

        VOC数据格式是一种用于图像标注的标准格式,它用于存储图像及其相关的标注信息。在VOC格式中,每张图片的标注标签信息会被保存到一个XML文件中。XML文件的结构包括以下几个部分:

  • annotation:这是整个XML文件的主要部分,包含了图片的名字及基本信息。
  • folder:图片所在的文件夹名称。
  • filename:图片的文件名。
  • path:图片的完整路径。
  • source:图片的来源信息,例如图片来自哪个数据库。
  • size:图片的尺寸信息,包括宽度、高度和深度。
  • segmented:图片是否被分割,0表示未分割,1表示被分割。
  • object:每个目标的标定框坐标,包括左上角的坐标和右下角的坐标。 

        以下是一个VOC数据格式的JSON文件的例子:

<annotation><folder>17</folder> # 图片所处文件夹<filename>77258.bmp</filename> # 图片名<path>~/frcnn-image/61/ADAS/image/frcnn-image/17/77258.bmp</path><source>  #图片来源相关信息<database>Unknown</database>  </source><size> #图片尺寸<width>640</width><height>480</height><depth>3</depth></size><segmented>0</segmented>  #是否有分割label<object> 包含的物体<name>car</name>  #物体类别<pose>Unspecified</pose>  #物体的姿态<truncated>0</truncated>  #物体是否被部分遮挡(>15%)<difficult>0</difficult>  #是否为难以辨识的物体, 主要指要结体背景才能判断出类别的物体。虽有标注, 但一般忽略这类物体<bndbox>  #物体的bound box<xmin>2</xmin>     #左<ymin>156</ymin>   #上<xmax>111</xmax>   #右<ymax>259</ymax>   #下</bndbox></object>
</annotation>

🍇3.3COCO格式可视化 

         coco格式的label可视化python代码:

import cv2
import xml.etree.ElementTree as ETdef visualize_labels(image_path, xml_path):# 读取图像image = cv2.imread(image_path)# 读取XML文件tree = ET.parse(xml_path)root = tree.getroot()# 遍历XML文件中的对象for obj in root.findall('object'):bbox = obj.find('bndbox')# 提取边界框的坐标xmin = int(bbox.find('xmin').text)ymin = int(bbox.find('ymin').text)xmax = int(bbox.find('xmax').text)ymax = int(bbox.find('ymax').text)# 在图像上绘制边界框cv2.rectangle(image, (xmin, ymin), (xmax, ymax), (0, 255, 0), 2)# 提取对象的标签label = obj.find('name').text# 在图像上标注对象的标签cv2.putText(image, label, (xmin, ymin - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.9, (0, 255, 0), 2)# 显示图像cv2.imshow("Image", image)cv2.waitKey(0)cv2.destroyAllWindows()# 示例用法
image_path = 'path_to_image.jpg'
xml_path = 'path_to_xml.xml'
visualize_labels(image_path, xml_path)

说明:

  1. 首先,需要将path_to_image.jpg替换为实际的图像文件路径。
  2. 然后,将path_to_xml.xml替换为相应图像的VOC格式的XML标签文件路径。
  3. 使用cv2.rectangle函数绘制边界框,使用cv2.putText函数标注对象的标签。
  4. 最后,使用cv2.imshow函数显示可视化结果,按任意键关闭图像窗口。

整理不易,欢迎一键三连!!!

送你们一条美丽的--分割线--

🌷🌷🍀🍀🌾🌾🍓🍓🍂🍂🙋🙋🐸🐸🙋🙋💖💖🍌🍌🔔🔔🍉🍉🍭🍭🍋🍋🍇🍇🏆🏆📸📸⛵⛵⭐⭐🍎🍎👍👍🌷🌷

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/754409.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#LiteDB基本使用

C#LiteDB基本使用 LiteDB基本使用1.创建实体类2.连接数据库以及一些CRUD LiteDB基本使用 1.创建实体类 创建一个实体类 {public int Id { get; set; }public int Age { get; set; }public string Name { get; set; } string.Empty;public string[] Phone { get; set; }publ…

Jenkins使用pipeline流水线部署项目

新建流水线任务 前面的项目整个部署日志都在一个控制台页面&#xff0c;出现了错误不能快速定位不方便查阅 Jenkins提供了流水线方式的任务 这里我新建一个叫“pipeline-mytest”的流水线任务 在流水线出右侧有内置的样式&#xff0c;这里我选择了helloworld的样式。 构建一…

Apache Doris 2.0.6 版本正式发布

亲爱的社区小伙伴们&#xff0c;Apache Doris 2.0.6 版本已于 2024 年 3 月 12 日正式与大家见面&#xff0c;该版本在物化视图、统计信息收集、JDBC Catalog 等方面进行了更新优化&#xff0c;并提交了 114 个改进项以及问题修复&#xff0c;欢迎大家下载体验。 官网下载&…

25考研|北大软微会「爆炸」吗?

软微不是已经爆炸了吗&#xff1f; 大家去看看他的录取平均分就知道了&#xff0c;没有实力千万别碰&#xff0c;现在考软微已经不存在捡漏之说。 110408的复试线已经划到了465分&#xff0c;这个人真的不低了&#xff0c;因为有数学一和408两个比较难的专业课&#xff0c;复…

网络编程 - 套接字

1、预备知识 1.1、理解源IP地址和目的IP地址 在IP数据包头部中, 有两个IP地址, 分别叫做源IP地址, 和目的IP地址&#xff1b; 思考: 我们光有IP地址就可以完成通信了嘛? 想象一下发qq消息的例子, 有了IP地址能够把消息发送到对方的机器上, 但是还需要有一个其他的标识来区分…

完成系统支持Github三方登录

文章目录 1、需求2、在对接系统中完成客户端注册3、创建客户端应用4、CommonOAuth2Provider SpringSecurity OAuth2.0文档&#xff1a; https://docs.spring.io/spring-security/reference/servlet/oauth2/index.html 1、需求 对接Github&#xff0c;在自己系统实现支持Githu…

【C#语言入门】22. 接口、依赖反转、单元测试

【C#语言入门】22. 接口、依赖反转、单元测试 一、接口与单元测试 接口的产生&#xff1a;自底向上&#xff08;重构&#xff09;&#xff0c;自顶向下&#xff08;设计&#xff09;C#中接口的实现&#xff08;隐式&#xff0c;显式&#xff0c;多接口&#xff09;语言对面向…

【力扣hot100】49. 字母异位词分组

题目 给你一个字符串数组&#xff0c;请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 示例 1: 输入: strs [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”] 输出: [[“bat”],[“nat”,…

Visual Studio工程升级QT产生的问题及解决

文章目录 小结问题及解决QT的路径问题0xC0000139: Entry Point Not Found 参考 小结 最近将QT从版本5.3.2升级到了5.12.7&#xff0c;经及将VS2012工程升级到VS2015&#xff0c;碰到了一些问题&#xff0c;例如路径问题&#xff0c;程序无法启动的问题&#xff08;Entry Point…

k8s client-java创建pod常见问题

1.配置Kubernetes连接&#xff1a; 使用Kubernetes的配置文件&#xff08;通常位于~/.kube/config&#xff09;或直接使用API服务器地址、认证信息等来配置客户端。 配置通常有两种模式&#xff0c;安全和不安全的配置模式&#xff0c;对认证要求严格就选用安全模式&#xff…

实景剧本杀小程序儿童公园剧本杀小程序系统开发

开发实景剧本杀小程序儿童公园剧本杀系统需要考虑以下几个方面&#xff1a; 1. 游戏设计&#xff1a;设计适合儿童玩耍的剧本杀游戏&#xff0c;考虑场景、角色、任务、线索等因素&#xff0c;以适应儿童的理解力和参与度。 2. 技术实现&#xff1a;利用小程序技术框架进行系…

osgEarth学习笔记4-第一个OsgEarth QT程序

原文链接 使用QT Creator新建一个窗口项目。 编辑pro文件 QT core gui greaterThan(QT_MAJOR_VERSION, 4): QT widgets CONFIG c11 DEFINES QT_DEPRECATED_WARNINGS #DEFINES QT_DISABLE_DEPRECATED_BEFORE0x060000 # disables all the APIs deprecated bef…

前后端分离项目部署服务器教程--实践成功

文章目录 项目介绍流程1租界云服务2通过远程软件连接服务器3部署前后端代码停止功能文件 环境配置1.安装jdk2.安装Nginx3.安装mysql数据库 花了将近一天部署前后端的项目&#xff0c;写一个日志记录一下&#xff0c;话说孰能生巧。明天把服务器恢复初始在部署一下。 项目介绍 …

网络安全防御策略

网络安全防御策略 引言 在这个数字化的世界里&#xff0c;网络安全是每个个人和组织都需要关注的重要议题。了解如何保护自己免受网络攻击是至关重要的。 保持软件更新 重要性 防止已知漏洞被利用减少恶意软件感染的风险 操作建议 定期检查操作系统和应用程序的更新启用…

大模型-Prompt

一、prompt是什么 在大型语言模型集成中&#xff0c;"prompt" 是指您向模型提供的输入文本或指令&#xff0c;以引导模型生成特定类型的响应。这个 prompt 可以是一个问题、一段描述、一个任务说明&#xff0c;甚至是一部分对话历史记录等。通过设计和优化 prompt&a…

【已解决】在pycharm终端无法激活conda环境,但在cmd命令行中可以

一、问题描述 在windows下winr启动cmd命令行&#xff0c;可以成功运行conda命令并且激活环境在pycharm中打开Terminal终端&#xff0c;发现无法运行conda和pip命令&#xff0c;报错环境无法激活 无法在管道中间运行文档: D:\software\Anaconda3\condabin\conda.bat。 所在位置…

fedora RTL8821CE 无线网卡驱动安装

更新 fedora38 后&#xff0c;demsg 中会报大量的日志: rtw_8821ce 0000:02:00.0: unhandled firmware c2h interrupt如果遇到上面的信息&#xff0c;需要更新无线网卡驱动&#xff0c;方法参考: https://github.com/tomaspinho/rtl8821ce 1. 安装编译工具及依赖 sudo dnf i…

Matlab|基于改进粒子群算法的混合储能系统容量优化

目录 主要内容 部分程序 下载链接 主要内容 为了调高风光互补发电储能系统的经济性&#xff0c;减少其运行费用&#xff0c;研究风光互补发电储能系统的容量优化配置模型&#xff0c;探讨粒子群算法的改进及混合储能容量优化方法。首先通过对全生命周期费用静态模型…

全身动作捕捉设备Dreamscap X1,赋予影视、游戏动画全新创作体验

在影视动画、游戏动画制作领域&#xff0c;全身动作捕捉设备具有完整的动作捕捉性能捕获&#xff0c;无需关键帧动画技能&#xff0c;也可以捕捉真人全范围的运动姿态&#xff0c;通过全身动作捕捉设备系统将动作捕捉数据直接流式传输到3D模型上&#xff0c;辅助动画师制作出逼…

【DataWhale学习笔记-蝴蝶书共读】大语言模型背后

从图灵测试到ChatGPT 1950年&#xff0c;艾伦•图灵(Alan Turing)发表论文《计算机器与智能》&#xff08; Computing Machinery and Intelligence&#xff09;&#xff0c;提出并尝试回答“机器能否思考”这一关键问题。在论文中&#xff0c;图灵提出了“模仿游戏”&#xff…