从目标检测数据集中选出指定类别的图片和标签

以VOC2007数据集为例,如果我们只想要车辆行人检测,那么只需要从其中选取有行人,自行车,车辆等目标的图片和标签,于是直接上代码:

 

import os
import shutil
import xml.etree.ElementTree as ETdef extract_objects(image_folder, xml_folder, output_image_folder, output_xml_folder, classes):# 创建输出图片文件夹和输出XML文件夹if not os.path.exists(output_image_folder):os.makedirs(output_image_folder)if not os.path.exists(output_xml_folder):os.makedirs(output_xml_folder)# 遍历xml文件夹中的每个XML文件for xml_file in os.listdir(xml_folder):print("Processing:", xml_file)xml_path = os.path.join(xml_folder, xml_file)# 解析XML文件tree = ET.parse(xml_path)root = tree.getroot()# 检查每个object标签,如果其中包含目标类别,则复制对应的图片和XML文件到输出文件夹found_objects = Falsefor obj in root.findall('object'):obj_class = obj.find('name').text.lower()if obj_class in classes:found_objects = Trueprint("Found object:", obj_class)image_name = os.path.splitext(xml_file)[0] + '.jpg'  # 假设图片文件和XML文件名一致,后缀不同image_path = os.path.join(image_folder, image_name)output_image_path = os.path.join(output_image_folder, image_name)output_xml_path = os.path.join(output_xml_folder, xml_file)# 打印路径以进行调试print("Copying from:", image_path)print("Copying to:", output_image_path)print("Copying to:", output_xml_path)# 复制图片和XML文件到输出文件夹try:shutil.copy(image_path, output_image_path)shutil.copy(xml_path, output_xml_path)except Exception as e:print("Error copying files:", str(e))break  # 只要一个目标被提取,即可跳出内循环if not found_objects:print("No target objects found in:", xml_file)# 设置输入文件夹路径和输出文件夹路径
image_folder = 'VOCdevkit/VOC2007/JPEGImages/'
xml_folder = 'VOCdevkit/VOC2007/Annotations/'
output_image_folder = 'VOCdevkit/voc/JPEGImages/'
output_xml_folder = 'VOCdevkit/voc/Annotations/'# 指定需要提取的类别
classes = ['person', 'bicycle', 'bus', 'car', 'motorbike']# 执行提取操作
extract_objects(image_folder, xml_folder, output_image_folder, output_xml_folder, classes)

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

DEM(高程)数据下载及计算可见性

数据下载 下载链接: 地理空间数据云 (gscloud.cn) 数据部分介绍 ASTER是美国宇航局Terra航天器(1999年发射)上的五台仪器之一,在日本为经济产业省(METI)建造。美国/日本联合科学团队负责仪器设计、校准和数据验证。 高级星载热发射和反射辐射计(ASTER)全球数字高程…

构建智能化组织架构权限管理系统:架构设计与实践

随着企业规模的扩大和信息化程度的提升,对权限管理的需求与重要性也日益凸显。本文将深入探讨智能化权限管理系统的架构设计,介绍其关键特点和最佳实践,助力企业提升组织架构的有效性、安全性和管理效率。 1. **需求分析与功能设计&#xff…

大数据信用高风险是怎么形成的?怎么查询?

在大数据时代,基于大数据技术的大数据信用风险在很多时候是很多机构比较重视的问题,大数据信用风险主要包括多头借贷风险、履约行为风险、联系人风险、司法风险等。本文将详细为大家讲讲大数据信用高风险是怎么形成的?怎么查询?一起去了解一下吧。 大数…

音频压缩的方法有哪些?3种简单的压缩工具分享

音频压缩的方法有哪些?音频压缩是处理音频文件时的一个重要步骤,旨在减小文件大小,同时尽量保持原始音频的质量。随着数字媒体的普及,音频文件的大小成为了一个重要的考虑因素。通过有效的音频压缩技术,我们能够在保持…

LeetCode:滑动窗口最大值

文章收录于LeetCode专栏 LeetCode地址 滑动窗口最大值 题目 给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。   返回 滑动窗口中的最大值 。   示例 1…

【.sh】Shell 脚本文件的基础内容

目录 🌊1. 基础知识 🌊2. 简单示例 🌍2.1 示例一 输出"Hello, World!" 🌍2.2 示例二 输入输出创建 🌊1. 基础知识 .sh文件是什么? .sh文件即 Shell 脚本文件,通常用来执行一系列…

AnaTraf网络流量分析仪:网络性能监测与诊断的利器

背景 在当今数字化时代,网络性能监测与诊断(Network Performance Monitoring and Diagnosis, NPMD)成为了企业和组织管理网络的重要一环。为了帮助企业更好地实现网络性能的监控和故障排除,AnaTraf的网络流量分析仪应运而生。 AnaTraf网络流量分析仪是…

避雷!7.7分,新增1区TOP被标记On Hold,5本已被踢除!

本周投稿推荐 SSCI • 2/4区经管类,2.5-3.0(录用率99%) SCIE(CCF推荐) • 计算机类,2.0-3.0(最快18天录用) SCIE(CCF-C类) • IEEE旗下,1/2…

【Django学习笔记(六)】MySQL的安装配置、启动关闭操作

MySQL的安装配置、启动关闭操作 前言正文1、初识网站1.1 实现静态网站与动态网站效果1.2 数据存储方式 2、MySQL的安装和配置2.1 MySQL下载2.2 安装补丁2.3 安装MySQL2.4 创建配置文件2.5 初始化 3、MySQL的启动和关闭4、MySQL连接测试4.1 MySQL 的连接方式4.2 使用 MySQL自带工…

加强企业合规:首席数据安全官CCDSO是关键

企业合规的重要性 企业合规是指遵守法律、监管要求和行业标准的一系列规定。在信息时代,数据安全和隐私保护是企业合规的核心要素。数据泄露不仅会导致企业财务损失,还可能破坏企业声誉,甚至对消费者造成伤害。因此,加强企业合规…

文字转语音软件下载教程

文字转语音软件下载教程 一,Whisper下载二,ggml-medium语言模型下载三,导入模型下载四,使用方法 一,Whisper下载 网址:https://bittly.cc/uL9xs 下拉选择: 进入下载页面,下载Whis…

0成本多平台撸收益也可卖资源玩法,小白轻松上手。详细教学日入500+附资源

详情介绍 0成本多平台撸收益卖短剧玩法小白也可轻松上手,保姆级教学上限收益不封顶、完全根据自身一个勤劳来决定。 这个相信大家都懂,首先呢 我也是思考了很久才决定把这个项目放出来因为可玩法太多了。 聪明的小伙伴会举一反三 这节课程放在外面大几…

【软件测试理论002】认识软件缺陷、缺陷生命周期、缺陷分类

目录 1 认识软件缺陷 1.1 什么是软件缺陷 1.2 缺陷存在哪些方面 1.3 软件缺陷示例 1.4 软件缺陷的表现形式 1.5 软件缺陷产生的原因 1.6 软件缺陷的根源 1.7 软件缺陷修复的费用 2 软件缺陷的信息分类 2.1 软件缺陷的生命周期 2.2 软件缺陷的信息 2.3 软件缺陷分类…

SiteServer 插件之 用户登录插件

1、插件的安装。 1.1、在网站后台上方点击“插件管理”,在界面的左侧选择“添加插件”,点击“用户登录插件”在插件详情界面中点击“安装插件”按钮。 1.2、安装完成后点击“管理插件”按钮,可以在已启用中看到”用户登录插件“。 2、插件使用。 2.1、 ”显示管理“->…

FileBird Pro插件下载:革新您的WordPress媒体库管理

WordPress媒体库是您网站的重要组成部分,它存储了所有的图片、视频、文档等文件。但随着网站的扩展,媒体库的管理变得越来越复杂。FileBird Pro插件,作为一款专为WordPress用户设计的媒体库管理工具,以其直观的界面和强大的功能&a…

Promise.all和 race

Promise.all() all方法可以完成并行任务, 它接收一个数组,数组的每一项都是一个promise对象。返回值: 成功时:当数组中所有的promise的状态都达到resolved的时候,就返回包含所有 Promise 结果的数组,并且…

Star-CCM+全局参数设置

前言 全局参数可以更方便我们在对一个模型进行多个工况仿真的情形。在同一模型下我们在仿真不同工况时,只需更改全局参数局即可。全局参数的应用可以大大提高仿真工况之间的切换设置效率。 1 创建全局变量 具体设置是在工具→参数中新建即可。创建完成后可以点击…

leetCode76. 最小覆盖子串

leetCode76. 最小覆盖子串 题目思路 代码 // 双指针 哈希表 // 这里cnt维护过程:先找到能够匹配T字符串的滑动窗口,然后这个cnt就固定了,因为i向前移动的同时,j也会维护着向前 // 就是当又出现能够满足T字符串的时候&#xff0…

报错:Error writing file ‘/tmp/MY76Z3jh‘

linux报错如图: 报这个错的原因是你的虚拟机中的/tmp文件下满了,执行SQL语句需要的临时空间不足,执行一下: df -h /tmp df -h /tmp/* 可以看到已用100% 输入: du -h /tmp 可以看到各个文件的空间占用情况,…

流畅的python-学习笔记_前言+第一部分

前言 标准库doctest 测试驱动开发:先写测试,推动开发 obj[key]实际调用实例的__getitem__方法 python数据模型 特殊方法 特殊方法一般自己定义,供py解释器调用,不推荐自己手动调用。 对于py内置类型,调用特殊方…