Esempio n. 1
0
def dump_all_queries(allres):
    test_rids = allres.qrid_list
    print('[rr2] dumping all %r queries' % len(test_rids))
    for qrid in test_rids:
        viz.show_chip(allres, qrid, 'analysis', subdir='allqueries',
                      annotations=False, title_aug=' noanote')
        viz.show_chip(allres, qrid, 'analysis', subdir='allqueries')
Esempio n. 2
0
File: dev.py Progetto: whaozl/ibeis
 def test_featcfg_combo(ibs, aid, alldictcomb, count, nKpts_list,
                        cfgstr_list):
     for dict_ in ut.progiter(alldictcomb, lbl='FeatCFG Combo: '):
         # Set ibs parameters to the current config
         for key_, val_ in six.iteritems(dict_):
             ibs.cfg.feat_cfg[key_] = val_
         cfgstr_ = ibs.cfg.feat_cfg.get_cfgstr()
         if count == 0:
             # On first run just record info
             kpts = ibs.get_annot_kpts(aid)
             nKpts_list.append(len(kpts))
             cfgstr_list.append(cfgstr_)
         if count == 1:
             kpts = ibs.get_annot_kpts(aid)
             # If second run happens display info
             cfgpackstr = utool.packstr(cfgstr_,
                                        textwidth=80,
                                        breakchars=',',
                                        newline_prefix='',
                                        break_words=False,
                                        wordsep=',')
             title_suffix = (' len(kpts) = %r \n' % len(kpts)) + cfgpackstr
             viz.show_chip(ibs,
                           aid,
                           fnum=pt.next_fnum(),
                           title_suffix=title_suffix,
                           darken=.8,
                           ell_linewidth=2,
                           ell_alpha=.6)
Esempio n. 3
0
def dump_analysis(allres):
    print('[rr2] dump analysis')
    greater1_rids = allres.greater1_rids
    #qrid = greater5_rids[0]
    for qrid in greater1_rids:
        viz.show_chip(allres, qrid, 'analysis', 'analysis')
        viz.show_chip(allres, qrid, 'analysis', 'analysis', annotations=False, title_aug=' noanote')
Esempio n. 4
0
def dump_missed_top5(allres):
    #print('\n---DUMPING MISSED TOP 5---')
    'Displays the top5 matches for all queries'
    greater5_rids = allres.greater5_rids
    #qrid = greater5_rids[0]
    for qrid in greater5_rids:
        viz.show_chip(allres, qrid, 'top5', 'missed_top5')
        viz.show_chip(allres, qrid, 'gt_matches', 'missed_top5')
Esempio n. 5
0
def dump_missed_top5(allres):
    #print('\n---DUMPING MISSED TOP 5---')
    'Displays the top5 matches for all queries'
    greater5_rids = allres.greater5_rids
    #qrid = greater5_rids[0]
    for qrid in greater5_rids:
        viz.show_chip(allres, qrid, 'top5', 'missed_top5')
        viz.show_chip(allres, qrid, 'gt_matches', 'missed_top5')
Esempio n. 6
0
def TEST_VIZ(ibs):
    valid_gids = ibs.get_valid_gids()
    valid_aids = ibs.get_valid_aids()
    print('len(valid_aids) = %r' % len(valid_aids))
    print('len(valid_gids) = %r' % len(valid_gids))
    assert len(valid_gids) > 0, 'database images cannot be empty for test'
    gindex = 1
    gid = valid_gids[gindex]
    aid_list = ibs.get_image_aids(gid)
    rindex = 0
    aid = aid_list[rindex]
    qaid = aid
    aids = aid_list[1:3]
    aid = aid_list[-1]

    try:
        qres = ibs._query_chips4([qaid], valid_aids)[qaid]
        print(qres)
        top_aids = qres.get_top_aids(ibs)
        assert len(top_aids) > 0, 'Results seems to be empty'
        aid2 = top_aids[0]  # 294
        query_failed = False
    except Exception as ex:
        query_failed = True
        utool.printex(ex, 'QUERY FAILED!')
        raise

    #----------------------
    #print('Show Image')
    viz.show_image(ibs, gid, aids=aids, fnum=1)
    df2.set_figtitle('Show Image')

    #----------------------
    #print('Show Chip')
    kpts_kwgs = dict(ell=True,
                     ori=True,
                     rect=True,
                     eig=True,
                     pts=False,
                     kpts_subset=10)
    viz.show_chip(ibs, aid, in_image=False, fnum=2, **kpts_kwgs)
    df2.set_figtitle('Show Chip (normal)')
    viz.show_chip(ibs, aid, in_image=True, fnum=3, **kpts_kwgs)
    df2.set_figtitle('Show Chip (in_image)')

    #----------------------
    if not query_failed:
        print('Show Query')
        viz.show_matches(ibs, qres, aid2, fnum=4)
        df2.set_figtitle('Show Chipres')

        viz.show_qres(ibs, qres, fnum=5)
        df2.set_figtitle('Show QRes')

    ##----------------------
    print('return test locals')
    return locals()
Esempio n. 7
0
def dump_all_queries(allres):
    test_rids = allres.qrid_list
    print('[rr2] dumping all %r queries' % len(test_rids))
    for qrid in test_rids:
        viz.show_chip(allres,
                      qrid,
                      'analysis',
                      subdir='allqueries',
                      annotations=False,
                      title_aug=' noanote')
        viz.show_chip(allres, qrid, 'analysis', subdir='allqueries')
Esempio n. 8
0
    def _chip_view(mode=0, pnum=(1, 1, 1), **kwargs):
        print('... _chip_view mode=%r' % mode_ptr[0])
        kwargs['ell'] = mode_ptr[0] == 1
        kwargs['pts'] = mode_ptr[0]  == 2

        if not ischild:
            df2.figure(fnum=fnum, pnum=pnum, docla=True, doclf=True)
        # Toggle no keypoints view
        viz.show_chip(ibs, aid, fnum=fnum, pnum=pnum, config2_=config2_,
                      **kwargs)
        df2.set_figtitle('Chip View')
Esempio n. 9
0
    def _chip_view(mode=0, pnum=(1, 1, 1), **kwargs):
        print('... _chip_view mode=%r' % mode_ptr[0])
        kwargs['ell'] = mode_ptr[0] == 1
        kwargs['pts'] = mode_ptr[0]  == 2

        if not ischild:
            df2.figure(fnum=fnum, pnum=pnum, docla=True, doclf=True)
        # Toggle no keypoints view
        viz.show_chip(ibs, aid, fnum=fnum, pnum=pnum, config2_=config2_,
                      **kwargs)
        df2.set_figtitle('Chip View')
Esempio n. 10
0
def dump_analysis(allres):
    print('[rr2] dump analysis')
    greater1_rids = allres.greater1_rids
    #qrid = greater5_rids[0]
    for qrid in greater1_rids:
        viz.show_chip(allres, qrid, 'analysis', 'analysis')
        viz.show_chip(allres,
                      qrid,
                      'analysis',
                      'analysis',
                      annotations=False,
                      title_aug=' noanote')
Esempio n. 11
0
def TEST_VIZ(ibs):
    valid_gids = ibs.get_valid_gids()
    valid_aids = ibs.get_valid_aids()
    print('len(valid_aids) = %r' % len(valid_aids))
    print('len(valid_gids) = %r' % len(valid_gids))
    assert len(valid_gids) > 0, 'database images cannot be empty for test'
    gindex = 1
    gid = valid_gids[gindex]
    aid_list = ibs.get_image_aids(gid)
    rindex = 0
    aid = aid_list[rindex]
    qaid = aid
    aids = aid_list[1:3]
    aid = aid_list[-1]

    try:
        qres = ibs._query_chips4([qaid], valid_aids)[qaid]
        print(qres)
        top_aids = qres.get_top_aids(ibs)
        assert len(top_aids) > 0, 'Results seems to be empty'
        aid2 = top_aids[0]  # 294
        query_failed = False
    except Exception as ex:
        query_failed = True
        utool.printex(ex, 'QUERY FAILED!')
        raise

    #----------------------
    #print('Show Image')
    viz.show_image(ibs, gid, aids=aids, fnum=1)
    df2.set_figtitle('Show Image')

    #----------------------
    #print('Show Chip')
    kpts_kwgs = dict(ell=True, ori=True, rect=True,
                     eig=True, pts=False, kpts_subset=10)
    viz.show_chip(ibs, aid, in_image=False, fnum=2, **kpts_kwgs)
    df2.set_figtitle('Show Chip (normal)')
    viz.show_chip(ibs, aid, in_image=True, fnum=3, **kpts_kwgs)
    df2.set_figtitle('Show Chip (in_image)')

    #----------------------
    if not query_failed:
        print('Show Query')
        viz.show_matches(ibs, qres, aid2, fnum=4)
        df2.set_figtitle('Show Chipres')

        viz.show_qres(ibs, qres, fnum=5)
        df2.set_figtitle('Show QRes')

    ##----------------------
    print('return test locals')
    return locals()
Esempio n. 12
0
def test_sharpness():
    import ibeis
    defaltdb = 'seaturtles'
    a = ['default']
    ibs = ibeis.opendb(defaultdb=defaltdb)
    ibs, qaids, daids = ibeis.testdata_expanded_aids(ibs=ibs, a=a)
    from vtool import quality_classifier

    contrast_list = [quality_classifier.compute_average_contrast(chip) for chip in ibs.get_annot_chips(qaids)]
    sortx = ut.argsort(contrast_list)[::-1]
    sharpest_qaids = ut.take(qaids, sortx)

    aid = sharpest_qaids[0]
    ut.ensure_pylab_qt4()
    from ibeis import viz
    import plottool as pt
    for aid in ut.InteractiveIter(sharpest_qaids):
        viz.show_chip(ibs, aid, annot=False, nokpts=True)
        pt.update()
Esempio n. 13
0
 def test_featcfg_combo(ibs, aid, alldictcomb, count, nKpts_list, cfgstr_list):
     for dict_ in ut.progiter(alldictcomb, lbl='FeatCFG Combo: '):
         # Set ibs parameters to the current config
         for key_, val_ in six.iteritems(dict_):
             ibs.cfg.feat_cfg[key_] = val_
         cfgstr_ = ibs.cfg.feat_cfg.get_cfgstr()
         if count == 0:
             # On first run just record info
             kpts = ibs.get_annot_kpts(aid)
             nKpts_list.append(len(kpts))
             cfgstr_list.append(cfgstr_)
         if count == 1:
             kpts = ibs.get_annot_kpts(aid)
             # If second run happens display info
             cfgpackstr = utool.packstr(cfgstr_, textwidth=80,
                                           breakchars=',', newline_prefix='',
                                           break_words=False, wordsep=',')
             title_suffix = (' len(kpts) = %r \n' % len(kpts)) + cfgpackstr
             viz.show_chip(ibs, aid, fnum=pt.next_fnum(),
                           title_suffix=title_suffix, darken=.8,
                           ell_linewidth=2, ell_alpha=.6)
Esempio n. 14
0
def test_sharpness():
    import ibeis
    defaltdb = 'seaturtles'
    a = ['default']
    ibs = ibeis.opendb(defaultdb=defaltdb)
    ibs, qaids, daids = ibeis.testdata_expanded_aids(ibs=ibs, a=a)
    from vtool import quality_classifier

    contrast_list = [
        quality_classifier.compute_average_contrast(chip)
        for chip in ibs.get_annot_chips(qaids)
    ]
    sortx = ut.argsort(contrast_list)[::-1]
    sharpest_qaids = ut.take(qaids, sortx)

    aid = sharpest_qaids[0]
    ut.ensure_pylab_qt4()
    from ibeis import viz
    import plottool as pt
    for aid in ut.InteractiveIter(sharpest_qaids):
        viz.show_chip(ibs, aid, annot=False, nokpts=True)
        pt.update()
Esempio n. 15
0
def dump_gt_matches(allres):
    #print('\n---DUMPING GT MATCHES ---')
    'Displays the matches to ground truth for all queries'
    qrid2_qres = allres.qrid2_qres
    for qrid in xrange(0, len(qrid2_qres)):
        viz.show_chip(allres, qrid, 'gt_matches')
Esempio n. 16
0
File: dev.py Progetto: whaozl/ibeis
def devfunc(ibs, qaid_list):
    """ Function for developing something """
    print('[dev] devfunc')
    import ibeis  # NOQA
    from ibeis.algo import Config  # NOQA
    #from ibeis.algo.Config import *  # NOQA
    feat_cfg = Config.FeatureConfig()
    #feat_cfg.printme3()
    print('\ncfgstr..')
    print(feat_cfg.get_cfgstr())
    print(utool.dict_str(feat_cfg.get_hesaff_params()))
    from ibeis import viz
    aid = 1
    ibs.cfg.feat_cfg.threshold = 16.0 / 3.0
    kpts = ibs.get_annot_kpts(aid)
    print('len(kpts) = %r' % len(kpts))
    from ibeis.expt import experiment_configs
    #varyparams_list = [
    #    #{
    #    #    'threshold': [16.0 / 3.0, 32.0 / 3.0],  # 8.0  / 3.0
    #    #    'numberOfScales': [3, 2, 1],
    #    #    'maxIterations': [16, 32],
    #    #    'convergenceThreshold': [.05, .1],
    #    #    'initialSigma': [1.6, 1.2],
    #    #},
    #    {
    #        #'threshold': [16.0 / 3.0, 32.0 / 3.0],  # 8.0  / 3.0
    #        'numberOfScales': [1],
    #        #'maxIterations': [16, 32],
    #        #'convergenceThreshold': [.05, .1],
    #        #'initialSigma': [6.0, 3.0, 2.0, 1.6, 1.2, 1.1],
    #        'initialSigma': [3.2, 1.6, 0.8],
    #        'edgeEigenValueRatio': [10, 5, 3],
    #    },
    #]
    varyparams_list = [experiment_configs.featparams]

    # low threshold = more keypoints
    # low initialSigma = more keypoints

    nKpts_list = []
    cfgstr_list = []

    alldictcomb = utool.flatten([
        utool.util_dict.all_dict_combinations(varyparams)
        for varyparams in featparams_list
    ])
    NUM_PASSES = 1 if not utool.get_argflag('--show') else 2
    for count in range(NUM_PASSES):
        for aid in qaid_list:
            #for dict_ in utool.progiter(alldictcomb, lbl='feature param comb: ', total=len(alldictcomb)):
            for dict_ in alldictcomb:
                for key_, val_ in six.iteritems(dict_):
                    ibs.cfg.feat_cfg[key_] = val_
                cfgstr_ = ibs.cfg.feat_cfg.get_cfgstr()
                cfgstr = utool.packstr(cfgstr_,
                                       textwidth=80,
                                       breakchars=',',
                                       newline_prefix='',
                                       break_words=False,
                                       wordsep=',')
                if count == 0:
                    kpts = ibs.get_annot_kpts(aid)
                    #print('___________')
                    #print('len(kpts) = %r' % len(kpts))
                    #print(cfgstr)
                    nKpts_list.append(len(kpts))
                    cfgstr_list.append(cfgstr_)
                if count == 1:
                    title_suffix = (' len(kpts) = %r \n' % len(kpts)) + cfgstr
                    viz.show_chip(ibs,
                                  aid,
                                  fnum=pt.next_fnum(),
                                  title_suffix=title_suffix,
                                  darken=.4,
                                  ell_linewidth=2,
                                  ell_alpha=.8)

        if count == 0:
            nKpts_list = np.array(nKpts_list)
            cfgstr_list = np.array(cfgstr_list)
            print(get_sortbystr(cfgstr_list, nKpts_list, 'cfg', 'nKpts'))
    pt.present()
    locals_ = locals()
    return locals_
Esempio n. 17
0
def show_query(qres, ibs, **kwargs):
    from ibeis import viz
    print('[qr] show_query')
    qaid = ibs.get_chip_aids(qres.qcid)
    viz.show_chip(ibs, qaid, **kwargs)
Esempio n. 18
0
def dump_gt_matches(allres):
    #print('\n---DUMPING GT MATCHES ---')
    'Displays the matches to ground truth for all queries'
    qrid2_qres = allres.qrid2_qres
    for qrid in xrange(0, len(qrid2_qres)):
        viz.show_chip(allres, qrid, 'gt_matches')
Esempio n. 19
0
def devfunc(ibs, qaid_list):
    """ Function for developing something """
    print('[dev] devfunc')
    import ibeis  # NOQA
    from ibeis.algo import Config  # NOQA
    #from ibeis.algo.Config import *  # NOQA
    feat_cfg = Config.FeatureConfig()
    #feat_cfg.printme3()
    print('\ncfgstr..')
    print(feat_cfg.get_cfgstr())
    print(utool.dict_str(feat_cfg.get_hesaff_params()))
    from ibeis import viz
    aid = 1
    ibs.cfg.feat_cfg.threshold = 16.0 / 3.0
    kpts = ibs.get_annot_kpts(aid)
    print('len(kpts) = %r' % len(kpts))
    from ibeis.expt import experiment_configs
    #varyparams_list = [
    #    #{
    #    #    'threshold': [16.0 / 3.0, 32.0 / 3.0],  # 8.0  / 3.0
    #    #    'numberOfScales': [3, 2, 1],
    #    #    'maxIterations': [16, 32],
    #    #    'convergenceThreshold': [.05, .1],
    #    #    'initialSigma': [1.6, 1.2],
    #    #},
    #    {
    #        #'threshold': [16.0 / 3.0, 32.0 / 3.0],  # 8.0  / 3.0
    #        'numberOfScales': [1],
    #        #'maxIterations': [16, 32],
    #        #'convergenceThreshold': [.05, .1],
    #        #'initialSigma': [6.0, 3.0, 2.0, 1.6, 1.2, 1.1],
    #        'initialSigma': [3.2, 1.6, 0.8],
    #        'edgeEigenValueRatio': [10, 5, 3],
    #    },
    #]
    varyparams_list = [experiment_configs.featparams]

    # low threshold = more keypoints
    # low initialSigma = more keypoints

    nKpts_list = []
    cfgstr_list = []

    alldictcomb = utool.flatten([utool.util_dict.all_dict_combinations(varyparams) for varyparams in featparams_list])
    NUM_PASSES = 1 if not utool.get_argflag('--show') else 2
    for count in range(NUM_PASSES):
        for aid in qaid_list:
            #for dict_ in utool.progiter(alldictcomb, lbl='feature param comb: ', total=len(alldictcomb)):
            for dict_ in alldictcomb:
                for key_, val_ in six.iteritems(dict_):
                    ibs.cfg.feat_cfg[key_] = val_
                cfgstr_ = ibs.cfg.feat_cfg.get_cfgstr()
                cfgstr = utool.packstr(cfgstr_, textwidth=80,
                                        breakchars=',', newline_prefix='', break_words=False, wordsep=',')
                if count == 0:
                    kpts = ibs.get_annot_kpts(aid)
                    #print('___________')
                    #print('len(kpts) = %r' % len(kpts))
                    #print(cfgstr)
                    nKpts_list.append(len(kpts))
                    cfgstr_list.append(cfgstr_)
                if count == 1:
                    title_suffix = (' len(kpts) = %r \n' % len(kpts)) + cfgstr
                    viz.show_chip(ibs, aid, fnum=pt.next_fnum(),
                                   title_suffix=title_suffix, darken=.4,
                                   ell_linewidth=2, ell_alpha=.8)

        if count == 0:
            nKpts_list = np.array(nKpts_list)
            cfgstr_list = np.array(cfgstr_list)
            print(get_sortbystr(cfgstr_list, nKpts_list, 'cfg', 'nKpts'))
    pt.present()
    locals_ = locals()
    return locals_
Esempio n. 20
0
def show_query(qres, ibs, **kwargs):
    from ibeis import viz
    print('[qr] show_query')
    qaid = ibs.get_chip_aids(qres.qcid)
    viz.show_chip(ibs, qaid, **kwargs)