Détection de visage avec Python – Code source
Dans cet article, je vais vous montrer comment créer un détecteur de visage simple à l’aide de Python. Construire un programme qui détecte les visages est un excellent moyen de se lancer dans les tâches de vision par ordinateur en apprentissage automatique. Je vais donc vous présenter ici un moyen très simple de détection de visage avec Python.
Comme le titre l’indique, je vais écrire un programme pour la tâche de détection de visage avec Python. Quand je parle de programme, vous pouvez le comprendre comme enseigner à une machine ce qu’elle doit faire. J’aime utiliser l’enseignement plutôt que la programmation parce que c’est en fait ce que je fais ici.
La meilleure façon d’apprendre sur tout est d’enseigner, donc en apprenant à une machine à détecter les visages, nous apprenons aussi. Donc, avant de commencer cette tâche de détection de visage avec Python, je souhaite partager la différence entre la détection de visage et la reconnaissance de visage.
Détection de visage vs reconnaissance faciale
La détection de visage et la reconnaissance faciale peuvent sembler très similaires, mais en réalité, elles ne sont pas identiques. Comprenons bien la différence pour ne pas rater l’essentiel.
La détection de visage est le processus de détection de visages, à partir d’une image ou d’une vidéo. Le programme ne fait rien de plus que trouver les visages. Mais d’un autre côté, dans la tâche de reconnaissance faciale, le programme trouve des visages et peut également dire à quel visage appartient lequel. C’est donc plus informatif que de simplement les détecter. Il y a plus de programmation, c’est-à-dire plus de formation dans le processus.
Disons que vous regardez la rue et que les voitures passent. La détection de visage revient à dire que l’objet qui passe est une voiture. Et la reconnaissance faciale, c’est comme être capable de dire le modèle de la voiture qui passe. Voici une belle photo montrant la différence dans la pratique.
Dans cet article, je vais continuer avec la tâche de détection des visages. Si vous souhaitez apprendre la reconnaissance faciale, vous pouvez me mentionner dans la section des commentaires ci-dessous.
Détection de visage avec Python
J’utiliserai la bibliothèque OpenCV de Python qui est utilisée comme outil principal pour les tâches de vision par ordinateur en Python. Si vous êtes nouveau sur OpenCV, cette tâche est la meilleure pour commencer.
Commençons maintenant avec la tâche de détection de visage avec Python.
Vous devez d’abord installer la bibliothèque OpenCV de Python qui peut être facilement installée en utilisant la commande pip ; pip install opencv-python. Après avoir installé cette bibliothèque, vous devez simplement l’importer en utilisant la commande ci-dessous :
import cv2
La bibliothèque OpenCV de python est dotée de nombreux classificateurs pré-formés pour le visage, les yeux, le sourire, etc. Ces fichiers XML sont stockés dans un dossier. Nous utiliserons le modèle de détection de visage. Vous pouvez télécharger le modèle de détection de visage pré-formé à partir d’ici.
Après avoir téléchargé et enregistré le fichier dans votre répertoire, chargeons-le dans le programme de détection de visage :
face_cascade = cv2.CascadeClassifier('face_detector.xml')
L’étape suivante consiste à choisir une image sur laquelle vous souhaitez tester votre code. Assurez-vous qu’il y a au moins un visage dans l’image afin que le programme de détection de visage puisse trouver au moins un visage.
Après avoir choisi une image, définissons-la dans notre programme. Assurez-vous que l’image se trouve dans le même répertoire que celui dans lequel vous travaillez :
img = cv2.imread('image.jpg')
Détecter les visages
Vous serez étonné de voir à quel point le code de détection de visage est court. Merci aux personnes qui contribuent à OpenCV. Voici le code qui détecte les visages dans une image :
faces = face_cascade.detectMultiScale(img, 1.1, 4)
Maintenant, la dernière étape consiste à dessiner des rectangles autour des visages détectés, ce qui peut être facilement fait avec le code suivant :
for (x, y, w, h) in faces :
cv2.rectangle(img, (x, y), (x+l, y+h), (255, 0, 0), 2)
cv2.imwrite("face_detected.png", img)
print('Enregistré avec succès')
C’est ainsi que nous pouvons facilement détecter un visage ou autant de visages dans l’image. J’espère que vous avez aimé cet article sur la détection de visage avec Python. N’hésitez pas à poser vos précieuses questions dans la section des commentaires ci-dessous.
Je cherche de l’aide pour développer une application de A à Z avec python dans le cadre d’ouverture d’une salle d’examen par la reconnaissance faciale ?
Bonjour,
Oui moi ça m’intéresserait de pouvoir aller plus loin et programmer de la reconnaissance faciale à partir de l’image d’une caméra.
Si vous pouviez faire un tuto ce serait chouette…
Je suis persuadé que ça intéresserait bcp de monde.
Merci 😉