Python批量检查labelimg数字标签是否标注错误

在我们标注一个几千张的数据集的时候,难免会出错。而这些错误会被当成负样本,对我们的准确度造成影响。

以我为例,做仪表识别时,标注数千张数字图片。

大概是这样的。
示例图片
N002145-003 我们人工读数给文件名加后缀003(这一步没有捷径)

我们的核心思想用003和标注生成的xml文件中标签对比
在这里插入图片描述
那么就很容易实现了,这里使用python

import xml.etree.cElementTree as et
import os
path = r'D:/w h/test'
filenames = os.listdir(path)
for filename in filenames:
    tree=et.parse(filename)
    root=tree.getroot()
    filename=root.find('filename').text
    i = 7
    for Object in root.findall('object'):
        name=Object.find('name').text
        list1=[name]
        list5=filenam
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
可以使用Python的os和xml.etree.ElementTree模块来批量更改labelimg标签。 首先,需要遍历所有的.xml标注文件,并解析每个文件的内容。然后,可以使用ElementTree模块中的find()和findall()方法来找到需要更改的标签,并使用Element的text属性来修改标签的内容。最后,可以使用ElementTree模块中的write()方法将修改后的xml文件写回原始文件中。 下面是一个示例代码,可以将所有.xml文件中的"dog"标签更改为"cat"标签: ```python import os import xml.etree.ElementTree as ET # 设置标签的替换规则 label_map = {"dog": "cat"} # 遍历所有xml文件 for filename in os.listdir("/path/to/xml/directory"): if not filename.endswith(".xml"): continue # 解析xml文件 tree = ET.parse(os.path.join("/path/to/xml/directory", filename)) root = tree.getroot() # 遍历所有object标签 for obj in root.findall("object"): name = obj.find("name").text # 如果标签需要替换,则进行替换操作 if name in label_map: obj.find("name").text = label_map[name] # 将修改后的xml文件写回原文件 tree.write(os.path.join("/path/to/xml/directory", filename)) ``` 在这个示例代码中,我们首先定义了标签的替换规则,即将"dog"标签替换为"cat"标签。然后,使用os.listdir()函数遍历所有的.xml文件,并使用ElementTree模块解析每个文件的内容。接着,遍历每个xml文件中的所有object标签,并找到name子标签的内容。如果name子标签的内容需要替换,则使用Element的text属性将其替换为新的标签内容。最后,使用ElementTree模块中的write()方法将修改后的xml文件写回原文件中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值