L’Intelligence Artificielle pour débutants – La reconnaissance faciale (3)

Cet article poursuit la série d’explications sur l’intelligence artificielle dans le domaine de la reconnaissance faciale. Nous continuerons à explorer ensemble la librairie face_recognition. Mon article précédent vous montre comment lancer des scripts d’exemples présents dans le répertoire. L’objectif de cet article-ci consiste à vous expliquer comment fonctionnent les autres scripts.

Identification faciale des personnes dans une vidéo

Description

Le script se nomme find_faces_in_batches.py. Il prend en entrée un paramètre :

  • Une vidéo contenant des personnes et des visages

Le programme décompose la vidéo, image par image. Sur chaque photo / frame, l’intelligence artificielle compte le nombre de visages et indique les coordonnées d’un carrée couvrant ce visage.

Exécution du script et résultat

Pour lancer le script, il faut ajouter une nouvelle librairie à notre installation Docker. La librairie OpenCv permet de découper les vidéos en images. Pour ajouter la librairie, modifiez le fichier requirement.txt du projet et ajoutez la ligne suivante à la fin :

opencv-python

Ensuite, il faut reconstruire l’image Docker pour installer cette nouvelle librairie. Exécutez la commande suivante :

docker-compose build

A la fin du processus, il suffit de lancer la commande suivante pour tester ce script :

docker-compose run face_recognition python3 -u find_faces_in_batches.py

La console renvoie le résultat suivant :

I found 0 face(s) in frame #18.
I found 0 face(s) in frame #19.
I found 1 face(s) in frame #20.
 - A face is located at pixel location Top: 23, Left: 409, Bottom: 220, Right: 606
I found 1 face(s) in frame #21.
 - A face is located at pixel location Top: 10, Left: 387, Bottom: 246, Right: 623
I found 1 face(s) in frame #22.
 - A face is located at pixel location Top: 43, Left: 369, Bottom: 240, Right: 566
I found 1 face(s) in frame #23.
 - A face is located at pixel location Top: 34, Left: 339, Bottom: 270, Right: 575
I found 1 face(s) in frame #24.

Dans l’exemple de base, 5 visages ont été trouvés. Le programme indique leurs coordonnées respectives sur les images.

Modification du code pour utiliser sa propre vidéo

Modifiez la ligne 18 en remplaçant le nom de la vidéo par le chemin de la votre.

video_capture = cv2.VideoCapture("ma_video.mp4")

Il ne vous reste plus qu’à enregistrer et relancer le script.

Reconnaissance faciale de personnes avec Scikit-learn

Description

Le script se nomme face_recognition_svm.py. Il prend deux paramètres en entrée :

  • Un répertoire contenant des images d’entraînement.
  • L’image d’une personne à reconnaître.

Le programme doit apprendre à reconnaître :

  • les visages présents dans un répertoire d’entraînement.
  • l’un de ces visages sur une nouvelle photo.

Pour réaliser cette opération, ce script utilise le classifieur Scikit-learn. Celui-ci fait partie de l’écosystème des outils d’analyse de données et d’intelligence artificielle.

Exécution du script et résultat

Pour lancer le script, il faut ajouter une nouvelle librairie à notre installation Docker. A cet effet, modifiez le fichier requirement.txt du projet puis ajoutez la ligne suivante en fin de fichier :

scikit-learn

Ensuite, il faut reconstruire l’image Docker pour installer cette nouvelle librairie : exécutez la commande suivante :

docker-compose build

A la fin du processus, il suffit de lancer la commande suivante pour tester ce script :

docker-compose run face_recognition python3 -u face_recognition_svm.py

La console renvoie le résultat suivant :

Number of faces detected:  1
Found: 

obama

Dans l’exemple de base, l’intelligence artificielle s’est entraînée sur 5 répertoires étiquetés avec le nom de la personne. Dans chaque dossier se trouvent des photos de la personne mentionnée. Ensuite, on donne à l’IA une image et on lui demande son identité par rapport à ce qu’elle connaît.

Modification du code pour l’apprentissage d’IA et la reconnaissance d’un visage

Ajoutez autant de répertoires que de personnes dans le dossier knn_examples/train/. La règle est simple : un dossier correspond à une personne et le nom de ce dossier correspond au nom de la personne. Ensuite, dans chaque dossier, placez des images montrant uniquement la personne concernée. Ce répertoire contient donc les données d’entraînement de l’IA.

Modifiez la ligne 65 : remplacez le lien de l’image dont l’IA doit retrouver l’identité par une photo non présente dans le répertoire d’entraînement.

test_image = face_recognition.load_image_file('./knn_examples/test/ma_photo.jpg')

Si vous préférez changer le répertoire d’entraînement des photos, il suffit de modifier les lignes 44 – 48 – 53.

Il vous reste plus qu’à enregistrer et relancer le script.

Conclusion

Cet article vous a permis de mieux appréhender la librairie. Vous devez commencer à avoir quelques idées d’exploitation de cet outil. Si vous avez des idées ou des projets terminés, parlez-nous-en dans les commentaires. Nous verrons encore d’autres exemples dans le prochain article.

Articles Similaires

Podcast Les Enovateurs : du contenu d’écoute supplémentaire

Bob le mini lave-vaisselle, made in France – et révolutionnaire !

Firefox pour Android / iOS – ajuster les paramètres des extensions