import os from examples.pytracker import PyTracker from lib.utils import get_ground_truthes, plot_precision, plot_success from examples.otbdataset_config import OTBDatasetConfig if __name__ == '__main__': data_dir = '../dataset/test' data_names = sorted(os.listdir(data_dir)) print(data_names) dataset_config = OTBDatasetConfig() for data_name in data_names: data_path = os.path.join(data_dir, data_name) gts = get_ground_truthes(data_path) if data_name in dataset_config.frames.keys(): start_frame, end_frame = dataset_config.frames[data_name][:2] if data_name != 'David': gts = gts[start_frame - 1:end_frame] img_dir = os.path.join(data_path, 'img') tracker = PyTracker(img_dir, tracker_type='LDES', dataset_config=dataset_config) poses = tracker.tracking(verbose=True, video_path=os.path.join( '../results/CF', data_name + '_vis.avi')) plot_success(gts, poses, os.path.join('../results/CF', data_name + '_success.jpg')) plot_precision( gts, poses, os.path.join('../results/CF', data_name + '_precision.jpg'))
import json from lib.utils import get_ground_truthes,get_thresh_success_pair,get_thresh_precision_pair,calAUC from examples.otbdataset_config import OTBDatasetConfig if __name__ == '__main__': data_dir = '../dataset/OTB100' data_names = os.listdir(data_dir) otb100_results = {} dataset_config=OTBDatasetConfig() for data_name in data_names: print('data name:', data_name) otb100_results[data_name]={} data_path = os.path.join(data_dir, data_name) img_dir = os.path.join(data_path,'img') tracker_kcf_gray=PyTracker(img_dir, tracker_type='KCF_GRAY',dataset_config=dataset_config) tracker_kcf_hog=PyTracker(img_dir,tracker_type='KCF_HOG',dataset_config=dataset_config) tracker_dcf_gray=PyTracker(img_dir,tracker_type='DCF_GRAY',dataset_config=dataset_config) tracker_dcf_hog=PyTracker(img_dir,tracker_type='DCF_HOG',dataset_config=dataset_config) tracker_mosse=PyTracker(img_dir,tracker_type='MOSSE',dataset_config=dataset_config) tracker_csk=PyTracker(img_dir,tracker_type='CSK',dataset_config=dataset_config) tracker_kcf_cn=PyTracker(img_dir,tracker_type='KCF_CN',dataset_config=dataset_config) tracker_kcf_pyECO_cn=PyTracker(img_dir,tracker_type='KCF_pyECO_CN',dataset_config=dataset_config) tracker_kcf_pyECO_hog=PyTracker(img_dir,tracker_type='KCF_pyECO_HOG',dataset_config=dataset_config) tracker_cn=PyTracker(img_dir,tracker_type='CN',dataset_config=dataset_config) gts=get_ground_truthes(data_path) if data_name in dataset_config.frames.keys(): start_frame,end_frame=dataset_config.frames[data_name][:2] if data_name!='David': gts = gts[start_frame - 1:end_frame] otb100_results[data_name]['gts']=[]
import os from examples.pytracker import PyTracker from lib.utils import get_ground_truthes, plot_precision, plot_success from examples.otbdataset_config import OTBDatasetConfig if __name__ == '__main__': data_dir = '../dataset/test' data_names = sorted(os.listdir(data_dir)) print(data_names) dataset_config = OTBDatasetConfig() for data_name in data_names: data_path = os.path.join(data_dir, data_name) gts = get_ground_truthes(data_path) if data_name in dataset_config.frames.keys(): start_frame, end_frame = dataset_config.frames[data_name][:2] if data_name != 'David': gts = gts[start_frame - 1:end_frame] img_dir = os.path.join(data_path, 'img') tracker = PyTracker(img_dir, tracker_type='MKCFup', dataset_config=dataset_config) poses = tracker.tracking(verbose=True, video_path=os.path.join( '../results/CF', data_name + '_vis.avi')) plot_success(gts, poses, os.path.join('../results/CF', data_name + '_success.jpg')) plot_precision( gts, poses, os.path.join('../results/CF', data_name + '_precision.jpg'))
def add_a_tracker(results_json_path, tracker_type, dst_json_path): data_dir = '../dataset/OTB100' data_names = os.listdir(data_dir) f = open(results_json_path, 'r') otb100_results = json.load(f) dataset_config = OTBDatasetConfig() for data_name in data_names: print('data name:', data_name) data_path = os.path.join(data_dir, data_name) img_dir = os.path.join(data_path, 'img') tracker = PyTracker(img_dir, tracker_type=tracker_type, dataset_config=dataset_config) gts = get_ground_truthes(data_path) if data_name in dataset_config.frames.keys(): start_frame, end_frame = dataset_config.frames[data_name][:2] if data_name != 'David': gts = gts[start_frame - 1:end_frame] otb100_results[data_name]['gts'] = [] for gt in gts: otb100_results[data_name]['gts'].append(list(gt.astype(np.int))) tracker_preds = tracker.tracking() otb100_results[data_name][tracker_type] = [] for tracker_pred in tracker_preds: otb100_results[data_name][tracker_type].append( list(tracker_pred.astype(np.int))) threshes, precisions_tracker = get_thresh_precision_pair( gts, tracker_preds) idx20 = [i for i, x in enumerate(threshes) if x == 20][0] plt.plot(threshes, precisions_tracker, label=tracker_type + ' ' + str(precisions_tracker[idx20])[:5]) plt.title(data_name + ' Precision') plt.xlabel('thresh') plt.ylabel('precision') plt.legend() if not os.path.exists('../results/tmp'): print('test') os.mkdir('../results/tmp/') plt.savefig('../results/tmp/' + data_name + '_precision.jpg') plt.clf() threshes, successes_tracker = get_thresh_success_pair( gts, tracker_preds) plt.plot(threshes, successes_tracker, label=tracker_type + ' ' + str(calAUC(successes_tracker))[:5]) plt.title(data_name + ' Success') plt.xlabel('thresh') plt.ylabel('success') plt.legend() plt.savefig('../results/tmp/' + data_name + '_success.jpg') plt.clf() json_content = json.dumps(otb100_results, default=str) f = open(dst_json_path, 'w') f.write(json_content) f.close()
# 'MKCFup-LP','MCCTH-Staple','ECO','ECO-HC','CSRDCF','CSRDCF-LP', 'Staple'] tracker_types = ["BACF"] np.set_printoptions(precision=3) for tracker_type in tracker_types: fpss = apses = psrs = fmaxs = aucs = precisions = [] for data_name in data_names: data_path = os.path.join(data_dir, data_name) gts = get_ground_truthes(data_path) if data_name in dataset_config.frames.keys(): start_frame, end_frame = dataset_config.frames[data_name][:2] if data_name != 'David': gts = gts[start_frame - 1:end_frame] img_dir = os.path.join(data_path, 'img') tracker = PyTracker(img_dir, tracker_type=tracker_type, dataset_config=dataset_config) result_path = "../results/CF/{0}/{1}/{2}".format( tracker_type, dataset, data_name) if not os.path.exists(result_path): os.makedirs(result_path) poses, fps, apce, psr, fmax = tracker.tracking( verbose=True, video_path=os.path.join(result_path, data_name + '.avi')) auc = plot_success( gts, poses, os.path.join(result_path, data_name + '_success.jpg')) precision = plot_precision( gts, poses, os.path.join(result_path, data_name + '_precision.jpg'))
# Identifying the path to a particular file. data_path = os.path.join(data_dir, data_name) # Getting the ground_truth in the form of an np array gts = get_ground_truthes(data_path) # Why is it? if data_name in dataset_config.frames.keys(): start_frame, end_frame = dataset_config.frames[data_name][:2] if data_name != 'David': gts = gts[start_frame - 1:end_frame] # Identifying the directory consisting of the images. img_dir = os.path.join(data_path, 'img') # Tracker is defined (STRCF is used here.) tracker = PyTracker(img_dir, tracker_type='STRCF', dataset_config=dataset_config) # tracking method returns the coordinates of the bounding boxes in the furthur frames poses = tracker.tracking(verbose=True, video_path=os.path.join( '../results/CF', data_name + '_vis.avi')) plot_success(gts, poses, os.path.join('../results/CF', data_name + '_success.jpg')) plot_precision( gts, poses, os.path.join('../results/CF', data_name + '_precision.jpg'))