def get_bbox(bbox_dir, imglist, train_or_test):
ret = []
ret_label = []
def parse_bbox(fname):
root = ET.parse(fname).getroot()
size = root.find('size').getchildren()
size = map(int, [size[0].text, size[1].text])
box = root.find('object').find('bndbox').getchildren()
box = map(lambda x: float(x.text), box)
label = root.find('object').find('name').text
return np.asarray(list(box), dtype='float32'),label
with timed_operation('Loading Bounding Boxes ...'):
cnt = 0
import tqdm
for k in tqdm.trange(len(imglist)):
fname = imglist[k][0]
fname = fname[:-4] + 'xml'
fname = os.path.join(bbox_dir,train_or_test ,fname)
try:
box,label = parse_bbox(fname)
ret.append(box)
ret_label.append(label)
cnt += 1
except KeyboardInterrupt:
raise
except:
ret.append(None)
ret_label.append(-1)
logger.info("{}/{} images have bounding box.".format(cnt, len(imglist)))
return ret, ret_label
评论列表
文章目录