Sisukord:
- Samm: näo tuvastamine reaalajas videos
- 2. samm: proovipiltide koolitamine
- 3. samm: nägude äratundmine
Video: Opencv näotuvastus, koolitus ja äratundmine: 3 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:46
OpenCV on avatud lähtekoodiga arvutite nägemisraamatukogu, mis on väga populaarne põhiliste pilditöötlusülesannete täitmisel, nagu hägusus, piltide segamine, pildi parandamine, samuti videokvaliteet, lävepakk jne. Lisaks pilditöötlusele pakub see mitmesuguseid eelnevalt koolitatud süvaõppeid mudelid, mida saab otse kasutada lihtsate ülesannete lahendamiseks.
opencv installimiseks kasutage seda linki
www.instructables.com/id/Opencv-and-Python…
Samm: näo tuvastamine reaalajas videos
võite otsida googlest paljusid näotuvastusprogramme ja tuvastatud näod tuleks salvestada kausta, et saaksite täiendavalt töödelda pilte, näiteks koolitada ja sildistada. kogume 30 proovi
import cv2
import numpy np -na
import os import sys
kaamera = cv2. VideoCapture (0)
faceCascade = cv2. CascadeClassifier ("haarcascade_frontalface_default.xml") #lisage oma harcascade failitee
name = raw_input ("Mis on tema nimi?")
#Kõik failid salvestatakse kausta Users/prasad/Documents/images
dirName = "/Kasutajad/prasad/Dokumendid/pildid/" + nimi
print (dirName) kui mitte os.path.exists (dirName): os.makedirs (dirName) print ("Kataloog loodud") else: print ("Nimi on juba olemas") sys.exit ()
loend = 1
#kogume 30 proovi
samas loendage 30: break # frame = frame.array hall = cv2.cvtColor (raam, cv2. COLOR_BGR2GRAY) näod = faceCascade.detectMultiScale (hall, 1,5, 5) (x, y, w, h) nägudel: roiGray = hall [y: y + h, x: x + w] fileName = dirName + "/" + nimi + str (count) + ".jpg" cv2.imwrite (failinimi, roiGray) cv2.imshow ("nägu", roiGray) cv2. ristkülik (raam, (x, y), (x+w, y+h), (0, 255, 0), 2) count+= 1 cv2.imshow ('raam', kaader) võti = cv2. OotKey (1)
kui võti == 27:
murda
#camera.release ()
cv2.destroyAllWindows ()
2. samm: proovipiltide koolitamine
Kui näotuvastus on lõpule viidud, saame pilte treenida
impordi osimport numpy np -na PIL -i importimisest Pildi importimine cv2 impordi hapukurk #import jada
#ser = serial. Serial ('/dev/ttyACM0', 9600, timeout = 1)
faceCascade = cv2. CascadeClassifier ("haarcascade_frontalface_default.xml")
äratundja = cv2.face. LBPHFaceRecognizer_create ()
baseDir = os.path.dirname (os.path.abspath (_ file_))
#treenige pilte piltide kausta all
imageDir = os.path.join (baseDir, "pildid")
praegune ID = 1
labelIds = {} yLabels = xTrain = #ser.write ("Koolitus…..". encode ())
root, dirs, failid os.walk (imageDir):
prindi (juur, kataloogid, failid) failides oleva faili jaoks: prindi (fail), kui fail.endswith ("png") või file.endswith ("jpg"): tee = os.path.join (juur, fail) etikett = os.path.basename (root) print (silt)
kui ei ole silt sildil ID:
labelIds [label] = currentId print (labelIds) currentId += 1
id_ = labelIds [silt]
pilImage = Image.open (tee).convert ("L") imageArray = np.array (pilImage, "uint8") näod = faceCascade.detectMultiScale (imageArray, scaleFactor = 1.1, minNeighbors = 5)
(x, y, w, h) nägude puhul:
roi = imageArray [y: y+h, x: x+w] xTrain.append (roi) yLabels.append (id_)
avatud ("sildid", "wb") kui f:
pickle.dump (labelIds, f) f.close ()
tunnistaja.treen (xTrain, np.array (yLabels))
tunnistaja.save ("trainer.yml") print (labelIds)
3. samm: nägude äratundmine
pärast treeningu lõppu saate käivitada alloleva koodi, et see hakkaks teie treenitud nägusid ära tundma
import osos.environ ['PYTHONINSPECT'] = 'on' import cv2 import numpy as np import hapukurk #import RPi. GPIO GPIO from time import uni
avatud ('sildid', 'rb') kui f:
dicti = hapukurk. koormus (f) f. sulge ()
kaamera = cv2. VideoCapture (0)
faceCascade = cv2. CascadeClassifier ("haarcascade_frontalface_default.xml")
äratundja = cv2.face. LBPHFaceRecognizer_create () tunnistaja.lugemine ("trainer.yml")
font = cv2. FONT_HERSHEY_SIMPLEX
viimane ="
#for frame in camera.capture_continuous (rawCapture, format = "bgr", use_video_port = True):
samas tõsi: ret, frame = camera.read () hall = cv2.cvtColor (frame, cv2. COLOR_BGR2GRAY) näod = faceCascade.detectMultiScale (hall, scaleFactor = 1,5, minNeighbors = 5) (x, y, w, h) nägudes: roiGray = hall [y: y+h, x: x+w]
id_, conf = tunnistaja.prognoos (roiGray)
nimi, väärtus dicti.items ():
if value == id_: print (nimi) cv2.putText (raam, nimi, (x, y), font, 2, (0, 0, 255), 2, cv2. LINE_AA) kui nimi! = last: last = nimi, kui conf <= 70: cv2. ristkülik (raam, (x, y), (x+w, y+h), (0, 255, 0), 2)
cv2.imshow ('raam', kaader)
võti = cv2.waitKey (1)
kui võti == 27:
break cv2.destroyAllWindows ()
Soovitan:
Micro: bit MU nägemisandur algajatele - I2C ja kujukaardi äratundmine: 8 sammu
Micro: bit MU Vision Sensor algajatele - I2C ja kujukaardi äratundmine: olen saanud käe külge Micro: bit MU nägemisanduri. See tundub olevat lahe tööriist, mis võimaldab mul teha palju erinevaid visioonipõhiseid projekte. Kahjuks ei tundu selle kohta palju juhendeid ja kuigi dokumentatsioon on tõesti
Tähtede äratundmine arvuti nägemise (OpenCV) abil: 11 sammu (piltidega)
Tähtede äratundmine arvutinägemise (OpenCV) abil: selles juhendis kirjeldatakse teile, kuidas luua arvuti nägemisprogramm, et pildil olevad tähemustrid automaatselt tuvastada. Meetod kasutab OpenCV (Open-Source Computer Vision) raamatukogu, et luua koolitatud HAAR-kaskaadid, mida saab
Näotuvastus ja tuvastamine - Arduino näotuvastus OpenCV Pythoni ja Arduino abil .: 6 sammu
Näotuvastus ja tuvastamine | Arduino näotuvastus OpenCV Pythoni ja Arduino abil .: Näotuvastus AKA näo ID on tänapäeval üks olulisemaid funktsioone mobiiltelefonides. Niisiis, mul tekkis küsimus " kas ma saan oma Arduino projekti jaoks näo -id " ja vastus on jaatav … Minu teekond algas järgmiselt: 1. samm: juurdepääs meile
Opencv näotuvastus: 4 sammu
Opencv näotuvastus: näotuvastus on tänapäeval üsna tavaline asi paljudes rakendustes, nagu nutitelefonid, paljud elektroonilised vidinad. Selline tehnoloogia hõlmab palju algoritme ja tööriistu jne., Mis kasutab mõnda sisseehitatud manustatud SOC -platvormi, näiteks vaarikat
Näotuvastus ja äratundmine: 8 sammu (piltidega)
Näotuvastus+äratundmine: see on lihtne näide kaamera näost tuvastamise ja tuvastamise kohta OpenCV abil. MÄRKUS. TEGIN KÄESOLEVA PROJEKTI ANDURIKONKURSILE JA KASUTASIN KAAMERAT ANTAJANA JÄLGIMIS- JA TUNNUSTUSNÄGUDE NÄITAMISEKS. Niisiis, meie eesmärkSessioonil 1. Installige Anaconda