现在开始深度学习项目,为此记录一些我在学习之中的一些问题~
我们用labellmg对图片进行标记完毕后,要对这个数据集进行相应的处理,所以我就用python进行相应的统计。 下面是我进行预备数据集的一个模拟操作,统计了每种鱼标记了多少条的代码样例。
其中parse_obj函数是获取相应的内容; read_image函数是读取一张图片的自己需要的信息(下面代码中没有提供使用read_image函数的实例) 主函数部分解决了统计.xml中每种鱼的个数及名字进行输出。
py代码部分:
# -*- coding:utf-8 -*- import os import xml.etree.ElementTree as ET import numpy as np np.set_printoptions(suppress=True, threshold=100000000) import matplotlib from PIL import Image def parse_obj(xml_path, filename): tree = ET.parse(xml_path + filename) objects = [] for obj in tree.findall('object'): obj_struct = {} obj_struct['name'] = obj.find('name').text objects.append(obj_struct) return objects def read_image(image_path, filename): im = Image.open(image_path + filename) W = im.size[0] H = im.size[1] area = W * H im_info = [W, H, area] return im_info if __name__ == '__main__': xml_path = 'D:/etBrains/pycharm/shen/sj_xml/' filenamess = os.listdir(xml_path) filenames = [] for name in filenamess: name = name.replace('.xml', '') filenames.append(name) recs = {} obs_shape = {} classnames = [] num_objs = {} obj_avg = {} for i, name in enumerate(filenames): recs[name] = parse_obj(xml_path, name + '.xml') for name in filenames: for object in recs[name]: if object['name'] not in num_objs.keys(): num_objs[object['name']] = 1 else: num_objs[object['name']] += 1 if object['name'] not in classnames: classnames.append(object['name']) for name in classnames: print('{}:{}个'.format(name, num_objs[name])) print('信息统计算完毕。')