Turinys:
- 1 žingsnis: reikalingi dalykai
- 2 žingsnis: „Opencv-Intro“ir diegimas
- 3 veiksmas: veido aptikimas ir atpažinimas vaizdo įraše realiuoju laiku
- 4 žingsnis: paleiskite kodą
Video: „Opencv“veido atpažinimas: 4 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:47
Veido atpažinimas šiandien yra gana įprastas dalykas daugelyje programų, tokių kaip išmanieji telefonai, daugelis elektroninių prietaisų. Ši technologija apima daugybę algoritmų ir įrankių ir pan., Kuri naudoja kai kurias įterptąsias SOC platformas, tokias kaip „Raspberry Pi“ir atvirojo kodo kompiuterinė vizija bibliotekose, tokiose kaip „OpenCV“, dabar galite pridėti veido atpažinimą prie savo programų, pvz., saugos sistemų.
Šiame projekte aš jums pasakysiu, kaip sukurti veido atpažinimą naudojant „Raspberry Pi“, o asmens vardui rodyti naudojome „arduino+Lcd“.
1 žingsnis: reikalingi dalykai
1. AVYNĖS PI
2. AARDUINO UNO / NANO
3,16 x 2 LCD ekranas
4. RASPI-CAMERA / WEBcam (norėčiau geresnių rezultatų, norėčiau internetinės kameros)
2 žingsnis: „Opencv-Intro“ir diegimas
„OpenCV“(atviro kodo kompiuterinės vizijos biblioteka) yra labai naudinga biblioteka - ji suteikia daug naudingų funkcijų, tokių kaip teksto atpažinimas, veido atpažinimas, objektų aptikimas, gylio žemėlapių kūrimas ir mašininis mokymasis.
Šis straipsnis parodys, kaip „Raspberry Pi“įdiegti „Opencv“ir kitas bibliotekas, kurios pravers atliekant objektų aptikimą ir kitus projektus. Iš ten mes mokysimės atlikti vaizdo ir vaizdo operacijas vykdydami objektų atpažinimo ir mašininio mokymosi projektą. Tiksliau, mes parašysime paprastą kodą, kad aptiktų veidus vaizde.
Kas yra OpenCV?
„OpenCV“yra atviro kodo kompiuterinės vizijos ir mašinų mokymosi programinės įrangos biblioteka. „OpenCV“yra išleista pagal BSD licenciją, todėl ji nemokama tiek akademiniam, tiek komerciniam naudojimui. Jis turi „C ++“, „Python“ir „Java“sąsajas ir palaiko „Windows“, „Linux“, „Mac OS“, „iOS“ir „Android“. „OpenCV“buvo sukurtas siekiant skaičiavimo efektyvumo ir daug dėmesio skiriant realaus laiko programoms.
Kaip įdiegti „OpenCV“„Raspberry Pi“?
Norėdami įdiegti „OpenCV“, turime įdiegti „Python“. Kadangi „Raspberry Pis“yra iš anksto įkelta su „Python“, galime tiesiogiai įdiegti „OpenCV“.
Įveskite toliau pateiktas komandas, kad įsitikintumėte, jog jūsų „Raspberry Pi“yra atnaujinta, ir atnaujinkite „Raspberry Pi“įdiegtus paketus į naujausias versijas.
sudo apt-get atnaujinimai sud apt-get atnaujinimas
Terminale įveskite šias komandas, kad „Raspberry Pi“įdiegtumėte reikiamus „OpenCV“paketus.
sudo apt install libatlas3-base libsz2 libharfbuzz0b libtiff5 libjasper1 libilmbase12 libopenexr22 libilmbase12 libgstreamer1.0-0 libavcodec57 libavformat57 libavutil55 libswscale4 libqtgui4 libqt4-test libqtcore4
Įveskite šią komandą, kad „Raspberry Pi“įdiegtumėte „OpenCV 3“, skirtą „Python 3“, pip3 nurodo, kad „OpenCV“bus įdiegta „Python 3“.
sudo pip3 įdiegti opencv-contrib-python libwebp6
Dabar reikia įdiegti „OpenCV“.
(jei buvo kokių nors klaidų: vis tiek galite tai padaryti sekdami žemiau esančią nuorodą
https://www.instructables.com/id/Raspberry-Pi-Hand…)
Dabar neskubėkite, turime patikrinti, ar jis buvo tinkamai įdiegtas, ar ne
Išbandykite savo „opencv“:
1. eikite į savo terminalą ir įveskite „python“
2. tada įveskite „import cv2“.
3. tada įveskite „cv2._ version_“.
tada įdiekite šias bibliotekas
pip3 įdiegti python-numpy
pip3 įdiegti python-matplotlib
Bandomasis kodas veidams aptikti paveikslėlyje:
importuoti cv2
faceCascade = cv2. CascadeClassifier ("haarcascade_frontalface_default.xml");
image = cv2.imread ('jūsų failo pavadinimas') #example cv2.imread ('home/pi/Desktop/filename.jpg')
gausite išvestį, tarsi kvadratinės dėžutės būtų suformuotos paveikslėlyje esančių žmonių veiduose.
3 veiksmas: veido aptikimas ir atpažinimas vaizdo įraše realiuoju laiku
importuoti cv2
importuoti numpy kaip np
importuoti
importuoti serialą
ser = serial. Serial ('/dev/ttyACM0', 9600, timeout = 1) #/dev/ttyACM0 jūsų atveju gali keistis, priklauso nuo arduino
cascadePath = "haarcascade_frontalface_default.xml"
faceCascade = cv2. CascadeClassifier (cascadePath)
atpažinimo priemonė = cv2.face.createLBPHFaceRecognizer ()
vaizdai =
etiketės =
failo pavadinimui os.listdir („Duomenų rinkinys“):
im = cv2.imread ('Duomenų rinkinys/'+failo pavadinimas, 0)
images.append (im)
labels.append (int (failo pavadinimas.split ('.') [0] [0]))
#print failo pavadinimas
names_file = atidaryti ('labels.txt')
vardai = vardų_failas. skaityti (). padalinti („\ n“)
atpažinimo įrenginys (vaizdai, np.masyvas (etiketės))
spausdinti „Mokymas atliktas… '
šriftas = cv2. FONT_
HERSHEY_SIMPLEXcap = cv2. VideoCapture (1) # jūsų vaizdo įrašo įrenginys
lastRes = "skaičius" = 0
tuo tarpu (1):
_, frame = cap.read ()
pilka = cv2.cvtColor (rėmelis, cv2. COLOR_BGR2GRAY)
veidai = faceCascade.detectMultiScale (pilka, 1.3, 5)
skaičius+= 1
(x, y, w, h) veiduose:
cv2. stačiakampis (rėmas, (x, y), (x+w, y+h), (255, 0, 0), 2)
jei skaičius> 20: res = vardai [atpažinimo priemonė.prediktas (pilka [y: y+h, x: x+w])-1]
jei res! = lastRes:
lastRes = res
spausdinti lastRes
ser.write (lastRes)
skaičius = 0
pertrauka
cv2.imshow ('kadras', kadras)
k = 0xFF ir cv2.lauktiKlaviatūra (10)
jei k == 27:
pertrauka
cap.release ()
ser.close ()
cv2.destroyAllWindows ()
4 žingsnis: paleiskite kodą
1. Atsisiųskite ankstesniame žingsnyje pridėtus failus
2. nukopijuokite pilkas nuotraukas (6 vaizdus/ pavyzdžius …..) į savo duomenų rinkinio aplanką
1. Tom Cruise 1_1, 1_2, 1_3, 1_4, 1_5, 1_6 (duomenų rinkinio vaizdo numeris, skirtas atviresniam duomenų rinkinio aplankui)
2. Bradas Pittas-2_1, 2_2, 2_3, 2_4, 2_5, 2_6
3. Liūtas-3_1, 3_2, 3_3, 3_4, 3_5, 3_6
4. Geležinis žmogus4_1, 4_2, 4_3, 4_4, 4_5, 4_6
kaip ir aukščiau, galite pridėti etiketes atitinkamiems asmenims,
taigi, jei pi aptinka bet kurį veidą tarp 1_1, 1_2, 1_3, 1_4, 1_5, 1_6, tada jis buvo įvardytas kaip Tomas Cruise'as, todėl būkite atsargūs įkeldami nuotraukas ………………
ir tada prijunkite „arduino“prie savo „Raspberry Pi“ir atlikite pakeitimus main.py codeer = serial. Serial ('/dev/ttyACM0', 9600, timeout = 1) 3. įveskite visus atsisiųstus failus (main.py, duomenų rinkinio aplankas, haarcascade_frontalface_default.xml viename aplanke.)
3. Dabar atidarykite „Raspi“terminalą, paleiskite savo kodą naudodami „sudo python main.py“
Rekomenduojamas:
„Opencv“veido aptikimas, mokymas ir atpažinimas: 3 žingsniai
„Opencv“veido aptikimas, mokymas ir atpažinimas: „OpenCV“yra atviro kodo kompiuterio regėjimo biblioteka, kuri yra labai populiari atliekant pagrindines vaizdo apdorojimo užduotis, tokias kaip suliejimas, vaizdo maišymas, vaizdo ir vaizdo kokybės gerinimas, slenksčių nustatymas ir tt Be vaizdo apdorojimo, tai provokuoja
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ą
Veido atpažinimas realiuoju laiku: visas projektas: 8 žingsniai (su nuotraukomis)
Veido atpažinimas realiuoju laiku: visapusiškas projektas: Paskutinėje pamokoje, kurioje tyrinėjau „OpenCV“, sužinojome AUTOMATINIO VISIJOS OBJEKTO SEKIMĄ. Dabar mes naudosime savo „PiCam“, kad atpažintume veidus realiuoju laiku, kaip matote žemiau: Šis projektas buvo atliktas naudojant šią fantastišką „Atviro kodo kompiuterinio matymo biblioteką“
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“