【python】修改目标检测的xml标签(VOC)类别名

需求:

在集成多个数据集一同训练时,可能会存在不同数据集针对同一种目标有不同的类名,可以通过python脚本修改数据内的类名映射,实现统一数据集标签名的目的。

代码:

# -*- coding: utf-8 -*-
# @Time : 2023/9/11 10:58
# @Author : CLW
# @FileName: change_xml_label.py
# @Software: PyCharmimport os
import xml.etree.ElementTree as ET'''
算法功能:
针对目录下的所有voc格式的xml标签文件,将类别的名称修改为指定名称
要求:label_dict的key值表示修改前的标签名,该key对应的value值表示修改后的标签名
e.x. 需要将xml文件中'workwear'的名称替换为'reflectivevest',那么可以这样设置:label_dict['workwear'] = 'reflectivevest'
''''''
####################    输入参数设置(开始)    #################### 
'''
org_label_dir = r'D:\dataset\pretrain_GW'
new_label_dir = r'D:\dataset\pretrain_GW'
label_dict = {}
label_dict['head'] = '头'
label_dict['hand'] = '手''''
####################    输入参数设置(结束)    #################### 
'''def change_xml_label(xml_path, output_path, label_dict):if not os.path.getsize(xml_path):print("内容为空的xml:",xml_path)tree = ET.parse(xml_path)root = tree.getroot()for obj in root.iter('object'):cls = obj.find('name').textif cls in label_dict.keys():obj.find('name').text = label_dict[cls]tree.write(output_path, encoding="utf-8", xml_declaration=True)  # 输出新的xml文件if __name__ == "__main__":# 遍历xmlfor root, dir, files in os.walk(org_label_dir):for file in files:if file[-3:] == 'xml':print(os.path.join(root, file))change_xml_label(os.path.join(root, file), os.path.join(new_label_dir, file),label_dict)

参数说明:

org_label_dir:xml标签的目录。
new_label_dir:输出的新xml标签的目录。
label_dict:标签类名的映射字典,key值为修改前的类名,value值为修改后的类名。

操作案例:

先使用labelImg查看修改前的标签:
在这里插入图片描述
然后修改脚本中的对应参数,案例中类名修改如下:
label_dict[‘head’] = ‘头’
label_dict[‘SF6’] = ‘sf6’

执行完成后,用labelImg工具打开新生成的标签:
在这里插入图片描述

如图,修改标签类别名成功!

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

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

相关文章

出海APP遭遇大流量攻击的应对与防御策略

随着全球化的加速,越来越多的中国企业选择将APP推向海外市场。然而,这也意味着他们将面临更加复杂多变的网络安全环境,其中大流量DDoS攻击便是常见且破坏力巨大的威胁之一。本文将深入探讨出海APP遭遇大流量攻击的识别、应急处理及长期防御策…

osi七层网络模型安全加固

应用层加固 应用层的攻击: 1、针对应用层协议的攻击:HTTP攻击、DNS攻击、电子邮件攻击等,利用应用层协议的漏洞,构造恶意数据包,是目标服务器执行恶意代码或暴露敏感信息 HTTP攻击:XSS、CSRF、HTTP头注入…

你每天都在用的APP,原来都是Python写的!

👆点击关注 获取更多编程干货👆 要说Python的用途,那可太多了,也许你不知道Python是什么,但你一定用过它开发的产品,就像你可能不了解汽车引擎的构造,但你每天都享受着汽车带来的便利一样。 比…

stm32-DMA转运数据

在配置前要记得先定义一下DMA转运的源端数组和目标数组两个数组哦。 接下来我们就开始准备配置吧 配置 初始化 1.RCC开启时钟(开启DMA的时钟) void RCC_AHBPeriphClockCmd(uint32_t RCC_AHBPeriph, FunctionalState NewState) 作用:开启时…

如何在Weblogic环境中启动认证方式对接Zabbix监控

在WebLogic Server中,启动认证可用于确保只有经过授权的用户和系统能够访问WebLogic Server及其应用程序,通过合理配置认证提供者和安全领域,管理员可以有效管理和控制用户访问。 本文将详细介绍如何在Weblogic环境中配置启动认证并对接Zabb…

用域名访问的网站一定要用OV SSL证书

一、什么是域名 域名,英文名为Domain Name,是互联网上用于识别和定位计算机的层次结构式的字符标识符,通过一系列的字符和点来表示,用于在数据传输时标识计算机的电子方位。简单来说,域名就是网站在互联网上的地址&am…

Django视图层探索:GET/POST请求处理、参数传递与响应方式详解

系列文章目录 Django入门全攻略:从零搭建你的第一个Web项目Django ORM入门指南:从概念到实践,掌握模型创建、迁移与视图操作Django ORM实战:模型字段与元选项配置,以及链式过滤与QF查询详解Django ORM深度游&#xff…

【源码】源码物品销售系统多种支付接口出售源码轻松赚钱

源码物品销售系统,多种支付接口,出售源码轻松赚钱。一款基于phpmysql开发的内容付费管理系统。系统支持多种收费方式,免签收款,三级分销,实名认证, 用户投稿/奖励,自动升级,佣金提现…

python中的循环控制语句break与continue

学习这两个语句之前,我们要先了解这两个语句是什么意思: break:中断、打破的意思。所以它的跳出循环的意思 continue:继续的意思,意思是跳过当前条件,继续循环 新需求来了!我们不仅要告诉 Py…

Spark SQL - 操作数据集

本教程将通过一个具体的案例来演示如何在Spark SQL中操作数据集。我们将从创建本地文件开始,然后上传到HDFS,并使用Spark Shell启动Spark程序。接下来,我们将加载数据为DataSet,并给DataSet添加元数据信息。最后,我们将…

ChineseChess.2024.06.03

ChineseChess.2024.06.03 中国象棋,我下得不是象棋,是娱乐,是想看看自己的程序。哈哈 看很多主播挂棋局,吹牛批,为了涨粉,挂着,蛮摆个残局 中国象棋残局模拟器ChineseChess.2024.06.03

RabbitMQ(Direct 订阅模型-路由模式)的使用

文章目录 RabbitMQ(Direct 订阅模型-路由模式)一,Direct 订阅模型-路由模式介绍(Routing)二,使用1.添加依赖2.修改配置文件3.创建配置类4.注入RabbitMQ模版引擎5.消息的发送6.消息的接收(监听)7.设置回调函…

谁将决战上海滩,决定权在你手里

关注我们 - 数字罗塞塔计划 - 5月6日雨轩兰台的《【大比武01】AIGC赋能档案文创设计的尝试》,打响了“华夏伟业”杯第二届大比武活动的第一枪,截止到5月31日,入选的10篇优质内容已全部揭晓,好评如潮。感谢雨轩兰台、微柏软件、昀…

三种常见的报表模板,省时又方便

前言 在业务应用和数据分析中,报表是一种常见的数据展示形式,可以帮助用户更直观地理解和解读数据。然而,每次创建和设计一款报表都需要花费大量的时间和精力。为了提高报表设计的效率,本文小编以葡萄城公司的嵌入式BI工具——Wy…

webf 开发工具:数据库持久层基础文件生成工具

WZW.SqlMapHelpForJava是运行在.Net Framework4.0上的数据库持久层基础文件生成工具,支持多种关系型数据库的持久层基础文件、Java类的生成以及对配置文件的更新,与webf框架进行紧密配合,减少了数据库持久层基础文件编写工作量,提…

关于家储用防逆流电流互感器AKH-0.66/K K-φ16 100A/40mA详细介绍-安科瑞 蒋静

1.产品特点 产品外形美观,安装、接线方便,专用于通讯机房 100A 及以下配电系统改造,可与 AMC16 多回路监控仪表配合使用。 2.型号说明 3.外形尺寸(公差:2mm) 4.规格参数对照表 5.使用环境 (1)额定工作…

SPME2024开幕在即,深兰科技商用清洁机器人新品推介会蓄势待发

6月5日~7日,以“跨界融合洞见未来”为主题的“2024 SPME第六届上海国际物业管理产业博览会”(以下简称“物博会”)将在上海世博展览馆举行。应主办方邀请,深兰科技携多款AI清洁机器人亮相本届展会,向来自全球各地的观展企业家、经…

phpstudy配置的站点不能访问了

无法打开站点 打开网站的时候出现如下 没有人为主动去更改配置项,今天就不能正常访问了 检查了一遍配置,发现并无大碍,那就重新配置一遍看看 配置phpstudy 1、新建网站 2、选择项目入口文件夹 3、配置伪静态 4. 确认保存 在我的电脑 C:\…

Hive的常规操作

Hive常规操作 hive常用交互命令 -e执行sql语句 [rootmaster ~]# hive -e "show databases";-f执行sql脚本 [rootmaster ~]# hive -f /usr/local/demo.sql查看hive中输入的所有命令 [rootmaster ~]# cat ~/.hivehistory操作库 创建库 语法: create…

用贪心算法计算十进制数转二进制数(整数部分)

十进制整数转二进制数用什么方法?网上一搜,大部分答案都是用短除法,也就是除2反向取余法。这种方法是最基本最常用的,但是计算步骤多,还容易出错,那么还有没有其他更好的方法吗? 一、短除反向取…