Un mémo lorsque le visage est détecté avec Python + OpenCV rapidement

table des matières

[1. Préparation de l'environnement virtuel](# 1-Préparation de l'environnement virtuel) [2. Installez openCV](# 2-Installez openCV) [3. Préparation du programme de détection de visage](# 3-Préparation du programme de détection de visage) [4. Récupérez le fichier du classificateur](# 4-Obtenez le fichier du classificateur) [5. Exécuter](# 5-Exécuter) [6. Code source](code source n ° 6)

Préparer l'environnement virtuel

Créer un environnement opencvEnv avec venv

$ python3 -m venv opencvEnv

#Activer
$ source opencvEnv/bin/activate

(opencvEnv)$  ...

installer openCV

Installer openCV avec pip

(opencvEnv)$ pip install opencv-python

Collecting opencv-python
  Downloading https://files.pythonhosted.org/packages/e2/a9/cd3912ca0576ea6588095dce55e54c5f0efeb3d63fb88f16f4c06c0fac8d/opencv_python-4.1.2.30-cp36-cp36m-macosx_10_9_x86_64.whl (45.2MB)
    100% |████████████████████████████████| 45.2MB 721kB/s
Collecting numpy>=1.11.3 (from opencv-python)
  Using cached https://files.pythonhosted.org/packages/22/99/36e3408ae2cb8b72260de4e538196d17736d7fb82a1086cb2c21ee156ddc/numpy-1.17.4-cp36-cp36m-macosx_10_9_x86_64.whl
Installing collected packages: numpy, opencv-python
Successfully installed numpy-1.17.4 opencv-python-4.1.2.30
import cv2

Préparation du programme de détection de visage

Créer face_detect.py

face_detect.py


import cv2

if __name__ == '__main__':
    #Définition constante
    ESC_KEY = 27     #Touche Echap
    INTERVAL= 33     #Temps d'attente
    FRAME_RATE = 30  # fps

    ORG_WINDOW_NAME = "org"
    GAUSSIAN_WINDOW_NAME = "gaussian"

    DEVICE_ID = 0

    #Désignation du classificateur
    cascade_file = "../xml/haarcascade_frontalface_alt2.xml"
    cascade = cv2.CascadeClassifier(cascade_file)

    #Acquisition d'image de la caméra
    cap = cv2.VideoCapture(DEVICE_ID)

    #Chargement du cadre initial
    end_flag, c_frame = cap.read()
    height, width, channels = c_frame.shape

    #Préparation de la fenêtre
    cv2.namedWindow(ORG_WINDOW_NAME)
    cv2.namedWindow(GAUSSIAN_WINDOW_NAME)

    #Boucle de traitement de conversion
    while end_flag == True:

        #Acquisition d'image et détection de visage
        img = c_frame
        img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
        face_list = cascade.detectMultiScale(img_gray, minSize=(100, 100))

        #Marquer le visage détecté
        for (x, y, w, h) in face_list:
            color = (0, 0, 225)
            pen_w = 3
            cv2.rectangle(img_gray, (x, y), (x+w, y+h), color, thickness = pen_w)

        #Affichage du cadre
        cv2.imshow(ORG_WINDOW_NAME, c_frame)
        cv2.imshow(GAUSSIAN_WINDOW_NAME, img_gray)

        #Quitter avec la touche Echap
        key = cv2.waitKey(INTERVAL)
        if key == ESC_KEY:
            break

        #Lire l'image suivante
        end_flag, c_frame = cap.read()

    #Terminer le traitement
    cv2.destroyAllWindows()
    cap.release()

Obtenez le fichier classificateur

Récupérez le haarcascade_frontalface_alt2.xml utilisé pour la détection de visage à partir du site suivant et téléchargez le fichier à n'importe quel emplacement </ b>.

https://ja.osdn.net/projects/sfnet_magicvisionport/downloads/mvp/cascades/haarcascade_frontalface_alt2.xml/

Courir

Exécutez face_ detect.py. Le terminal vous demandera la permission d'accéder à la caméra, alors autorisez-la.

(opencvEnv)$ python face_ detect.py

Les visages peuvent être détectés à partir d'images qui peuvent être acquises par l'appareil photo. La caméra peut être tuée avec [Esc]. 20191219213757.gif

Code source

Ce code source est réimprimé à partir de face_detect.py dans le référentiel suivant.

https://github.com/kawakeee/openCV_practice/blob/master/detection/face_detect.py

Article de référence

Essayez la détection des visages en temps réel à l'aide d'une caméra Web

Je fais aussi un blog personnel. Vie de l'ingénieur Nagano

Recommended Posts

Un mémo lorsque le visage est détecté avec Python + OpenCV rapidement
Un mémo pour quand pip3 est installé avec python2.7 pour une raison quelconque
Un mémo lors de la création d'un environnement python avec miniconda
Détection de visage avec Python + OpenCV
[Python] Qu'est-ce qu'une instruction with?
Essayez la reconnaissance faciale avec python + OpenCV
Découpez le visage avec Python + OpenCV
Reconnaissance faciale avec caméra avec opencv3 + python2.7
Détection de visage avec Python + OpenCV (rotation invariante)
Un mémo contenant Python2.7 et Python3 dans CentOS
[python, openCV] base64 Reconnaissance faciale dans les images
Hello World et détection de visage avec OpenCV 4.3 + Python
Erreur lors de l'installation d'un module avec Python pip
Créez rapidement un environnement Python Django avec IntelliJ
installation de python openCV (mémo)
Mémo du didacticiel Python OpenCV
Mémo connecté à HiveServer2 d'EMR avec python
Problèmes lors de la création d'un outil de conversion csv-json avec python
Remplissez l'arrière-plan d'une seule couleur avec OpenCV2 + Python
[Python] Un mémo pour écrire du CSV verticalement avec Pandas
Un mémo que j'ai touché au magasin de données avec python
Un mémo sur la création d'une application Django (Python) avec Docker
Qu'est-ce que Dieu? Créez un chatbot simple avec python
Une note lors de la vérification si la clé spécifiée existe dans le dictionnaire défini avec python
Une note de malentendu lors de la tentative de chargement de l'intégralité du module self-made avec Python3
Un mémo qui lit les données de dashDB avec Python et Spark
Améliorez rapidement la précision de détection en spécifiant les paramètres avec la détection de visage openCV
Reconnaissance faciale avec OpenCV de Python
Déterminer si la chaîne est l'heure avec une expression régulière python
"Traitement Apple" avec OpenCV3 + Python3
Prenez rapidement une chaîne de requête avec API Gateway-> Lambda (Python)
Mémo graphique Twitter avec Python
Édition d'image avec python OpenCV
Capture de caméra avec Python + OpenCV
[Python] Utilisation d'OpenCV avec Python (basique)
[python] Inversez avec des tranches! !! (Il y a aussi un commentaire sur les tranches!)
[python] Remarques lors de la tentative d'utilisation de numpy avec Cython
Détection de visage avec Python + dlib
Utilisez une macro qui s'exécute lors de l'enregistrement de python avec vscode
Une note lors de la création d'un graphe dirigé à l'aide de Graphviz en Python
La liste Python n'est pas une liste
L'image en échelle de gris est affichée sous forme d'image couleur dans OpenCV / Python
Faites une loterie avec Python
Créez un outil d'analyse vidéo simple avec python wxpython + openCV
Erreur lors de la lecture avec python
Lorsque "Aucune modification détectée" s'affiche dans python3 manage.py makemigrations
Reconnaissance faciale / coupe avec OpenCV
Essayez la reconnaissance faciale avec Python
Créer un répertoire avec python
Utiliser OpenCV avec Python @Mac
Détection de visage d'anime avec OpenCV
[Python, Selenium, PhantomJS] Une histoire lors de la capture d'un site Web avec une charge paresseuse
Créez une illusion rayée avec correction gamma pour Python3 et openCV3
[Python] Un mémo que j'ai essayé de démarrer avec asyncio
[Python] Temps d'exécution lorsqu'une fonction est saisie dans une valeur de dictionnaire
Comment créer une caméra de surveillance (caméra de sécurité) avec Opencv et Python
Créez un simple OMR (lecteur de feuille de marque) avec Python et OpenCV
[Python] Un mémo pour faire fonctionner une ROM créée avec GBDK avec PyBoy