修改xml文件标签名称、筛选xml文件中的指定标签

在模型训练和数据标注的时候经常出现一些需要修改标签信息的情况,或者说想要单独整理一类的标签出来审核或者训练,通常我们用labelimg来一张张图片审核修改是非常吃力的,所以我写了一个脚本方便大家对标签信息做一些自动化操作。请注意使用的时候需要在要保存的文件夹路径下创建名为img和xml的空文件夹
这篇文章主要解决两个需求:
1、在整个数据集中将一个标签集合的图片和标注筛除出来,比如在大数据集中有ABC三个类,如果此时我想要将B类的图片和标注单独分出来并且选出来的标注中会删除A和C,可以使用下面这个脚本:

# 从原始img和xml中筛选拥有目标label的img和xml到新路径下,并且新xml中只保留我要的标签
import os
import shutil
from pathlib import Path
import xml.etree.ElementTree as ET

output_dir = r'new_path'  # 筛选修改后的新xml保存路径
input_dir = r'raw_path'  # 原始的xml文件夹

# 可以自定义自己想要筛选的标签, 
# large_labels = ['A', 'B', 'C']
target_labels = ['B']. # 只需要打标签集合的子集就行了,比如这里就只会将带有B标签的图片选出来并且对应的标注中不会有A、C的标签信息

# 初始化路径
input_dir_path = Path(input_dir)
output_dir_path = Path(output_dir)
new_xml_dir = output_dir_path / 'xml'
raw_xml_dir = input_dir_path / 'xml'
new_img_dir = output_dir_path / 'img'
raw_img_dir = input_dir_path / 'img'

n = 0  # 统计筛选的数量
img_names = []  # 记录筛选出来的图片名称
for xml in os.listdir(raw_xml_dir):
    raw_xml_path = 
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值