Sisällysluettelo:
- Vaihe 1: Kasvojen tunnistaminen reaaliaikaisessa videossa
- Vaihe 2: Esimerkkikuvien kouluttaminen
- Vaihe 3: Kasvojen tunnistaminen
Video: Opencv -kasvojentunnistus, koulutus ja tunnistus: 3 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:00
OpenCV on avoimen lähdekoodin tietokonenäkökirjasto, joka on erittäin suosittu perustoimintojen, kuten sumennuksen, kuvien sekoittamisen, kuvan parantamisen sekä videon laadun, kynnysarvon jne., Suorittamiseen. malleja, joita voidaan käyttää suoraan yksinkertaisten tehtävien ratkaisemiseen.
opencv -asennukseen käytä tätä linkkiä
www.instructables.com/id/Opencv-and-Python…
Vaihe 1: Kasvojen tunnistaminen reaaliaikaisessa videossa
Voit etsiä Googlesta monia kasvojentunnistusohjelmia, ja havaitut kasvot on tallennettava kansioon, jossa voidaan jatkaa kuvankäsittelyä, kuten koulutusta ja merkintöjä. aiomme kerätä 30 näytettä
tuoda cv2
tuo numpy np: nä
tuonti tuonti sys
kamera = cv2. VideoCapture (0)
faceCascade = cv2. CascadeClassifier ("haarcascade_frontalface_default.xml") #lisää harcascade -tiedostopolku
name = raw_input ("Mikä hänen nimensä on?")
#kaikki tiedostot tallennetaan kansioon Users/prasad/Documents/images
dirName = "/Käyttäjät/prasad/Dokumentit/kuvat/" + nimi
print (dirName) jos ei os.path.exists (dirName): os.makedirs (dirName) print ("Directory Created") else: print ("Name is already") sys.exit ()
määrä = 1
#aiomme kerätä 30 näytettä
kun taas laskea 30: break # frame = frame.array grey = cv2.cvtColor (frame, cv2. COLOR_BGR2GRAY) kasvot = faceCascade.detectMultiScale (harmaa, 1,5, 5) (x, y, w, h) kasvoissa: roiGray = harmaa [y: y + h, x: x + w] fileName = dirName + "/" + name + str (count) + ".jpg" cv2.imwrite (tiedostonimi, roiGray) cv2.imshow ("face", roiGray) cv2. suorakulmio (kehys, (x, y), (x+w, y+h), (0, 255, 0), 2) count+= 1 cv2.imshow ('kehys', kehys) -näppäin = cv2.waitKey (1)
jos avain == 27:
tauko
#camera.release ()
cv2.destroyAllWindows ()
Vaihe 2: Esimerkkikuvien kouluttaminen
Kun kasvojentunnistus on valmis, voimme mennä harjoittelemaan kuvia
tuo osimport numpy np: nä PIL -tuonnista Kuvan tuonti cv2 -tuonti suolakurkku #import -sarja
#ser = serial. Serial ('/dev/ttyACM0', 9600, aikakatkaisu = 1)
faceCascade = cv2. CascadeClassifier ("haarcascade_frontalface_default.xml")
tunnistin = cv2.face. LBPHFaceRecognizer_create ()
baseDir = os.path.dirname (os.path.abspath (_ file_))
#kouluta kuvat kuvat -kansion alla
imageDir = os.path.join (baseDir, "kuvat")
currentId = 1
labelIds = {} yLabels = xTrain = #ser.write ("Koulutus…..". encode ())
root, dirs, tiedostot os.walkissa (imageDir):
tulosta (juuri, kansiot, tiedostot) tiedostojen tiedostoille: tulosta (tiedosto) jos file.endswith ("png") tai file.endswith ("jpg"): polku = os.path.join (root, file) label = os.path.basename (root) print (label)
jos etiketti etiketissä
labelIds [label] = currentId print (labelIds) currentId += 1
id_ = labelIds [label]
pilImage = Image.open (polku).convert ("L") imageArray = np.array (pilImage, "uint8") kasvot = faceCascade.detectMultiScale (imageArray, scaleFactor = 1.1, minNeighbors = 5)
(x, y, w, h) kasvoille:
roi = imageArray [y: y+h, x: x+w] xTrain.append (roi) yLabels.append (id_)
avoimella ("tarrat", "wb") muodossa f:
pickle.dump (labelIds, f) f.close ()
tunnistin.train (xTrain, np.array (yLabels))
tunnistaja.save ("trainer.yml") tulosta (labelIds)
Vaihe 3: Kasvojen tunnistaminen
Harjoituksen jälkeen voit suorittaa alla olevan koodin, jotta se alkaa tunnistaa koulutetut kasvosi
import osos.environ ['PYTHONINSPECT'] = 'on' import cv2 import numpy as np tuonti suolakurkku #import RPi. GPIO GPIO from time import sleep
avoin ('tarrat', 'rb') kuten f:
dicti = suolakurkku. kuormitus (f) f. sulje ()
kamera = cv2. VideoCapture (0)
faceCascade = cv2. CascadeClassifier ("haarcascade_frontalface_default.xml")
tunnistin = cv2.face. LBPHFaceRecognizer_create () tunnistin.luku ("trainer.yml")
font = cv2. FONT_HERSHEY_SIMPLEX
viimeinen = ''
#for frame in camera.capture_continuous (rawCapture, format = "bgr", use_video_port = True):
kun taas True: ret, frame = camera.read () grey = cv2.cvtColor (frame, cv2. COLOR_BGR2GRAY) kasvot = faceCascade.detectMultiScale (harmaa, scaleFactor = 1.5, minNeighbors = 5) (x, y, w, h) kasvoissa: roiGray = harmaa [y: y+h, x: x+w]
id_, conf = tunnistin.predict (roiGray)
nimi, arvo 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 = nimi jos conf <= 70: cv2. suorakulmio (kehys, (x, y), (x+w, y+h), (0, 255, 0), 2)
cv2.imshow ('kehys', kehys)
avain = cv2.waitKey (1)
jos avain == 27:
break cv2.destroyAllWindows ()
Suositeltava:
Tähtien tunnistus tietokonevision avulla (OpenCV): 11 vaihetta (kuvien kanssa)
Tähtien tunnistaminen Computer Vision (OpenCV) -toiminnon avulla: Tässä ohjeessa kerrotaan, miten voit luoda tietokoneen visio -ohjelman, joka tunnistaa automaattisesti tähtikuviot kuvassa. Menetelmä luo OpenCV (Open-Source Computer Vision) -kirjaston avulla joukon koulutettuja HAAR-kaskadeja, jotka voidaan
Yksinkertainen värin tunnistus OpenCV: llä: 6 vaihetta
Yksinkertainen värin tunnistus OpenCV: n avulla: Hei! Tänään aion näyttää yksinkertaisen menetelmän havaita väri live -videosta OpenCV: tä ja pythonia käyttäen. Periaatteessa testaan vain, että vaadittu väri on taustakehyksessä vai ei, ja peitän OpenCV -moduulien avulla kyseisen alueen ja
Värin tunnistus Pythonissa OpenCV: n avulla: 8 vaihetta
Värin tunnistus Pythonissa OpenCV: n avulla: Hei! Tätä ohjetta käytetään opastamaan, kuinka tietty väri voidaan purkaa kuvasta pythonissa openCV -kirjaston avulla. Jos olet uusi tässä tekniikassa, älä huoli, tämän oppaan lopussa voit ohjelmoida oman värisi
Kasvojen tunnistus ja tunnistus - Arduino -kasvotunnus OpenCV Pythonin ja Arduinon avulla .: 6 vaihetta
Kasvojen tunnistus ja tunnistus | Arduino -kasvotunnus OpenCV Pythonin ja Arduinon avulla .: Kasvontunnistus AKA -kasvotunnus on yksi tärkeimmistä ominaisuuksista matkapuhelimissa nykyään. Joten minulla oli kysymys " voinko saada kasvotunnuksen Arduino -projektilleni " ja vastaus on kyllä … Matkani alkoi seuraavasti: Vaihe 1: Pääsy
Kohteen tunnistus W/ Dragonboard 410c tai 820c OpenCV: n ja Tensorflow: n avulla: 4 vaihetta
Objektien tunnistus W/ Dragonboard 410c tai 820c OpenCV: n ja Tensorflow: n avulla: Tässä ohjeessa kuvataan, miten asennetaan OpenCV-, Tensorflow- ja koneoppimiskehykset Python 3.5: lle Objektitunnistus -sovelluksen suorittamiseksi