Accueil Technologies L’Intelligence Artificielle pour débutants – La reconnaissance faciale (1)
L'Intelligence artificielle pour débutant avec la reconnaissance faciale - 01

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

par Jérémy PASTOURET

Pour débuter dans un domaine que l’on ne connaît pas, rien ne vaut un cas pratique bien concret. C’est idéal pour comprendre plus facilement les nouveaux mécanismes. L’objectif de cet article : vous permettre d’utiliser l’intelligence artificielle dans un contexte de reconnaissance d’images.

Ce genre de dispositif est utilisé par les mastodontes de la Tech comme Facebook et Google. En effet, les utilisateurs mettent à leur disposition des tonnes d’images. Et celles-ci alimentent des intelligences artificielles. A partir de ces images, il est donc possible d’obtenir des méta-données permettant d’effectuer des recherches. Tout ceci en vue d’obtenir des informations : typiquement, trouver toutes les photos sur lesquelles une personne donnée apparaît. Ce qui m’a donné l’idée de vous faire jouer avec l’IA, pour vous rendre compte de sa capacité à reconnaître des éléments à l’heure d’aujourd’hui.

Présentation de la librairie de reconnaissance faciale

J’ai découvert la librairie face_recognition de ageitgey sur GitHub. C’est une API Python simplifiée permettant d’appréhender le sujet de la reconnaissance faciale. Petit bonus : on y trouve pas mal d’exemples disponibles.

Pré-requis d’installation

J’ai rédigé ce tutoriel en étant sur Ubuntu ; cependant, je fais tourner les scripts grâce à Docker. Théoriquement, peu importe le système d’exploitation utilisé : il n’y aura pas de problème. Si vous n’avez jamais utilisé Docker ni entendu ce nom, je vous conseille de lire mes articles sur le sujet (en commençant par celui-ci).

Vous devez donc installer Docker avec Docker-compose. Il est aussi essentiel d’avoir Git pour pouvoir télécharger le projet sur votre ordinateur.

Téléchargement de la librairie face_recognition

Ouvrez une console et lancez la commande suivante :

git clone https://github.com/ageitgey/face_recognition.git

A la fin du téléchargement du projet, placez-vous à l’intérieur du répertoire.

Construction de l’image

Pour démarrer la construction de l’image, il suffit de lancer la commande suivante :

docker-compose build

Le programme Docker va générer l’image à l’aide du fichier Dockerfile et docker-compose.yml.

L’opération est plutôt longue. Votre ordinateur risque de chauffer un peu, car beaucoup de compilations et d’éléments sont essentiels au bon fonctionnement d’une IA.

A la fin de l’opération, vous obtiendrez le résultat suivant :

Successfully built 6b6927ebbf38 
Successfully tagged face_recognition:latest 

Lancement du script de base (find_faces_in_picture_cnn)

Pour vérifier que tout fonctionne bien, et pour tester le premier script défini par défaut, il suffit simplement de taper la commande suivante :

docker-compose up

Ensuite, la magie opère avec un premier script (présent dans le répertoire examples) se nommant find_faces_in_picture_cnn.py. Ce script permet d’identifier les visages sur une photo en utilisant le modèle CNN (Réseau Neuronal Convolutif ).

Ce programme utilise la photo « biden.jpg » contenant une seule personne car le modèle CNN est long à s’exécuter. Le script renvoie les coordonnées d’un carré représentant le visage d’une ou plusieurs personnes.

Le résultat obtenu est le suivant :

face_recognition    | I found 1 face(s) in this photograph.
face_recognition    | A face is located at pixel location Top: 235, Left: 428, Bottom: 518, Right: 712

Pour essayer avec vos propres photos, il suffit de modifier le contenu du fichier examples/find_faces_in_picture_cnn.py à la ligne 5 :

image = face_recognition.load_image_file("biden.jpg")

Remplacez le nom « biden.jpg » par celui de votre image (qui doit être présente dans le répertoire examples).

Syntaxe pour tester d’autres scripts intelligents

Vous souhaitez à présent tester d’autres scripts présents dans le répertoire examples, ou développés par vos soins ?
Il suffit de se positionner à la racine du projet et de lancer le docker-compose de cette manière :

docker-compose run face_recognition python3 -u <script python>.py

Cette instruction surchargera l’instruction command du docker-compose.yml qui exécute un script par défaut.
La commande ci-dessus indique à Docker que l’on souhaite lancer le service face_recognition avec la commande suivante python3…

Conclusion

Maintenant que vous avez compris le fonctionnement de cette librairie, je vous propose de tester les scripts par vous-même. Essayez de comprendre comment ils fonctionnent. Pour obtenir l’exhaustivité des scripts utilisables, il suffit de taper la commande suivante :

ls examples/*.py

Voici la liste au complet :

<pre>examples/benchmark.py
examples/blur_faces_on_webcam.py
examples/digital_makeup.py
examples/face_distance.py
examples/facerec_from_video_file.py
examples/facerec_from_webcam_faster.py
examples/facerec_from_webcam_multiprocessing.py
examples/facerec_from_webcam.py
examples/face_recognition_knn.py
examples/face_recognition_svm.py
examples/facerec_on_raspberry_pi.py
examples/facerec_on_raspberry_pi_Simplified_Chinese.py
examples/find_faces_in_batches.py
examples/find_faces_in_picture_cnn.py
examples/find_faces_in_picture.py
examples/find_facial_features_in_picture.py
examples/identify_and_draw_boxes_on_faces.py
examples/recognize_faces_in_pictures.py
examples/web_service_example.py
examples/web_service_example_Simplified_Chinese.py
</pre>

Certains scripts ont besoin de quelques petites modifications ; donc si vous n’y arrivez pas, ce n’est pas très grave. Continuez de découvrir cette librairie en lisant la suite qui vous montre comment fonctionnent la plupart des scripts. Ainsi que les changements à appliquer pour qu’ils fonctionnent. Vous découvrirez ainsi comment tester ces différents systèmes de reconnaissance faciale sur vos propres photos.

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.