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 if dataset_name == 'otb': dataset = OTBDataset() elif dataset_name == 'nfs': dataset = NFSDataset() elif dataset_name == 'uav': dataset = UAVDataset() elif dataset_name == 'tpl': dataset = TPLDataset() elif dataset_name == 'tplnootb': dataset = TPLDatasetNoOtb() elif dataset_name == 'vot': dataset = VOTDataset() elif dataset_name == 'tn': dataset = TrackingNetDataset() elif dataset_name == 'gott': dataset = GOT10KDatasetTest() elif dataset_name == 'gotv': dataset = GOT10KDatasetVal() elif dataset_name == 'gotlv': dataset = GOT10KDatasetLTRVal() elif dataset_name == 'lasot': dataset = LaSOTDataset() else: raise ValueError('Unknown 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 run_tracker(tracker_name, tracker_param, run_id=None, dataset_name='otb', sequence=None, debug=0, threads=0): """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. """ if dataset_name == 'otb': dataset = OTBDataset() elif dataset_name == 'nfs': dataset = NFSDataset() elif dataset_name == 'uav': dataset = UAVDataset() elif dataset_name == 'tpl': dataset = TPLDataset() elif dataset_name == 'vot': dataset = VOTDataset() elif dataset_name == 'vot18': dataset = VOT18Dataset() elif dataset_name == 'otb_vot': dataset = OTB100Dataset() elif dataset_name == 'tn': dataset = TrackingNetDataset() elif dataset_name == 'gott': dataset = GOT10KDatasetTest() elif dataset_name == 'gotv': dataset = GOT10KDatasetVal() elif dataset_name == 'gotlv': dataset = GOT10KDatasetLTRVal() elif dataset_name == 'lasot': dataset = LaSOTDataset() else: raise ValueError('Unknown dataset name') if sequence is not None: dataset = [dataset[sequence]] trackers = [Tracker(tracker_name, tracker_param, run_id)] run_dataset(dataset, trackers, debug, threads)
def pack_trackingnet_results(tracker_name, param_name, run_id=None, output_name=None): """ Packs trackingnet results into a zip folder which can be directly uploaded to the evaluation server. The packed file is saved in the folder env_settings().tn_packed_results_path args: tracker_name - name of the tracker param_name - name of the parameter file run_id - run id for the tracker output_name - name of the packed zip file """ if output_name is None: if run_id is None: output_name = '{}_{}'.format(tracker_name, param_name) else: output_name = '{}_{}_{:03d}'.format(tracker_name, param_name, run_id) if env_settings().packed_results_path == '': raise RuntimeError('YOU HAVE NOT SETUP YOUR tn_packed_results_path in local.py!!!\n Go to "pytracking.evaluation.local" to set the path. ' 'Then try to run again.') output_path = os.path.join(env_settings().packed_results_path, tracker_name, output_name) results_path = env_settings().results_path tn_dataset = TrackingNetDataset() for seq in tn_dataset: seq_name = seq.name if run_id is None: seq_results_path = '{}/{}/{}/{}.txt'.format(results_path, tracker_name, param_name, seq_name) else: seq_results_path = '{}/{}/{}_{:03d}/{}.txt'.format(results_path, tracker_name, param_name, run_id, seq_name) results = np.loadtxt(seq_results_path, dtype=np.float64) if not os.path.exists(output_path): os.makedirs(output_path) np.savetxt('{}/{}.txt'.format(output_path, seq_name), results, delimiter=',', fmt='%.2f') # Generate ZIP file shutil.make_archive(output_path, 'zip', output_path) # Remove raw text files shutil.rmtree(output_path)