Accueil Technologies L’Intelligence Artificielle pour débutants – La reconnaissance faciale (5)

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

par Jérémy PASTOURET

Cet article conclut la série d’explications sur la librairie face_recognition, consacrée aux scripts de reconnaissance faciale. Les précédent articles vous présentent différentes manières d’utiliser ce puissant outil. L’objectif de cet article : vous expliquer comment fonctionnent les derniers scripts.

Calcul de la distance (similarité) entre deux visages

Description

Le script se nomme face_distance.py. Il prend trois photos en entrée :

  • Apprentissage du visage d’une personne à l’aide d’une photo.
  • Apprentissage du visage d’une autre personne à l’aide d’une photo.
  • Une image de test pour calculer un ratio de similarité entre les visages analysés.

Le programme doit apprendre à reconnaître deux visages. Ces visages sont analysables à partir de photos. Le script actuel peut être modifié pour rajouter quantité d’autres visages. Lorsqu’on lui propose une nouvelle photo, l’IA calcule un ratio de similarité. Ainsi, en fonction du résultat, on peut en déduire s’il s’agit ou non de la même personne. Pour effectuer cette opération, on utilise uniquement la librairie face_recognition.

Exécution du script et résultat

Il suffit de lancer la commande suivante pour tester ce script :

docker-compose run face_recognition python3 -u face_distance.py

La console renvoie le résultat suivant :

The test image has a distance of 0.35 from known image #0
- With a normal cutoff of 0.6, would the test image match the known image? True
- With a very strict cutoff of 0.5, would the test image match the known image? True

The test image has a distance of 0.82 from known image #1
- With a normal cutoff of 0.6, would the test image match the known image? False
- With a very strict cutoff of 0.5, would the test image match the known image? False

Dans l’exemple de base, l’intelligence artificielle s’est entraînée sur des photos d’Obama et de Biden. Une seconde photo d’Obama a été fournie à l’intelligence artificielle afin d’obtenir les ratios de similarité. Comme on peut le voir, la première photo possède une distance/différence faible par rapport au visuel de référence. Ceci indique que l’image de test et la photo d’Obama affichent le même visage. Quant au deuxième test réalisé, la distance élevée indique qu’il ne s’agit pas d’une photo de Biden.

Modification du code pour calculer la distance entre deux visages.

Vous pouvez modifier les liens/nom des personnes et photo existantes. Il est aussi possible de rajouter de nouveaux visages. Pour cela, rendez-vous sur les lignes 14-15 pour définir les photos. Si vous rajoutez des lignes, vous devez ajouter une opération d’encodage facial à la ligne 19 et ajouter les nouveaux visages dans le tableau à la ligne 23. Sans oublier les virgules à la fin des éléments.

Pour modifier l’image à identifier, il suffit de changer le lien sur la ligne 27.

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

Maquillage de visage intelligent

Description

Le script se nomme digital_makeup.py. Il prend en entrée une seule photo.

Le programme identifie les visages et dessine des formes sur certains éléments identifiés. Cela peut s’apparenter à du maquillage. Ainsi les yeux, la bouche et les sourcils sont « maquillés ».

Modification du script

En l’état, le script affiche directement l’image. Cependant si vous lancez ce script dans Docker, vous ne verrez rien. Il faut donc modifier le script et la ligne suivante à la fin :

pil_image.save("makeup.jpg")

Cette instruction va créer un fichier de résultats intitulé makeup.jpg

Exécution du script et résultat

Pour lancer le script, il suffit d’utiliser la commande suivante :

docker-compose run face_recognition python3 -u digital_makeup.py

L’image obtenue est la suivante :

Intelligence artificielle de maquillage

Modification du code pour utiliser vos propres photos

Ce script est plutôt fun a utiliser sur vos photos personnelles. Il faut modifier uniquement la ligne 5 pour y insérer le lien d’une autre image.

Évidemment, nous n’avons pas résisté au plaisir de tester de script sur l’une de nos photos :

Intelligence artificielle de maquillage Les Enovateurs

Les performances de la librairie

Description

Ce script va parler aux analystes et aux matheux. En effet, il permet de réaliser un benchmark sur le temps d’exécution de cette librairie, ce que je trouve plutôt pas mal. Le script analyse et reconnaît des visages sur différentes photos avec des résolutions différentes de 240p à 1080p (Full-HD)

Exécution du script et résultat

Il suffit de lancer la commande suivante pour tester ce script :

docker-compose run face_recognition python3 -u benchmark.py

La console renvoie le résultat suivant :

Benchmarks (Note: All benchmarks are only using a single CPU core)

Timings at 240p:
 - Face locations: 0.0578s (17.30 fps)
 - Face landmarks: 0.0023s (428.01 fps)
 - Encode face (inc. landmarks): 0.2987s (3.35 fps)
 - End-to-end: 0.3615s (2.77 fps)

Timings at 480p:
 - Face locations: 0.2117s (4.72 fps)
 - Face landmarks: 0.0022s (451.83 fps)
 - Encode face (inc. landmarks): 0.3049s (3.28 fps)
 - End-to-end: 0.5155s (1.94 fps)

Timings at 720p:
 - Face locations: 0.4892s (2.04 fps)
 - Face landmarks: 0.0022s (447.13 fps)
 - Encode face (inc. landmarks): 0.3027s (3.30 fps)
 - End-to-end: 0.7943s (1.26 fps)

Timings at 1080p:
 - Face locations: 1.1124s (0.90 fps)
 - Face landmarks: 0.0023s (440.98 fps)
 - Encode face (inc. landmarks): 0.3041s (3.29 fps)
 - End-to-end: 1.4367s (0.70 fps)

Conclusion : IA & reconnaissance faciale

Cette série d’articles consacrés à la reconnaissance faciale est maintenant terminée. J’espère que le sujet vous a plu ! Si vous désirez des informations supplémentaires sur ce thème, parlez-en dans les commentaires.

Vous pourriez aussi aimer

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.