from . import matchers from . import readers from . import evaluators from . import extractors def load_component(compo_name,model_name,config): if compo_name=='extractor': component=load_extractor(model_name,config) elif compo_name=='reader': component=load_reader(model_name,config) elif compo_name=='matcher': component=load_matcher(model_name,config) elif compo_name=='evaluator': component=load_evaluator(model_name,config) else: raise NotImplementedError return component def load_extractor(model_name,config): if model_name=='root': extractor =extractors.ExtractSIFT(config) elif model_name=='sp': extractor=extractors.ExtractSuperpoint(config) else: raise NotImplementedError return extractor def load_matcher(model_name,config): if model_name=='SGM': matcher=matchers.GNN_Matcher(config,'SGM') elif model_name=='SG': matcher=matchers.GNN_Matcher(config,'SG') elif model_name=='NN': matcher=matchers.NN_Matcher(config) else: raise NotImplementedError return matcher def load_reader(model_name,config): if model_name=='standard': reader=readers.standard_reader(config) else: raise NotImplementedError return reader def load_evaluator(model_name,config): if model_name=='AUC': evaluator=evaluators.auc_eval(config) elif model_name=='FM': evaluator=evaluators.FMbench_eval(config) return evaluator