Safemotion Lib
Loading...
Searching...
No Matches
veriwild.py
Go to the documentation of this file.
1# encoding: utf-8
2"""
3@author: Jinkai Zheng
4@contact: 1315673509@qq.com
5"""
6
7import os.path as osp
8
9from .bases import ImageDataset
10from ..datasets import DATASET_REGISTRY
11
12
13@DATASET_REGISTRY.register()
15 """VeRi-Wild.
16
17 Reference:
18 Lou et al. A Large-Scale Dataset for Vehicle Re-Identification in the Wild. CVPR 2019.
19
20 URL: `<https://github.com/PKU-IMRE/VERI-Wild>`_
21
22 Train dataset statistics:
23 - identities: 30671.
24 - images: 277797.
25 """
26 dataset_dir = "VERI-Wild"
27 dataset_name = "veriwild"
28
29 def __init__(self, root='datasets', query_list='', gallery_list='', **kwargs):
31
32 self.image_dir = osp.join(self.dataset_dirdataset_dir, 'images')
33 self.train_list = osp.join(self.dataset_dirdataset_dir, 'train_test_split/train_list.txt')
34 self.vehicle_info = osp.join(self.dataset_dirdataset_dir, 'train_test_split/vehicle_info.txt')
35 if query_list and gallery_list:
36 self.query_list = query_list
37 self.gallery_list = gallery_list
38 else:
39 self.query_list = osp.join(self.dataset_dirdataset_dir, 'train_test_split/test_10000_query.txt')
40 self.gallery_list = osp.join(self.dataset_dirdataset_dir, 'train_test_split/test_10000.txt')
41
42 required_files = [
43 self.image_dir,
44 self.train_list,
45 self.query_list,
46 self.gallery_list,
47 self.vehicle_info,
48 ]
49 self.check_before_run(required_files)
50
52
53 train = self.process_dir(self.train_list)
54 query = self.process_dir(self.query_list, is_train=False)
55 gallery = self.process_dir(self.gallery_list, is_train=False)
56
57 super(VeRiWild, self).__init__(train, query, gallery, **kwargs)
58
59 def process_dir(self, img_list, is_train=True):
60 img_list_lines = open(img_list, 'r').readlines()
61
62 dataset = []
63 for idx, line in enumerate(img_list_lines):
64 line = line.strip()
65 vid = int(line.split('/')[0])
66 imgid = line.split('/')[1]
67 if is_train:
68 vid = self.dataset_name + "_" + str(vid)
69 dataset.append((self.imgid2imgpath[imgid], vid, int(self.imgid2camid[imgid])))
70
71 assert len(dataset) == len(img_list_lines)
72 return dataset
73
74 def process_vehicle(self, vehicle_info):
75 imgid2vid = {}
76 imgid2camid = {}
77 imgid2imgpath = {}
78 vehicle_info_lines = open(vehicle_info, 'r').readlines()
79
80 for idx, line in enumerate(vehicle_info_lines[1:]):
81 vid = line.strip().split('/')[0]
82 imgid = line.strip().split(';')[0].split('/')[1]
83 camid = line.strip().split(';')[1]
84 img_path = osp.join(self.image_dir, vid, imgid + '.jpg')
85 imgid2vid[imgid] = vid
86 imgid2camid[imgid] = camid
87 imgid2imgpath[imgid] = img_path
88
89 assert len(imgid2vid) == len(vehicle_info_lines) - 1
90 return imgid2vid, imgid2camid, imgid2imgpath
91
92
93@DATASET_REGISTRY.register()
95 """VeRi-Wild.
96 Small test dataset statistics:
97 - identities: 3000.
98 - images: 41861.
99 """
100
101 def __init__(self, root='datasets', **kwargs):
102 dataset_dir = osp.join(root, self.dataset_dirdataset_dir)
103 self.query_listquery_list = osp.join(dataset_dir, 'train_test_split/test_3000_query.txt')
104 self.gallery_listgallery_list = osp.join(dataset_dir, 'train_test_split/test_3000.txt')
105
106 super(SmallVeRiWild, self).__init__(root, self.query_listquery_list, self.gallery_listgallery_list, **kwargs)
107
108
109@DATASET_REGISTRY.register()
111 """VeRi-Wild.
112 Medium test dataset statistics:
113 - identities: 5000.
114 - images: 69389.
115 """
116
117 def __init__(self, root='datasets', **kwargs):
118 dataset_dir = osp.join(root, self.dataset_dirdataset_dir)
119 self.query_listquery_list = osp.join(dataset_dir, 'train_test_split/test_5000_query.txt')
120 self.gallery_listgallery_list = osp.join(dataset_dir, 'train_test_split/test_5000.txt')
121
122 super(MediumVeRiWild, self).__init__(root, self.query_listquery_list, self.gallery_listgallery_list, **kwargs)
123
124
125@DATASET_REGISTRY.register()
127 """VeRi-Wild.
128 Large test dataset statistics:
129 - identities: 10000.
130 - images: 138517.
131 """
132
133 def __init__(self, root='datasets', **kwargs):
134 dataset_dir = osp.join(root, self.dataset_dirdataset_dir)
135 self.query_listquery_list = osp.join(dataset_dir, 'train_test_split/test_10000_query.txt')
136 self.gallery_listgallery_list = osp.join(dataset_dir, 'train_test_split/test_10000.txt')
137
138 super(LargeVeRiWild, self).__init__(root, self.query_listquery_list, self.gallery_listgallery_list, **kwargs)
check_before_run(self, required_files)
Definition bases.py:113
__init__(self, root='datasets', **kwargs)
Definition veriwild.py:133
__init__(self, root='datasets', **kwargs)
Definition veriwild.py:117
__init__(self, root='datasets', **kwargs)
Definition veriwild.py:101
process_dir(self, img_list, is_train=True)
Definition veriwild.py:59
__init__(self, root='datasets', query_list='', gallery_list='', **kwargs)
Definition veriwild.py:29