diff --git a/prepare_data/create_dataset_yolo_format.py b/prepare_data/create_dataset_yolo_format.py index 7b2b23a1..02542238 100644 --- a/prepare_data/create_dataset_yolo_format.py +++ b/prepare_data/create_dataset_yolo_format.py @@ -1,3 +1,4 @@ + import os import shutil @@ -6,19 +7,21 @@ DATA_OUT_DIR = os.path.join('.', 'data') -for set_ in ['train', 'validation', 'test']: +for set_ in ['images', 'labels']: for dir_ in [os.path.join(DATA_OUT_DIR, set_), - os.path.join(DATA_OUT_DIR, set_, 'imgs'), - os.path.join(DATA_OUT_DIR, set_, 'anns')]: + os.path.join(DATA_OUT_DIR, set_, 'train'), + os.path.join(DATA_OUT_DIR, set_, 'test'), + os.path.join(DATA_OUT_DIR, set_, 'validation')]: if os.path.exists(dir_): shutil.rmtree(dir_) os.mkdir(dir_) -alpaca_id = '/m/0pcr' +Tennis_ball_id = '/m/0pcr' +class_names = 'Alpacha' -train_bboxes_filename = os.path.join('.', 'oidv6-train-annotations-bbox.csv') -validation_bboxes_filename = os.path.join('.', 'validation-annotations-bbox.csv') -test_bboxes_filename = os.path.join('.', 'test-annotations-bbox.csv') +train_bboxes_filename = os.path.join('.', 'data_all/boxes/oidv6-train-annotations-bbox.csv') +validation_bboxes_filename = os.path.join('.', 'data_all/boxes/validation-annotations-bbox.csv') +test_bboxes_filename = os.path.join('.', 'data_all/boxes/test-annotations-bbox.csv') for j, filename in enumerate([train_bboxes_filename, validation_bboxes_filename, test_bboxes_filename]): @@ -28,11 +31,11 @@ line = f.readline() while len(line) != 0: id, _, class_name, _, x1, x2, y1, y2, _, _, _, _, _ = line.split(',')[:13] - if class_name in [alpaca_id]: - if not os.path.exists(os.path.join(DATA_OUT_DIR, set_, 'imgs', '{}.jpg'.format(id))): - shutil.copy(os.path.join(DATA_ALL_DIR, '{}.jpg'.format(id)), - os.path.join(DATA_OUT_DIR, set_, 'imgs', '{}.jpg'.format(id))) - with open(os.path.join(DATA_OUT_DIR, set_, 'anns', '{}.txt'.format(id)), 'a') as f_ann: + if class_name in [Tennis_ball_id]: + if not os.path.exists(os.path.join(DATA_OUT_DIR, f'images/{set_}', f'{id}.jpg')): + shutil.copy(os.path.join(DATA_ALL_DIR,set_, class_names,f'{id}.jpg'), + os.path.join(DATA_OUT_DIR, f'images/{set_}', f'{id}.jpg')) + with open(os.path.join(DATA_OUT_DIR, f'labels/{set_}', f'{id}.txt'), 'a') as f_ann: # class_id, xc, yx, w, h x1, x2, y1, y2 = [float(j) for j in [x1, x2, y1, y2]] xc = (x1 + x2) / 2