init commit of samurai
This commit is contained in:
211
lib/test/evaluation/lasotextensionsubsetdataset.py
Normal file
211
lib/test/evaluation/lasotextensionsubsetdataset.py
Normal file
@@ -0,0 +1,211 @@
|
||||
import numpy as np
|
||||
from lib.test.evaluation.data import Sequence, BaseDataset, SequenceList
|
||||
from lib.test.utils.load_text import load_text
|
||||
|
||||
|
||||
class LaSOTExtensionSubsetDataset(BaseDataset):
|
||||
"""
|
||||
LaSOT test set consisting of 280 videos (see Protocol-II in the LaSOT paper)
|
||||
Publication:
|
||||
LaSOT: A High-quality Large-scale Single Object Tracking Benchmark
|
||||
Heng Fan, Hexin Bai, Liting Lin, Fan Yang, Peng Chu, Ge Deng, Sijia Yu, Harshit, Mingzhen Huang, Juehuan Liu,
|
||||
Yong Xu, Chunyuan Liao, Lin Yuan, Haibin Ling
|
||||
IJCV, 2020
|
||||
https://arxiv.org/pdf/2009.03465.pdf
|
||||
Download the dataset from http://vision.cs.stonybrook.edu/~lasot/download.html
|
||||
"""
|
||||
def __init__(self):
|
||||
super().__init__()
|
||||
self.base_path = self.env_settings.lasot_extension_subset_path
|
||||
self.sequence_list = self._get_sequence_list()
|
||||
self.clean_list = self.clean_seq_list()
|
||||
|
||||
def clean_seq_list(self):
|
||||
clean_lst = []
|
||||
for i in range(len(self.sequence_list)):
|
||||
cls, _ = self.sequence_list[i].split('-')
|
||||
clean_lst.append(cls)
|
||||
return clean_lst
|
||||
|
||||
def get_sequence_list(self):
|
||||
return SequenceList([self._construct_sequence(s) for s in self.sequence_list])
|
||||
|
||||
def _construct_sequence(self, sequence_name):
|
||||
class_name = sequence_name.split('-')[0]
|
||||
anno_path = '{}/{}/{}/groundtruth.txt'.format(self.base_path, class_name, sequence_name)
|
||||
|
||||
ground_truth_rect = load_text(str(anno_path), delimiter=',', dtype=np.float64)
|
||||
|
||||
occlusion_label_path = '{}/{}/{}/full_occlusion.txt'.format(self.base_path, class_name, sequence_name)
|
||||
|
||||
# NOTE: pandas backed seems super super slow for loading occlusion/oov masks
|
||||
full_occlusion = load_text(str(occlusion_label_path), delimiter=',', dtype=np.float64, backend='numpy')
|
||||
|
||||
out_of_view_label_path = '{}/{}/{}/out_of_view.txt'.format(self.base_path, class_name, sequence_name)
|
||||
out_of_view = load_text(str(out_of_view_label_path), delimiter=',', dtype=np.float64, backend='numpy')
|
||||
|
||||
target_visible = np.logical_and(full_occlusion == 0, out_of_view == 0)
|
||||
|
||||
frames_path = '{}/{}/{}/img'.format(self.base_path, class_name, sequence_name)
|
||||
|
||||
frames_list = ['{}/{:08d}.jpg'.format(frames_path, frame_number) for frame_number in range(1, ground_truth_rect.shape[0] + 1)]
|
||||
|
||||
target_class = class_name
|
||||
return Sequence(sequence_name, frames_list, 'lasot_extension_subset', ground_truth_rect.reshape(-1, 4),
|
||||
object_class=target_class, target_visible=target_visible)
|
||||
|
||||
def __len__(self):
|
||||
return len(self.sequence_list)
|
||||
|
||||
def _get_sequence_list(self):
|
||||
sequence_list = ['atv-1',
|
||||
'atv-2',
|
||||
'atv-3',
|
||||
'atv-4',
|
||||
'atv-5',
|
||||
'atv-6',
|
||||
'atv-7',
|
||||
'atv-8',
|
||||
'atv-9',
|
||||
'atv-10',
|
||||
'badminton-1',
|
||||
'badminton-2',
|
||||
'badminton-3',
|
||||
'badminton-4',
|
||||
'badminton-5',
|
||||
'badminton-6',
|
||||
'badminton-7',
|
||||
'badminton-8',
|
||||
'badminton-9',
|
||||
'badminton-10',
|
||||
'cosplay-1',
|
||||
'cosplay-10',
|
||||
'cosplay-2',
|
||||
'cosplay-3',
|
||||
'cosplay-4',
|
||||
'cosplay-5',
|
||||
'cosplay-6',
|
||||
'cosplay-7',
|
||||
'cosplay-8',
|
||||
'cosplay-9',
|
||||
'dancingshoe-1',
|
||||
'dancingshoe-2',
|
||||
'dancingshoe-3',
|
||||
'dancingshoe-4',
|
||||
'dancingshoe-5',
|
||||
'dancingshoe-6',
|
||||
'dancingshoe-7',
|
||||
'dancingshoe-8',
|
||||
'dancingshoe-9',
|
||||
'dancingshoe-10',
|
||||
'footbag-1',
|
||||
'footbag-2',
|
||||
'footbag-3',
|
||||
'footbag-4',
|
||||
'footbag-5',
|
||||
'footbag-6',
|
||||
'footbag-7',
|
||||
'footbag-8',
|
||||
'footbag-9',
|
||||
'footbag-10',
|
||||
'frisbee-1',
|
||||
'frisbee-2',
|
||||
'frisbee-3',
|
||||
'frisbee-4',
|
||||
'frisbee-5',
|
||||
'frisbee-6',
|
||||
'frisbee-7',
|
||||
'frisbee-8',
|
||||
'frisbee-9',
|
||||
'frisbee-10',
|
||||
'jianzi-1',
|
||||
'jianzi-2',
|
||||
'jianzi-3',
|
||||
'jianzi-4',
|
||||
'jianzi-5',
|
||||
'jianzi-6',
|
||||
'jianzi-7',
|
||||
'jianzi-8',
|
||||
'jianzi-9',
|
||||
'jianzi-10',
|
||||
'lantern-1',
|
||||
'lantern-2',
|
||||
'lantern-3',
|
||||
'lantern-4',
|
||||
'lantern-5',
|
||||
'lantern-6',
|
||||
'lantern-7',
|
||||
'lantern-8',
|
||||
'lantern-9',
|
||||
'lantern-10',
|
||||
'misc-1',
|
||||
'misc-2',
|
||||
'misc-3',
|
||||
'misc-4',
|
||||
'misc-5',
|
||||
'misc-6',
|
||||
'misc-7',
|
||||
'misc-8',
|
||||
'misc-9',
|
||||
'misc-10',
|
||||
'opossum-1',
|
||||
'opossum-2',
|
||||
'opossum-3',
|
||||
'opossum-4',
|
||||
'opossum-5',
|
||||
'opossum-6',
|
||||
'opossum-7',
|
||||
'opossum-8',
|
||||
'opossum-9',
|
||||
'opossum-10',
|
||||
'paddle-1',
|
||||
'paddle-2',
|
||||
'paddle-3',
|
||||
'paddle-4',
|
||||
'paddle-5',
|
||||
'paddle-6',
|
||||
'paddle-7',
|
||||
'paddle-8',
|
||||
'paddle-9',
|
||||
'paddle-10',
|
||||
'raccoon-1',
|
||||
'raccoon-2',
|
||||
'raccoon-3',
|
||||
'raccoon-4',
|
||||
'raccoon-5',
|
||||
'raccoon-6',
|
||||
'raccoon-7',
|
||||
'raccoon-8',
|
||||
'raccoon-9',
|
||||
'raccoon-10',
|
||||
'rhino-1',
|
||||
'rhino-2',
|
||||
'rhino-3',
|
||||
'rhino-4',
|
||||
'rhino-5',
|
||||
'rhino-6',
|
||||
'rhino-7',
|
||||
'rhino-8',
|
||||
'rhino-9',
|
||||
'rhino-10',
|
||||
'skatingshoe-1',
|
||||
'skatingshoe-2',
|
||||
'skatingshoe-3',
|
||||
'skatingshoe-4',
|
||||
'skatingshoe-5',
|
||||
'skatingshoe-6',
|
||||
'skatingshoe-7',
|
||||
'skatingshoe-8',
|
||||
'skatingshoe-9',
|
||||
'skatingshoe-10',
|
||||
'wingsuit-1',
|
||||
'wingsuit-2',
|
||||
'wingsuit-3',
|
||||
'wingsuit-4',
|
||||
'wingsuit-5',
|
||||
'wingsuit-6',
|
||||
'wingsuit-7',
|
||||
'wingsuit-8',
|
||||
'wingsuit-9',
|
||||
'wingsuit-10']
|
||||
return sequence_list
|
Reference in New Issue
Block a user