[PYTHON] Einfacher Gesichtserkennungsversuch mit Jetson Nano und Webkamera

Einführung

Ich habe die Gesichtserkennung in Echtzeit mit einer Webcam auf Jetson Nano ausprobiert.

Referenzierte Seite

Bildaufnahme versuchen

Lassen Sie uns zunächst überprüfen, wie Sie das Bild mit der Webkamera erhalten. Es war wirklich einfach.

camTest.py



import cv2

#Kamera starten
capture = cv2.VideoCapture(0)

while(True):
    #Holen Sie sich 1 Bild
    ret, frame = capture.read()
    #Bild im Fenster anzeigen
    cv2.imshow("frame", frame)
    #Stoppen Sie, wenn q gedrückt wird
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
#Veröffentlichung
capture.release()
cv2.destroyAllWindows()

Es stoppt, wenn ich "q" drücke, aber es funktioniert nicht richtig, es sei denn, ich drücke es mit dem Fokus auf das Fenster anstelle des Terminals.

Gesichtserkennung

Wenn Sie OpenCV installieren, ist die Kaskadenklassifizierungsdatei enthalten. Verwenden Sie sie daher. (https://github.com/opencv/opencv/tree/master/data/haarcascades)

Das Verfahren zur Gesichtserkennung ist wie folgt

  1. Holen Sie sich das Bild
  2. In Graustufen konvertieren
  3. Gesichtserkennungsverarbeitung
  4. Schreiben Sie einen Rahmen an der Erkennungsposition

find_face.py



# -*- coding: utf-8 -*-

import time
import cv2

#Rahmengröße (größer macht die Verarbeitung schwerer)
FRAME_W = 320
FRAME_H = 240

#Kaskadenklassifikator für die Gesichtserkennung (wahrscheinlich eine Datei, die Funktionen zusammenfasst)
#Ich habe eine Fehlermeldung erhalten, als ich versucht habe, etwas zu lesen, das sich in einem anderen Ordner befindet, und habe es daher in denselben Ordner kopiert
cascadeFilePath = './haarcascade_frontalface_default.xml'
cascade = cv2.CascadeClassifier(cascadeFilePath)

#Kameraeinstellungen
cam = cv2.VideoCapture(0)
time.sleep(1)                 #Warten auf den Start (vorerst)
cam.set(cv2.CAP_PROP_FPS, 60) #Ich weiß nicht, ob es 60 war
cam.set(cv2.CAP_PROP_FRAME_WIDTH, FRAME_W)
cam.set(cv2.CAP_PROP_FRAME_HEIGHT, FRAME_H)

while(True):
    #Beenden Sie mit q
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

    #Bildaufnahme
    ret, frame = cam.read()
    #In Graustufen konvertieren
    gray_image = cv2.cvtColor(frame, cv2.COLOR_RGB2GRAY)
    #Gesichtserkennung
    facerect = cascade.detectMultiScale(gray_image, scaleFactor=1.1, minNeighbors=2, minSize=(30, 30))

    #Wurde das Gesicht erkannt?
    if len(facerect) > 0:
        #Randfarbe
        line_color = (255, 102, 51)
        #Textfarbe
        font_color = (255, 102, 51)

        #Schreiben Sie einen Rahmen und GESICHTSzeichen auf das erkannte Gesicht
        for (x, y, width, height) in facerect:
            cv2.rectangle(frame, (x, y), (x + width, y + height), line_color, 2)
            cv2.putText(frame, 'FACE', (x, y), cv2.FONT_HERSHEY_SIMPLEX, 0.7, font_color, 1, cv2.LINE_AA)

    #Im Fenster anzeigen
    cv2.imshow('frame', frame)
    

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

In Echtzeit erkannt! 64995AAA-1ABA-4969-960B-2DD91F03FB4A.jpeg

Recommended Posts

Einfacher Gesichtserkennungsversuch mit Jetson Nano und Webkamera
Versuchen Sie die Gesichtserkennung mit Python
Versuchen Sie die Gesichtserkennung mit Python + OpenCV
[Einfach] AI automatische Erkennung mit einer Webkamera!
[Python3] [Ubuntu16] [Docker] Versuchen Sie die Gesichtserkennung mit OpenFace
Gesichtserkennung mit Edison
Versuchen wir nun die Gesichtserkennung mit Chainer (Vorhersagephase).
Versuchen wir nun die Gesichtserkennung mit Chainer (Lernphase)
Gesichtserkennung mit OpenCV von Python
Gesichtserkennung durch Amazon Rekognition
Gesichtserkennung / Schneiden mit OpenCV
Einfacher Slackbot mit Docker und Errbot
Verwenden Sie PX-S1UD / PX-Q1UD mit Jetson Nano
ZOOM, indem Sie Ihr Gesicht durch ein Twitter-Symbol mit openCV-Gesichtserkennung ersetzen
Ich habe versucht, das Gesicht mit OpenCV zu erkennen
Fügen Sie DeepStream SDK Python Binding in Jetson Nano ein und versuchen Sie die Objekterkennung
Hallo Welt- und Gesichtserkennung mit opencv-python 4.2
Führen Sie das Original YOLO mit Jetson Nano aus
Einfache Einführung der Spracherkennung mit Python
Gesichtserkennung von Anime-Charakteren mit Keras
[python, openCV] base64 Gesichtserkennung in Bildern
Serverlose Gesichtserkennungs-API mit Python
Einfach! Verwenden Sie gensim und word2vec mit MAMP.
Einfaches Web-Scraping mit Python und Ruby
Hallo Welt- und Gesichtserkennung mit OpenCV 4.3 + Python
Versuchen Sie, Google Chrome mit Python und Selenium auszuführen
Versuche mit EV3 und PC zu kommunizieren! (MQTT)
Versuchen Sie, Ihr Gesicht mit dem AB-Test zu montieren
Einfache Röntgenaufnahme mit Lambda Layer und CloudFormation / sam-cli