Path: blob/master/ASL Recognition with Deep Learning/datasets/sign_language.py
1728 views
import random1import numpy as np2from keras.utils import to_categorical3from keras.preprocessing import image4from os import listdir5from os.path import isdir, join678def load_data(container_path='datasets', folders=['A', 'B', 'C'],9size=2000, test_split=0.2, seed=0):10"""11Loads sign language dataset.12"""1314filenames, labels = [], []1516for label, folder in enumerate(folders):17folder_path = join(container_path, folder)18images = [join(folder_path, d)19for d in sorted(listdir(folder_path))]20labels.extend(len(images) * [label])21filenames.extend(images)2223random.seed(seed)24data = list(zip(filenames, labels))25random.shuffle(data)26data = data[:size]27filenames, labels = zip(*data)282930# Get the images31x = paths_to_tensor(filenames).astype('float32')/25532# Store the one-hot targets33y = to_categorical(np.array(labels)) # Use to_categorical directly3435x_train = np.array(x[:int(len(x) * (1 - test_split))])36y_train = np.array(y[:int(len(x) * (1 - test_split))])37x_test = np.array(x[int(len(x) * (1 - test_split)):])38y_test = np.array(y[int(len(x) * (1 - test_split)):])3940return (x_train, y_train), (x_test, y_test)414243def path_to_tensor(img_path, size):44# loads RGB image as PIL.Image.Image type45img = image.load_img(img_path, target_size=(size, size))46# convert PIL.Image.Image type to 3D tensor47x = image.img_to_array(img)48# convert 3D tensor to 4D tensor49return np.expand_dims(x, axis=0)5051def paths_to_tensor(img_paths, size=50):52list_of_tensors = [path_to_tensor(img_path, size) for img_path in img_paths]53return np.vstack(list_of_tensors)545556