Ein Memo, wenn mit Python + OpenCV schnell ein Gesicht erkannt wird

Inhaltsverzeichnis

[1. Vorbereitung der virtuellen Umgebung](# 1-Vorbereitung der virtuellen Umgebung) [2. OpenCV installieren](# 2-OpenCV installieren) [3. Vorbereitung des Gesichtserkennungsprogramms](# 3-Vorbereitung des Gesichtserkennungsprogramms) [4. Holen Sie sich die Klassifikator-Datei](# 4-Holen Sie sich die Klassifikator-Datei) [5. Ausführen](# 5-Ausführen) [6. Quellcode](# 6-Quellcode)

Vorbereiten der virtuellen Umgebung

Erstellen Sie mit venv eine opencvEnv-Umgebung

$ python3 -m venv opencvEnv

#aktivieren Sie
$ source opencvEnv/bin/activate

(opencvEnv)$  ...

installiere openCV

Installieren Sie openCV mit 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

Vorbereitung des Gesichtserkennungsprogramms

Erstellen Sie face_detect.py

face_detect.py


import cv2

if __name__ == '__main__':
    #Konstante Definition
    ESC_KEY = 27     #Esc-Taste
    INTERVAL= 33     #Wartezeit
    FRAME_RATE = 30  # fps

    ORG_WINDOW_NAME = "org"
    GAUSSIAN_WINDOW_NAME = "gaussian"

    DEVICE_ID = 0

    #Bezeichnung des Klassifikators
    cascade_file = "../xml/haarcascade_frontalface_alt2.xml"
    cascade = cv2.CascadeClassifier(cascade_file)

    #Kamerabilderfassung
    cap = cv2.VideoCapture(DEVICE_ID)

    #Laden des ersten Frames
    end_flag, c_frame = cap.read()
    height, width, channels = c_frame.shape

    #Fenstervorbereitung
    cv2.namedWindow(ORG_WINDOW_NAME)
    cv2.namedWindow(GAUSSIAN_WINDOW_NAME)

    #Konvertierungsverarbeitungsschleife
    while end_flag == True:

        #Bildaufnahme und Gesichtserkennung
        img = c_frame
        img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
        face_list = cascade.detectMultiScale(img_gray, minSize=(100, 100))

        #Markieren Sie das erkannte Gesicht
        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)

        #Rahmenanzeige
        cv2.imshow(ORG_WINDOW_NAME, c_frame)
        cv2.imshow(GAUSSIAN_WINDOW_NAME, img_gray)

        #Beenden Sie mit der Esc-Taste
        key = cv2.waitKey(INTERVAL)
        if key == ESC_KEY:
            break

        #Lesen Sie den nächsten Frame
        end_flag, c_frame = cap.read()

    #Verarbeitung beenden
    cv2.destroyAllWindows()
    cap.release()

Klassifikator-Datei abrufen

Holen Sie sich die haarcascade_frontalface_alt2.xml, die für die Gesichtserkennung verwendet wird, von der folgenden Site und laden Sie die Datei an einen beliebigen Ort </ b> herunter.

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

Lauf

Führen Sie face_ detect.py aus. Das Terminal bittet Sie um Erlaubnis, auf die Kamera zugreifen zu dürfen. Lassen Sie es also zu.

(opencvEnv)$ python face_ detect.py

Gesichter können anhand von Bildern erkannt werden, die von der Kamera aufgenommen werden können. Die Kamera kann mit [Esc] getötet werden. 20191219213757.gif

Quellcode

Dieser Quellcode wird aus face_detect.py im folgenden Repository nachgedruckt.

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

Referenzartikel

Versuchen Sie die Gesichtserkennung in Echtzeit mit einer Webkamera

Ich mache auch einen persönlichen Blog. Nagano Engineer Life

Recommended Posts

Ein Memo, wenn mit Python + OpenCV schnell ein Gesicht erkannt wird
Ein Memo für die Installation von pip3 mit python2.7 aus irgendeinem Grund
Ein Memo beim Erstellen einer Python-Umgebung mit Miniconda
Gesichtserkennung mit Python + OpenCV
[Python] Was ist eine with-Anweisung?
Versuchen Sie die Gesichtserkennung mit Python + OpenCV
Schneiden Sie das Gesicht mit Python + OpenCV aus
Gesichtserkennung mit Kamera mit opencv3 + python2.7
Gesichtserkennung mit Python + OpenCV (invariante Rotation)
Ein Memo mit Python2.7 und Python3 in CentOS
[python, openCV] base64 Gesichtserkennung in Bildern
Hallo Welt- und Gesichtserkennung mit OpenCV 4.3 + Python
Fehler beim Installieren eines Moduls mit Python pip
Erstellen Sie mit IntelliJ schnell eine Python Django-Umgebung
Python OpenCV Installation (Memo)
Python OpenCV Tutorial Memo
Memo mit Python mit HiveServer2 von EMR verbunden
Probleme beim Erstellen eines CSV-JSON-Konvertierungstools mit Python
Füllen Sie den Hintergrund mit einer einzigen Farbe mit OpenCV2 + Python
[Python] Ein Memo zum vertikalen Schreiben von CSV mit Pandas
Ein Memo, dass ich den Datenspeicher mit Python berührt habe
Ein Memo zum Erstellen einer Django (Python) -Anwendung mit Docker
Was ist Gott? Erstelle einen einfachen Chatbot mit Python
Ein Hinweis beim Überprüfen, ob der angegebene Schlüssel im definierten Wörterbuch mit Python vorhanden ist
Ein Hinweis auf Missverständnisse beim Versuch, das gesamte selbst erstellte Modul mit Python3 zu laden
Ein Memo, das mit Python & Spark Daten aus dashDB liest
Verbessern Sie schnell die Erkennungsgenauigkeit, indem Sie Parameter mit openCV-Gesichtserkennung angeben
Gesichtserkennung mit OpenCV von Python
Bestimmen Sie, ob die Zeichenfolge Zeit mit einem regulären Python-Ausdruck ist
"Apple-Verarbeitung" mit OpenCV3 + Python3
Nehmen Sie schnell eine Abfragezeichenfolge mit API Gateway-> Lambda (Python)
Twitter-Grafiknotiz mit Python
Bildbearbeitung mit Python OpenCV
Kameraerfassung mit Python + OpenCV
[Python] Verwenden von OpenCV mit Python (Basic)
[Python] Mit Scheiben umkehren! !! (Es gibt auch einen Kommentar zu Scheiben!)
[Python] Hinweise beim Versuch, Numpy mit Cython zu verwenden
Gesichtserkennung mit Python + dlib
Verwenden Sie ein Makro, das beim Speichern von Python mit vscode ausgeführt wird
Ein Hinweis beim Erstellen eines gerichteten Diagramms mit Graphviz in Python
Das Graustufenbild wird in OpenCV / Python als Farbbild angezeigt
Machen Sie eine Lotterie mit Python
Erstellen Sie mit python wxpython + openCV ein einfaches Videoanalysetool
Fehler beim Spielen mit Python
Wenn in python3 manage.py makemigrations "Keine Änderungen erkannt" angezeigt wird
Gesichtserkennung / Schneiden mit OpenCV
Versuchen Sie die Gesichtserkennung mit Python
Erstellen Sie ein Verzeichnis mit Python
Verwenden von OpenCV mit Python @Mac
Anime-Gesichtserkennung mit OpenCV
[Python, Selenium, PhantomJS] Eine Geschichte beim Scrapen einer Website mit fauler Last
Erstellen Sie eine gestreifte Illusion mit Gammakorrektur für Python3 und openCV3
[Python] Ein Memo, das ich versucht habe, mit Asyncio zu beginnen
[Python] Ausführungszeit, wenn eine Funktion in einen Wörterbuchwert eingegeben wird
So erstellen Sie eine Überwachungskamera (Überwachungskamera) mit Opencv und Python
Erstellen Sie mit Python und OpenCV ein einfaches OMR (Mark Sheet Reader)
[Python] Ein Memo zum Betreiben eines mit GBDK mit PyBoy erstellten ROM