YOLO格式数据集转为COCO数据集(简单粗暴)

最近需要用的coco格式的数据集,但是在网上找的很多 毕竟麻烦,简单记录一下!

1、调整目录结构(以GC10-DET数据集为例)

YOLO格式数据集目录结构如下:
简单来说就是images文件夹里面有train、val、test三个文件夹都放的图片;
labels文件夹也有train、val、test三个文件夹都放的对应的标注!

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

2、使用代码进行转换!(修改两个路径and换成你自己数据集的类别名称即可)

import os
import json
from PIL import Image# 设置数据集路径
output_dir = "D:\\AAAAA\\GC10_coco"   #修改为YOLO格式的数据集路径;
dataset_path = "D:\\AAAAA\\GC10_yolo"  # 修改你想输出的coco格式数据集路径
images_path = os.path.join(dataset_path, "images")
labels_path = os.path.join(dataset_path, "labels")# 类别映射
categories = [{"id": 0, "name": "1_chongkong"},{"id": 1, "name": "2_hanfeng"},{"id": 2, "name": "3_yueyawan"},{"id": 3, "name": "4_shuiban"},{"id": 4, "name": "5_youban"},{"id": 5, "name": "6_siban"},{"id": 6, "name": "7_yiwu"},{"id": 7, "name": "8_yahen"},{"id": 8, "name": "9_zhehen"},{"id": 9, "name": "10_yaozhe"},# 添加更多类别
]# YOLO格式转COCO格式的函数
def convert_yolo_to_coco(x_center, y_center, width, height, img_width, img_height):x_min = (x_center - width / 2) * img_widthy_min = (y_center - height / 2) * img_heightwidth = width * img_widthheight = height * img_heightreturn [x_min, y_min, width, height]# 初始化COCO数据结构
def init_coco_format():return {"images": [],"annotations": [],"categories": categories}# 处理每个数据集分区
for split in ['train', 'test', 'val']:coco_format = init_coco_format()annotation_id = 1for img_name in os.listdir(os.path.join(images_path, split)):if img_name.lower().endswith(('.png', '.jpg', '.jpeg')):img_path = os.path.join(images_path, split, img_name)label_path = os.path.join(labels_path, split, img_name.replace("jpg", "txt"))img = Image.open(img_path)img_width, img_height = img.sizeimage_info = {"file_name": img_name,"id": len(coco_format["images"]) + 1,"width": img_width,"height": img_height}coco_format["images"].append(image_info)if os.path.exists(label_path):with open(label_path, "r") as file:for line in file:category_id, x_center, y_center, width, height = map(float, line.split())bbox = convert_yolo_to_coco(x_center, y_center, width, height, img_width, img_height)annotation = {"id": annotation_id,"image_id": image_info["id"],"category_id": int(category_id) + 1,"bbox": bbox,"area": bbox[2] * bbox[3],"iscrowd": 0}coco_format["annotations"].append(annotation)annotation_id += 1# 为每个分区保存JSON文件with open(os.path.join(output_dir, f"{split}_coco_format.json"), "w") as json_file:json.dump(coco_format, json_file, indent=4)

3、转化完之后,把图片挪过去就行了

在这里插入图片描述

🎈大功告成,转化工作虽然不是全自动的,但是相对简单轻松!

🤞代码是参考的一篇博客,但是时间长,找不到了该博客的链接了!

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

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

相关文章

rk3588s android12 自启动 C程序

首先是 拷贝 TEST程序 到android跟文件系统看看能否成功。 首先将需要 在android 系统中 启动的 TEST 程序,拷贝到虚拟机。 这个程序 然后需要拷贝到 android 的文件系统中。 我是这样做的。 改的是这个文件。 然后, 编译+烧写测试。 发现, 在android 系…

国内车市销量激增,理想成功超越BBA

文/王俣祺 导语:随着“金九银十”的到来,国内汽车市场迎来了一个充满活力的开局。乘用车市场的销量已经迎来新的突破,彰显出中国汽车市场的韧性和潜力。尤为引人注目的是,新能源汽车销量同样激增,成为推动市场增长的重…

字节豆包C++一面-面经总结

talk is cheap show me the code lc206:链表反转:给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 class Solution { public:ListNode* reverseList(ListNode* head) {if(headnullptr||!head->next)return head…

RHCSA认证-Linux(RHel9)-Linux入门

文章目录 概要一、创建、查看和编辑⽂本1.1 输出重定向1.2 vim编辑器1.3 shell 变量1.5 获取帮助 二、管理本地用户和组2.1 描述用户2.2 切换用户和赋权2.3 用户管理2.4 用户组管理2.5 密码策略 三、控制文件访问3.1 列出文件和文件权限3.2 更改文件权限和拥有者3.3 控制默认权…

Node.js官网无法正常访问时安装NodeJS的方法

目录 一、使用 nvm 进行安装二、通过阿里云开源镜像站进行安装 一、使用 nvm 进行安装 此时如果直接使用 nvm install 命令进行安装会报错: nvm install 16.14.0Could not retrieve https://nodejs.org/dist/latest/SHASUMS256.txt. Get “https://nodejs.org/dis…

STM32精确控制步进电机

目的:学习使用STM32电机驱动器步进电机,进行电机运动精确控制。 测试环境: MCU主控芯片STM32F103RCT6 ;A4988步进电机驱动器模块; 微型2相4线步…

AMP网站如何适配提升SEO效果?

AMP网站如何适配提升SEO效果? 很多网站本来就有了 PC 和 M 站,现在多来了个 AMP,如何适配提升网站SEO效果呢?有两种适配形式: 1.PC AMP 这种形式比较简单,只需要配置好 amphtml 和 canonical 即可。关系…

论文阅读《Co-clustering for Federated Recommender System》

论文概况 本文是2024 WWW的一篇联邦推荐论文,提出了一个基于特定类别物品相似度来进行聚类的联邦推荐框架。 Introduction 分析了经典聚类技术KMeans在联邦推荐设置中的不足,提出了一种新的共聚类联邦推荐机制CoFedRec,该机制在每个通信回合…

堆排序算法详解:原理与Python实现

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「storm…

后端回写前端日期格式化

问题 不进行格式化处理&#xff0c;就会导致传递的字符串很奇怪 解决方案 注解&#xff08;字段&#xff09; <dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.9.2</…

【unity进阶知识1】最详细的单例模式的设计和应用,继承和不继承MonoBehaviour的单例模式,及泛型单例基类的编写

文章目录 前言一、不使用单例二、普通单例模式1、单例模式介绍实现步骤&#xff1a;单例模式分为饿汉式和懒汉式两种。 2、不继承MonoBehaviour的单例模式2.1、基本实现2.2、防止外部实例化对象2.3、最终代码 3、继承MonoBehaviour的单例模式3.1、基本实现3.2、自动创建和挂载单…

QT窗口无法激活弹出问题排查记录

问题背景 问题环境 操作系统: 银河麒麟V10SP1qt版本 : 5.12.12 碰见了一个问题应用最小化,然后激活程序窗口无法弹出 这里描述一下代码的逻辑,使用QLocalServer实现一个单例进程,具体的功能就是在已存在一个程序A进程时,再启动这个程序A,新的程序A进程会被杀死,然后激活已存…

linux信号| 学习信号三步走 | 学习信号需要打通哪些知识脉络?

前言: 本节内容主要讲解linux下信号的预备知识以及信号的概念&#xff0c; 信号部分我们将会分为几个阶段进行讲解&#xff1a;信号的概念&#xff0c; 信号的产生&#xff0c; 信号的保存。本节主要讲解信号 ps:本节内容适合学习了进程相关概念的友友们进行观看哦 目录 什么是…

电脑上数据丢了怎么找回来 Win系统误删文件如何恢复

无论是在工作中&#xff0c;还是生活中&#xff0c;电脑都是不可缺少的重要工具&#xff0c;尤其是在工作中&#xff0c;电脑不仅可以高效的完成工作&#xff0c;还可以存储工作中的重要资料。不过在使用电脑的时候&#xff0c;也会遇到数据丢失的情况。针对这一问题&#xff0…

水面巡检船垃圾漂浮物检测系统源码分享

水面巡检船垃圾漂浮物检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of …

在GPU计算型实例中安装Tesla驱动超详细过程

摘要&#xff1a;在深度学习、AI等通用计算业务场景或者OpenGL、Direct3D、云游戏等图形加速场景下&#xff0c;安装了Tesla驱动的GPU才可以发挥高性能计算能力&#xff0c;或提供更流畅的图形显示效果。如果您在创建GPU计算型实例&#xff08;Linux&#xff09;时未同时安装Te…

Linux服务器安装Anaconda环境

Linux浪潮云服务器安装Anaconda环境 读研之后在导师的帮助下&#xff0c;获得了浪潮的一台公共云服务器。以后做实验跑代码就可以使用云服务器上的虚拟环境了。减少了自己笔记本的压力。在创建并保存完成镜像环境之后。最重要的就是安装好深度学习需要的Anaconda环境&#xff0…

“类型名称”在Go语言规范中的演变

Go语言规范&#xff08;The Go Programming Language Specification&#xff09;[1]是Go语言的核心文档&#xff0c;定义了该语言的语法、类型系统和运行时行为。Go语言规范的存在使得开发者在实现Go编译器时可以依赖一致的标准&#xff0c;它确保了语言的稳定性和一致性&#…

python -tkinter

在Button的command绑定中&#xff0c;如果给的一个函数&#xff0c;则表示执行一次。 import tkinter as Tkfrom tkinter import messageboxi 0def myLabel():global root,is Tk.Label(root,text"the import thing is :" )s.pack()root Tk.Tk()def fun1():if mess…

[PICO VR眼镜]眼动追踪串流Unity开发与使用方法,眼动追踪打包报错问题解决(Eye Tracking/手势跟踪)

前言 最近在做一个工作需要用到PICO4 Enterprise VR头盔里的眼动追踪功能&#xff0c;但是遇到了如下问题&#xff1a; 在Unity里面没法串流调试眼动追踪功能&#xff0c;根本获取不到Device&#xff0c;只能将整个场景build成APK&#xff0c;安装到头盔里&#xff0c;才能在…