最近再用faster-rcnn训练自己的数据,结果发现标签只能用小写字母,其他的都会报错。
大写字母可以修改py-faster-rcnn/tools/../lib/datasets/pascal_voc.py中的代码,
在
_load_pascal_annotation
中将
cls = self._class_to_ind[obj.find('name').text.lower().strip()]
说是去掉lower可行。
但是(重点来了),我的标签里有空格:
screw cap
所以我只能修改xml文件中的内容了。
直接上代码:修改
<name>
中的内容
# coding=utf-8
import os
import os.path
import xml.dom.minidom
#获得文件夹中所有文件
FindPath = '/home/ubuntu/Desktop/myvoc2007/Annotations/'
FileNames = os.listdir(FindPath)
s = []
xml_path = '/home/ubuntu/Desktop/new/'
for file_name in FileNames:
if not os.path.isdir(file_name): # 判断是否是文件夹,不是文件夹才打开
print file_name
#读取xml文件
dom = xml.dom.minidom.parse(os.path.join(FindPath,file_name))
root = dom.documentElement
# 获取标签对name之间的值
name = root.getElementsByTagName('name')
for i in range(len(name)):
print name[i].firstChild.data
if name[i] .firstChild.data== 'screw cap':
name[i].firstChild.data = 'screwnut'
print '修改后的 name'
print name[i].firstChild.data
#将修改后的xml文件保存
with open(os.path.join(xml_path, file_name), 'w') as fh:
dom.writexml(fh)
print('写入name/pose OK!')
参考博客:
https://blog.csdn.net/LOVE1055259415/article/details/79166754
版权声明:本文为l_ml_m_lm_m原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。