Cuprins:
- Pasul 1: detectarea feței într-un videoclip în timp real
- Pasul 2: Instruirea exemplelor dvs. de imagini
- Pasul 3: Recunoașterea fețelor
Video: Detectarea, formarea și recunoașterea feței Opencv: 3 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:42
OpenCV este o bibliotecă open source de viziune computerizată, care este foarte populară pentru efectuarea de sarcini de bază de procesare a imaginii, cum ar fi estomparea, amestecarea imaginilor, îmbunătățirea imaginii, precum și calitatea video, praguri etc. modele care pot fi utilizate direct pentru a rezolva sarcini simple la îndemână.
pentru instalarea opencv folosiți acest link
www.instructables.com/id/Opencv-and-Python…
Pasul 1: detectarea feței într-un videoclip în timp real
puteți căuta pe Google multe programe de detectare a feței, iar fețele detectate ar trebui să fie salvate într-un folder pentru lucrări suplimentare de procesare a imaginilor, cum ar fi antrenamentul și etichetarea. urmează să colectăm 30 de probe
import cv2
import numpy ca np
import os import sys
camera = cv2. VideoCapture (0)
faceCascade = cv2. CascadeClassifier ("haarcascade_frontalface_default.xml") #add calea fișierului harcascade
name = raw_input („Care este numele lui?”)
#toate fișierele vor fi salvate în folderul Utilizatori / prasad / Documente / imagini
dirName = "/ Utilizatori / prasad / Documente / imagini /" + nume
print (dirName) dacă nu os.path.exists (dirName): os.makedirs (dirName) print ("Director creat") altfel: print ("Numele există deja") sys.exit ()
număr = 1
# vom colecta 30 de probe
în timp ce numărul 30: break # frame = frame.array gray = cv2.cvtColor (frame, cv2. COLOR_BGR2GRAY) faces = faceCascade.detectMultiScale (gri, 1.5, 5) pentru (x, y, w, h) în fețe: roiGray = gri [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)
dacă tasta == 27:
pauză
# camera.release ()
cv2.destroyAllWindows ()
Pasul 2: Instruirea exemplelor dvs. de imagini
După ce Detectarea feței a fost finalizată, putem merge la antrenamentul imaginilor
import osimport numpy as np from PIL import Image 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 (_ fișier_))
#trenați imaginile din folderul imagini
imageDir = os.path.join (baseDir, "imagini")
currentId = 1
labelIds = {} yLabels = xTrain = # ser.write ("Training …..". encode ())
pentru root, dirs, fișiere în os.walk (imageDir):
print (root, dirs, files) pentru fișier în fișiere: print (file) dacă file.endswith ("png") sau file.endswith ("jpg"): path = os.path.join (root, file) label = os.path.basename (root) print (etichetă)
dacă nu etichetați în eticheteIduri:
labelIds [label] = currentId print (labelIds) currentId + = 1
id_ = labelIds [etichetă]
pilImage = Image.open (path).convert ("L") imageArray = np.array (pilImage, "uint8") faces = faceCascade.detectMultiScale (imageArray, scaleFactor = 1.1, minVecini = 5)
pentru (x, y, w, h) în fețe:
roi = imageArray [y: y + h, x: x + w] xTrain.append (roi) yLabels.append (id_)
cu deschis („etichete”, „wb”) ca f:
pickle.dump (labelIds, f) f.close ()
recognizer.train (xTrain, np.array (yLabels))
recognizer.save ("trainer.yml") print (labelIds)
Pasul 3: Recunoașterea fețelor
după ce s-a terminat antrenamentul, puteți rula codul de mai jos, astfel încât să înceapă să vă recunoască fețele antrenate
import osos.environ ['PYTHONINSPECT'] = 'on' import cv2 import numpy as np import pickle #import RPi. GPIO as GPIO from time import sleep
cu deschis („etichete”, „rb”) ca 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
last ="
#pentru cadru în camera.capture_continuous (rawCapture, format = "bgr", use_video_port = True):
în timp ce este adevărat: ret, cadru = camera.read () gri = cv2.cvtColor (cadru, cv2. COLOR_BGR2GRAY) fețe = faceCascade.detectMultiScale (gri, scaleFactor = 1.5, minVecini = 5) pentru (x, y, w, h) în fețe: roiGray = gri [y: y + h, x: x + w]
id_, conf = recognizer.predict (roiGray)
pentru nume, valoare în 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 = nume dacă conf <= 70: cv2.rectangle (frame, (x, y), (x + w, y + h), (0, 255, 0), 2)
cv2.imshow („cadru”, cadru)
cheie = cv2.waitKey (1)
dacă tasta == 27:
break cv2.destroyAllWindows ()
Recomandat:
Detectarea feței pe Raspberry Pi 4B în 3 pași: 3 pași
Detectarea feței pe Raspberry Pi 4B în 3 pași: În acest instructabil vom efectua detectarea feței pe Raspberry Pi 4 cu Shunya O / S folosind Biblioteca Shunyaface. Shunyaface este o bibliotecă de recunoaștere / detectare a feței. Proiectul își propune să obțină cea mai rapidă viteză de detectare și recunoaștere cu
Recunoașterea și identificarea feței Arduino Face ID folosind OpenCV Python și Arduino .: 6 pași
Recunoașterea și identificarea feței | Arduino Face ID Folosind OpenCV Python și Arduino .: Recunoașterea facială AKA Face ID este una dintre cele mai importante caracteristici de pe telefoanele mobile din zilele noastre. Așadar, am avut o întrebare „pot să am un id al feței pentru proiectul meu Arduino”? iar răspunsul este da … Călătoria mea a început după cum urmează: Pasul 1: Acces la noi
Recunoașterea feței Opencv: 4 pași
Recunoașterea feței Opencv: Recunoașterea feței este un lucru destul de obișnuit acum câteva zile, în multe aplicații, cum ar fi telefoanele inteligente, multe gadget-uri electronice. Acest tip de tehnologie implică o mulțime de algoritmi și instrumente etc
Recunoașterea feței în timp real: un proiect end-to-end: 8 pași (cu imagini)
Recunoașterea feței în timp real: un proiect end-to-end: În ultimul meu tutorial care explorează OpenCV, am învățat URMĂRIREA AUTOMATICĂ A OBIECTELOR VIZIUNII. Acum vom folosi PiCam-ul nostru pentru a recunoaște fețele în timp real, după cum puteți vedea mai jos: Acest proiect a fost realizat cu acest fantastic „Open Source Computer Vision Library & qu
Detectarea feței și a ochilor cu Raspberry Pi Zero și Opencv: 3 pași
Detectarea feței și a ochilor cu Raspberry Pi Zero și Opencv: În acest instructiv vă voi arăta cum puteți detecta fața și ochii folosind raspberry pi și opencv. Acesta este primul meu instructable pe opencv. Am urmat multe tutoriale pentru a configura cv deschis în zmeură, dar de fiecare dată am lovit cu unele erori. Oricum eu