Skip to content
Snippets Groups Projects
Select Git revision
  • ddaac8e7c410b5de9268be40770d3bf802562cf5
  • master default
  • goodpaths
  • movie-page
  • front-bilel
  • vieille-branche
  • octofront
  • branche-TP-de-Tom
8 results

Movie.vue

Blame
  • loadExpWDS.py 1.70 KiB
    import cv2
    from utils import *
    from config import input_shape
    import imageProcess as ip
    import numpy as np
    
    
    def loadExpWData(nbrMaxImages=float('inf'), onlyDetected=False, detectedFace=False, count=False):
    	print(f"\nCHARGEMENT DE {nbrMaxImages} DONNEES DEPUIS EXPW...")
    	folderImages = 'data/expW/images/'
    	fileLabels = 'data/expW/labels.lst'
    
    	file = open(fileLabels, 'r')
    	nbrImages = 0
    	k = 0
    	X = []
    	Y = []
    
    	for line in file:
    		if nbrImages>=nbrMaxImages: break
    		k+= 1
    		
    		#Face extraction, according to the dataset annotations
    		imageName, Id, top, left, right, bottom, cofidence, label = line.strip().split(' ')
    		image = cv2.imread(folderImages+imageName)
    		faceAccordingToDS = image[int(top):int(bottom), int(left):int(right)]     
    		
    		#Suivi visuel (facultatif, fait un peu peur sans attendre 1000ms entre deux images...)
    		if False:
    			cv2.imshow("ExpW importation...", faceAccordingToDS)
    			if cv2.waitKey(1000) & 0xFF == ord('q'):
    				break
    
    		#Add extracted data to our dataset
    	
    		#Select detected face (if there is 1) or face according to the dataset
    		if detectedFace:
    			facesDetected = ip.imageProcess(faceAccordingToDS, writeEmotion=False, writeRectangle=False)
    			if len(facesDetected) ==1:
    				face = facesDetected[0]
    			else:
    				face = faceAccordingToDS
    		else:
    			face = faceAccordingToDS
    
    		#Colored N*M*3 face to gray 48*48*1 image.
    		gray = normAndResize(face, input_shape)	
    
    		X.append(gray)
    		Y.append(label)	#Emotion order is the same as fer2013.
    		
    		nbrImages += 1
    
    		#Print number of datas loaded every 1000 datas
    		if count and nbrImages%1000==0: print(f"{nbrImages} données chargées depuis expW (sur {k} données traités).")
    
    	X = np.array(X)
    	Y = np.array(Y)
    	print('\n')
    	return X, Y