目标检测——清洗数据

清洗VOC格式数据集代码示例

import os
import xml.etree.ElementTree as ETdef process_annotations(image_folder, annotation_folder):# 遍历标签文件夹中的所有XML文件for xml_file in os.listdir(annotation_folder):if not xml_file.endswith('.xml'):continuexml_path = os.path.join(annotation_folder, xml_file)tree = ET.parse(xml_path)root = tree.getroot()# 标记是否保留该文件keep_file = False# 遍历所有<object>标签for obj in root.findall('object'):name = obj.find('name').textif name == 'person':  # 需修改,保留哪个类别就写哪个类别keep_file = Trueelse:root.remove(obj)  # 移除非Pedestrian的<object># 如果没有Pedestrian类别,删除对应的图片和标签if not keep_file:image_name = root.find('filename').textimage_path = os.path.join(image_folder, image_name)if os.path.exists(image_path):os.remove(image_path)os.remove(xml_path)else:# 保存修改后的XML文件tree.write(xml_path)# 示例用法
image_folder = r'D:\BaiduNetdiskDownload\VOCdevkit\VOCdevkit\VOC2007\JPEGImages'  # 替换为图片文件夹路径
annotation_folder = r'D:\BaiduNetdiskDownload\VOCdevkit\VOCdevkit\VOC2007\Annotations'  # 替换为标签文件夹路径
process_annotations(image_folder, annotation_folder)

 需根据自己的数据集修改name及文件路径!!!

清洗YOLO格式数据集代码示例

import osdef process_labels(image_folder, label_folder):# 遍历标签文件夹中的所有标签文件for label_file in os.listdir(label_folder):if not label_file.endswith('.txt'):continuelabel_path = os.path.join(label_folder, label_file)image_name = os.path.splitext(label_file)[0] + '.png'image_path = os.path.join(image_folder, image_name)# 读取标签文件内容with open(label_path, 'r') as f:lines = f.readlines()# 需修改!!!根据自己想要的类别保留!筛选类别为0的行filtered_lines = [line for line in lines if line.strip().split()[0] == '0']# 如果没有类别为0的行,删除对应的图片和标签if not filtered_lines:if os.path.exists(image_path):os.remove(image_path)os.remove(label_path)else:# 保存修改后的标签文件with open(label_path, 'w') as f:f.writelines(filtered_lines)# 示例用法
label_folder = r'D:\BaiduNetdiskDownload\annotations_trainval2017\txt'  # 替换为图片文件夹路径
image_folder = r'D:\BaiduNetdiskDownload\val2017\val2017'  # 替换为标签文件夹路径
process_labels(image_folder, label_folder)

 需根据自己的数据集修改line及文件路径!!!

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

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

相关文章

Kubeasz工具快速部署K8Sv1.27版本集群(二进制方式)

文章目录 一、基本信息二、服务器初始化操作三、使用Kubeasz部署K8S集群四、验证集群 一、基本信息 1、部署需要满足前提条件&#xff1a; 注意1&#xff1a;确保各节点时区设置一致、时间同步&#xff1b;注意2&#xff1a;确保在干净的系统上开始安装&#xff1b;注意3&…

RG-S3760应用协议配置

RG-S3760应用协议配置 1. dhcp 服务配置 提问&#xff1a;如何在设备上开启dhcp 服务&#xff0c;让不同VLAN 下的电脑获得相应的IP 地址&#xff1f; 回答&#xff1a; 步骤一&#xff1a;配置VLAN 网关IP 地址&#xff0c;及将相关端口划入相应的VLAN 中 S3760#con t S…

Java 文件和IO流基础(生动形象版)

系列文章目录 Java文件和IO流基础部分 文件VSIO流 文章目录 系列文章目录前言一、文件的定义和理解&#xff1a; 1.专业定义&#xff1a; 2.文件系统和路径&#xff1a; 二、IO流的定义和分类 1.定义&#xff1a;2.流的分类&#xff1a;修饰器模式的核心作用&#xff1a;基础结…

Linux驱动学习笔记(四)

高级字符设备进阶 1.一个完整的IO过程包含以下几个步骤&#xff1a;1应用程序向操作系统发起IO调用请求(系统调用)&#xff1b;2操作系统准备数据&#xff0c;把IO设备的数据加载到内核缓冲区&#xff1b;3操作系统拷贝数据&#xff0c;把内核缓冲区的数据从内核空间拷贝到应用…

el-table的行向上移动向下移动,删除选定行

<template><el-table :data"tableData" border style"width: 100%"><!-- 其他列 --><el-table-column label"ID"><template slot-scope"scope">{{ scope.$index }}</template></el-table-colu…

人工智能之数学基础:矩阵的降维

本文重点 在现实世界中,我们经常会遇到高维数据。例如,图像数据通常具有很高的维度,每个像素点都可以看作是一个维度。高维数据不仅会带来计算和存储上的困难,还可能会导致 “维数灾难”,即随着维度的增加,数据的稀疏性和噪声也会增加,从而影响数据分析的效果。因此,我…

2025年,电脑还需要分区吗?

随着2025年的到来&#xff0c;电脑存储空间已经不像以前那么金贵&#xff0c;固态硬盘&#xff08;SSD&#xff09;容量更大、速度更快&#xff0c;云存储也成了日常标配。许多人开始质疑&#xff1a;电脑还需要像以前那样分区吗&#xff1f; 一、分区到底是什么意思&#xff…

Springboot项目集成maven-assembly-plugin进行打包

通常我们将应用部署到服务器的某个目录下&#xff0c;一般情况下我们会提供像target&#xff08;存放应用jar包&#xff09;&#xff0c;bin&#xff08;项目启动/停止脚本&#xff09;&#xff0c;config&#xff08;项目配置文件&#xff09;&#xff0c;logs&#xff08;项目…

CSS3 基础布局技术与响应式设计

1. CSS3 基础与布局技术 1.1 Flexbox 布局 Flexbox 是一种一维布局模型&#xff0c;适合用于在一个方向上&#xff08;行或列&#xff09;排列元素。 基本概念&#xff1a; 容器&#xff08;Container&#xff09;&#xff1a;应用 display: flex; 的元素。项目&#xff08…

鸿蒙NEXT项目实战-百得知识库01

代码仓地址&#xff0c;大家记得点个star IbestKnowTeach: 百得知识库基于鸿蒙NEXT稳定版实现的一款企业级开发项目案例。 本案例涉及到多个鸿蒙相关技术知识点&#xff1a; 1、布局 2、配置文件 3、组件的封装和使用 4、路由的使用 5、请求响应拦截器的封装 6、位置服务 7、三…

【DeepSeek应用】本地部署deepseek模型后,如何在vscode中调用该模型进行代码撰写,检视和优化?

若已成功在本地部署了 DeepSeek 模型(例如通过 vscode-llm、ollama 或私有 API 服务),在 VS Code 中调用本地模型进行代码撰写、检视和优化的完整流程如下: 1. 准备工作:确认本地模型服务状态 模型服务类型: 若使用 HTTP API 服务(如 FastAPI/Flask 封装),假设服务地址…

jenkins 配置邮件问题整理

版本&#xff1a;Jenkins 2.492.1 插件&#xff1a; A.jenkins自带的&#xff0c; B.安装功能强大的插件 配置流程&#xff1a; 1. jenkins->系统配置->Jenkins Location 此处的”系统管理员邮件地址“&#xff0c;是配置之后发件人的email。 2.配置系统自带的邮件A…

Android Coil3阶梯preload批量Bitmap拼接扁平宽图,Kotlin

Android Coil3阶梯preload批量Bitmap拼接扁平宽图&#xff0c;Kotlin <uses-permission android:name"android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name"android.permission.READ_EXTERNAL_STORAGE" /><uses-p…

C++基础 [八] - list的使用与模拟实现

目录 list的介绍 List的迭代器失效问题 List中sort的效率测试 list 容器的模拟实现思想 模块分析 作用分析 list_node类设计 list 的迭代器类设计 迭代器类--存在的意义 迭代器类--模拟实现 模板参数 和 成员变量 构造函数 * 运算符的重载 运算符的重载 -- 运…

【系统架构设计师】操作系统 - 特殊操作系统 ③ ( 微内核操作系统 | 单体内核 操作系统 | 内核态 | 用户态 | 单体内核 与 微内核 对比 )

文章目录 一、微内核操作系统1、单体内核 操作系统2、微内核操作系统 引入3、微内核操作系统 概念4、微内核操作系统 案例 二、单体内核 与 微内核 对比1、功能对比2、单体内核 优缺点3、微内核 优缺点 一、微内核操作系统 1、单体内核 操作系统 单体内核 操作系统 工作状态 : …

系统思考:恶性循环

去年&#xff0c;我给一家知名人力资源公司交付了两个项目——一个在6月&#xff0c;另一个在8月&#xff0c;至今半年多了依然没有收到课酬。催促多次&#xff0c;得到的答复却各式各样&#xff1a;销售说老板卡了额度&#xff0c;老板说具体情况还需了解。每一次的推诿&#…

基于springboot的房屋租赁系统(008)

摘 要 社会的发展和科学技术的进步&#xff0c;互联网技术越来越受欢迎。网络计算机的生活方式逐渐受到广大人民群众的喜爱&#xff0c;也逐渐进入了每个用户的使用。互联网具有便利性&#xff0c;速度快&#xff0c;效率高&#xff0c;成本低等优点。 因此&#xff0c;构建符…

视频翻译器免费哪个好?轻松玩转视频直播翻译

你是不是觉得看外语视频很麻烦&#xff1f;每次遇到喜欢的外语电影、电视剧或动漫&#xff0c;总是要等字幕组的翻译&#xff0c;或者因为语言不通而错过精彩的情节。 这个时候&#xff0c;掌握多语种直播翻译方案就显得尤为重要&#xff0c;有了实时字幕&#xff0c;看外语视…

在cherry studio中使用MCP——本地文件管理FileSystem

cherry studio是一款开源的AI助手工具&#xff0c;可以便捷地利用API访问各种LLM&#xff0c;有关cherry studio的使用这里不再多说&#xff0c;可以参考这篇文章https://blog.csdn.net/m0_65494437/article/details/145478823 官网&#xff1a;https://cherry-ai.com/ MCP是什…

从点灯开始的51单片机生活

陵谷纷纭新事改&#xff0c;筑台土石未应迟。 目录 sfr与sbit&#xff1f;不靠定时器的delay_ms延时函数所谓寄存器 sfr与sbit&#xff1f; 这第一课咱们主要来先理解一下sfr与sbit&#xff0c;以下可能是咱们这些新手朋友常见的点灯代码&#xff1a; #include<regx52.h&g…