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)
parser.add_argument('--tracker_result_root', type=str, help='tracker result root') parser.add_argument('--result_dirs', nargs='+') parser.add_argument('--vis', dest='vis', action='store_true') parser.add_argument('--show_video_level', dest='show_video_level', action='store_true') parser.add_argument('--num', type=int, help='number of processes to eval', default=1) args = parser.parse_args() tracker_name = args.tracker_name tracker_params = args.tracker_params # root = args.dataset_dir assert len(tracker_params) > 0 args.num = min(args.num, len(tracker_params)) if 'VOT2018' == args.dataset: dataset = VOTDataset() ar_benchmark = AccuracyRobustnessBenchmark(dataset, tracker_name, tracker_params) ar_result = {} with Pool(processes=args.num) as pool: for ret in tqdm(pool.imap_unordered(ar_benchmark.eval, tracker_params), desc='eval ar', total=len(tracker_params), ncols=100): ar_result.update(ret) benchmark = EAOBenchmark(dataset, tracker_name, tracker_params) eao_result = {} with Pool(processes=args.num) as pool: for ret in tqdm(pool.imap_unordered(benchmark.eval, tracker_params), desc='eval eao', total=len(tracker_params), ncols=100): eao_result.update(ret) ar_benchmark.show_result(ar_result, eao_result, show_video_level=args.show_video_level) else: