Safemotion Lib
Loading...
Searching...
No Matches
vehicleid.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
8import random
9
10from .bases import ImageDataset
11from ..datasets import DATASET_REGISTRY
12
13
14@DATASET_REGISTRY.register()
16 """VehicleID.
17
18 Reference:
19 Liu et al. Deep relative distance learning: Tell the difference between similar vehicles. CVPR 2016.
20
21 URL: `<https://pkuml.org/resources/pku-vehicleid.html>`_
22
23 Train dataset statistics:
24 - identities: 13164.
25 - images: 113346.
26 """
27 dataset_dir = "vehicleid"
28 dataset_name = "vehicleid"
29
30 def __init__(self, root='datasets', test_list='', **kwargs):
32
33 self.image_dir = osp.join(self.dataset_dirdataset_dir, 'image')
34 self.train_list = osp.join(self.dataset_dirdataset_dir, 'train_test_split/train_list.txt')
35 if test_list:
36 self.test_list = test_list
37 else:
38 self.test_list = osp.join(self.dataset_dirdataset_dir, 'train_test_split/test_list_13164.txt')
39
40 required_files = [
42 self.image_dir,
43 self.train_list,
44 self.test_list,
45 ]
46 self.check_before_run(required_files)
47
48 train = self.process_dir(self.train_list, is_train=True)
49 query, gallery = self.process_dir(self.test_list, is_train=False)
50
51 super(VehicleID, self).__init__(train, query, gallery, **kwargs)
52
53 def process_dir(self, list_file, is_train=True):
54 img_list_lines = open(list_file, 'r').readlines()
55
56 dataset = []
57 for idx, line in enumerate(img_list_lines):
58 line = line.strip()
59 vid = int(line.split(' ')[1])
60 imgid = line.split(' ')[0]
61 img_path = osp.join(self.image_dir, imgid + '.jpg')
62 if is_train:
63 vid = self.dataset_name + "_" + str(vid)
64 dataset.append((img_path, vid, int(imgid)))
65
66 if is_train: return dataset
67 else:
68 random.shuffle(dataset)
69 vid_container = set()
70 query = []
71 gallery = []
72 for sample in dataset:
73 if sample[1] not in vid_container:
74 vid_container.add(sample[1])
75 gallery.append(sample)
76 else:
77 query.append(sample)
78
79 return query, gallery
80
81
82@DATASET_REGISTRY.register()
84 """VehicleID.
85 Small test dataset statistics:
86 - identities: 800.
87 - images: 6493.
88 """
89
90 def __init__(self, root='datasets', **kwargs):
91 dataset_dir = osp.join(root, self.dataset_dirdataset_dir)
92 self.test_listtest_list = osp.join(dataset_dir, 'train_test_split/test_list_800.txt')
93
94 super(SmallVehicleID, self).__init__(root, self.test_listtest_list, **kwargs)
95
96
97@DATASET_REGISTRY.register()
99 """VehicleID.
100 Medium test dataset statistics:
101 - identities: 1600.
102 - images: 13377.
103 """
104
105 def __init__(self, root='datasets', **kwargs):
106 dataset_dir = osp.join(root, self.dataset_dirdataset_dir)
107 self.test_listtest_list = osp.join(dataset_dir, 'train_test_split/test_list_1600.txt')
108
109 super(MediumVehicleID, self).__init__(root, self.test_listtest_list, **kwargs)
110
111
112@DATASET_REGISTRY.register()
114 """VehicleID.
115 Large test dataset statistics:
116 - identities: 2400.
117 - images: 19777.
118 """
119
120 def __init__(self, root='datasets', **kwargs):
121 dataset_dir = osp.join(root, self.dataset_dirdataset_dir)
122 self.test_listtest_list = osp.join(dataset_dir, 'train_test_split/test_list_2400.txt')
123
124 super(LargeVehicleID, self).__init__(root, self.test_listtest_list, **kwargs)
check_before_run(self, required_files)
Definition bases.py:113
__init__(self, root='datasets', **kwargs)
Definition vehicleid.py:120
__init__(self, root='datasets', **kwargs)
Definition vehicleid.py:105
__init__(self, root='datasets', **kwargs)
Definition vehicleid.py:90
process_dir(self, list_file, is_train=True)
Definition vehicleid.py:53
__init__(self, root='datasets', test_list='', **kwargs)
Definition vehicleid.py:30