def vot_lt_2020_local4(): trackers = trackerlist('dimp', 'prdimp18', None)+ \ trackerlist('dimp', 'prdimp50', None)+ \ trackerlist('dimp', 'super_dimp', None) dataset = get_dataset('vot') return trackers, dataset
def eval_atom_compression_lasot_trackingnet(): # run atom_cfkd on LaSOT, TrackingNet, VOT2018 trackers = trackerlist('atom', 'atom_compression') dataset = get_dataset('lasot', 'trackingnet') return trackers, dataset
def main(): parser = argparse.ArgumentParser( description='Generate success and precision plots') parser.add_argument('tracker_name', type=str) parser.add_argument('tracker_param', type=str) parser.add_argument('--run_id', type=int, default=None) parser.add_argument('--dataset', type=str) args = parser.parse_args() trackers = [] display_name = args.tracker_param + str(args.run_id) trackers.extend( trackerlist(args.tracker_name, args.tracker_param, args.run_id, display_name)) dataset = get_dataset(args.dataset) report_name = args.tracker_param + '_' + args.dataset plot_results(trackers, dataset, report_name, merge_results=True, plot_types=('success', 'prec'), skip_missing_seq=True, force_evaluation=True, plot_bin_gap=0.05, exclude_invalid_frames=False)
def eval_drnet_cfkd_lasot_trackingnet(): # run atom_cfkd on LaSOT, TrackingNet, VOT2018 trackers = trackerlist('drnet', 'drnet_cfkd') dataset = get_dataset('lasot', 'trackingnet') return trackers, dataset
def run_tracker(tracker_name, tracker_param, run_id=None, dataset_name='otb', sequence=None, debug=0, threads=0, visdom_info=None): """Run tracker on sequence or dataset. args: tracker_name: Name of tracking method. tracker_param: Name of parameter file. run_id: The run id. dataset_name: Name of dataset (otb, nfs, uav, tpl, vot, tn, gott, gotv, lasot). sequence: Sequence number or name. debug: Debug level. threads: Number of threads. visdom_info: Dict optionally containing 'use_visdom', 'server' and 'port' for Visdom visualization. """ visdom_info = {} if visdom_info is None else visdom_info dataset = get_dataset(dataset_name) if sequence is not None: dataset = [dataset[sequence]] trackers = [Tracker(tracker_name, tracker_param, run_id)] run_dataset(dataset, trackers, debug, threads, visdom_info=visdom_info)
def transt_readout_test_encoder_mult_from_front(): trackers = trackerlist('transt_readout_test_encoder_mult_from_front', 'default', range(1)) dataset = get_dataset( 'got10k_test') # , 'lasot') # _val, 'got10k_ltrval') # dataset = get_dataset('got10k_test') # _val, 'got10k_ltrval') return trackers, dataset
def transt_readout_test_encoder_mult_control(): trackers = trackerlist('transt_circuit_control', 'default', range(1)) # dataset = get_dataset('got10k_test', 'lasot') # _val, 'got10k_ltrval') # dataset = get_dataset('lasot') # _val, 'got10k_ltrval') # dataset = get_dataset('got10k_test') # _val, 'got10k_ltrval') dataset = get_dataset('got10k_test') return trackers, dataset
def uav_test(): # Run DiMP18, ATOM and ECO on the UAV dataset trackers = trackerlist('dimp', 'dimp18', range(1)) + \ trackerlist('dimp', 'dimp18_vot', range(1)) dataset = get_dataset('uav') return trackers, dataset
def vot_lt_2020_local3(): trackers = trackerlist('dimp', 'dimp50', None) + \ trackerlist('dimp', 'dimp50_vot', None) + \ trackerlist('dimp', 'dimp50_vot19', None) dataset = get_dataset('vot') return trackers, dataset
def main(): trackers = [] trackers.extend( trackerlist('dimpRank', 'dimpRank18', range(0, 1), 'dimpRank')) # trackers.extend(trackerlist('ECO', 'default_deep', range(1), 'ECO')) # trackers.extend(trackerlist('dimpFMFAttnAw_49', 'dimp50', range(1), 'TRAT')) # trackers.extend(trackerlist('MDNet', 'default', range(1), 'MDNet')) dataset = get_dataset('otb') sequence = [dataset['Basketball']] playback_results(trackers, sequence[0])
def vot_lt_2020_all_test(): # Run DiMP18, ATOM and ECO on the UAV dataset trackers = trackerlist('dimp', 'dimp18', range(1)) + \ trackerlist('dimp', 'dimp18_vot', range(1))+ \ trackerlist('dimp', 'dimp50', range(1))+ \ trackerlist('dimp', 'dimp50_vot', range(1))+ \ trackerlist('dimp', 'dimp50_vot19', range(1))+ \ trackerlist('dimp', 'prdimp18', range(1))+ \ trackerlist('dimp', 'prdimp50', range(1))+ \ trackerlist('dimp', 'super_dimp', range(1)) dataset = get_dataset('vot') return trackers, dataset
def transt_readout_mixed(): # Evaluate GOT on a circuit KYS I trained trackers = trackerlist('transt_readout_mixed', 'default', range(1)) dataset = get_dataset('got10k_test') # _val, 'got10k_ltrval') return trackers, dataset
def trsiam_trackingnet(): trackers = trackerlist('trdimp', 'trsiam', range(1)) dataset = get_dataset('trackingnet') return trackers, dataset
def trsiam_otb(): trackers = trackerlist('trdimp', 'trsiam', range(1)) dataset = get_dataset('otb') return trackers, dataset
trackers.extend(trackerlist('MDNet', 'default', range(0, 1), 'MDNet')) trackers.extend(trackerlist('CCOT', 'default', range(0, 1), 'CCOT')) # trackers.extend(trackerlist('DaSiamRPN', 'default', range(0,1), 'DaSiamRPN')) # trackers.extend(trackerlist('SiamRPN++', 'default', range(0,1), 'SiamRPN++')) trackers.extend(trackerlist('dimp', 'dimp50', range(0, 5), 'DiMP50')) # trackers.extend(trackerlist('dimpFMFAttnAw', 'dimp50_49', range(1,2), 'TRAT')) trackers.extend(trackerlist('TRAT', 'trat', range(0, 3), 'TRAT')) # trackers.extend(trackerlist('atom_R50_ours', 'default', range(0,5), 'ATOM50*')) trackers.extend(trackerlist('atom', 'default', range(0, 5), 'ATOM')) # trackers.extend(trackerlist('siamban_results', 'SiamBAN_LaSOT', range(0,1), 'SiamBAN')) # trackers.extend(trackerlist('Roam', 'LaSOT-ROAM++', range(0,1), 'Roam++')) # trackers.extend(trackerlist('Roam', 'LaSOT-ROAM', range(0,1), 'Roam')) filter_criteria = None dataset = get_dataset('nfs') # sequence = [dataset['book-10']] # print_per_sequence_results(trackers, dataset, 'lasot', merge_results=True, filter_criteria=filter_criteria, force_evaluation=False) # playback_results(trackers, sequence[0]) plot_results(trackers, dataset, 'nfs', merge_results=True, plot_types=('success', 'prec', 'norm_prec'), skip_missing_seq=False, force_evaluation=True, plot_bin_gap=0.05, exclude_invalid_frames=False) # print_results(trackers, dataset, 'lasot', merge_results=True, plot_types=('success', 'prec', 'norm_prec'))
from pytracking.evaluation import Tracker, get_dataset, trackerlist, Sequence from pytracking.analysis.playback_results import playback_results trackers = [] # # trackers.extend(trackerlist('TratCatAttn31-32', 'default2', range(0,1), 'TratCatAttn32_1')) # trackers.extend(trackerlist('TratCatAttn31-32', 'default2', range(1,2), 'TratCatAttn32_2')) # trackers.extend(trackerlist('TratCatAttn31-32', 'default2', range(2,3), 'TratCatAttn32_3')) # trackers.extend(trackerlist('TratCatAttn31-32', 'default2', range(3,4), 'TratCatAttn32_4')) # trackers.extend(trackerlist('TratCatAttn31-32', 'default2', range(4,5), 'TratCatAttn32_5')) # trackers.extend(trackerlist('dimpFMFAttnAw', 'dimp50_49', range(1,2), 'dimp50_4_2')) # trackers.extend(trackerlist('dimpFMFAttnAw', 'dimp50_49', range(2,3), 'dimp50_46_1')) trackers.extend(trackerlist('RankingFast', 'default', range(1), 'RafnkinFast')) filter_criteria = None dataset = get_dataset('otb') # sequence = [dataset['Basketball']] # print_per_sequence_results(trackers, dataset, 'nfs', merge_results=True, filter_criteria=filter_criteria, force_evaluation=False) # playback_results(trackers, sequence[0]) # plot_results(trackers, dataset, 'uav', merge_results=True, plot_types=('success', 'prec', 'norm_prec'), # skip_missing_seq=False, force_evaluation=True, plot_bin_gap=0.05, exclude_invalid_frames=False) print_results(trackers, dataset, 'otb', merge_results=True, plot_types=('success', 'prec', 'norm_prec'))
def dimp_lasot(): # Run three runs of ATOM on NFS and UAV datasets trackers = trackerlist('dimp', 'dimp18', range(2)) dataset = get_dataset('lasot') return trackers, dataset
def Ranking(): os.environ["CUDA_VISIBLE_DEVICES"] = "0" # Run three runs of ATOM on NFS and UAV datasets trackers = trackerlist('Ranking', 'default', range(2)) dataset = get_dataset('otb') return trackers, dataset
def eco_lasot(): # Run three runs of ATOM on NFS and UAV datasets trackers = trackerlist('eco', 'default', range(1)) dataset = get_dataset('lasot') return trackers, dataset
def evaluate_dataset(results_path, dset_name, measure='J', to_file=True, scores=False, sequences=None, quiet=False): dset = get_dataset(dset_name) results = OrderedDict() dset_scores = [] dset_decay = [] dset_recall = [] if to_file: f = open(results_path / ("evaluation-%s.txt" % measure), "w") def _print(msg): if not quiet: print(msg) if to_file: print(msg, file=f) if sequences is not None: sequences = [sequences] if not isinstance(sequences, (list, tuple)) else sequences target_names = [] for j, sequence in enumerate(dset): if (sequences is not None) and (sequence.name not in sequences): continue # Load all frames frames = sequence.ground_truth_seg annotations = OrderedDict() segmentations = OrderedDict() for f in frames: if f is None: continue file = Path(f) annotations[file.name] = imread_indexed(file) if not scores: segmentations[file.name] = imread_indexed( os.path.join(results_path, sequence.name, file.name)) else: raise NotImplementedError # Find object ids and starting frames object_info = dict() for f_id, d in sequence.init_data.items(): for obj_id in d['object_ids']: object_info[int(obj_id)] = Path(d['mask']).name if 0 in object_info: # Remove background object_info.pop(0) # Evaluate n_seqs = len(dset) n_objs = len(object_info) seq_name = sequence.name _print("%d/%d: %s: %d object%s" % (j + 1, n_seqs, seq_name, n_objs, "s" if n_objs > 1 else "")) r = evaluate_sequence(seq_name, segmentations, annotations, object_info, measure=measure) results[seq_name] = r # Print scores, per frame and object, ignoring NaNs per_obj_score = [] # Per-object accuracies, averaged over the sequence per_frame_score = [] # Per-frame accuracies, averaged over the objects for obj_id, score in r['raw'].items(): target_names.append('{}_{}'.format(seq_name, obj_id)) per_frame_score.append(score) s = utils.mean(score) # Sequence average for one object per_obj_score.append(s) if n_objs > 1: _print("joint {obj}: acc {score:.3f} ┊{apf}┊".format( obj=obj_id, score=s, apf=utils.text_bargraph(score))) # Print mean object score per frame and final score dset_decay.extend(r['decay']) dset_recall.extend(r['recall']) dset_scores.extend(per_obj_score) seq_score = utils.mean(per_obj_score) # Final score seq_mean_score = utils.nanmean(np.array(per_frame_score), axis=0) # Mean object score per frame # Print sequence results _print("final : acc {seq:.3f} ({dset:.3f}) ┊{apf}┊".format( seq=seq_score, dset=np.mean(dset_scores), apf=utils.text_bargraph(seq_mean_score))) _print("%s: %.3f, recall: %.3f, decay: %.3f" % (measure, utils.mean(dset_scores), utils.mean(dset_recall), utils.mean(dset_decay))) if to_file: f.close() return target_names, dset_scores, dset_recall, dset_decay
def trsiam_lasot(): trackers = trackerlist('trdimp', 'trsiam_lasot', range(1)) dataset = get_dataset('lasot') return trackers, dataset
def transt_control_normal(): trackers = trackerlist('transt_control_normal', 'default', range(1)) dataset = get_dataset('got10k_test') # _val, 'got10k_ltrval') return trackers, dataset
def transt_readout_test_v1(): trackers = trackerlist('transt_readout_test_v1', 'default', range(1)) dataset = get_dataset('got10k_test') # _val, 'got10k_ltrval') return trackers, dataset
def rtranst(): trackers = trackerlist('rtranst', 'default', range(1)) dataset = get_dataset('got10k_test') # _val, 'got10k_ltrval') return trackers, dataset
def vot_lt_2020_local2(): trackers = trackerlist('dimp', 'dimp18', None) + \ trackerlist('dimp', 'dimp18_vot', None) dataset = get_dataset('vot') return trackers, dataset
def atom_nfs_uav(): # Run three runs of ATOM on NFS and UAV datasets trackers = trackerlist('atom', 'default', range(3)) dataset = get_dataset('nfs', 'uav') return trackers, dataset
def dimp50_lasot(): trackers = trackerlist('dimp', 'super_dimp', range(1)) dataset = get_dataset('lasot') return trackers, dataset