oguzakif's picture
init repo
d4b77ac
raw
history blame contribute delete
No virus
7.14 kB
import json
import os
import re
import numpy as np
import cv2
from glob import glob
from fire import Fire
def process(dataset_name):
with open(os.path.join(dataset_name, 'list.txt'), 'r') as f:
lines = f.readlines()
videos = [x.strip() for x in lines]
# if dataset_name == 'VOT2016':
meta_data = {}
tags = []
for video in videos:
with open(os.path.join(dataset_name, video, "groundtruth.txt"),'r') as f:
gt_traj = [list(map(float, x.strip().split(','))) for x in f.readlines()]
img_names = sorted(glob(os.path.join(dataset_name, video, 'color', '*.jpg')))
if len(img_names) == 0:
img_names = sorted(glob(os.path.join(dataset_name, video, '*.jpg')))
im = cv2.imread(img_names[0])
img_names = [x.split('/', 1)[1] for x in img_names]
# tag
if dataset_name in ['VOT2018', 'VOT2019']:
tag_file = os.path.join(dataset_name, video, 'camera_motion.tag')
if os.path.exists(tag_file):
with open(tag_file, 'r') as f:
camera_motion = [int(x.strip()) for x in f.readlines()]
camera_motion += [0] * (len(gt_traj) - len(camera_motion))
else:
print("File not exists: ", tag_file)
camera_motion = [] # [0] * len(gt_traj)
tag_file = os.path.join(dataset_name, video, 'illum_change.tag')
if os.path.exists(tag_file):
with open(tag_file, 'r') as f:
illum_change = [int(x.strip()) for x in f.readlines()]
illum_change += [0] * (len(gt_traj) - len(illum_change))
else:
print("File not exists: ", tag_file)
illum_change = [] # [0] * len(gt_traj)
tag_file = os.path.join(dataset_name, video, 'motion_change.tag')
if os.path.exists(tag_file):
with open(tag_file, 'r') as f:
motion_change = [int(x.strip()) for x in f.readlines()]
motion_change += [0] * (len(gt_traj) - len(motion_change))
else:
print("File not exists: ", tag_file)
motion_change = [] # [0] * len(gt_traj)
tag_file = os.path.join(dataset_name, video, 'size_change.tag')
if os.path.exists(tag_file):
with open(tag_file, 'r') as f:
size_change = [int(x.strip()) for x in f.readlines()]
size_change += [0] * (len(gt_traj) - len(size_change))
else:
print("File not exists: ", tag_file)
size_change = [] # [0] * len(gt_traj)
tag_file = os.path.join(dataset_name, video, 'occlusion.tag')
if os.path.exists(tag_file):
with open(tag_file, 'r') as f:
occlusion = [int(x.strip()) for x in f.readlines()]
occlusion += [0] * (len(gt_traj) - len(occlusion))
else:
print("File not exists: ", tag_file)
occlusion = [] # [0] * len(gt_traj)
img_files = os.path.join('VOT2019', )
meta_data[video] = {'video_dir': video,
'init_rect': gt_traj[0],
'img_names': img_names,
'width': im.shape[1],
'height': im.shape[0],
'gt_rect': gt_traj,
'camera_motion': camera_motion,
'illum_change': illum_change,
'motion_change': motion_change,
'size_change': size_change,
'occlusion': occlusion}
elif 'VOT2016' == dataset_name:
tag_file = os.path.join(dataset_name, video, 'camera_motion.label')
if os.path.exists(tag_file):
with open(tag_file, 'r') as f:
camera_motion = [int(x.strip()) for x in f.readlines()]
camera_motion += [0] * (len(gt_traj) - len(camera_motion))
else:
print("File not exists: ", tag_file)
camera_motion = [] # [0] * len(gt_traj)
tag_file = os.path.join(dataset_name, video, 'illum_change.label')
if os.path.exists(tag_file):
with open(tag_file, 'r') as f:
illum_change = [int(x.strip()) for x in f.readlines()]
illum_change += [0] * (len(gt_traj) - len(illum_change))
else:
print("File not exists: ", tag_file)
illum_change = [] # [0] * len(gt_traj)
tag_file = os.path.join(dataset_name, video, 'motion_change.label')
if os.path.exists(tag_file):
with open(tag_file, 'r') as f:
motion_change = [int(x.strip()) for x in f.readlines()]
motion_change += [0] * (len(gt_traj) - len(motion_change))
else:
print("File not exists: ", tag_file)
motion_change = [] # [0] * len(gt_traj)
tag_file = os.path.join(dataset_name, video, 'size_change.label')
if os.path.exists(tag_file):
with open(tag_file, 'r') as f:
size_change = [int(x.strip()) for x in f.readlines()]
size_change += [0] * (len(gt_traj) - len(size_change))
else:
print("File not exists: ", tag_file)
size_change = [] # [0] * len(gt_traj)
tag_file = os.path.join(dataset_name, video, 'occlusion.label')
if os.path.exists(tag_file):
with open(tag_file, 'r') as f:
occlusion = [int(x.strip()) for x in f.readlines()]
occlusion += [0] * (len(gt_traj) - len(occlusion))
else:
print("File not exists: ", tag_file)
occlusion = [] # [0] * len(gt_traj)
meta_data[video] = {'video_dir': video,
'init_rect': gt_traj[0],
'img_names': img_names,
'gt_rect': gt_traj,
'width': im.shape[1],
'height': im.shape[0],
'camera_motion': camera_motion,
'illum_change': illum_change,
'motion_change': motion_change,
'size_change': size_change,
'occlusion': occlusion}
else:
meta_data[video] = {'video_dir': video,
'init_rect': gt_traj[0],
'img_names': img_names,
'gt_rect': gt_traj,
'width': im.shape[1],
'height': im.shape[0]}
json.dump(meta_data, open(dataset_name+'.json', 'w'))
if __name__ == '__main__':
Fire(process)