[PYTHON] Essai de reconnaissance faciale facile avec Jetson Nano et caméra Web

introduction

J'ai essayé la reconnaissance faciale en temps réel avec une webcam sur Jetson Nano.

Page référencée

Essai d'acquisition d'image

Voyons d'abord comment obtenir l'image avec la caméra Web. C'était vraiment facile.

camTest.py



import cv2

#Lancer la caméra
capture = cv2.VideoCapture(0)

while(True):
    #Obtenez 1 image de cadre
    ret, frame = capture.read()
    #Afficher l'image dans la fenêtre
    cv2.imshow("frame", frame)
    #Arrêter lorsque q est enfoncé
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
#Libération
capture.release()
cv2.destroyAllWindows()

Il s'arrête lorsque j'appuie sur q, mais cela ne fonctionne pas correctement à moins que je n'appuie dessus avec le focus sur la fenêtre au lieu du terminal.

Reconnaissance de visage

Lorsque vous installez OpenCV, le fichier du classificateur en cascade est inclus, alors utilisez-le. (https://github.com/opencv/opencv/tree/master/data/haarcascades)

La procédure de reconnaissance faciale est la suivante

  1. Obtenez l'image
  2. Conversion en échelle de gris
  3. Traitement de reconnaissance faciale
  4. Écrivez un cadre à la position de reconnaissance

find_face.py



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

import time
import cv2

#Taille du cadre (plus grande rend le traitement plus lourd)
FRAME_W = 320
FRAME_H = 240

#Classificateur en cascade pour la détection de visage (probablement un fichier qui résume les fonctionnalités)
#J'ai eu une erreur lorsque j'ai essayé de lire quelque chose qui se trouvait dans un autre dossier, alors je l'ai copié dans le même dossier
cascadeFilePath = './haarcascade_frontalface_default.xml'
cascade = cv2.CascadeClassifier(cascadeFilePath)

#Les paramètres de la caméra
cam = cv2.VideoCapture(0)
time.sleep(1)                 #En attente de démarrage (pour le moment)
cam.set(cv2.CAP_PROP_FPS, 60) #Je ne sais pas si c'était 60
cam.set(cv2.CAP_PROP_FRAME_WIDTH, FRAME_W)
cam.set(cv2.CAP_PROP_FRAME_HEIGHT, FRAME_H)

while(True):
    #Terminer par q
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

    #Acquisition d'image
    ret, frame = cam.read()
    #Convertir en échelle de gris
    gray_image = cv2.cvtColor(frame, cv2.COLOR_RGB2GRAY)
    #Reconnaissance de visage
    facerect = cascade.detectMultiScale(gray_image, scaleFactor=1.1, minNeighbors=2, minSize=(30, 30))

    #Le visage a-t-il été détecté?
    if len(facerect) > 0:
        #Couleur de la bordure
        line_color = (255, 102, 51)
        #Couleur du texte
        font_color = (255, 102, 51)

        #Écrivez un cadre et des caractères FACE sur le visage détecté
        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)

    #Afficher dans la fenêtre
    cv2.imshow('frame', frame)
    

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

Reconnu en temps réel! 64995AAA-1ABA-4969-960B-2DD91F03FB4A.jpeg

Recommended Posts

Essai de reconnaissance faciale facile avec Jetson Nano et caméra Web
Essayez la reconnaissance faciale avec Python
Essayez la reconnaissance faciale avec python + OpenCV
[Facile] Reconnaissance automatique AI avec une webcam!
[Python3] [Ubuntu16] [Docker] Essayez la reconnaissance faciale avec OpenFace
Reconnaissance faciale avec Edison
Maintenant, essayons la reconnaissance faciale avec Chainer (phase de prédiction)
Maintenant, essayons la reconnaissance faciale avec Chainer (phase d'apprentissage)
Reconnaissance faciale avec OpenCV de Python
Reconnaissance faciale par Amazon Rekognition
Reconnaissance faciale / coupe avec OpenCV
Easy Slackbot avec Docker et Errbot
Utilisez PX-S1UD / PX-Q1UD avec Jetson nano
ZOOM en remplaçant votre visage par une icône Twitter avec la reconnaissance faciale openCV
J'ai essayé la reconnaissance faciale avec OpenCV
Mettez DeepStream SDK Python Binding dans Jetson Nano et essayez la détection d'objets
Hello World et détection de visage avec opencv-python 4.2
Exécutez le YOLO original avec Jetson Nano
Introduction facile de la reconnaissance vocale avec Python
Reconnaissance faciale des personnages d'anime avec Keras
[python, openCV] base64 Reconnaissance faciale dans les images
API de reconnaissance faciale sans serveur conçue avec Python
Facile! Utilisez gensim et word2vec avec MAMP.
Scraping Web facile avec Python et Ruby
Hello World et détection de visage avec OpenCV 4.3 + Python
Essayez d'exécuter Google Chrome avec Python et Selenium
Essayez de communiquer avec EV3 et PC! (MQTT)
Essayez de monter votre visage avec le test AB
Easy X-Ray avec Lambda Layer et CloudFormation / sam-cli