多个coco数据标注文件合并
一、coco数据集是什么?
COCO(Common Objects in Context)是一个用于目标检测和图像分割任务的标注格式。如果你有多个COCO格式的JSON文件,你可能需要将它们合并成一个文件,以便更方便地处理和管理数据。在这篇博客中,我们将介绍一个用Python编写的脚本,可以实现这一合并操作。
二、完整代码
import json
import osdef merge_coco_files(folder_path):merged_data = {"info": {"year": 2023,"version": "1","date_created": "no need record"},"images": [],"annotations": [],"licenses": [{"id": 1,"name": "Unknown","url": ""}],"categories": [{"id": 1,"name": "hd","supercategory": ""}]}image_id_counter = 1annotation_id_counter = 1for root, dirs, files in os.walk(folder_path):for file in files:if file.endswith(".json"):file_path = os.path.join(root, file)with open(file_path, 'r') as f:data = json.load(f)# Update image IDs and filenamesfor image in data["images"]:image["id"] = image_id_counterimage_id_counter += 1# Use the original file name from the COCO fileimage["file_name"] = image["file_name"]# Append the updated image to the merged_data only if it's not already presentif image not in merged_data["images"]:merged_data["images"].append(image)# Update annotation IDs and image IDsfor annotation in data["annotations"]:annotation["id"] = annotation_id_counterannotation_id_counter += 1annotation["image_id"] = image_id_counter - 1 # Use the last assigned image ID# Append the updated annotation to the merged_datamerged_data["annotations"].append(annotation)# Save the merged data to a new JSON fileoutput_path = os.path.join(folder_path, "merged_coco.json")with open(output_path, 'w') as output_file:json.dump(merged_data, output_file, indent=4)print(f'Merged data saved to: {output_path}')# Provide the path to the folder containing the COCO JSON files
folder_path = r''
merge_coco_files(folder_path)
脚本的主要步骤包括:
初始化合并后的数据结构。
遍历指定文件夹中的所有JSON文件。
对每个JSON文件中的图像和注释进行ID的更新。
将更新后的数据保存为新的JSON文件。
使用方法
为了使用这个脚本,你只需提供包含COCO JSON文件的文件夹路径,并运行脚本。合并后的数据将保存在原始文件夹中,并命名为"merged_coco.json"。
这个脚本可以帮助你更好地组织和管理COCO格式的数据,使其更适用于你的目标检测或图像分割项目。
相关文章:
多个coco数据标注文件合并
一、coco数据集是什么? COCO(Common Objects in Context)是一个用于目标检测和图像分割任务的标注格式。如果你有多个COCO格式的JSON文件,你可能需要将它们合并成一个文件,以便更方便地处理和管理数据。在这篇博客中&…...
Kubernetes(K8S)拉取本地镜像部署Pod 实现类似函数/微服务功能(可设置参数并实时调用)
以两数相加求和为例,在kubernetes集群拉取本地的镜像,实现如下效果: 1.实现两数相加求和 2.可以通过curl实时调用,参数以GET方式提供,并得到结果。(类似调用函数) 一、实现思路 需要准备如下的…...
k8s使用ingress实现应用的灰度发布升级
v1是1.14.0版本nginx ,实操时候升级到v2是1.20.0版本nginx,来测试灰度发布实现过程 一、方案:使用ingress实现应用的灰度发布 1、服务端:正常版本v1,灰度升级版本v2 2、客户端:带有请求头versionv2标识的请求访问版…...
最新热门商用GPT4.0带MJ绘画去授权版本自定义三方接口(开心版)
一台VPS 搭建宝塔 解析域名 上传程序至根目录 访问首页在线安装配置数据库 PHP版本选择:7.3 安装完成后访问网站首页即可! 配置APIKEY,登录网站后台自定义配置,不然网站无法使用! 网站后台地址/admin 默认账号:admin 密码…...
Halcon基于形状的模板匹配inspect_shape_model
Halcon基于形状的模板匹配 基于形状的匹配,就是使用目标对象的轮廓形状来描述模板。Halcon中有操作助手,可以直观 地进行形状模板匹配的参数选择以及效果测试。如果使用算子编写,步骤如下。 (1)从参考图像上选择检测的…...
html中根元素以及根元素字体的含义
在 HTML 中,根元素是指 <html> 标签,可以使用 CSS 来设置根元素的字体大小。根元素的字体大小会影响整个页面的文本内容,默认情况下,根元素的字体大小是浏览器默认的大小。 要设置根元素的字体大小,你可以使用 …...
51单片机1-6
目录 单片机介绍 点亮一个LED 流水灯参考代码 点亮流水LEDplus版本 独立按键 独立按键控制LED亮灭 静态数码管 静态数码管显示 动态数码管显示 模块化编程 调试工具 矩阵键盘 矩阵键盘显示数据 矩阵键盘密码锁 学习B站江协科技课程笔记。 安装keil,下…...
vue2(Vuex)、vue3(Pinia)、react(Redux)状态管理
vue2状态管理Vuex Vuex 是一个专为 Vue.js应用程序开发的状态管理模式。它使用集中式存储管理应用的所有组件的状态,以及规则保证状态只能按照规定的方式进行修改。 State(状态):Vuex 使用单一状态树,即一个对象包含全部的应用层…...
用户画像项目背景
1,用户画像项目介绍 大数据平台简介 数据仓库+用户画像+推荐系统 (1)数据仓库:加快数据的分析和查询 数据仓库分层:ODS层(映射HDFS的数据)—DW(数据仓库层)–APP(层)—BI(层) DW:DWD明细数据层(数据的清洗和转换),DWM(轻度聚合层),DWS(高度聚合),APP(层),DIM(层) …...
Go使用记忆化搜索的套路【以20240121力扣每日一题为例】
题目 分析 这道题很明显记忆化搜索,用py很容易写出来 Python class Solution:def splitArray(self, nums: List[int], k: int) -> int:n len(nums)# 寻找分割子数组中和的最小的最大值s [0]for num in nums:s.append(s[-1] num)#print(s)cachedef dfs(cur,…...
【LeetCode】每日一题 2024_1_21 分割数组的最大值(二分)
文章目录 LeetCode?启动!!!题目:分割数组的最大值题目描述代码与解题思路 LeetCode?启动!!! 今天是 hard,难受,还好有题解大哥的清晰讲解 题目&a…...
bevy the book 20140118翻译(全)
源自:Bevy Book: Introduction 主要用 有道 翻译。 Introduction 介绍 Getting Started 开始 Setup 设置 Apps 应用程序 ECS Plugins 插件 Resources 资源 Next Steps 下一个步骤 Contributing 贡献 Code 代码 Docs 文档 Building Bevys Ecosystem 构建 b…...
MySQL数据库面试知识点
1、数据库基础: MySQL是一个开源的关系型数据库管理系统,用于存储、管理和检索数据。它支持多种存储引擎,包括InnoDB、MyISAM等。MySQL是由瑞典公司MySQL AB开发,后来被Sun Microsystems收购,最终被甲骨文公司(Oracle…...
超优秀的三维模型轻量化、格式转换、可视化部署平台!
1、基于 HTML5 和 WebGL 技术,可在主流浏览器上进行快速浏览和调试,支持PC端和移动端 2、自主研发 AMRT 展示框架和9大核心技术,支持3D模型全网多端流畅展示与交互 3、提供格式转换、减面展UV、烘焙等多项单模型和倾斜摄影模型轻量化服务 4、…...
云原生全栈监控解决方案(全面详解)
【作者】JasonXu 前言 当前全球企业云化、数字化进程持续加速,容器、微服务等云原生技术在软件架构中快速渗透,IT 架构云化、复杂化持续驱动性能监控市场。企业云化、数字化持续转型,以及为了考虑系统的弹性、效率,企业软件开发中…...
代码随想录二刷 | 回溯 |复原IP地址
代码随想录二刷 | 回溯 |复原IP地址 题目描述解题思路代码实现 题目描述 93.复原IP地址 给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。 有效的 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成&am…...
windows资源管理器占用过高CPU的问题
最近,笔者的电脑在进行文件操作时变得异常的卡顿,打开任务管理器发现windows资源管理器占用了50%-80%的CPU。这里指的文件操作包括但不限于解压,复制,粘贴,甚至重命名一个文件夹都会引起50%的CPU占用。起初笔者认为可能…...
redis的常见数据类型和应用场景(非八股)------大总结(学了要会用-------教你如何使用)
Redis的数据类型 Redis 提供了丰富的数据类型,常见的有五种: String(字符串),Hash(哈希),List(列表),Set(集合)、Zset&am…...
UE 可靠UDP实现原理
发送 我们的消息发送都是通过 UChannel 来处理的,通过调用 UChannel::SendBunch 统一处理。 发送的 Bunch 是以 FOutBunch 的形式存在的。当 bReliable 为 True 的时候,表示 Bunch 是可靠的。 发送逻辑直接从UChannel::SendBunch处开始分析 1、大小限…...
智慧博物馆信息化系统建设(1)
博物馆RFID藏品管理系统 博物馆藏品保管是一项十分复杂又繁琐的工作。从事保管工作除了经常、及时地进行藏品的登记、分类、编目、保养和修复等一系列工作外,还需要把有关藏品的信息迅速、正确地提供给利用者。要提高保管工作的效率,达到现代化的科学管理,从发展趋势看,进…...
3步掌握Umi-OCR批量处理:从海量图片中高效提取文字
3步掌握Umi-OCR批量处理:从海量图片中高效提取文字 【免费下载链接】Umi-OCR Umi-OCR: 这是一个免费、开源、可批量处理的离线OCR软件,适用于Windows系统,支持截图OCR、批量OCR、二维码识别等功能。 项目地址: https://gitcode.com/GitHub_…...
致所有嵌入式学习者:一些比代码更重要的东西
文 / 一只会飞的猫 本文已经加入原创侵权保护,商业行为,禁止任何形式转载,违者必究。 文章所在专栏:嵌入式入行认知指南—芯片老兵带你打破学习信息差 文章目录1 为什么我要写这个专栏2 在这个专栏里,你会了解到什么&a…...
Llama-3.2V-11B-cot惊艳效果展示:CoT逻辑推演+流式输出真实推理作品集
Llama-3.2V-11B-cot惊艳效果展示:CoT逻辑推演流式输出真实推理作品集 1. 专业级视觉推理工具震撼登场 Llama-3.2V-11B-cot是基于Meta最新多模态大模型开发的高性能视觉推理工具,专为双卡4090环境深度优化。这个工具最令人惊叹的地方在于它完美融合了Ch…...
Python实战:M3FD红外数据集高效转YOLO格式的完整指南
1. 为什么需要转换M3FD数据集格式 红外目标检测在夜间安防、自动驾驶等领域越来越重要,而M3FD作为优质的红外数据集却采用了VOC格式标注。这就像你买了台进口电器,却发现插头不匹配国内插座——虽然东西是好东西,但直接使用会遇到麻烦。 YO…...
告别手动队列!ROS2多传感器同步新方案:message_filters与rclcpp的完美配合
告别手动队列!ROS2多传感器同步新方案:message_filters与rclcpp的完美配合 在机器人开发领域,多传感器数据同步一直是个令人头疼的问题。想象一下,当你的无人机同时搭载了双目相机、激光雷达和IMU时,如何确保这些传感…...
【Pandas】— apply( ) 深度解析
🌟【Pandas 实战系列】apply() 深度解析:从 Series 到 DataFrame,逐行/逐元素处理全掌握! 前言:为什么 apply() 是 Pandas 的“灵魂方法”? apply() 不是简单地“调用函数”,而是告诉 pandas&am…...
语音识别模型Conformer实战:如何用夹心饼干结构提升ASR效果
Conformer模型实战:用"夹心饼干"架构打造工业级语音识别系统 语音识别技术正在经历从传统DNN-HMM到端到端深度学习的范式转移,而Conformer凭借其创新的"CNNTransformer"混合架构,正在成为新一代ASR系统的标配。这种被开发…...
零成本商用开源字体解决方案:思源宋体全面应用指南
零成本商用开源字体解决方案:思源宋体全面应用指南 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 如何在商业项目中避免字体侵权风险?怎样才能不花一分钱获得专…...
C# rtwpriv Wi-Fi定频工具
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录一、使用简介,说明#前言 对于无线产品,很多需要做CE,FCC,SRRC等认证,需要测试RF,像Realtek方案的Wi-Fi用到rtwpriv工具…...
OpenClaw浏览器自动化:Qwen3-32B镜像实现竞品数据抓取与可视化
OpenClaw浏览器自动化:Qwen3-32B镜像实现竞品数据抓取与可视化 1. 为什么选择OpenClaw做竞品分析 去年在做产品迭代时,我每周都要手动收集竞品数据。从打开十几个网页、复制粘贴数据到Excel,再到生成对比图表,整个过程至少耗费3…...
