Kazalo:
- 1. korak: Zaznavanje obraza v videoposnetku v realnem času
- 2. korak: Usposabljanje vzorčnih slik
- 3. korak: Prepoznavanje obrazov
Video: Odkrivanje obrazov Opencv, usposabljanje in prepoznavanje: 3 koraki
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:03
OpenCV je odprtokodna knjižnica računalniškega vida, ki je zelo priljubljena za izvajanje osnovnih nalog obdelave slik, kot so zameglitev, mešanje slik, izboljšanje slike, pa tudi kakovost videa, določanje praga itd. Poleg obdelave slik ponuja različna vnaprej usposobljena poglobljena učenja modele, ki jih je mogoče neposredno uporabiti za reševanje preprostih nalog.
za namestitev opencv uporabite to povezavo
www.instructables.com/id/Opencv-and-Python…
1. korak: Zaznavanje obraza v videoposnetku v realnem času
v Googlu lahko iščete številne programe za odkrivanje obrazov, odkrite obraze pa shranite v mapo za nadaljnjo obdelavo slik, kot sta usposabljanje in označevanje. zbrali bomo 30 vzorcev
uvoz cv2
uvoz numpy kot np
import os import sys
camera = cv2. VideoCapture (0)
faceCascade = cv2. CascadeClassifier ("haarcascade_frontalface_default.xml") #dodajte svojo pot do datoteke harcascade
name = raw_input ("Kako mu je ime?")
#vse datoteke bodo shranjene v mapo Users/prasad/Documents/images
dirName = "/Uporabniki/prasad/Dokumenti/slike/" + ime
print (dirName), če ne os.path.exists (dirName): os.makedirs (dirName) print ("Imenik ustvarjen") else: print ("Ime že obstaja") sys.exit ()
štetje = 1
#zbrali bomo 30 vzorcev
medtem ko šteje 30: break # frame = frame.array grey = cv2.cvtColor (frame, cv2. COLOR_BGR2GRAY) obrazov = faceCascade.detectMultiScale (sivo, 1,5, 5) za (x, y, w, h) v obrazih: roiGray = siva [y: y + h, x: x + w] ime datoteke = dirName + "/" + ime + str (štetje) + ".jpg" cv2.imwrite (ime datoteke, roiGray) cv2.imshow ("obraz", roiGray) cv2.rectangle (okvir, (x, y), (x+w, y+h), (0, 255, 0), 2) count+= 1 cv2.imshow ("okvir", okvir) ključ = cv2.waitKey (1)
če je ključ == 27:
prekiniti
#camera.release ()
cv2.destroyAllWindows ()
2. korak: Usposabljanje vzorčnih slik
Ko je zaznavanje obrazov končano, lahko nadaljujemo z usposabljanjem slik
import osimport numpy kot np iz PIL import image import cv2 import pickle #import serial
#ser = serial. Serial ('/dev/ttyACM0', 9600, časovna omejitev = 1)
faceCascade = cv2. CascadeClassifier ("haarcascade_frontalface_default.xml")
prepoznavalnik = cv2.face. LBPHFaceRecognizer_create ()
baseDir = os.path.dirname (os.path.abspath (_ datoteka_))
#slikovajte slike pod mapo s slikami
imageDir = os.path.join (baseDir, "slike")
currentId = 1
labelIds = {} yLabels = xTrain = #ser.write ("Usposabljanje …..". encode ())
za root, dirke, datoteke v os.walk (imageDir):
print (root, dirs, files) za datoteko v datotekah: print (file) if file.endswith ("png") ali file.endswith ("jpg"): path = os.path.join (root, file) label = os.path.basename (root) tiskanje (oznaka)
če ni označeno v labelIds:
labelIds [label] = tiskanje currentId (labelIds) currentId += 1
id_ = labelIds [oznaka]
pilImage = Image.open (pot).convert ("L") imageArray = np.array (pilImage, "uint8") obrazov = faceCascade.detectMultiScale (imageArray, scaleFactor = 1.1, minNeighbors = 5)
za (x, y, w, h) v obrazih:
roi = imageArray [y: y+h, x: x+w] xTrain.append (roi) yLabels.append (id_)
z odprto ("oznake", "wb") kot f:
pickle.dump (labelIds, f) f.close ()
prepoznaval.train (xTrain, np.array (yLabels))
Reconizer.save ("trainer.yml") print (labelIds)
3. korak: Prepoznavanje obrazov
po končanem usposabljanju lahko zaženete spodnjo kodo, tako da bo začela prepoznavati vaše usposobljene obraze
import osos.environ ['PYTHONINSPECT'] = 'on' import cv2 import numpy kot np import pickle #import RPi. GPIO kot GPIO iz časa import sleep
z odprto ('oznake', 'rb') kot f:
dicti = pickle.load (f) f.close ()
camera = cv2. VideoCapture (0)
faceCascade = cv2. CascadeClassifier ("haarcascade_frontalface_default.xml")
prepoznavalnik = cv2.face. LBPHFaceRecognizer_create () prepoznavalnik.read ("trainer.yml")
font = cv2. FONT_HERSHEY_SIMPLEX
zadnja = ''
#za okvir v kameri.capture_continuous (rawCapture, format = "bgr", use_video_port = True):
medtem ko je True: ret, frame = camera.read () siva = cv2.cvtColor (okvir, cv2. COLOR_BGR2GRAY) obrazi = faceCascade.detectMultiScale (siva, scaleFactor = 1,5, minNeighbors = 5) za (x, y, w, h) v obrazih: roiGray = siva [y: y+h, x: x+w]
id_, conf = prepoznavalec.predict (roiGray)
za ime, vrednost v dicti.items ():
če je vrednost == id_: print (ime) cv2.putText (okvir, ime, (x, y), pisava, 2, (0, 0, 255), 2, cv2. LINE_AA) če je ime! = zadnja: zadnja = ime, če je konf <= 70: cv2.rectangle (okvir, (x, y), (x+w, y+h), (0, 255, 0), 2)
cv2.imshow ('okvir', okvir)
key = cv2.waitKey (1)
če je ključ == 27:
break cv2.destroyAllWindows ()
Priporočena:
Prepoznavanje obrazov in identifikacija - Arduino Face ID z uporabo OpenCV Python in Arduino .: 6 korakov
Prepoznavanje obrazov in identifikacija | Arduino Face ID z uporabo OpenCV Python in Arduino .: Prepoznavanje obraza AKA Face ID je ena najpomembnejših značilnosti mobilnih telefonov danes. Tako sem imel vprašanje " ali lahko dobim ID obraza za svoj projekt Arduino " in odgovor je pritrdilen … Moje potovanje se je začelo na naslednji način: 1. korak: Dostop do nas
Pametna ključavnica za prepoznavanje obrazov z LTE Pi HAT: 4 koraki
Pametna ključavnica za prepoznavanje obrazov Z LTE Pi HAT: Prepoznavanje obrazov se vse bolj uporablja, z njo lahko naredimo pametno ključavnico
ESP32 CAM Prepoznavanje obrazov s podporo za MQTT - AI-Thinker: 4 koraki
ESP32 CAM Prepoznavanje obrazov s podporo za MQTT | AI-Thinker: Pozdravljeni! Želel sem deliti svojo kodo za projekt, če bi potreboval ESP CAM s prepoznavanjem obrazov, ki bi lahko pošiljal podatke v MQTT. Tako dobro .. po morda 7 urah iskanja več primerov kode in iskanja, kaj je kaj, imam končno
Odkrivanje obrazov v realnem času na RaspberryPi-4: 6 korakov (s slikami)
Odkrivanje obrazov v realnem času na RaspberryPi-4: V tem navodilu bomo izvajali zaznavanje obrazov v realnem času na Raspberry Pi 4 s Shunya O/S z uporabo knjižnice Shunyaface. S pomočjo te vadnice lahko dosežete hitrost zaznavanja sličic 15-17 na RaspberryPi-4
Prepoznavanje obrazov Opencv: 4 koraki
Odkrivanje obrazov Opencv: Prepoznavanje obrazov je danes zelo pogosta stvar, v številnih aplikacijah, kot so pametni telefoni, številni elektronski pripomočki. Ta vrsta tehnologije vključuje veliko algoritmov in orodij itd., Ki uporablja nekatere vgrajene vgrajene platforme SOC, kot je Raspberry