[PYTHON] Lassen Sie uns die Kamera aktivieren und Mosaik auf das menschliche Gesicht auftragen (OpenCV)

1. Zuallererst

Hallo zusammen! Dieses Mal habe ich mit Python und OpenCV ein Programm erstellt, mit dem die Kamera gestartet und in Echtzeit ein Mosaik auf ein menschliches Gesicht geschrieben werden kann. Vielleicht hat jemand anderes den Artikel bereits geschrieben ... vielleicht ist er raus. Lass es uns trotzdem tun!

2. Vorgehensweise

Der Ablauf des Programms ist hier.

  1. Starten Sie die Kamera.
  2. Erkennen Sie das Gesicht einer Person. (Haarartiger Merkmalsklassifikator)
  3. Mosaik der Bereich, in dem sich ein menschliches Gesicht befindet. das ist alles.

3. Starten Sie die Kamera.

Starten Sie die Kamera mit OpenCV.

kido.py


import cv2
cap = cv2.VideoCapture(0)
while True:
    ret, img = cap.read()
    cv2.imshow('video image', img)#'video image'Ist der Name des Kamerafensters
    key = cv2.waitKey(10)
    if key == 27:  #Beenden Sie mit der ESC-Taste
        break
cap.release()
cv2.destroyAllWindows()

video image.png

Jetzt können Sie die Kamera umkreisen. Drücken Sie die Esc-Taste und das Fenster wird geschlossen.

4. Menschliches Gesicht erkennen (Haar-ähnlicher Merkmalsklassifikator)

OpenCV wird mit einem Haar-ähnlichen Feature-Klassifikator geliefert. Praktisch! Es kann jedoch nur behandelt werden, wenn die Datei gespeichert ist. Dieses Mal möchte ich das menschliche Gesicht erkennen, also werde ich haarcascade_frontalface_alt.xml von hier behandeln.

Übrigens erkennt der Haar-ähnliche Merkmalsklassifizierer das Gesicht, indem er die Merkmalsmenge extrahiert, während die Größe des Haar-ähnlichen Filters durch das Haar-ähnliche Merkmal geändert wird, wobei der Unterschied in der Helligkeit von der Merkmalsmenge, die das Merkmal des Bildes und des Addaboost aufnehmen kann, berücksichtigt wird. Ich werde. Lassen Sie uns nun die Kamera starten und das menschliche Gesicht erkennen.

ninsiki.py


import cv2

#Haar-wie In der Lage sein, Feature-Klassifikatoren zu behandeln.
face_cascade_path="haarcascade_frontalface_alt.xml" #Bitte geben Sie den Pfad an.
face_cascade = cv2.CascadeClassifier(face_cascade_path)

cap = cv2.VideoCapture(0)
while True:
    ret, img = cap.read()
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    faces = face_cascade.detectMultiScale(gray, scaleFactor=1.3, minNeighbors=5)
    #Schließen Sie das Gesicht einer Person in einer rechteckigen Form ein
    for x, y, w, h in faces:
        cv2.rectangle(img, (x, y), (x + w, y + h), (255, 0, 0), 2)
        face = img[y: y + h, x: x + w]
        face_gray = gray[y: y + h, x: x + w]
    cv2.imshow('video image', img)
    key = cv2.waitKey(10)
    if key == 27:  #Beenden Sie mit der ESC-Taste
        break

cap.release()
cv2.destroyAllWindows()

video image.png Jetzt können Sie das menschliche Gesicht erkennen.

5. Mosaik auftragen

Ohne zu glauben, dass die Mosaikverarbeitung schwierig ist, wird das Gesichtsbild einmal verkleinert, dann vergrößert und auf das Gesichtsbild eingefügt.

mozaic.py


import cv2

#Haar-wie In der Lage sein, Feature-Klassifikatoren zu behandeln.
face_cascade_path="haarcascade_frontalface_alt.xml"
face_cascade = cv2.CascadeClassifier(face_cascade_path)
ratio = 0.07 #Wenn Sie hier den Wert ändern, ändert sich die Rauheit des Mosaiks.

cap = cv2.VideoCapture(0)
while True:
    ret, img = cap.read()
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    faces = face_cascade.detectMultiScale(gray, scaleFactor=1.3, minNeighbors=5)
    for x, y, w, h in faces:
        #Die Mosaikverarbeitung erfolgt in zwei einzelnen Zeilen.
        small = cv2.resize(img[y: y+h, x: x+w], None,fy=ratio, fx=ratio,interpolation=cv2.INTER_NEAREST)
        img[y: y + h, x: x + w] = cv2.resize(small, (w, h), interpolation=cv2.INTER_NEAREST)
    cv2.imshow('video image', img)
    key = cv2.waitKey(10)
    if key == 27:  #Beenden Sie mit der ESC-Taste
        break

cap.release()
cv2.destroyAllWindows()

video image.png Es wurde abgeschlossen.

6. Zusammenfassung

Dieses Mal haben wir das Gesicht in Echtzeit erkannt und die Mosaikverarbeitung auf das Gesicht angewendet. Da es durch den Helligkeitsunterschied klassifiziert wird, reagiert sogar eine Karikatur. (Es gibt einige Fehlalarme), aber OpenCV macht Spaß, da Sie die Gesichtserkennung (Gesichtserkennung) mit einem Funktionscode ausprobieren können. Es kann schwierig sein zu verstehen, weil ich nie Informationen wie Blogs gesendet habe. Von nun an möchte ich Informationen verbreiten und meine Schreibfähigkeiten verbessern. Mein Traum ist es, eine Person zu werden, die mit Technologie spielen kann. Bitte schauen Sie mit warmen Augen zu. Danke im Voraus. Na dann!

Recommended Posts

Lassen Sie uns die Kamera aktivieren und Mosaik auf das menschliche Gesicht auftragen (OpenCV)
So erstellen Sie eine Überwachungskamera (Überwachungskamera) mit Opencv und Python
Wenden wir die Markenbildfarbe auf die Farbkarte von matplotlib an!
Ein Server, der mit Flasche.py und OpenCV die Anzahl der Personen vor der Kamera zurückgibt
Erstellen Sie eine WEB-Überwachungskamera mit Raspberry Pi und OpenCV
Erstellen Sie eine Python-Umgebung und übertragen Sie Daten auf den Server
Nehmen Sie Zeitraffer von einer PC-Kamera mit Python, OpenCV auf
Ich möchte die Ausführungszeit aufzeichnen und ein Protokoll führen.
Schreiben Sie ein Programm, um den 4x4x4 Rubik Cube zu lösen! 2. Algorithmus
Schreiben Sie ein Programm, um den 4x4x4 Rubik Cube zu lösen! 3. Implementierung
So formatieren Sie eine Tabelle mit Pandas Apply, Pivot und Swaplevel
Schreiben Sie ein Programm, das das Programm missbraucht und 100 E-Mails sendet
Ich möchte die Position meines Gesichts mit OpenCV überprüfen!
Der schnellste Weg, um regelmäßig Kamerabilder mit Pythons OpenCV zu erhalten