【目标检测】YOLO格式数据集txt标注转换为COCO格式JSON

YOLO格式数据集:

images
|--train
|--test
|--vallabels
|--train
|--test
|--val

代码:

import os
import json
from PIL import Image# 设置数据集路径
dataset_path = "path/to/your/dataset"
images_path = os.path.join(dataset_path, "images")
labels_path = os.path.join(dataset_path, "labels")# 类别映射
categories = [{"id": 1, "name": "category1"},{"id": 2, "name": "category2"},# 添加更多类别
]# 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(f"path/to/output/{split}_coco_format.json", "w") as json_file:json.dump(coco_format, json_file, indent=4)

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

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

相关文章

LoadRunner12.55的简介与安装

提示:https://mp.weixin.qq.com/s/iK-fh0VP7v8mNSDNxjkBow 文章目录 LoadRunner的简介与安装loadrunner概述loadrunner的下载与安装 LoadRunner的使用启用VuGen LoadRunner的简介与安装 LoadRunner官网:https://www.microfocus.com/zh-cn/products/load…

java面试题-Hashmap、Hashtable、ConcurrentHashMap原理

远离八股文,面试大白话,通俗且易懂 看完后试着用自己的话复述出来。有问题请指出,有需要帮助理解的或者遇到的真实面试题不知道怎么总结的也请评论中写出来,大家一起解决。 Hashmap和hashtable存储逻辑基本相同-都是基于hash表实现…

智能优化算法应用:基于水基湍流算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于水基湍流算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于水基湍流算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.水基湍流算法4.实验参数设定5.算法结果6.参考…

递增子序列(回溯)

题目描述 给你一个整数数组 nums ,找出并返回所有该数组中不同的递增子序列,递增子序列中 至少有两个元素 。你可以按 任意顺序 返回答案。 数组中可能含有重复元素,如出现两个整数相等,也可以视作递增序列的一种特殊情况。 样例…

Unity使用打成图集的Sprite作为模型贴图使用的问题

大家好,我是阿赵。   有时候用Unity引擎做项目的时候,会遇到这样的需求,美术做了一些模型或者特效,然后策划想在游戏运行的时候,读取一些游戏图标放在特效或者模型上面当做贴图使用。   这个需求实现起来很简单&am…

手把手教你注册意大利商标

在当今全球商业环境中,拥有一个独特的商标可以为企业在市场竞争中提供重要优势。商标作为品牌形象的核心,有助于吸引潜在客户,提升品牌价值,增加客户忠诚度。在意大利,商标注册同样具有重要意义,它能为企业…

golang使用sip协议 用户名和密码注册到vos3000

在Go语言中,要使用SIP协议进行注册,您可以使用第三方库,如github.com/cloudwebrtc/sip。以下是一个简单的示例代码,演示如何使用Go语言中的该库进行基本的SIP注册: 首先,您需要安装该库: go ge…

销售人员如何自我提升?

销售人员如何自我提升? 在美国有这么一句流行语:不当总统就干销售员。其实在国内很多老板,高收入人群等大部分是来自销售岗位。因为销售是离钱最近的职业,在销售职业生涯中能收获到很多,比如人际关系能力,…

【刘二大人】pytorch深度学习实践(三):如何实现线性模型的反向传播+代码实现详解(Tensor、backward函数)

目录 参考资料一、反向传播流程1.1 问题1.2 方法1.3 步骤1.4 例题 二、Pytorch中前向传播和反馈的计算2.1 tensor数据类型2.2 定义线性模型并且计算损失2.2.1 torch.tensor.item()2.2.2 代码 2.3 反向传播2.3.1 torch.tensor.backward()2.3.2 tensor.zero_( )2.3.3 代码实现 三…

SASS基本语法总结

SASS是CSS预处理器,简单来说,SASS是比CSS更高一级的语言,它拥有CSS不具备的语法,比如if条件控制 SASS的预处理器 SASS是一种无法被浏览器直接执行的语言,我们需要通过预处理工具(可以理解为翻译工具&…

SystemWeaver—电子电气系统协同研发平台

背景概述 当前电子电气系统在汽车领域应用广泛,其设计整合了多门工程学科,也因系统的复杂性、关联性日益提升,需要其提供面向软件、硬件、网络、电气等多领域交织而导致的复杂系统解决方案。并且随着功能安全、AUTOSAR、SOA、以太网通讯等新要…

Linux基础命令(测试相关)

软件测试相关linux基础命令笔记 操作系统 常见Linux: Redhat系列:RHSL、Centos、FedoraDebian系列:Debian、Ubuntu以上操作系统都是在原生Linux系统上,增加了一些软件或功能。linux的文件及路径特点 Linux没有盘符的概念&#xf…

群星璀璨!亚信科技、TM Forum联合举办数字领导力中国峰会,助百行千业打造转型升级双引擎

11月30日,亚信科技携手著名国际组织TM Forum(TeleManagement Forum 电信管理论坛)联合举办的2023数字领导力中国峰会在京隆重召开,国内外数百位行业领袖、专家学者、企业高管和生态伙伴齐聚一堂。大会由“数字领导力峰会”“IT数字…

奇迹单车^^

欢迎来到程序小院 奇迹单车 玩法&#xff1a;点击鼠标左键跳跃&#xff0c;不要碰到地上的路障和天上飞的小鸟&#xff0c;统计骑行里程数&#xff0c;快去骑单车吧^^。开始游戏 html <div id"game" style"height: 523px;"></div>css canvas…

学习ShardingSphere前置知识

学习ShardingSphere前置准备知识 一. SPI SPI&#xff08;Service Provider Interface&#xff09;是一种Java的扩展机制&#xff0c;用于实现组件之间的松耦合。在SPI模型中&#xff0c;服务提供者&#xff08;Service Provider&#xff09;定义了一组接口&#xff0c;而服务…

【算法思考记录】力扣2952. 需要添加的硬币的最小数量【Python3,思路挖掘,贪心与证明】

原题链接 文章目录 需要添加的硬币的最小数量&#xff1a;贪心算法实现题目概述示例分析 关键思路分析贪心算法的优化选择证明案例推演与算法实现 Python 实现结论 需要添加的硬币的最小数量&#xff1a;贪心算法实现 题目概述 在这个困难难度的算法题中&#xff0c;我们要解…

MySQL字符集修改

修改数据库字符集 ALTER DATABASE database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; 生成批量修改表及表字符字段的字符集 SELECT alter_sql FROM ( /** 通过匹配表字符集查询需要修改的表字符集 */ SELECT CONCAT(ALTER TABLE , table_name, CONVERT TO …

科技论文中的Assumption、Remark、Property、Lemma、Theorem、Proof含义

一、背景 学控制、数学、自动化专业的学生在阅读论文时&#xff0c;经常会看到Assumption、Remark、Property、Lemma、Theorem、Proof等单词&#xff0c;对于初学者可能不太清楚他们之间的区别&#xff0c;因此这里做一下详细的说明。 以机器人领域的论文为例。 论文题目&…

PHP+ajax+layui实现双重列表的动态绑定

需求&#xff1a;商户下面有若干个门店&#xff0c;每个门店都需要绑定上收款账户 方案一&#xff1a;每个门店下面添加页面&#xff0c;可以选择账户去绑定。&#xff08;难度&#xff1a;简单&#xff09; 方案二&#xff1a;从商户进入&#xff0c;可以自由选择门店&#…

Python源码:03turtle画一个奥运五环图

turtle 模块绘制一些基本图形&#xff0c;是 Python 标准库中的一个绘图模块&#xff0c;可以用于绘制各种图形&#xff0c;包括线条、多边形、圆形、文本等。 下面是用Python绘制奥运五环图的代码&#xff1a; import turtle # 设置画布大小 turtle.setup(600, 600) # 绘…