Taula de continguts:
- Pas 1: detectar la cara en un vídeo en temps real
- Pas 2: entrenar les imatges de mostra
- Pas 3: reconeixement de cares
Vídeo: Detecció, formació i reconeixement de cares Opencv: 3 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:12
OpenCV és una biblioteca de visió per ordinador de codi obert que és molt popular per realitzar tasques bàsiques de processament d’imatges, com ara desenfocament, barreja d’imatges, millora de la imatge, així com la qualitat del vídeo, llindars, etc. A més del processament d’imatges, proporciona diversos aprenentatges profunds models que es poden utilitzar directament per resoldre tasques senzilles a mà.
utilitzeu aquest enllaç per a la instal·lació opencv
www.instructables.com/id/Opencv-and-Python…
Pas 1: detectar la cara en un vídeo en temps real
podeu cercar a Google molts programes de detecció de cares i les cares detectades s'han de desar a una carpeta per processar imatges, com ara formació i etiquetatge. recollirem 30 mostres
importar cv2
importar numpy com a np
import os import sys
camera = cv2. VideoCapture (0)
faceCascade = cv2. CascadeClassifier ("haarcascade_frontalface_default.xml") #afegeix el camí del fitxer harcascade
name = raw_input ("Com es diu?")
#Tots els fitxers es desaran a la carpeta Usuaris / prasad / Documents / images
dirName = "/ Usuaris / prasad / Documents / imatges /" + nom
print (dirName) si no os.path.exists (dirName): os.makedirs (dirName) print ("Directori creat") else: print ("El nom ja existeix") sys.exit ()
compte = 1
#recollirem 30 mostres
mentre es compta 30: break # frame = frame.array gray = cv2.cvtColor (frame, cv2. COLOR_BGR2GRAY) faces = faceCascade.detectMultiScale (gris, 1.5, 5) per a (x, y, w, h) en cares: roiGray = gris [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 clau == 27:
trencar
# camera.release ()
cv2.destroyAllWindows ()
Pas 2: entrenar les imatges de mostra
Un cop finalitzada la detecció de cares, podem anar a entrenar les imatges
import osimport numpy as np from PIL import Image import cv2 import pickle #import serial
#ser = serial. Serial ('/ dev / ttyACM0', 9600, timeout = 1)
faceCascade = cv2. CascadeClassifier ("haarcascade_frontalface_default.xml")
recognizer = cv2.face. LBPHFaceRecognizer_create ()
baseDir = os.path.dirname (os.path.abspath (_ fitxer_))
# entrenar les imatges a la carpeta d'imatges
imageDir = os.path.join (baseDir, "images")
currentId = 1
labelIds = {} yLabels = xTrain = # ser.write ("Training …..". codificar ())
per a root, dirs, fitxers a os.walk (imageDir):
imprimir (arrel, dirs, fitxers) per al fitxer en fitxers: imprimir (fitxer) si file.endswith ("png") o file.endswith ("jpg"): path = os.path.join (root, file) label = os.path.basename (root) print (etiqueta)
si no és etiqueta a labelIds:
labelIds [label] = currentId print (labelIds) currentId + = 1
id_ = labelIds [label]
pilImage = Image.open (path).convert ("L") imageArray = np.array (pilImage, "uint8") faces = faceCascade.detectMultiScale (imageArray, scaleFactor = 1.1, minNeighbors = 5)
per a (x, y, w, h) en cares:
roi = imageArray [y: y + h, x: x + w] xTrain.append (roi) yLabels.append (id_)
amb obert ("etiquetes", "wb") com a f:
pickle.dump (labelIds, f) f.close ()
recognizer.train (xTrain, np.array (yLabels))
recognizer.save ("trainer.yml") imprimeix (labelIds)
Pas 3: reconeixement de cares
un cop acabat l'entrenament, podeu executar el codi següent perquè comenci a reconèixer les vostres cares entrenades
import osos.environ ['PYTHONINSPECT'] = 'on' import cv2 import numpy as np import pickle #import RPi. GPIO as GPIO from time import sleep
amb obert ('etiquetes', 'rb') com a f:
dicti = pickle.load (f) f.close ()
camera = cv2. VideoCapture (0)
faceCascade = cv2. CascadeClassifier ("haarcascade_frontalface_default.xml")
recognizer = cv2.face. LBPHFaceRecognizer_create () recognizer.read ("trainer.yml")
font = cv2. FONT_HERSHEY_SIMPLEX
últim ="
#for frame in camera.capture_continuous (rawCapture, format = "bgr", use_video_port = True):
mentre que True: ret, frame = camera.read () gris = cv2.cvtColor (frame, cv2. COLOR_BGR2GRAY) faces = faceCascade.detectMultiScale (gris, scaleFactor = 1.5, minNeighbors = 5) per (x, y, w, h) a les cares: roiGray = gris [y: y + h, x: x + w]
id_, conf = recognizer.predict (roiGray)
per nom, valor a 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 (marc, (x, y), (x + w, y + h), (0, 255, 0), 2)
cv2.imshow ('marc', marc)
clau = cv2.waitKey (1)
si clau == 27:
trencar cv2.destroyAllWindows ()
Recomanat:
Detecció de cares a Raspberry Pi 4B en 3 passos: 3 passos
Detecció de cares a Raspberry Pi 4B en 3 passos: en aquest manual, farem la detecció de cares a Raspberry Pi 4 amb Shunya O / S mitjançant la biblioteca Shunyaface. Shunyaface és una biblioteca de reconeixement / detecció de cares. El projecte té com a objectiu aconseguir una velocitat de detecció i reconeixement més ràpida amb
Càmera IP amb detecció de cares mitjançant la placa ESP32-CAM: 5 passos
Càmera IP amb detecció de cares mitjançant la placa ESP32-CAM: aquesta publicació és diferent en comparació amb les altres i fem una ullada a la molt interessant placa ESP32-CAM que és sorprenentment barata (menys de 9 dòlars) i fàcil d’utilitzar. Creem una càmera IP senzilla que es pot utilitzar per transmetre un canal de vídeo en directe mitjançant el 2
Detecció de cares en temps real al RaspberryPi-4: 6 passos (amb imatges)
Detecció de cares en temps real al RaspberryPi-4: en aquest manual, farem una detecció de cares en temps real al Raspberry Pi 4 amb Shunya O / S mitjançant la biblioteca Shunyaface. Podeu assolir una freqüència de fotogrames de detecció de 15 a 17 al RaspberryPi-4 seguint aquest tutorial
Detecció de cares + reconeixement: 8 passos (amb imatges)
Detecció de cares + reconeixement: aquest és un exemple senzill d’execució de detecció i reconeixement de cares amb OpenCV des d’una càmera. NOTA: HE FET AQUEST PROJECTE PER A CONCURSOS DE SENSORS I he utilitzat la càmera com a sensor per fer un seguiment i reconeixement de cares. Per tant, el nostre objectiu En aquesta sessió, 1. Instal·leu Anaconda
Detecció de cares i ulls amb Raspberry Pi Zero i Opencv: 3 passos
Detecció de cares i ulls amb Raspberry Pi Zero i Opencv: en aquest instructiu us mostraré com podeu detectar la cara i els ulls amb raspberry pi i opencv. Aquest és el meu primer instructable a opencv. Vaig seguir molts tutorials per configurar cv obert a gerds, però cada cop em vaig trobar amb alguns errors. De tota manera jo