imdb表示image database
ind表示index
在tools\train_net.py中
from datasets.factory import get_imdb #与下文相关的头文件
def combined_roidb(imdb_names):
def get_roidb(imdb_name):
imdb = get_imdb(imdb_name)# 调用该函数,返回imdb
print 'Loaded dataset `{:s}` for training'.format(imdb.name)
imdb.set_proposal_method(cfg.TRAIN.PROPOSAL_METHOD)#设置方法一般默认gt
print 'Set proposal method: {:s}'.format(cfg.TRAIN.PROPOSAL_METHOD)
roidb = get_training_roidb(imdb)#利用imdb,产生roi_db
return roidb
roidbs = [get_roidb(s) for s in imdb_names.split('+')]
roidb = roidbs[0]
if len(roidbs) > 1:
for r in roidbs[1:]:
roidb.extend(r)
imdb = datasets.imdb.imdb(imdb_names)
else:
imdb = get_imdb(imdb_names)
return imdb, roidb
if __name__ == '__main__':
...roidb, imdb = get_roidb(imdb_name) # 调用函数,返回训练数据
model_paths = train_net(solver, roidb, output_dir, #传入数据roidb,供训练
pretrained_model=init_model,
max_iters=max_iters)
所以,进入get_roidb函数:
def get_roidb(imdb_name, rpn_file=None):
imdb = get_imdb(imdb_name) # 调用该函数,返回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)
if rpn_file is not None:
imdb.config['rpn_file'] = rpn_file
roidb = get_training_roidb(imdb)
return roidb, imdb