コード例 #1
0
ファイル: cf_demo.py プロジェクト: 1374207430/pyCFTrackers
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'))
コード例 #2
0
ファイル: add_a_cf_tracker.py プロジェクト: ch135/pyCFTrack
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()
コード例 #3
0
        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']=[]
        for gt in gts:
            otb100_results[data_name]['gts'].append(list(gt.astype(np.int)))

        kcf_gray_preds=tracker_kcf_gray.tracking()
        otb100_results[data_name]['kcf_gray_preds']=[]
        for kcf_gray_pred in kcf_gray_preds:
            otb100_results[data_name]['kcf_gray_preds'].append(list(kcf_gray_pred.astype(np.int)))
        print('kcf gray done!')

        kcf_hog_preds=tracker_kcf_hog.tracking()
        otb100_results[data_name]['kcf_hog_preds'] = []
        for kcf_hog_pred in kcf_hog_preds:
            otb100_results[data_name]['kcf_hog_preds'].append(list(kcf_hog_pred.astype(np.int)))
        print('kcf hog done!')

        dcf_gray_preds=tracker_dcf_gray.tracking()
        otb100_results[data_name]['dcf_gray_preds'] = []
        for dcf_gray_pred in dcf_gray_preds:
            otb100_results[data_name]['dcf_gray_preds'].append(list(dcf_gray_pred.astype(np.int)))
コード例 #4
0
ファイル: cf_demo.py プロジェクト: ch135/pyCFTrack
            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'))

            fpss.append(np.float(fps))
            apses.append(np.float(apce))
            psrs.append(np.float(psr))
            fmaxs.append(np.float(fmax))
            aucs.append(np.float(auc))
            precisions.append(np.float(precision))