Files
model-yolo-person-classify/datafolder/reid_dataset/marketduke_to_hdf5.py
T
2026-07-09 18:16:06 +09:00

32 lines
1.3 KiB
Python

import warnings
warnings.filterwarnings('ignore','.*conversion.*')
import os
import h5py
import numpy as np
from PIL import Image
from .import_MarketDuke import import_MarketDuke
def marketduke_to_hdf5(data_dir,dataset_name,save_dir=os.getcwd()):
phase_list = ['train','query','gallery']
dataset = import_MarketDuke(data_dir,dataset_name)
dt = h5py.special_dtype(vlen=str)
f = h5py.File(os.path.join(save_dir,dataset_name+'.hdf5'),'w')
for phase in phase_list:
grp = f.create_group(phase)
phase_dataset = dataset[phase_list.index(phase)]
for i in range(len(phase_dataset['data'])):
name = phase_dataset['data'][i][0].split('/')[-1].split('.')[0]
temp = grp.create_group(name)
temp.create_dataset('img',data=Image.open(phase_dataset['data'][i][0]))
temp.create_dataset('index',data=int(phase_dataset['data'][i][1]))
temp.create_dataset('id',data=phase_dataset['data'][i][2], dtype=dt)
temp.create_dataset('cam',data=int(phase_dataset['data'][i][3]))
ids = f.create_group('ids')
ids.create_dataset('train',data=np.array(dataset[0]['ids'],'S4'),dtype=dt)
ids.create_dataset('query',data=np.array(dataset[1]['ids'],'S4'),dtype=dt)
ids.create_dataset('gallery',data=np.array(dataset[2]['ids'],'S4'),dtype=dt)
f.close()