Innehållsförteckning:
- Steg 1: Detektera ansikte i en realtidsvideo
- Steg 2: Träna dina exempelbilder
- Steg 3: Känna igen ansikten
Video: Opencv Face Detection, Training and Recognition: 3 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:39
OpenCV är ett open source-datorsynsbibliotek som är mycket populärt för att utföra grundläggande bildbehandlingsuppgifter som oskärpa, bildblandning, förbättra bild såväl som videokvalitet, tröskelvärden etc. Förutom bildbehandling ger det olika förutbildade djupinlärningar modeller som direkt kan användas för att lösa enkla uppgifter.
för opencv -installation, använd den här länken
www.instructables.com/id/Opencv-and-Python…
Steg 1: Detektera ansikte i en realtidsvideo
du kan söka på google efter många program för ansiktsigenkänning och de upptäckta ansiktena ska sparas i en mapp för vidare bildbehandling, t.ex. utbildning och märkning. vi ska samla 30 prover
importera cv2
importera numpy som np
import os import sys
kamera = cv2. VideoCapture (0)
faceCascade = cv2. CascadeClassifier ("haarcascade_frontalface_default.xml") #lägg till din harcascade -filsökväg
name = raw_input ("Vad heter han/hon?")
#alla filer sparas under mappen Users/prasad/Documents/images
dirName = "/Users/prasad/Documents/images/" + namn
print (dirName) om inte os.path.exists (dirName): os.makedirs (dirName) print ("Directory skapat") else: print ("Namn finns redan") sys.exit ()
räkna = 1
#vi ska samla 30 prover
medan räkningen 30: bryta # ram = ram.array grå = cv2.cvtColor (ram, cv2. COLOR_BGR2GRAY) ansikten = faceCascade.detectMultiScale (grå, 1,5, 5) för (x, y, w, h) i ansikten: roiGray = grå [y: y + h, x: x + w] fileName = dirName + "/" + name + str (count) + ".jpg" cv2.imwrite (fileName, roiGray) cv2.imshow ("face", roiGray) cv2.rektangel (ram, (x, y), (x+w, y+h), (0, 255, 0), 2) count+= 1 cv2.imshow ('frame', frame) key = cv2.waitKey (1)
if nyckel == 27:
ha sönder
#camera.release ()
cv2.destroyAllWindows ()
Steg 2: Träna dina exempelbilder
Efter att ansiktsigenkänning slutförts kan vi träna bilderna
import osimport numpy as np från PIL import Image import cv2 import pickle #import serial
#ser = serial. Serial ('/dev/ttyACM0', 9600, timeout = 1)
faceCascade = cv2. CascadeClassifier ("haarcascade_frontalface_default.xml")
identifierare = cv2.face. LBPHFaceRecognizer_create ()
baseDir = os.path.dirname (os.path.abspath (_ fil_))
#träna bilderna under bildmappen
imageDir = os.path.join (baseDir, "bilder")
currentId = 1
labelIds = {} yLabels = xTrain = #ser.write ("Träning …..". kodning ())
för root, dirs, filer i os.walk (imageDir):
print (root, dirs, files) för fil i filer: print (file) if file.endswith ("png") eller file.endswith ("jpg"): path = os.path.join (root, file) label = os.path.basename (root) print (etikett)
om inte etikett i labelIds:
labelIds [label] = currentId print (labelIds) currentId += 1
id_ = labelIds [label]
pilImage = Image.open (sökväg).convert ("L") imageArray = np.array (pilImage, "uint8") ansikten = faceCascade.detectMultiScale (imageArray, scaleFactor = 1.1, minNeighbors = 5)
för (x, y, w, h) i ansikten:
roi = imageArray [y: y+h, x: x+w] xTrain.append (roi) yLabels.append (id_)
med öppen ("etiketter", "wb") som f:
pickle.dump (labelIds, f) f.close ()
identifierare.train (xTrain, np.array (yLabels))
Recognizer.save ("trainer.yml") print (labelIds)
Steg 3: Känna igen ansikten
efter att träningen var över nu kan du köra koden nedan så att den börjar känna igen dina tränade ansikten
import osos.environ ['PYTHONINSPECT'] = 'on' import cv2 import numpy as np import pickle #import RPi. GPIO as GPIO from time import sleep
med öppna ('etiketter', 'rb') som f:
dicti = pickle.load (f) f.close ()
kamera = cv2. VideoCapture (0)
faceCascade = cv2. CascadeClassifier ("haarcascade_frontalface_default.xml")
igenkännare = cv2.face. LBPHFaceRecognizer_create () igenkännare.läs ("trainer.yml")
font = cv2. FONT_HERSHEY_SIMPLEX
sista = ''
#för ram i kamera.capture_continuous (rawCapture, format = "bgr", use_video_port = True):
medan True: ret, frame = camera.read () grå = cv2.cvtColor (frame, cv2. COLOR_BGR2GRAY) ansikten = faceCascade.detectMultiScale (grå, scaleFactor = 1,5, minNeighbors = 5) för (x, y, w, h) i ansikten: roiGray = grå [y: y+h, x: x+w]
id_, conf = identifierare.predict (roiGray)
för namn, värde i 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 = namn om konf <= 70: cv2.rectangle (ram, (x, y), (x+w, y+h), (0, 255, 0), 2)
cv2.imshow ('ram', ram)
key = cv2.waitKey (1)
if nyckel == 27:
bryt cv2.destroyAllWindows ()
Rekommenderad:
Abellcadabra (Face Recognition Door Lock System): 9 steg
Abellcadabra (Ansiktsigenkänning Dörrlåssystem): När jag låg kvar under karantänen försökte jag hitta ett sätt att döda tiden genom att bygga ansiktsigenkänning för husdörren. Jag kallade det Abellcadabra - som är en kombination mellan Abracadabra, en magisk fras med dörrklocka som jag bara tar klockan. LOL
Star Recognition Using Computer Vision (OpenCV): 11 steg (med bilder)
Stjärnigenkänning med hjälp av Computer Vision (OpenCV): Den här instruktionsboken beskriver för dig hur du skapar ett datorvisionsprogram för att automatiskt identifiera stjärnmönster i en bild. Metoden använder biblioteket OpenCV (Open-Source Computer Vision) för att skapa en uppsättning utbildade HAAR-kaskader som kan
Real Time Face Detection på RaspberryPi-4: 6 steg (med bilder)
Ansiktsigenkänning i realtid på RaspberryPi-4: I denna instruktionsbok ska vi utföra ansiktsigenkänning i realtid på Raspberry Pi 4 med Shunya O/S med hjälp av Shunyaface-biblioteket. Du kan uppnå en bildhastighet på 15-17 på RaspberryPi-4 genom att följa denna handledning
Enkel bearbetning Uldar (Ultrasonic Detection and Ranging): 3 steg
Simple Processing Uldar (Ultrasonic Detection and Ranging): Detta är ett enkelt projekt som använder Arduino UNO och Processing för att göra en enkel lidar. Lidar (även kallad LIDAR, LiDAR och LADAR) är en mätmetod som mäter avstånd till ett mål genom att belysa målet med pulserande laserljus och mätning
Texas Big Face - 3D Face Projection Så här: 10 steg (med bilder)
Texas Big Face - 3D Face Projection How To: Create " living statues " genom att projicera ditt ansikte på skulpturer.A How To By: David Sutherland, Kirk Moreno i samarbete med Graffiti Research Lab Houston* Flera kommentarer har sagt att det finns några ljudproblem. Det är