因为要对遥感图像数据集进行训练,有了大图和对应的xml标签,怎么切割才能用于yolov5
ReadXML
类用于读取xml文件,并提取图片尺寸信息及图片中的标记(方框及类别)。由于图片中的标记可能存在多个,所以返回的是list。
class ReadXML():
def __init__(self, filename):
self.filename = filename
with open(self.filename,'rb') as xmlfile:
tree = ET.parse(xmlfile)
root = tree.getroot()
size = root.find('size')
self.imageSize = ( int(size.find('width').text), int(size.find('height').text) )
self.objs = []
for obj in root.iter("object"):
cls = obj.find('name').text
if cls not in classes:
continue
classID = classes.index(cls)
bndbox = obj.find('bndbox')
boxCoor = ( float(bndbox.find('xmin').text), float(bndbox.find('xmax').text), float(bndbox.find('ymin').text), float(bndbox.find('ymax').text) )
self.objs.append({'classID': classID, 'boxCoor' : boxCoor})
def getImageSize(self):
return self.imageSize
def getObjs(self):
return self.objs
xml转换成txt,大图直接放进去就行了