【数据集处理工具】根据COCO数据集的json标注文件实现训练与图像的文件划分

根据COCO数据集的json标注文件实现训练与图像的文件划分

    • 一、适用场景:
    • 二、COCO数据集简介:
    • 三、场景细化:
    • 四、代码优势:
    • 五、代码

在这里插入图片描述

一、适用场景:

适用于一个常见的计算机视觉项目应用场景,特别是当涉及到使用标注过的图像数据集时。具体而言,这段代码主要用于从一个大型的、未分类的图像存储库中,依据标注文件(COCO JSON格式)来筛选并整理出特定子集的图像文件。

二、COCO数据集简介:

COCO(Common Objects in Context)数据集是一种广泛使用的图像数据集,它不仅包含了丰富的图像资源,还提供了详尽的标注信息,包括物体检测、分割、关键点定位等。COCO JSON文件是一种结构化的数据格式,用于存储关于图像的元数据和标注细节,例如图像ID、文件名、图像尺寸以及各种标注信息。

三、场景细化:

当你在进行深度学习模型训练、测试或验证时,可能需要从原始图像库中提取出符合特定条件的图像,以便构建定制化的数据子集。这时,上述代码就显得尤为重要。它通过解析COCO JSON文件中的images部分,获取每张图像的文件名,然后从原始图像目录中找到对应文件,并将其复制到目标目录下,从而实现了图像数据的自动整理和分类。

四、代码优势:

这个代码过程极大地简化了数据预处理工作,使得研究人员和开发者能够更高效地准备训练数据,避免了手动查找和移动文件的繁琐步骤。同时,这样的自动化处理也减少了人为错误,确保了数据集的一致性和完整性,对后续的机器学习模型训练具有重要的支撑作用。

总之,这段代码是数据科学和机器学习项目中数据管理环节的一个实用工具,有助于加速研究和开发流程,提高数据处理效率。

五、代码

import json
import os
import shutildef copy_images_from_coco_json(json_path, images_dir, target_dir):# 确保目标目录存在if not os.path.exists(target_dir):os.makedirs(target_dir)try:# 读取COCO JSON文件with open(json_path, 'r') as f:coco_data = json.load(f)except Exception as e:print(f"Error reading JSON file: {e}")return# 遍历所有图片for image_info in coco_data['images']:image_file_name = image_info['file_name']source_image_path = os.path.join(images_dir, image_file_name)target_image_path = os.path.join(target_dir, image_file_name)try:# 检查目标文件是否已存在if os.path.exists(target_image_path):print(f"File {image_file_name} already exists in {target_dir}. Skipping.")else:# 复制图片到目标目录shutil.copy(source_image_path, target_image_path)print(f"Image {image_file_name} copied to {target_dir}")except FileNotFoundError:print(f"Source image {image_file_name} not found.")except Exception as e:print(f"Error copying image {image_file_name}: {e}")# 使用函数
# data/coco1/annotations/
json_path = './coco1/annotations/instances_val2017.json'
images_dir = './coco1/images'
target_dir = './coco1/target/val2017'copy_images_from_coco_json(json_path, images_dir, target_dir)

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

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

相关文章

【漏洞复现】泛微e-cology9 WorkflowServiceXml SQL注入漏洞

文章目录 前言漏洞描述影响范围 漏洞复现nuclei脚本 安全修复 前言 泛微协同管理应用平台e-cology是一套兼具企业信息门户、知识文档管理、工作流程管理、人力资源管理、客户关系管理、项目管理、财务管理、资产管理、供应链管理、数据中心功能的企业大型协同管理平台。 漏洞…

FFmpeg播放视频

VS2017FFmpeg6.2.r113110SDL2.30.5 1.下载 ShiftMediaProject/FFmpeg 2.下载SDL2 3.新建VC控制台应用 3.配置include和lib 4.把FFmpeg和SDL的dll 复制到工程Debug目录下,并设置调试命令 5.复制一下mp4视频到工程Debug目录下(复制一份到*.vcxproj同一目录…

系统架构设计师教程 第3章 信息系统基础知识-3.5 专家系统-解读

系统架构设计师教程 第3章 信息系统基础知识-3.5 专家系统(ES) 3.5.1 人工智能3.5.1.1 人工智能的特点3.5.1.2 人工智能的主要分支3.5.2 ES的概念3.5.2.1 ES 概述3.5.2.2 与传统程序的区别3.5.3 ES的特点3.5.4 ES的组成3.5.4.1 知识库3.5.4.2 综合数据库3.5.4.3 推理机3.5.4.…

21-22集 ESP32-IDF开发教程编译运行机器人对话工程-《MCU嵌入式AI开发笔记》

21集 ESP32-IDF开发教程-《MCU嵌入式AI开发笔记》 之前我们用了windows系统搭建了ESP-IDF的开发环境, 我们还是参考这个官方文档https://docs.espressif.com/projects/esp-idf/zh_CN/release-v5.1/esp32s3/get-started/index.html 同时我们也参考之前讲到的&#…

GIT--git clone fatal [文件过大或网络不稳定] [大型仓库]

GIT--git clone fatal 1 介绍1.1 原因分类1.2 文件过大或网络不稳定 2 分析3 操作3.1 指定克隆深度【浅克隆】3.2 分批次下载3.3 增大Git的HTTP POST缓冲区大小3.4 配置git的最低速度和最低速度时间(单位:秒)3.5 压缩3.6 过滤下载 git filter branch3.7 仅克隆一个分…

【总结】nginx源码编译安装报错./configure: error: SSL modules require the OpenSSL library.

问题现象 源码编译安装nginx时,执行./configure …… --with-http_ssl_module 命令安装https模块,需要用到openssl,由于机器缺少openssl库,报如下错误。 …… checking for openat(), fstatat() ... found checking for getaddr…

开源模型应用落地-FastAPI-助力模型交互-进阶篇(三)

一、前言 FastAPI 的高级用法可以为开发人员带来许多好处。它能帮助实现更复杂的路由逻辑和参数处理,使应用程序能够处理各种不同的请求场景,提高应用程序的灵活性和可扩展性。 在数据验证和转换方面,高级用法提供了更精细和准确的控制&#…

Go网络编程-RPC程序设计

gRPC 通信 RPC 介绍 RPC, Remote Procedure Call,远程过程调用。与 HTTP 一致,也是应用层协议。该协议的目标是实现:调用远程过程(方法、函数)就如调用本地方法一致。 如图所示: 说明: Servi…

windows下安装启动运行MinIO

MinIO服务器本身是采用Go语言开发的; 编程操作MinIO服务器的客户端有很多: Go,Python,Java,.NET,JavaScript,Haskell,C 官方文档:https://min.io/docs/minio/linux/dev…

MySQL下载安装使用教程图文教程(超详细)

「作者简介」:冬奥会网络安全中国代表队,CSDN Top100,就职奇安信多年,以实战工作为基础著作 《网络安全自学教程》,适合基础薄弱的同学系统化的学习网络安全,用最短的时间掌握最核心的技术。 这一章节我们使…

Jenkins-zookeeper-docker-xxljob-rancher

文章目录 Jenkins实战1 新建任务需要的配置pipeline Zookeeper基础 Docker基础实操windows11 docker mysql DockerhouseDockerhubxxl-Job基础实战 Rancher基础思考 实战1 Rancher的某个namespace的scale为0 Jenkins 实战 1 新建任务需要的配置pipeline 该代码是Jenkinsfile&…

版本控制工具

版本控制工具是用于记录代码文件变化历史、方便查阅特定版本修改情况的系统,一般分为集中式和分布式两种。以下是一些常见的版本控制工具: 集中式版本控制工具 Subversion(SVN) 简介:Subversion是一种集中式版本控制…

《基于 CDC、Spark Streaming、Kafka 实现患者指标采集》

📢 大家好,我是 【战神刘玉栋】,有10多年的研发经验,致力于前后端技术栈的知识沉淀和传播。 💗 🌻 CSDN入驻不久,希望大家多多支持,后续会继续提升文章质量,绝不滥竽充数…

如何获得Cesium的TileSet并设置本地服务器的Url

一.总体思路 首先使用管理者获得TileSet,通过JSON文件读写,调用对应的Cesium内部提供的函数。 UE5中Json文件的读取与解析 - 知乎 (zhihu.com) 不太了解JSON的可以学习这个。 二.具体实现 1.创建Actor,并且 如何获得Cesium的TileSet,设置本地Url 一…

实现了一个心理测试的小程序,微信小程序学习使用问题总结

1. 如何在跳转页面中传递参数 ,在 onLoad 方法中通过 options 接收 2. radio 如何获取选中的值? bindchange 方法 参数e, e.detail.value 。 如果想要获取其他属性,使用data-xx 指定,然后 e.target.dataset.xx 获取。 3. 不刷…

全国媒体邀约,主流媒体到场出席采访报道

传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 全国媒体邀约,确保主流媒体到场出席采访报道,可以带来一系列的好处,这些好处不仅能够增强活动的可见度,还能对品牌或组织的长期形象产生积…

将iPad 作为Windows电脑副屏的几种方法(二)

将iPad 作为Windows电脑副屏的几种方法(二) 1. 前言2. EV 扩展屏2.1 概述2.2 下载、安装、连接教程2.3 遇到的问题和解决方法2.3.1 平板连接不上电脑 3. Twomon SE3.1 概述3.2 下载安装教程 4. 多屏中心(GlideX)4.1 概述4.2 下载安…

基于FPGA的多路选择器

目录 一、组合逻辑 二、多路选择器简介: 三、实战演练 摘要:本实验设计并实现了一个简单的多路选择器,文章后附工程代码 一、组合逻辑 组合逻辑是VerilogHDL设计中的一个重要组成部分。从电路本质上讲,组合逻辑电路的特点是输…

数据结构(单链表算法题)

1.删除链表中等于给定值 val 的所有节点。 OJ链接 typedef struct ListNode ListNode;struct ListNode {int val;struct ListNode* next; };struct ListNode* removeElements(struct ListNode* head, int val) {//创建新链表ListNode* newhead, *newtail;newhead newtail N…

verilog bug记录——正点原子spi_drive存在的问题

verilog bug记录——正点原子spi_drive存在的问题 问题概述代码修改—spi_drive.v遗留问题 问题概述 因为项目需求,需要利用spi对flash进行擦除和写入操作,所使用的开发板是正电原子的达芬奇开发板,我事先往Flash里面存了两个bit&#xff0c…