Skip to content
Snippets Groups Projects
Select Git revision
  • b2a35e3456e5d0115f8df5afe58ba42d33ccd936
  • master default
2 results

utils.cpython-38.pyc

Blame
  • Forked from Automatants / Facial expression detection
    Source project has a limited visibility.
    loadFer2013ds.py 1.60 KiB
    # This file load the dataset fer2013 as arrays.
    import csv
    import numpy as np
    import cv2
    import matplotlib.pyplot as plt
    from config import input_shape
    from utils import *
    
    
    def strToArray(string):  # Fer2013 provides images as string so it needs to be transformed
        A = []
        lenght = len(string)
        i = 0
        nbr = ""
    
        while i < lenght:
            car = string[i]
    
            if car != " ":
                nbr += car
            else:
                A.append(int(nbr))
                nbr = ""
            i += 1
        A.append(int(nbr))
    
        A = np.array(A)
        A = np.reshape(A, (48,48,1))
    
        return A
    
    
    # LOAD DATA AS ARRAY
    
    def loadFer2013Data(maxNbrImages=35887):
        print(f"\nCHARGEMENT DE {maxNbrImages} DONNEES DEPUIS FER2013 ...")
    
        maxNbrImages = min(maxNbrImages, 35887)
        filename = "data/fer2013/fer2013.csv"
        emotions = ["Angry", "Disgust", "Fear",
                    "Happy", "Sad", "Suprise", "Neutral"]
    
        X = []
        Y = []
    
        with open(filename, 'r', encoding='utf-8') as file:
    
            csv_reader = csv.reader(file, delimiter=",")
            next(csv_reader)  # Passe la ligne de titre
    
            i = 0
            for row in csv_reader:
                i += 1
                if i > maxNbrImages:
                    break
    
                emotionNbr, stringImage, typeImage = row
    
                X.append(normAndResize(strToArray(stringImage), input_shape))
                Y.append(emotionNbr)
    
                print(f"Donnée {i} sur {maxNbrImages} chargée", end='\r')
    
        X = np.array(X)
        Y = np.array(Y)
        print(f"{maxNbrImages} données chargées depuis fer2013.")
        return X, Y