| import lmdb | |
| import os | |
| from tqdm import tqdm | |
| import argparse | |
| parser = argparse.ArgumentParser(description='generate lmdb') | |
| # parser.add_argument('--base_dir', type=str, required=True, help='data directory.') | |
| # parser.add_argument('--result_file', type=str, required=True, help="result file.") | |
| args = parser.parse_args() | |
| # base_dir = args.base_dir | |
| # result_file = args.result_file | |
| # base_dir = "/data/sda/v-yanbi/iccv21/LittleBoy/data/got10k/" # replace it with your own path | |
| # result_file = "/data/sda/v-yanbi/iccv21/LittleBoy/data/got10k.namelist" | |
| # base_dir = "/data/sda/v-yanbi/iccv21/LittleBoy/data/lasot/" # replace it with your own path | |
| # result_file = "/data/sda/v-yanbi/iccv21/LittleBoy/data/lasot.namelist" | |
| # base_dir = "/data/sda/v-yanbi/iccv21/LittleBoy/data/vid/" # replace it with your own path | |
| # result_file = "/data/sda/v-yanbi/iccv21/LittleBoy/data/vid.namelist" | |
| # base_dir = "/data/sda/v-yanbi/iccv21/LittleBoy/data/coco/" # replace it with your own path | |
| # result_file = "/data/sda/v-yanbi/iccv21/LittleBoy/data/coco.namelist" | |
| base_dir = "/home/cx/cx3/GOT10K/" # replace it with your own path | |
| result_file = "/home/cx/cx3/got10k.namelist" | |
| namelist = [x.strip() for x in open(result_file).readlines()] | |
| print('number:', len(namelist)) | |
| if base_dir.endswith("/"): | |
| lmdb_fname = base_dir[:-1] + '_lmdb' | |
| else: | |
| lmdb_fname = base_dir + '_lmdb' | |
| env = lmdb.open(lmdb_fname, map_size=1024 ** 4) | |
| txn = env.begin(write=True) | |
| for i, t in enumerate(tqdm(namelist)): | |
| if i % 100000 == 0: | |
| txn.commit() | |
| txn = env.begin(write=True) | |
| with open(os.path.join(base_dir, t), 'rb') as fin: | |
| txn.put(key=t.encode(), value=fin.read()) | |
| txn.commit() | |
| env.close() | |