Spaces:
Runtime error
Runtime error
import os | |
import numpy as np | |
import json | |
from PIL import Image | |
DATA_PATH = 'datasets/crowdhuman/' | |
OUT_PATH = DATA_PATH + 'annotations/' | |
SPLITS = ['val', 'train'] | |
DEBUG = False | |
def load_func(fpath): | |
print('fpath', fpath) | |
assert os.path.exists(fpath) | |
with open(fpath,'r') as fid: | |
lines = fid.readlines() | |
records =[json.loads(line.strip('\n')) for line in lines] | |
return records | |
if __name__ == '__main__': | |
if not os.path.exists(OUT_PATH): | |
os.mkdir(OUT_PATH) | |
for split in SPLITS: | |
data_path = DATA_PATH + split | |
out_path = OUT_PATH + '{}.json'.format(split) | |
out = {'images': [], 'annotations': [], 'categories': [{'id': 1, 'name': 'person'}]} | |
ann_path = DATA_PATH + 'annotation_{}.odgt'.format(split) | |
anns_data = load_func(ann_path) | |
image_cnt = 0 | |
ann_cnt = 0 | |
video_cnt = 0 | |
for ann_data in anns_data: | |
image_cnt += 1 | |
file_path = DATA_PATH + 'CrowdHuman_{}/'.format(split) + '{}.jpg'.format(ann_data['ID']) | |
im = Image.open(file_path) | |
image_info = {'file_name': '{}.jpg'.format(ann_data['ID']), | |
'id': image_cnt, | |
'height': im.size[1], | |
'width': im.size[0]} | |
out['images'].append(image_info) | |
if split != 'test': | |
anns = ann_data['gtboxes'] | |
for i in range(len(anns)): | |
ann_cnt += 1 | |
fbox = anns[i]['fbox'] | |
ann = {'id': ann_cnt, | |
'category_id': 1, | |
'image_id': image_cnt, | |
'track_id': -1, | |
'bbox_vis': anns[i]['vbox'], | |
'bbox': fbox, | |
'area': fbox[2] * fbox[3], | |
'iscrowd': 1 if 'extra' in anns[i] and \ | |
'ignore' in anns[i]['extra'] and \ | |
anns[i]['extra']['ignore'] == 1 else 0} | |
out['annotations'].append(ann) | |
print('loaded {} for {} images and {} samples'.format(split, len(out['images']), len(out['annotations']))) | |
json.dump(out, open(out_path, 'w')) |