Table des matières:
- Étape 1: Détecter le visage dans une vidéo en temps réel
- Étape 2: Formation de vos exemples d'images
- Étape 3: Reconnaître les visages
Vidéo: Détection de visage Opencv, formation et reconnaissance : 3 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:06
OpenCV est une bibliothèque de vision par ordinateur open source qui est très populaire pour effectuer des tâches de traitement d'image de base telles que le flou, le mélange d'images, l'amélioration de la qualité d'image ainsi que la qualité vidéo, le seuillage, etc. En plus du traitement d'image, il fournit divers apprentissage en profondeur pré-formés. modèles qui peuvent être directement utilisés pour résoudre des tâches simples à accomplir.
pour l'installation d'opencv, utilisez ce lien
www.instructables.com/id/Opencv-and-Python…
Étape 1: Détecter le visage dans une vidéo en temps réel
vous pouvez rechercher sur Google de nombreux programmes de détection de visages et les visages détectés doivent être enregistrés dans un dossier pour un traitement d'image ultérieur, comme la formation et l'étiquetage. nous allons collecter 30 échantillons
importer cv2
importer numpy en tant que np
importer os importer sys
caméra = cv2. VideoCapture(0)
faceCascade = cv2. CascadeClassifier("haarcascade_frontalface_default.xml") #ajouter le chemin de votre fichier harcascade
name = raw_input("Quel est son nom ? ")
#tous les fichiers seront enregistrés dans le dossier Users/prasad/Documents/images
dirName = "/Users/prasad/Documents/images/" + nom
print(dirName) sinon os.path.exists(dirName): os.makedirs(dirName) print("Répertoire créé") sinon: print("Le nom existe déjà") sys.exit()
compte = 1
#nous allons collecter 30 échantillons
alors que compte 30: break # frame = frame.array gray = cv2.cvtColor(frame, cv2. COLOR_BGR2GRAY) faces = faceCascade.detectMultiScale(gray, 1.5, 5) pour (x, y, w, h) dans les faces: roiGray = gray[y:y+h, x:x+w] fileName = dirName + "/" + name + str(count) + ".jpg" cv2.imwrite(fileName, roiGray) cv2.imshow("face", roiGray) cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255, 0), 2) count += 1 cv2.imshow('frame', frame) key = cv2.waitKey(1)
si clé == 27:
Pause
#camera.release()
cv2.destroyAllWindows()
Étape 2: Formation de vos exemples d'images
Une fois la détection des visages terminée, nous pouvons procéder à la formation des images
importer osimport numpy en tant que np de PIL importer Image importer cv2 importer pickle #import serial
#ser = serial. Serial('/dev/ttyACM0', 9600, timeout=1)
faceCascade = cv2. CascadeClassifier("haarcascade_frontalface_default.xml")
reconnaissance = cv2.face. LBPHFaceRecognizer_create()
baseDir = os.path.dirname(os.path.abspath(_file_))
#trainer les images sous le dossier images
imageDir = os.path.join(baseDir, "images")
Id actuel = 1
labelIds = {} yLabels = xTrain = #ser.write("Formation…..".encode())
pour la racine, les répertoires, les fichiers dans os.walk(imageDir):
print(root, dirs, files) pour le fichier dans les fichiers: print(file) if file.endswith("png") ou file.endswith("jpg"): path = os.path.join(root, file) label = os.path.basename(root) print(label)
si ce n'est pas le cas dans labelIds:
labelIds[label] = currentId print(labelIds) currentId += 1
id_ = étiquetteIds[étiquette]
pilImage = Image.open(path).convert("L") imageArray = np.array(pilImage, "uint8") faces = faceCascade.detectMultiScale(imageArray, scaleFactor=1.1, minNeighbors=5)
pour (x, y, w, h) dans les faces:
roi = imageArray[y:y+h, x:x+w] xTrain.append(roi) yLabels.append(id_)
avec open("labels", "wb") comme f:
pickle.dump(labelIds, f) f.close()
reconnaître.train(xTrain, np.array(yLabels))
reconnaissant.save("trainer.yml") print(labelIds)
Étape 3: Reconnaître les visages
une fois l'entraînement terminé, vous pouvez maintenant exécuter le code ci-dessous pour qu'il commence à reconnaître vos visages entraînés
import osos.environ['PYTHONINSPECT'] = 'on' import cv2 import numpy as np import pickle #import RPi. GPIO as GPIO from time import sleep
avec open('labels', 'rb') comme f:
dicti = pickle.load(f) f.close()
caméra = cv2. VideoCapture(0)
faceCascade = cv2. CascadeClassifier("haarcascade_frontalface_default.xml")
reconnaisseur = cv2.face. LBPHFaceRecognizer_create() reconnaitre.read("trainer.yml")
police = cv2. FONT_HERSHEY_SIMPLEX
dernier=''
#for frame in camera.capture_continuous(rawCapture, format="bgr", use_video_port=True):
tandis que True: ret, frame = camera.read() gray = cv2.cvtColor(frame, cv2. COLOR_BGR2GRAY) faces = faceCascade.detectMultiScale(gray, scaleFactor = 1.5, minNeighbors = 5) pour (x, y, w, h) dans les visages: roiGray = gray[y:y+h, x:x+w]
id_, conf = reconnaitre.predict(roiGray)
pour le nom, la valeur dans dicti.items():
if value == id_: print(name) cv2.putText(frame, name, (x, y), font, 2, (0, 0, 255), 2, cv2. LINE_AA) if name!=last: last= nom si conf <= 70: cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255, 0), 2)
cv2.imshow('cadre', cadre)
clé = cv2.waitKey(1)
si clé == 27:
casser cv2.destroyAllWindows()
Conseillé:
Détection de visage sur Raspberry Pi 4B en 3 étapes : 3 étapes
Détection de visage sur Raspberry Pi 4B en 3 étapes : dans ce Instructable, nous allons effectuer une détection de visage sur Raspberry Pi 4 avec Shunya O/S en utilisant la bibliothèque Shunyaface. Shunyaface est une bibliothèque de reconnaissance/détection de visage. Le projet vise à atteindre la vitesse de détection et de reconnaissance la plus rapide avec
Caméra IP avec détection de visage à l'aide de la carte ESP32-CAM : 5 étapes
Caméra IP avec détection de visage à l'aide de la carte ESP32-CAM : Ce post est différent des autres et nous jetons un coup d'œil à la carte ESP32-CAM très intéressante qui est étonnamment bon marché (moins de 9 $) et facile à utiliser. Nous créons une simple caméra IP qui peut être utilisée pour diffuser un flux vidéo en direct à l'aide des 2
Suivi du visage et détection des sourires des robots d'Halloween : 8 étapes (avec photos)
Suivi du visage et détection des sourires des robots d'Halloween : Halloween approche ! Nous avons décidé de construire quelque chose de cool. Rencontrez les robots Ghosty et Skully. Ils peuvent suivre votre visage et ils savent quand vous souriez pour rire avec vous ! Ce projet est un autre exemple d'utilisation de l'application iRobbie qui convertit l'iPhone en
Détection de visage + reconnaissance : 8 étapes (avec photos)
Détection de visage + reconnaissance : il s'agit d'un exemple simple d'exécution de la détection et de la reconnaissance de visage avec OpenCV à partir d'une caméra. REMARQUE : J'AI RÉALISÉ CE PROJET POUR LE CONCOURS DE CAPTEURS ET J'AI UTILISÉ LA CAMÉRA COMME CAPTEUR POUR SUIVRE ET RECONNAÎTRE LES VISAGES. Donc, notre objectif Dans cette session, 1. Installer Anaconda
Détection du visage et des yeux avec Raspberry Pi Zero et Opencv : 3 étapes
Détection du visage et des yeux avec Raspberry Pi Zero et Opencv : dans ce instructable, je vais montrer comment vous pouvez détecter le visage et les yeux à l'aide de Raspberry Pi et opencv. C'est mon premier instructable sur opencv. J'ai suivi de nombreux tutoriels pour configurer open cv dans framboise mais à chaque fois j'ai rencontré quelques erreurs. De toute façon je