def get_roidb(imdb_name): imdb = get_imdb(imdb_name) print('Loaded dataset `{:s}` for training'.format(imdb.name)) imdb.set_proposal_method(cfg.TRAIN.PROPOSAL_METHOD) print('Set proposal method: {:s}'.format(cfg.TRAIN.PROPOSAL_METHOD)) roidb = get_training_roidb(imdb) return roidb
def get_roidb(imdb_name): imdb = get_imdb(imdb_name) print('Loaded dataset `{:s}` for training'.format(imdb.name)) imdb.set_proposal_method(cfg.TRAIN.PROPOSAL_METHOD) print('Set proposal method: {:s}'.format(cfg.TRAIN.PROPOSAL_METHOD)) roidb = get_training_roidb(imdb) return roidb
def get_roidb(imdb_name): imdb = get_imdb(imdb_name) print('Loaded dataset `{:s}` for training'.format(imdb.name)) imdb.set_proposal_method(cfg.TRAIN.PROPOSAL_METHOD) # 设置proposal方法,这里是selective search(config.py) print('Set proposal method: {:s}'.format(cfg.TRAIN.PROPOSAL_METHOD)) roidb = get_training_roidb(imdb) # 得到用于训练的roidb,定义在train.py,进行了水平翻转,以及为原始roidb添加了一些说明性的属性 return roidb
def get_roidb(imdb_name): imdb = get_imdb(imdb_name)#得到对应数据集的对象,coco和pascal_voc都是imdb的子类 print('Loaded dataset `{:s}` for training'.format(imdb.name))#加载数据集 图片 imdb.set_proposal_method(cfg.TRAIN.PROPOSAL_METHOD) print('Set proposal method: {:s}'.format(cfg.TRAIN.PROPOSAL_METHOD))#区域准则方法是gt, roidb = get_training_roidb(imdb)#加载roi return roidb
def combined_roidb(imdb_names): """ Combine multiple roidbs """ def get_roidb(imdb_name): imdb = get_imdb(imdb_name) print('Loaded dataset `{:s}` for training'.format(imdb.name)) imdb.set_proposal_method(cfg.TRAIN.PROPOSAL_METHOD) print('Set proposal method: {:s}'.format(cfg.TRAIN.PROPOSAL_METHOD)) roidb = get_training_roidb(imdb) return imdb, roidb # roidbs = [get_roidb(s) for s in imdb_names.split('+')] # imdb, roidb = roidbs[0] imdb = get_imdb(imdb_names) print('Loaded dataset `{:s}` for training'.format(imdb.name)) imdb.set_proposal_method(cfg.TRAIN.PROPOSAL_METHOD) print('Set proposal method: {:s}'.format(cfg.TRAIN.PROPOSAL_METHOD)) roidb = get_training_roidb(imdb) # if len(roidbs) > 1: # for r in roidbs[1:]: # roidb.extend(r) # tmp = get_imdb(imdb_names.split('+')[1]) # imdb = datasets.imdb.imdb(imdb_names, tmp.classes) # else: # imdb = get_imdb(imdb_names) return imdb, roidb
def get_roidb(imdb_name): imdb = get_imdb(imdb_name) # factory.py在工厂类中的get_imdb() print('Loaded dataset `{:s}` for training'.format(imdb.name)) # 读取imdb后,执行set_proposal_method函数,该函数把字符串转成表达式 imdb.set_proposal_method(cfg.TRAIN.PROPOSAL_METHOD) print('Set proposal method: {:s}'.format(cfg.TRAIN.PROPOSAL_METHOD)) roidb = get_training_roidb(imdb) return roidb
def combined_roidb(imdb_name): """ Combine multiple roidbs """ imdb = get_imdb(imdb_name) print('Loaded dataset `{:s}` for training'.format(imdb.name)) roidb = get_training_roidb(imdb) #if cfg.TRAIN.USE_RPN_DB: # roidb = imdb.add_rpn_rois() return imdb, roidb
def get_roidb(imdb_name): ## imdb为pascal_voc类的一个对象 ## 内容里有该类里的各种self名称与操作,包括roi信息等等 imdb = get_imdb(imdb_name) print('Loaded dataset `{:s}` for training'.format(imdb.name)) ## __C.TRAIN.PROPOSAL_METHOD = 'gt' imdb.set_proposal_method(cfg.TRAIN.PROPOSAL_METHOD) print('Set proposal method: {:s}'.format(cfg.TRAIN.PROPOSAL_METHOD)) ## get_training_roidb函数返回imdb对象的各种roi与图片信息,用于训练 ## 这是一个列表,列表中存的是各个图片的字典,字典中存roi信息,字典引索为图片引索 roidb = get_training_roidb(imdb) return roidb
def get_roidb(imdb_name): imdb = get_imdb(imdb_name) print('Loaded dataset `{:s}` for training'.format(imdb.name)) imdb.set_proposal_method(cfg.TRAIN.PROPOSAL_METHOD) #这句是什么意思???? print('Set proposal method: {:s}'.format( cfg.TRAIN.PROPOSAL_METHOD)) ##cfg.TRAIN.PROPOSAL_METHOD='gt' roidb = get_training_roidb(imdb) ''' roidb是一个列表,长度为10022,(10022,),,每个元素是一个字典 imdb.roidb[0]: { 'gt_classes': array([9, 9, 9], dtype=int32), 'max_classes': array([9, 9, 9]), 'image': '/home/beitadoge/.../000005.jpg', 'flipped': False, 'width': 500, 'boxes': array([[262, 210, 323, 338],[164, 263, 252, 371],[240, 193, 294, 298]], dtype=uint16), 'max_overlaps': array([ 1., 1., 1.], dtype=float32), 'height': 375, 'seg_areas': array([ 7998., 9701., 5830.], dtype=float32), 'gt_overlaps': <3x21 sparse matrix of type '<type 'numpy.float32'>'with 3 stored elements in Compressed Sparse Row format> } ''' return roidb
if args.cfg_file is not None: cfg_from_file(args.cfg_file) if args.set_cfgs is not None: cfg_from_list(args.set_cfgs) print('Using config:') pprint.pprint(cfg) np.random.seed(cfg.RNG_SEED) # train set # imdb, roidb = combined_roidb(args.imdb_name) # print('{:d} roidb entries'.format(len(roidb))) imdb = get_imdb(args.imdb_name) roidb = get_training_roidb(imdb) valroidb = roidb # output directory where the models are saved output_dir = get_output_dir(imdb, args.tag) print('Output will be saved to `{:s}`'.format(output_dir)) # tensorboard directory where the summaries are saved during training tb_dir = get_output_tb_dir(imdb, args.tag) print('TensorFlow summaries will be saved to `{:s}`'.format(tb_dir)) # also add the validation set, but with no flipping images orgflip = cfg.TRAIN.USE_FLIPPED cfg.TRAIN.USE_FLIPPED = False # _, valroidb = combined_roidb(args.imdbval_name) print('{:d} validation roidb entries'.format(len(valroidb))) cfg.TRAIN.USE_FLIPPED = orgflip
def get_roidb(imdb_name): imdb = get_imdb(imdb_name) print('Loaded dataset `{:s}` for training'.format(imdb.name)) roidb = get_training_roidb(imdb) return roidb
print(args) if args.cfg_file is not None: cfg_from_file(args.cfg_file) if args.set_cfgs is not None: cfg_from_list(args.set_cfgs) print('Using config:') pprint.pprint(cfg) np.random.seed(cfg.RNG_SEED) # train set # imdb, roidb = combined_roidb(args.imdb_name) imdb = get_imdb(args.imdb_name) roidb = get_training_roidb(imdb) print('{:d} roidb entries'.format(len(roidb))) # output directory where the models are saved output_dir = get_output_dir(imdb, args.tag) print('Output will be saved to `{:s}`'.format(output_dir)) # tensorboard directory where the summaries are saved during training tb_dir = get_output_tb_dir(imdb, args.tag) print('TensorFlow summaries will be saved to `{:s}`'.format(tb_dir)) # also add the validation set, but with no flipping images orgflip = cfg.TRAIN.USE_FLIPPED cfg.TRAIN.USE_FLIPPED = False _, valroidb = combined_roidb(args.imdbval_name) print('{:d} validation roidb entries'.format(len(valroidb)))