首页 > 编程语言 > 详细

Python script to package the information of tracking benchmarks like LaSOT and GOT-10k into json files for Siamese network based trackers

时间:2019-08-13 09:09:29      阅读:167      评论:0      收藏:0      [点我收藏+]
############################################################################################
####                                Fot LaSOT dataset 
############################################################################################
import os
import numpy as np 
import json
import pdb 

LaSOT_path = "/home/wangxiao/Downloads/pysot/testing_dataset/LaSOT/"
video_files = os.listdir(LaSOT_path)
video_files = np.sort(video_files)

## use this class to avoid some array or other format issues in json. 
class NumpyEncoder(json.JSONEncoder):
    """ Special json encoder for numpy types """
    def default(self, obj):
        if isinstance(obj, (np.int_, np.intc, np.intp, np.int8, np.int16, np.int32, np.int64, np.uint8, np.uint16, np.uint32, np.uint64)):
            return int(obj)
        elif isinstance(obj, (np.float_, np.float16, np.float32, np.float64)):
            return float(obj)
        elif isinstance(obj, (np.ndarray,)): #### This is the fix
            return obj.tolist()
        return json.JSONEncoder.default(self, obj)


dict = {}

# for idx in range(len(video_files)): 
for idx in range(5): ## for test this code work or not. 
    video_name = video_files[idx]
    img_path = LaSOT_path + video_name + /img/
    gt_path  = LaSOT_path + video_name + /groundtruth.txt

    print("==>> video Name: ", video_name, " current-index/total: ", idx, "/", len(video_files), ", please wait ... ")
    
    img_files = sorted([p for p in os.listdir(img_path) if os.path.splitext(p)[1] == .jpg])

    # pdb.set_trace()

    gt_files  = np.loadtxt(gt_path, delimiter=,) 
    init_rect = gt_files[0]
    init_rect_first = init_rect.tolist()
    
    # pdb.set_trace()
    img_names_list = []
    gt_files_list = []

    #### for each image and ground truth 
    for img_idx in range(len(img_files)): 
        img_names = video_name + /img/ + img_files[img_idx]
        img_names_list.append(img_names)
        gt_files_list.append(gt_files[img_idx])
    
    # pdb.set_trace()
    
    #### collect and save into one dict. 
    dict_collect = {video_dir: video_name, init_rect: init_rect_first, img_names: img_names_list, gt_rect: gt_files_list}
    dict[video_name] = dict_collect


dumped = json.dumps(dict, cls=NumpyEncoder) 
with open(LaSOT_test.json, w+) as f:
    json.dump(dumped, f)

print("==>> Done !")

file = open(LaSOT_test.json,r,encoding=utf-8)
benchmark_info = json.load(file)
print(benchmark_info)

 

Python script to package the information of tracking benchmarks like LaSOT and GOT-10k into json files for Siamese network based trackers

原文:https://www.cnblogs.com/wangxiaocvpr/p/11343653.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!