Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
  • master
1 result

Target

Select target project
  • automatants/facial-expression-detection
  • 2021romandfra/facial-expression-detection
2 results
Select Git revision
  • master
1 result
Show changes
Commits on Source (3)
......@@ -2,20 +2,14 @@
### Description :
Le projet a pour but de construire un programme pour détecter les visages et leurs émotions associées depuis une image ou une vidéo prise en temps réelle. Dans un second temps, il pourra être éventuellement amélioré avec la traduction des visages en avatar.
Le projet a pour but de construire un programme pour détecter les visages et leurs émotions associées depuis une image ou une vidéo prise en temps réelle. Les visages sont détectés et classifiés parmi 7 émotions : Angry, Disgust, Fear, Happy, Sad, Surprise et Neutral.
### Fonctions des différents fichiers :
### Fichiers python à lancer :
videoCapture.py : prend une vidéo en entrée, traite chaque frame avec imageProcess.py et renvoie la vidéo traitée ainsi
videoCapture.py : prend une vidéo en entrée, traite chaque frame avec imageProcess.py et renvoie la vidéo traitée ainsi. Les visages sont détectés et classifiés.
imageProcess.py : contient les fonctions pour traiter les images, qui font appel à faceAnalysis.py
faceAnalysis.py : contient les fonctions pour analyser les visages, utilise le modèle spécifié dans config.py
config.py : on y précise le modèle utilisé
utils.py : quelques fonctions utiles
data : contient les dataset, ignoré par git donc vous devez mettre les données dedans vous mêmes
models : contient les différents modèles utilisés
game.py : lance une capture de la vidéo et des smileys à imiter le plus rapidement possible.
Paramètres de game():
- playTime : durée du jeu
- dt_required : délai durant lequel l'émotion doit être reconnue en continu pour être validée
- n_photos : nombre de photos souvenirs que le modèle prendra pendant le jeu, affichées à la fin
No preview for this file type
No preview for this file type
Source diff could not be displayed: it is too large. Options to address this: view the blob.
......@@ -49,7 +49,7 @@ def game(playTime = 30, invincibleFrame=0.5, dt_required=0.5, n_photos=None):
while cap.isOpened(): #or while 1. cap.isOpened() is false if there is a problem
while cap.isOpened():
ret, frame = cap.read() #Read next video frame, stop if frame not well read
if not ret: break
......@@ -76,7 +76,7 @@ def game(playTime = 30, invincibleFrame=0.5, dt_required=0.5, n_photos=None):
smiley = smileyNeutral.copy()
cv2.imshow("Caméra", frame) #Show you making emotional faces
cv2.putText(smiley, "Score: "+str(score), (40,40), cv2.FONT_HERSHEY_SIMPLEX, 1, (0,0,255), 2)
cv2.putText(smiley, "Timer: "+str(time.time()-timeInitial), (20,240), cv2.FONT_HERSHEY_SIMPLEX, 1, (255,0,0), 2)
cv2.putText(smiley, "Timer: "+str(round(time.time()-timeInitial, 1)), (20,240), cv2.FONT_HERSHEY_SIMPLEX, 1, (255,0,0), 2)
cv2.imshow("Smiley", smiley) #Show the smiley to mimic
......@@ -114,3 +114,6 @@ def game(playTime = 30, invincibleFrame=0.5, dt_required=0.5, n_photos=None):
plt.xticks([])
plt.yticks([])
plt.show()
if __name__ == "__main__":
game()
......@@ -57,6 +57,7 @@ def selectFace(image):
face = image[y:y+h, x:x+w]
return face
#Some tests here.
# image = cv2.imread("cagnol.jpg", 1) #Load Cagnol colored image
# imageProcess(image)
# cv2.imshow("Cagnol", image)
......
from game import *
from videoCapture import *
game(playTime=60, invincibleFrame=1, dt_required=0.3, n_photos=5)
#game(playTime=40, invincibleFrame=1, dt_required=0.3, n_photos=5)
#videoCapture()
\ No newline at end of file
videoCapture()
\ No newline at end of file
This diff is collapsed.
File added
File added
File added
File moved
......@@ -14,7 +14,7 @@ def videoCapture():
ip.imageProcess(frame) #Process frame
cv2.imshow("Image traitée", frame) #Show processed image in a window
cv2.imshow("Image", frame) #Show processed image in a window
if cv2.waitKey(1) & 0xFF == ord('q'): #If you press Q, stop the while and so the capture
break
......