马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
介绍
在目标检测中,有些时候会碰到标注好的种别不想要了的情况,这时我们可以运行下面的代码来批量删除不需要的种别节流时间。
代码实现:
- import argparse
- import xml.etree.ElementTree as ET
- import os
- classes = ['thin_smoke']
- def GetImgNameByEveryDir(file_dir, videoProperty):
- FileNameWithPath, FileName, FileDir = [], [], []
- for root, dirs, files in os.walk(file_dir):
- for file in files:
- if os.path.splitext(file)[1] in videoProperty:
- FileNameWithPath.append(os.path.join(root, file)) # 保存图片路径
- FileName.append(file) # 保存图片名称
- FileDir.append(root[len(file_dir):]) # 保存图片所在文件夹
- return FileName, FileNameWithPath, FileDir
- def GetBoxInfo(xmlfile):
- try:
- tree = ET.parse(xmlfile)
- root = tree.getroot()
- size = root.find('size')
- w = int(size.find('width').text)
- h = int(size.find('height').text)
- except:
- return False, 0
- else:
- tree = ET.parse(xmlfile)
- root = tree.getroot()
- size = root.find('size')
- w = int(size.find('width').text)
- h = int(size.find('height').text)
- for obj in root.findall('object'):
- print(xmlfile, obj.find('name').text, obj)
- if obj.find('name').text == 'fulll':
- obj.find('name').text = "full"
- print('-' * 66)
- tree.write(xmlfile)
- return 1
- def Process(ProcessDir):
- xmlDirs = ProcessDir # + 'Labels/'
- FileName1, FileNameWithPath1, FileDir1 = GetImgNameByEveryDir(xmlDirs, '.xml')
- for k in range(len(FileName1)):
- annfile = xmlDirs + FileName1[k][:-4] + '.xml'
- result = GetBoxInfo(annfile)
- if __name__ == '__main__':
- parser = argparse.ArgumentParser()
- parser.add_argument('--ProcessDir', type=str, default='/home/build/smoke_ori/VOCdevkit/VOC2007/Annotations/')
- args = parser.parse_args()
- ProcessDir = args.ProcessDir
- Process(ProcessDir)
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |