|
|
import os
|
|
|
from PIL import Image
|
|
|
from keras.preprocessing import image
|
|
|
from keras.preprocessing.image import ImageDataGenerator
|
|
|
|
|
|
BRANDON_ORIGINAL_DATASET_DIR = "C:\Ryan\PP stuff\\try1\Classification Data-20240212T032009Z-001\Classification Data\\Brandon"
|
|
|
MANUEL_ORIGINAL_DATASET_DIR = "C:\\Ryan\\PP stuff\\try1\\Classification Data-20240212T032009Z-001\\Classification Data\\Manuel"
|
|
|
BASE_DIR = "C:\\Ryan\\PP stuff\\try1\\face_recog"
|
|
|
|
|
|
|
|
|
train_dir = os.path.join(BASE_DIR, 'train')
|
|
|
validation_dir = os.path.join(BASE_DIR, 'validation')
|
|
|
test_dir = os.path.join(BASE_DIR, 'test')
|
|
|
|
|
|
train_bran_dir = os.path.join(train_dir, 'brandon')
|
|
|
train_man_dir = os.path.join(train_dir, 'manuel')
|
|
|
|
|
|
validation_bran_dir = os.path.join(validation_dir, 'brandon')
|
|
|
validation_man_dir = os.path.join(validation_dir, 'manuel')
|
|
|
|
|
|
test_bran_dir = os.path.join(test_dir, 'brandon')
|
|
|
test_man_dir = os.path.join(test_dir, 'manuel')
|
|
|
|
|
|
def resize():
|
|
|
target_size = (300, 350)
|
|
|
|
|
|
input_dir = "C:\Ryan\PersonalProject\\FriendRecog\\bot\images"
|
|
|
output_dir = "C:\\Ryan\\PersonalProject\\FriendRecog\\bot\\resized_images"
|
|
|
|
|
|
try:
|
|
|
for filename in os.listdir(input_dir):
|
|
|
|
|
|
input_path = os.path.join(input_dir, filename)
|
|
|
|
|
|
|
|
|
with Image.open(input_path) as img:
|
|
|
|
|
|
resized_img = img.resize(target_size)
|
|
|
|
|
|
|
|
|
output_path = os.path.join(output_dir, filename)
|
|
|
|
|
|
|
|
|
resized_img.save(output_path)
|
|
|
finally:
|
|
|
pass
|
|
|
|
|
|
def data_augmentation():
|
|
|
augmented_datagen = ImageDataGenerator(
|
|
|
rescale = 1. / 255,
|
|
|
rotation_range = 40,
|
|
|
width_shift_range = 0.2,
|
|
|
height_shift_range = 0.2,
|
|
|
shear_range = 0.2,
|
|
|
zoom_range = 0.2,
|
|
|
horizontal_flip = True,
|
|
|
fill_mode = "nearest")
|
|
|
augmented_generator = augmented_datagen.flow_from_directory(train_dir, target_size = (300, 350),
|
|
|
batch_size = 20,
|
|
|
class_mode = 'sparse')
|
|
|
|
|
|
augmented_dir = os.path.join(BASE_DIR, "augmented")
|
|
|
augmented_all = os.path.join(augmented_dir, "all")
|
|
|
os.mkdir(augmented_dir)
|
|
|
os.mkdir(augmented_all)
|
|
|
|
|
|
for i, (images, labels) in enumerate(augmented_generator):
|
|
|
if i >= 5:
|
|
|
break
|
|
|
for j in range(len(images)):
|
|
|
augmented_image = image.array_to_img(images[j])
|
|
|
filename = f"{i * len(images) + j}.png"
|
|
|
augmented_image_path = os.path.join(augmented_all, filename)
|
|
|
augmented_image.save(augmented_image_path) |