From 822d1ee146bf2ddea08eb03f7be31049a403f067 Mon Sep 17 00:00:00 2001 From: MasterBin-IIAU Date: Fri, 26 Mar 2021 11:25:55 +0800 Subject: [PATCH] small fix evaluation --- lib/test/evaluation/tracker.py | 13 +----- tracking/analysis_results.py | 11 ++--- tracking/analysis_results_ITP.py | 28 ----------- tracking/pre_read_datasets.py | 79 -------------------------------- 4 files changed, 7 insertions(+), 124 deletions(-) delete mode 100644 tracking/analysis_results_ITP.py delete mode 100644 tracking/pre_read_datasets.py diff --git a/lib/test/evaluation/tracker.py b/lib/test/evaluation/tracker.py index 66089ba..289ec45 100644 --- a/lib/test/evaluation/tracker.py +++ b/lib/test/evaluation/tracker.py @@ -8,7 +8,7 @@ from lib.utils.lmdb_utils import decode_img -def trackerlist(name: str, parameter_name: str, run_ids = None, display_name: str = None, +def trackerlist(name: str, parameter_name: str, dataset_name: str, run_ids = None, display_name: str = None, result_only=False): """Generate list of trackers. args: @@ -19,7 +19,7 @@ def trackerlist(name: str, parameter_name: str, run_ids = None, display_name: st """ if run_ids is None or isinstance(run_ids, int): run_ids = [run_ids] - return [Tracker(name, parameter_name, run_id, display_name, result_only) for run_id in run_ids] + return [Tracker(name, parameter_name, dataset_name, run_id, display_name, result_only) for run_id in run_ids] class Tracker: @@ -129,15 +129,6 @@ def _store_outputs(tracker_out: dict, defaults=None): _store_outputs(out, init_default) for frame_num, frame_path in enumerate(seq.frames[1:], start=1): - while True: - if not self.pause_mode: - break - elif self.step: - self.step = False - break - else: - time.sleep(0.1) - image = self._read_image(frame_path) start_time = time.time() diff --git a/tracking/analysis_results.py b/tracking/analysis_results.py index 7a9c94c..828cb0f 100644 --- a/tracking/analysis_results.py +++ b/tracking/analysis_results.py @@ -1,19 +1,18 @@ import _init_paths import matplotlib.pyplot as plt -plt.rcParams['figure.figsize'] = [14, 8] +plt.rcParams['figure.figsize'] = [8, 8] from lib.test.analysis.plot_results import plot_results, print_results, print_per_sequence_results -from lib.test.evaluation import Tracker, get_dataset, trackerlist +from lib.test.evaluation import get_dataset, trackerlist trackers = [] -trackers.extend(trackerlist(name='stark_s', parameter_name='baseline', - run_ids=None, display_name='STARK-ST50')) +trackers.extend(trackerlist(name='stark_st', parameter_name='baseline_R101', dataset_name='lasot', + run_ids=None, display_name='STARK-ST101')) dataset = get_dataset('lasot') -# dataset = get_dataset('otb') -plot_results(trackers, dataset, 'LaSOT', merge_results=True, plot_types=('success'), +plot_results(trackers, dataset, 'LaSOT', merge_results=True, plot_types=('success', 'norm_prec'), skip_missing_seq=False, force_evaluation=True, plot_bin_gap=0.05) print_results(trackers, dataset, 'LaSOT', merge_results=True, plot_types=('success', 'prec', 'norm_prec')) # print_per_sequence_results(trackers, dataset, report_name="debug") diff --git a/tracking/analysis_results_ITP.py b/tracking/analysis_results_ITP.py deleted file mode 100644 index dc468d9..0000000 --- a/tracking/analysis_results_ITP.py +++ /dev/null @@ -1,28 +0,0 @@ -import _init_paths -import argparse -from lib.test.analysis.plot_results import print_results -from lib.test.evaluation import get_dataset, trackerlist - - -def parse_args(): - """ - args for evaluation. - """ - parser = argparse.ArgumentParser(description='Parse args for training') - # for train - parser.add_argument('--script', type=str, help='training script name') - parser.add_argument('--config', type=str, default='baseline', help='yaml configure file name') - - args = parser.parse_args() - - return args - - -if __name__ == "__main__": - args = parse_args() - trackers = [] - trackers.extend(trackerlist(args.script, args.config, None, args.config)) - - dataset = get_dataset('lasot_lmdb') - - print_results(trackers, dataset, 'LaSOT', merge_results=True, plot_types=('success', 'prec', 'norm_prec')) \ No newline at end of file diff --git a/tracking/pre_read_datasets.py b/tracking/pre_read_datasets.py deleted file mode 100644 index 31ae985..0000000 --- a/tracking/pre_read_datasets.py +++ /dev/null @@ -1,79 +0,0 @@ -import _init_paths -import multiprocessing as mp -import argparse -import os -from lib.utils.lmdb_utils import decode_str -import time -import json - - -def parse_args(): - """ - args for training. - """ - parser = argparse.ArgumentParser(description='Parse args for training') - parser.add_argument('--data_dir', type=str, help='directory where lmdb data is located') - parser.add_argument('--dataset_str', type=str, help="which datasets to use") - args = parser.parse_args() - - return args - - -def get_trknet_dict(trknet_dir): - with open(os.path.join(trknet_dir, "seq_list.json"), "r") as f: - seq_list = json.loads(f.read()) - res_dict = {} - set_idx_pre = -1 - for set_idx, seq_name in seq_list: - if set_idx != set_idx_pre: - res_dict[set_idx] = "anno/%s.txt" % seq_name - set_idx_pre = set_idx - return res_dict - - -def target(lmdb_dir, key_name): - _ = decode_str(lmdb_dir, key_name) - - -if __name__ == "__main__": - args = parse_args() - data_dir = args.data_dir - dataset_str = args.dataset_str - key_dict = {"got10k_lmdb": "train/list.txt", - "lasot_lmdb": "LaSOTBenchmark.json", - "coco_lmdb": "annotations/instances_train2017.json", - "vid_lmdb": "cache.json"} - print("Ready to pre load datasets") - start = time.time() - ps = [] - datasets = [] - if 'g' in dataset_str: - datasets.append("got10k_lmdb") - if 'l' in dataset_str: - datasets.append("lasot_lmdb") - if 'c' in dataset_str: - datasets.append("coco_lmdb") - if 'v' in dataset_str: - datasets.append("vid_lmdb") - for dataset in datasets: - lmdb_dir = os.path.join(data_dir, dataset) - p = mp.Process(target=target, args=(lmdb_dir, key_dict[dataset])) - print("add %s %s to job queue" % (lmdb_dir, key_dict[dataset])) - ps.append(p) - # deal with trackingnet - if 't' in dataset_str: - trknet_dict = get_trknet_dict(os.path.join(data_dir, "trackingnet_lmdb")) - for set_idx, seq_path in trknet_dict.items(): - lmdb_dir = os.path.join(data_dir, "trackingnet_lmdb", "TRAIN_%d_lmdb" % set_idx) - p = mp.Process(target=target, args=(lmdb_dir, seq_path)) - print("add %s %s to job queue" % (lmdb_dir, seq_path)) - ps.append(p) - for p in ps: - p.start() - for p in ps: - p.join() - - print("Pre read over") - end = time.time() - hour = (end - start) / 3600 - print("it takes %.2f hours to pre-read data" % hour)