def testrun_pipeline_upto(qreq_, stop_node=None, verbose=True): r""" Main tester function. Runs the pipeline by mirroring `request_ibeis_query_L0`, but stops at a requested breakpoint and returns the local variables. convinience: runs pipeline for tests this should mirror request_ibeis_query_L0 Ignore: >>> # TODO: autogenerate >>> # The following is a stub that starts the autogeneration process >>> import utool as ut >>> from ibeis.algo.hots import pipeline >>> source = ut.get_func_sourcecode(pipeline.request_ibeis_query_L0, >>> strip_docstr=True, stripdef=True, >>> strip_comments=True) >>> import re >>> source = re.sub(r'^\s*$\n', '', source, flags=re.MULTILINE) >>> print(source) >>> ut.replace_between_tags(source, '', sentinal) """ from ibeis.algo.hots.pipeline import ( nearest_neighbors, baseline_neighbor_filter, weight_neighbors, build_chipmatches, spatial_verification, vsone_reranking, build_impossible_daids_list) print('RUN PIPELINE UPTO: %s' % (stop_node,)) print(qreq_) qreq_.lazy_load(verbose=verbose) #--- if stop_node == 'build_impossible_daids_list': return locals() impossible_daids_list, Kpad_list = build_impossible_daids_list(qreq_) #--- if stop_node == 'nearest_neighbors': return locals() nns_list = nearest_neighbors(qreq_, Kpad_list, verbose=verbose) #--- if stop_node == 'baseline_neighbor_filter': return locals() nnvalid0_list = baseline_neighbor_filter(qreq_, nns_list, impossible_daids_list, verbose=verbose) #--- if stop_node == 'weight_neighbors': return locals() weight_ret = weight_neighbors(qreq_, nns_list, nnvalid0_list, verbose=verbose) filtkey_list, filtweights_list, filtvalids_list, filtnormks_list = weight_ret #--- if stop_node == 'filter_neighbors': raise AssertionError('no longer exists') #--- if stop_node == 'build_chipmatches': return locals() cm_list_FILT = build_chipmatches(qreq_, nns_list, nnvalid0_list, filtkey_list, filtweights_list, filtvalids_list, filtnormks_list, verbose=verbose) #--- if stop_node == 'spatial_verification': return locals() cm_list_SVER = spatial_verification(qreq_, cm_list_FILT, verbose=verbose) #--- if stop_node == 'vsone_reranking': return locals() if qreq_.qparams.rrvsone_on: # VSONE RERANKING cm_list_VSONERR = vsone_reranking(qreq_, cm_list_SVER, verbose=verbose) cm_list = cm_list_VSONERR else: cm_list = cm_list_SVER assert False, 'unknown stop_node=%r' % (stop_node,) #qaid2_svtups = qreq_.metadata['qaid2_svtups'] return locals()
def main_smk_debug(): """ CommandLine: python -m ibeis.algo.hots.smk.smk_debug --test-main_smk_debug Example: >>> from ibeis.algo.hots.smk.smk_debug import * # NOQA >>> main_smk_debug() """ print('+------------') print('SMK_DEBUG MAIN') print('+------------') from ibeis.algo.hots import pipeline ibs, annots_df, taids, daids, qaids, qreq_, nWords = testdata_dataframe() # Query using SMK #qaid = qaids[0] nWords = qreq_.qparams.nWords aggregate = qreq_.qparams.aggregate smk_alpha = qreq_.qparams.smk_alpha smk_thresh = qreq_.qparams.smk_thresh nAssign = qreq_.qparams.nAssign #aggregate = ibs.cfg.query_cfg.smk_cfg.aggregate #smk_alpha = ibs.cfg.query_cfg.smk_cfg.smk_alpha #smk_thresh = ibs.cfg.query_cfg.smk_cfg.smk_thresh print('+------------') print('SMK_DEBUG PARAMS') print('[smk_debug] aggregate = %r' % (aggregate,)) print('[smk_debug] smk_alpha = %r' % (smk_alpha,)) print('[smk_debug] smk_thresh = %r' % (smk_thresh,)) print('[smk_debug] nWords = %r' % (nWords,)) print('[smk_debug] nAssign = %r' % (nAssign,)) print('L------------') # Learn vocabulary #words = qreq_.words = smk_index.learn_visual_words(annots_df, taids, nWords) # Index a database of annotations #qreq_.invindex = smk_repr.index_data_annots(annots_df, daids, words, aggregate, smk_alpha, smk_thresh) qreq_.ibs = ibs # Smk Mach print('+------------') print('SMK_DEBUG MATCH KERNEL') print('+------------') qaid2_scores, qaid2_chipmatch_SMK = smk_match.execute_smk_L5(qreq_) SVER = ut.get_argflag('--sver') if SVER: print('+------------') print('SMK_DEBUG SVER? YES!') print('+------------') qaid2_chipmatch_SVER_ = pipeline.spatial_verification(qaid2_chipmatch_SMK, qreq_) qaid2_chipmatch = qaid2_chipmatch_SVER_ else: print('+------------') print('SMK_DEBUG SVER? NO') print('+------------') qaid2_chipmatch = qaid2_chipmatch_SMK print('+------------') print('SMK_DEBUG DISPLAY RESULT') print('+------------') cm_list = convert_smkmatch_to_chipmatch(qaid2_chipmatch, qaid2_scores) #filt2_meta = {} #qaid2_qres_ = pipeline.chipmatch_to_resdict(qaid2_chipmatch, filt2_meta, qreq_) qaid2_qres_ = pipeline.chipmatch_to_resdict(qreq_, cm_list) #qaid2_qres_ = pipeline.chipmatch_to_resdict(qaid2_chipmatch, filt2_meta, qreq_) for count, (qaid, qres) in enumerate(six.iteritems(qaid2_qres_)): print('+================') #qres = qaid2_qres_[qaid] qres.show_top(ibs, fnum=count) for aid in qres.aid2_score.keys(): smkscore = qaid2_scores[qaid][aid] sumscore = qres.aid2_score[aid] if not ut.almost_eq(smkscore, sumscore): print('scorediff aid=%r, smkscore=%r, sumscore=%r' % (aid, smkscore, sumscore)) scores = qaid2_scores[qaid] #print(scores) print(qres.get_inspect_str(ibs)) print('L================') #ut.embed() #print(qres.aid2_fs) #daid2_totalscore, cmtup_old = smk_index.query_inverted_index(annots_df, qaid, invindex) ## Pack into QueryResult #qaid2_chipmatch = {qaid: cmtup_old} #qaid2_qres_ = pipeline.chipmatch_to_resdict(qaid2_chipmatch, {}, qreq_) ## Show match #daid2_totalscore.sort(axis=1, ascending=False) #print(daid2_totalscore) #daid2_totalscore2, cmtup_old = query_inverted_index(annots_df, daids[0], invindex) #print(daid2_totalscore2) #display_info(ibs, invindex, annots_df) print('finished main') return locals()
def main_smk_debug(): """ CommandLine: python -m ibeis.algo.hots.smk.smk_debug --test-main_smk_debug Example: >>> from ibeis.algo.hots.smk.smk_debug import * # NOQA >>> main_smk_debug() """ print('+------------') print('SMK_DEBUG MAIN') print('+------------') from ibeis.algo.hots import pipeline ibs, annots_df, taids, daids, qaids, qreq_, nWords = testdata_dataframe() # Query using SMK #qaid = qaids[0] nWords = qreq_.qparams.nWords aggregate = qreq_.qparams.aggregate smk_alpha = qreq_.qparams.smk_alpha smk_thresh = qreq_.qparams.smk_thresh nAssign = qreq_.qparams.nAssign #aggregate = ibs.cfg.query_cfg.smk_cfg.aggregate #smk_alpha = ibs.cfg.query_cfg.smk_cfg.smk_alpha #smk_thresh = ibs.cfg.query_cfg.smk_cfg.smk_thresh print('+------------') print('SMK_DEBUG PARAMS') print('[smk_debug] aggregate = %r' % (aggregate, )) print('[smk_debug] smk_alpha = %r' % (smk_alpha, )) print('[smk_debug] smk_thresh = %r' % (smk_thresh, )) print('[smk_debug] nWords = %r' % (nWords, )) print('[smk_debug] nAssign = %r' % (nAssign, )) print('L------------') # Learn vocabulary #words = qreq_.words = smk_index.learn_visual_words(annots_df, taids, nWords) # Index a database of annotations #qreq_.invindex = smk_repr.index_data_annots(annots_df, daids, words, aggregate, smk_alpha, smk_thresh) qreq_.ibs = ibs # Smk Mach print('+------------') print('SMK_DEBUG MATCH KERNEL') print('+------------') qaid2_scores, qaid2_chipmatch_SMK = smk_match.execute_smk_L5(qreq_) SVER = ut.get_argflag('--sver') if SVER: print('+------------') print('SMK_DEBUG SVER? YES!') print('+------------') qaid2_chipmatch_SVER_ = pipeline.spatial_verification( qaid2_chipmatch_SMK, qreq_) qaid2_chipmatch = qaid2_chipmatch_SVER_ else: print('+------------') print('SMK_DEBUG SVER? NO') print('+------------') qaid2_chipmatch = qaid2_chipmatch_SMK print('+------------') print('SMK_DEBUG DISPLAY RESULT') print('+------------') cm_list = convert_smkmatch_to_chipmatch(qaid2_chipmatch, qaid2_scores) #filt2_meta = {} #qaid2_qres_ = pipeline.chipmatch_to_resdict(qaid2_chipmatch, filt2_meta, qreq_) qaid2_qres_ = pipeline.chipmatch_to_resdict(qreq_, cm_list) #qaid2_qres_ = pipeline.chipmatch_to_resdict(qaid2_chipmatch, filt2_meta, qreq_) for count, (qaid, qres) in enumerate(six.iteritems(qaid2_qres_)): print('+================') #qres = qaid2_qres_[qaid] qres.show_top(ibs, fnum=count) for aid in qres.aid2_score.keys(): smkscore = qaid2_scores[qaid][aid] sumscore = qres.aid2_score[aid] if not ut.almost_eq(smkscore, sumscore): print('scorediff aid=%r, smkscore=%r, sumscore=%r' % (aid, smkscore, sumscore)) scores = qaid2_scores[qaid] #print(scores) print(qres.get_inspect_str(ibs)) print('L================') #ut.embed() #print(qres.aid2_fs) #daid2_totalscore, cmtup_old = smk_index.query_inverted_index(annots_df, qaid, invindex) ## Pack into QueryResult #qaid2_chipmatch = {qaid: cmtup_old} #qaid2_qres_ = pipeline.chipmatch_to_resdict(qaid2_chipmatch, {}, qreq_) ## Show match #daid2_totalscore.sort(axis=1, ascending=False) #print(daid2_totalscore) #daid2_totalscore2, cmtup_old = query_inverted_index(annots_df, daids[0], invindex) #print(daid2_totalscore2) #display_info(ibs, invindex, annots_df) print('finished main') return locals()