|
import os |
|
import Augmentor |
|
import shutil |
|
from configs import * |
|
import uuid |
|
|
|
tasks = ["1", "2", "3", "4", "5", "6"] |
|
num_of_images = 100 |
|
|
|
shutil.rmtree(TEMP_DATA_DIR + "1/", ignore_errors=True) |
|
|
|
|
|
for task in ["1"]: |
|
shutil.rmtree(AUG_DATA_DIR + task, ignore_errors=True) |
|
|
|
for class_label in [ |
|
"Alzheimer Disease", |
|
"Cerebral Palsy", |
|
"Dystonia", |
|
"Essential Tremor", |
|
"Healthy", |
|
"Huntington Disease", |
|
"Parkinson Disease", |
|
]: |
|
if class_label != ".DS_Store": |
|
print("Augmenting images in class: ", class_label, " in Task ", task) |
|
|
|
if not os.path.exists(f"{TEMP_DATA_DIR}{task}/{class_label}/"): |
|
os.makedirs(f"{TEMP_DATA_DIR}{task}/{class_label}/") |
|
if os.path.exists(f"{RAW_DATA_DIR}{task}/{class_label}"): |
|
for file in os.listdir(f"{RAW_DATA_DIR}{task}/{class_label}"): |
|
shutil.copy( |
|
f"{RAW_DATA_DIR}{task}/{class_label}/{file}", |
|
f"{TEMP_DATA_DIR}{task}/{class_label}/{str(uuid.uuid4())}.png", |
|
) |
|
if os.path.exists(f"{EXTERNAL_DATA_DIR}{task}/{class_label}"): |
|
for file in os.listdir(f"{EXTERNAL_DATA_DIR}{task}/{class_label}"): |
|
shutil.copy( |
|
f"{EXTERNAL_DATA_DIR}{task}/{class_label}/{file}", |
|
f"{TEMP_DATA_DIR}{task}/{class_label}/{str(uuid.uuid4())}.png", |
|
) |
|
p = Augmentor.Pipeline( |
|
f"{TEMP_DATA_DIR}{task}/{class_label}", |
|
output_directory=f"{class_label}/", |
|
save_format="png", |
|
) |
|
p.flip_left_right(probability=0.8) |
|
p.zoom_random(probability=0.8, percentage_area=0.8) |
|
p.flip_top_bottom(probability=0.8) |
|
p.random_brightness(probability=0.8, min_factor=0.5, max_factor=1.5) |
|
p.random_contrast(probability=0.8, min_factor=0.5, max_factor=1.5) |
|
p.random_color(probability=0.8, min_factor=0.5, max_factor=1.5) |
|
p.rotate_random_90(probability=0.8) |
|
p.sample(num_of_images - len(p.augmentor_images)) |
|
|
|
|
|
if not os.path.exists(f"{AUG_DATA_DIR}{task}/"): |
|
os.makedirs(f"{AUG_DATA_DIR}{task}/") |
|
|
|
os.rename( |
|
f"{TEMP_DATA_DIR}{task}/{class_label}/{class_label}", |
|
f"{AUG_DATA_DIR}{task}/{class_label}", |
|
) |
|
|
|
number = 0 |
|
for file in os.listdir(f"{AUG_DATA_DIR}{task}/{class_label}"): |
|
number = int(number) + 1 |
|
if len(str(number)) == 1: |
|
number = "0" + str(number) |
|
os.rename( |
|
f"{AUG_DATA_DIR}{task}/{class_label}/{file}", |
|
f"{AUG_DATA_DIR}{task}/{class_label}/{number}.png", |
|
) |
|
|
|
shutil.rmtree(TEMP_DATA_DIR + task, ignore_errors=True) |
|
|