Rejoins notre communauté de développeur Telegram Rejoindre

Concevoir un détecteur de visage avec le langage Python

Concevoir un détecteur de visage avec le langage Python

La détection de visage est une technologie fascinante qui permet de repérer et d'identifier des visages dans des images ou des vidéos. Dans cet article, nous allons apprendre à créer un détecteur de visage simple en utilisant Python et la bibliothèque OpenCV.

Objectif

demo_finale_detecteur_de_face_avec_python

L'objectif de cet article est de vous fournir les instructions et le code nécessaires pour créer un programme Python capable de détecter des visages en temps réel à partir de votre webcam.

1. Installation des modules

Avant de commencer, assurez-vous d'avoir installé les modules suivants : * Python 3 * OpenCV (>= 4.5.1)

Pour installer OpenCV sous Windows,Linux vous pouvez utiliser la commande suivante :

pip install opencv-python

2. Chargement du classifieur de visages

Le classifieur de visages est un fichier XML qui contient les informations nécessaires pour détecter les visages dans une image. Nous allons utiliser le classifieur "haarcascade_frontalface_default.xml" qui est disponible gratuitement sur le site web d'OpenCV.

import cv2

# Chargement du classifieur de visages pré-entrainé
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')

3. Démarrage de la capture vidéo

Nous allons utiliser la fonction VideoCapture d'OpenCV pour capturer des frames vidéo à partir de la webcam.

# Démarrage de la capture vidéo
cap = cv2.VideoCapture(0)

4. Détection des visages

La fonction detectMultiScale du classifieur de visages permet de détecter les visages dans une image.

# Detection
while True:
        # Capture d'une frame
        ret, frame = cap.read()

        # Conversion de l'image en niveaux de gris pour la détection des visages
        gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

        # Détection des visages dans l'image
        faces = face_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5, minSize=(30, 30))

5. Affichage des résultats

Pour chaque visage détecté, nous allons dessiner un rectangle autour de celui-ci.

# Dessin du rectangle autour des visages détectés
        for (x, y, w, h) in faces:
            cv2.rectangle(frame, (x, y), (x+w, y+h), (255, 0, 0), 2)

        # Affichage du résultat
        cv2.imshow('Face Detection', frame)

        # Sortie de la boucle si la touche 'q' est enfoncée
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break

6. Libération des ressources

Enfin, nous libérons la capture vidéo et fermons toutes les fenêtres OpenCV.

# Libération des ressources
cap.release()
cv2.destroyAllWindows()

Code complet

Double taper sur le code pour copier :)

import cv2

# Chargement du classifieur de visages pré-entrainé
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')

# Démarrage de la capture vidéo
cap = cv2.VideoCapture(0)

while True:
    # Capture d'une frame
    ret, frame = cap.read()

    # Conversion de l'image en niveaux de gris pour la détection des visages
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

    # Détection des visages dans l'image
    faces = face_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5, minSize=(30, 30))

    # Dessin du rectangle autour des visages détectés
    for (x, y, w, h) in faces:
        cv2.rectangle(frame, (x, y), (x+w, y+h), (255, 0, 0), 2)

    # Affichage du résultat
    cv2.imshow('Face Detection', frame)

    # Sortie de la boucle si la touche 'q' est enfoncée
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

# Libération des ressources
cap.release()
cv2.destroyAllWindows()

Explication rapide du code

Le code ci-dessus utilise la bibliothèque OpenCV pour capturer des frames vidéo à partir de la webcam et pour détecter les visages dans chaque frame.

  • import cv2: Importe la bibliothèque OpenCV.
  • face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml'): Charge le classifieur de visages pré-entrainé "haarcascade_frontalface_default.xml".
  • cap = cv2.VideoCapture(0): Démarre la capture vidéo à partir de la webcam (index 0).
  • while True: Boucle infinie pour capturer et traiter les frames en temps réel.
  • ret, frame = cap.read(): Capture une frame et stocke l'image dans la variable `frame`.
  • gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY): Convertit l'image en niveaux de gris pour améliorer la détection des visages.
  • faces = face_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5, minSize=(30, 30)): Détecte les visages dans l'image en niveaux de gris et stocke les coordonnées des rectangles dans la variable `faces`.
  • for (x, y, w, h) in faces: Boucle pour dessiner un rectangle autour de chaque visage détecté.
  • cv2.rectangle(frame, (x, y), (x+w, y+h), (255, 0, 0), 2): Dessine un rectangle bleu autour du visage avec les coordonnées `x`, `y`, `w` et `h`.
  • cv2.imshow('Face Detection', frame): Affiche la frame avec les visages détectés.
  • if cv2.waitKey(1) & 0xFF == ord('q'): break: Attends une pression sur la touche `q` pour quitter la boucle.
  • cap.release(): Libère la capture vidéo.
  • cv2.destroyAllWindows(): Ferme toutes les fenêtres OpenCV.

Merci pour votre Lecture

Et voilà, nous avons parcouru ensemble un voyage passionnant à travers le monde de Concevoir un détecteur de visage avec le langage Python. J'espère que vous avez trouvé cette exploration enrichissante et que vous êtes prêts à affronter de nouveaux défis passionnants dans le monde du code.

Si vous avez encore des questions ou si vous avez besoin d'aide pour vos projets, n'hésitez pas à partager vos réflexions dans la section des commentaires ou à nous contacter. Nous sommes toujours là pour vous aider à illuminer votre chemin vers le succès.

N'oubliez pas de partager cet article avec vos amis, et restez connectés à notre blog pour encore plus de contenus captivants, astuces, et aventures dans le monde du code !

Aureur du post

Nous sommes la Coding Team 🚀, une équipe de 3 passionnés basée au Sénégal. Notre mission ? Vous embarquer dans le voyage captivant de la programmation et de la technologie. Prêts à coder avec style ? Rejoignez-nous pour une aventure geek et cool ! …

Enregistrer un commentaire

N'hésitez pas de mentionner votre nom d'utilisateur Telegram à la fin de votre message pour recevoir des cadeaux de la part des modérateurs. Merci de commenter
Les cookies
Nous utilisons des cookies sur ce site pour analyser le trafic, mémoriser vos préférences et optimiser votre expérience.
Oops!
Il semble y avoir un problème avec votre connexion internet. Veuillez vous connecter à internet et recommencer à naviguer.
AdBlock
Nous avons détecté que vous utilisez un plugin de blocage de publicités dans votre navigateur.
Les revenus que nous générons grâce aux publicités sont utilisés pour gérer ce site web. Nous vous demandons de placer notre site web sur la liste blanche de votre plugin de blocage de publicités.
Site is Blocked
Sorry! This site is not available in your country.