Safemotion Lib
Loading...
Searching...
No Matches
lup.py
Go to the documentation of this file.
1#!/usr/bin/env python
2# -*- coding: utf-8 -*-
3# @Date : 2021-01-12 17:08:58
4# @Author : Dengpan Fu (t-defu@microsoft.com)
5
6import os
7import numpy as np
8import pickle, lmdb
9
10from .bases import ImageDataset
11from ..datasets import DATASET_REGISTRY
12
13
14@DATASET_REGISTRY.register()
16 """ Dataset class for Large Scale Unlabeled data in LMDB format
17 """
18 dir_name = 'lup'
19 def __init__(self, root='datasets', sub_name='lmdb_300_30', **kwargs):
20 self.base_root = root
21 self.sub_name = sub_name
22 self.data_root = os.path.join(self.base_root, self.dir_name, self.sub_name)
23 self.lmdb_path = os.path.join(self.data_root, 'lmdb')
24 self.key_path = os.path.join(self.data_root, 'keys.pkl')
25
26 required_files = [self.data_root, self.lmdb_path, self.key_path]
27 self.check_before_run(required_files)
28
29 with open(self.key_path, 'rb') as f:
30 data = pickle.load(f)
31
32 self.traintrain = []
33 self.pids = set()
34 for key, pid in zip(data['keys'], data['pids']):
35 self.traintrain.append([key, pid, 0])
36 self.pids.add(pid)
37 self.pids = sorted(list(self.pids))
38
39 super(LUP, self).__init__(self.traintrain, [], [], **kwargs)
40
41
42 def get_num_pids(self, data):
43 return len(self.pids)
44
45 def get_num_cams(self, data):
46 return 1
47
48 def parse_data(self, data):
49 return len(self.pids), 1
50
51 def show_test(self):
52 raise Exception('LUPerson dataset has no test split currently.')
check_before_run(self, required_files)
Definition bases.py:113
__init__(self, root='datasets', sub_name='lmdb_300_30', **kwargs)
Definition lup.py:19
get_num_pids(self, data)
Definition lup.py:42
get_num_cams(self, data)
Definition lup.py:45