Turinys:
- 1 veiksmas: veido aptikimas vaizdo įraše realiuoju laiku
- 2 žingsnis: pavyzdinių vaizdų mokymas
- 3 žingsnis: veidų atpažinimas
Video: „Opencv“veido aptikimas, mokymas ir atpažinimas: 3 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:45
„OpenCV“yra atviro kodo kompiuterinė regėjimo biblioteka, kuri yra labai populiari atliekant pagrindines vaizdo apdorojimo užduotis, tokias kaip suliejimas, vaizdų maišymas, vaizdo ir vaizdo kokybės gerinimas, slenksčio nustatymas ir tt. modeliai, kurie gali būti tiesiogiai naudojami paprastoms užduotims spręsti.
„opencv“diegimui naudokite šią nuorodą
www.instructables.com/id/Opencv-and-Python…
1 veiksmas: veido aptikimas vaizdo įraše realiuoju laiku
„Google“galite ieškoti daugelio veido aptikimo programų, o aptikti veidai turėtų būti išsaugoti aplanke tolesniam vaizdo apdorojimui, pvz., mokymui ir žymėjimui. mes ketiname surinkti 30 mėginių
importuoti cv2
importuoti numpy kaip np
importuoti os importo sistemą
kamera = cv2. VideoCapture (0)
faceCascade = cv2. CascadeClassifier ("haarcascade_frontalface_default.xml") #pridėkite savo „harcascade“failo kelią
name = raw_input ("Koks jo vardas?")
#Visi failai bus išsaugoti aplanke Vartotojai/prasad/Dokumentai/vaizdai
dirName = "/Users/prasad/Documents/images/" + pavadinimas
print (dirName), jei ne os.path.exists (dirName): os.makedirs (dirName) print ("katalogas sukurtas") else: print ("pavadinimas jau yra") sys.exit ()
skaičius = 1
#Mes ketiname surinkti 30 mėginių
o skaičiuoti 30: break # frame = frame.array grey = cv2.cvtColor (frame, cv2. COLOR_BGR2GRAY) veidai = faceCascade.detectMultiScale (pilka, 1,5, 5), skirta (x, y, w, h) veidams: roiGray = pilka [y: y + h, x: x + w] fileName = dirName + "/" + vardas + str (skaičius) + ".jpg" cv2.imwrite (failo pavadinimas, roiGray) cv2.imshow ("veidas", roiGray) cv2. stačiakampis (rėmelis, (x, y), (x+w, y+h), (0, 255, 0), 2) skaičius+= 1 cv2.imshow („kadras“, rėmelis) klavišas = cv2.lauktiKey (1)
jei raktas == 27:
pertrauka
#camera.release ()
cv2.destroyAllWindows ()
2 žingsnis: pavyzdinių vaizdų mokymas
Baigę veido aptikimą, galime pradėti mokyti vaizdus
importuoti osimport numpy kaip np iš PIL importo Image import cv2 import marinatas #import serial
#ser = serial. Serial ('/dev/ttyACM0', 9600, timeout = 1)
faceCascade = cv2. CascadeClassifier ("haarcascade_frontalface_default.xml")
atpažinimo priemonė = cv2.face. LBPHFaceRecognizer_create ()
baseDir = os.path.dirname (os.path.abspath (_ file_))
#treniruokite vaizdus aplanke Vaizdai
imageDir = os.path.join (baseDir, "vaizdai")
currentId = 1
labelIds = {} yLabels = xTrain = #ser.write („Treniruotės…..“. koduoti ())
root, dirs, failai os.walk (imageDir):
spausdinti (root, dirs, failai) failams failuose: print (file) if file.endswith ("png") or file.endswith ("jpg"): path = os.path.join (root, file) label = os.path.basename (root) print (etiketė)
jei etiketėje nėra etiketės ID:
labelIds [label] = currentId print (labelIds) currentId += 1
id_ = labelIds [etiketė]
pilImage = Image.open (kelias).convert ("L") imageArray = np.array (pilImage, "uint8") veidai = faceCascade.detectMultiScale (imageArray, scaleFactor = 1.1, minNeighbours = 5)
(x, y, w, h) veiduose:
roi = imageArray [y: y+h, x: x+w] xTrain.append (roi) yLabels.append (id_)
su atvira („etiketės“, „wb“) kaip f:
pickle.dump (labelIds, f) f.close ()
atpažinimo įrenginys („xTrain“, „np.array“(„yLabels“))
atpažintuvas.save ("trainer.yml") print (labelIds)
3 žingsnis: veidų atpažinimas
pasibaigus mokymui, galite paleisti žemiau esantį kodą, kad jis pradėtų atpažinti jūsų apmokytus veidus
importuoti osos.environ ['PYTHONINSPECT'] = 'on' import cv2 import numpy as np import marinatas #import RPi. GPIO as GPIO from time import sleep
su atvira („etiketės“, „rb“) kaip f:
dicti = marinatas. apkrova (f) f. uždaryti ()
kamera = cv2. VideoCapture (0)
faceCascade = cv2. CascadeClassifier ("haarcascade_frontalface_default.xml")
atpažinimo priemonė = cv2.face. LBPHFaceRecognizer_create () atpažinimo priemonė.read ("trainer.yml")
šriftas = cv2. FONT_HERSHEY_SIMPLEX
paskutinis ="
#for frame in camera.capture_continuous (rawCapture, format = "bgr", use_video_port = True):
nors tiesa: ret, frame = camera.read () pilka = cv2.cvtColor (kadras, cv2. COLOR_BGR2GRAY) veidai = faceCascade.detectMultiScale (pilka, scaleFactor = 1.5, minNeighbours = 5) (x, y, w, h) veiduose: roiGray = pilka [y: y+h, x: x+w]
id_, conf = atpažinimo priemonė.predict (roiGray)
pavadinimas, vertė 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 = pavadinimas, jei conf <= 70: cv2. stačiakampis (kadras, (x, y), (x+w, y+h), (0, 255, 0), 2)
cv2.imshow ('kadras', kadras)
raktas = cv2.waitKey (1)
jei raktas == 27:
break cv2.destroyAllWindows ()
Rekomenduojamas:
Veido atpažinimas ir identifikavimas - „Arduino“veido ID naudojant „OpenCV Python“ir „Arduino“.: 6 žingsniai
Veido atpažinimas ir atpažinimas | „Arduino“veido ID naudojant „OpenCV Python“ir „Arduino“.: Veido atpažinimas AKA veido ID yra viena iš svarbiausių šių dienų mobiliųjų telefonų funkcijų. Taigi, man kilo klausimas „ar galiu turėti savo„ Arduino “projekto ID“? ir atsakymas yra „taip“… Mano kelionė prasidėjo taip: 1 žingsnis: Prieiga prie mūsų
ESP32 CAM veido atpažinimas su MQTT palaikymu - AI mąstytojas: 4 žingsniai
ESP32 CAM veido atpažinimas su MQTT palaikymu | AI mąstytojas: Sveiki! Norėjau pasidalinti savo projekto kodu, jei man reikėjo turėti ESP CAM su veido atpažinimu, kuris galėtų išsiųsti duomenis MQTT. Taigi, gal po 7 valandų ieškojęs kelių kodų pavyzdžių ir ieškodamas, kas yra kas, turiu pabaigą
„Opencv“veido atpažinimas: 4 žingsniai
„Opencv“veido atpažinimas: Veido atpažinimas šiandien yra gana įprastas dalykas daugelyje programų, tokių kaip išmanieji telefonai, daugybė elektroninių prietaisų. Ši technologija apima daugybę algoritmų ir įrankių ir pan., Kuri naudoja kai kurias įterptas įterptas SOC platformas, tokias kaip „Raspberry“
Veido aptikimas+atpažinimas: 8 žingsniai (su nuotraukomis)
Veido aptikimas+atpažinimas: tai paprastas veidų aptikimo ir atpažinimo pavyzdys naudojant „OpenCV“iš fotoaparato. PASTABA: aš sukūriau šį projektą jutiklių konkursui ir naudoju fotoaparatą kaip jutiklį, skirtą sekti ir atpažinti veidus. Taigi, mūsų tikslas šioje sesijoje: 1. Įdiekite „Anaconda“
Veido ir akių aptikimas naudojant „Raspberry Pi Zero“ir „Opencv“: 3 žingsniai
Veido ir akių aptikimas naudojant „Raspberry Pi Zero“ir „Opencv“: šioje instrukcijoje parodysiu, kaip galite aptikti veidą ir akis naudodami aviečių pi ir „opencv“. Tai yra mano pirmasis nurodymas „opencv“. Aš sekiau daugybę pamokų, kaip nustatyti atvirą aviečių cv, bet kiekvieną kartą pastebėjau keletą klaidų. Šiaip aš