Përmbajtje:
- Furnizimet
- Hapi 1: Instalimi i Python dhe OpenCV
- Hapi 2: Cilat janë tiparet e ngjashme me Haar?
- Hapi 3: Kodimi në Python
- Hapi 4: Programimi i Arduino
- Hapi 5: Përfundimi
Video: Pajisja për përcjelljen e fytyrës! Python & Arduino: 5 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:17
Nga Techovator0819 Kanali im në Youtube Ndiqni më shumë nga autori:
Rreth: Unë thjesht dua të bëj gjëra të reja. Ashtu si gjërat që kanë të bëjnë me mikro-kontrolluesit, inxhinierinë mekanike, Inteligjencën Artificiale, Shkencat Kompjuterike dhe gjithçka që më intereson. Dhe këtu do të gjeni të gjitha… Më shumë Rreth Techovator0819 »
Përshëndetje për të gjithë ata që e lexojnë këtë udhëzues. Kjo është një pajisje për përcjelljen e fytyrës e cila punon në një bibliotekë python të quajtur OpenCV. CV qëndron për "Vizioni kompjuterik". Pastaj krijova një ndërfaqe serike midis PC tim dhe Arduino UNO. Pra, kjo do të thotë se kjo nuk funksionon vetëm në Python.
Kjo pajisje njeh fytyrën tuaj në kornizë, pastaj dërgon komanda të caktuara në Arduino për të pozicionuar kamerën në mënyrë të tillë që të qëndrojë brenda kornizës! Tingëllon mirë? Le të futemi menjëherë në të.
Furnizimet
1. Arduino UNO
2. 2 x Servo Motors (Çdo motor servo do të jetë mirë, por kam përdorur Tower Pro SG90)
3. Instalimi i Python
4. Instalimi i OpenCV
5. Web-Kamera
Hapi 1: Instalimi i Python dhe OpenCV
Instalimi i Python është shumë i drejtë përpara!
www.python.org/downloads/
Mund të ndiqni lidhjen e mësipërme për të shkarkuar versionin python (Mac, Windows ose Linux) i cili ju përshtatet më së miri (64 bit ose 32 bit). Pjesa tjetër e procesit të instalimit është e thjeshtë dhe do të udhëhiqeni nga ndërfaqja.
Pasi të keni mbaruar instalimin, hapni komandën dhe shkruani sa vijon:
pip instaloni opencv-python
Kjo duhet të instalojë bibliotekën openCV. Në rast të problemeve me të shtënat, mund të shikoni KIST page faqe.
Pasi të kemi krijuar Mjedisin dhe të gjitha parakushtet, le të shohim se si mund ta ndërtojmë në të vërtetë këtë!
Hapi 2: Cilat janë tiparet e ngjashme me Haar?
Karakteristikat e ngjashme me Haar janë tiparet e një imazhi dixhital. Emri vjen nga valët Haar. Këto janë familje të valëve në formë katrore të cilat përdoren për të identifikuar tiparet në një imazh dixhital. Kaskadat Haar janë në thelb një klasifikues i cili na ndihmon të zbulojmë objekte (në rastin tonë në fytyrat) duke përdorur tiparet e ngjashme me haarin.
Në rastin tonë, për thjeshtësinë, ne do të përdorim kaskadat e para-stërvitura Haar për të identifikuar fytyrat. Ju mund të ndiqni këtë lidhje të një faqe github dhe të shkarkoni skedarin xml për Kaskadën Haar.
1. Klikoni në 'haarcascade_frontalface_alt.xml'
2. Klikoni në butonin 'Raw' në pjesën e sipërme të djathtë të dritares së kodit.
3. Do t'ju drejtojë në një faqe tjetër me vetëm tekst.
4. Klikoni me të djathtën dhe goditni 'Ruaje si..'
5. Ruajeni në të njëjtën drejtori ose dosje me atë të kodit python për të cilin po shkruani.
Hapi 3: Kodimi në Python
import cv2
import numpy si np import import serial kohë
Ne importojmë të gjitha bibliotekat që na duhen.
ard = serial. Serial ("COM3", 9600)
Ne krijojmë një objekt serik të quajtur 'ard'. Ne gjithashtu specifikojmë Emrin e Portit dhe BaudRate si parametra.
face_cascade = cv2. CascadeClassifier ('haarcascade_frontalface_default.xml')
Ne krijojmë një objekt tjetër për Kaskadën tonë Haar. Sigurohuni që skedari HaarCascade të mbetet në të njëjtën dosje me këtë program python.
vid = cv2. VideoCapture (0)
Ne krijojmë një objekt që kap video nga kamera në internet. 0 si parametër nënkupton kamerën e parë në internet të lidhur me kompjuterin tim.
docs.opencv.org/2.4/modules/objdetect/doc/cascade_classification.html
ndërsa e vërtetë:
_, frame = vid.read ()#lexon kuadrin aktual në kornizën e ndryshueshme gri = cv2.cvtColor (frame, cv2. COLOR_BGR2GRAY) #konverton kornizën -> imazhin e gri#linja e mëposhtme zbulon fytyrat. #Parametri i parë është imazhi në të cilin dëshironi të zbuloni në #minSize = () specifikon madhësinë minimale të fytyrës në drejtim të pikselave #Klikoni lidhjen e mësipërme për të ditur më shumë rreth fytyrave të Klasifikimit të Kaskadës = face_cascade.detectMultiScale (gri, minSize) = (80, 80), minFqinjët = 3) #A për lak për të zbuluar fytyrat. për (x, y, w, h) në fytyra: cv2. drejtkëndësh (kornizë, (x, y), (x+w, y+h), (255, 0, 0), 2)#vizaton një drejtkëndësh rreth fytyra Xpos = x+(w/2)#llogarit koordinatën X të qendrës së fytyrës. Ypos = y+(h/2) #vlerëson koordinatën Y të qendrës së fytyrës nëse Xpos> 280: #Kodi i mëposhtëm bllokon nëse fytyra është ard.write ('L'.encode ()) #on majtas, djathtas, lart ose poshtë në lidhje me kohën. gjumi (0.01) #qendra e kornizës. elif Xpos 280: ard.write ('D'.encode ()) koha.fjet (0.01) elif Ypos <200: ard.write (' U'.encode ()) koha.fjetje (0.01) tjetër: ard.shkruaj ('S'.ekodimi ()) time.sleep (0.01) pushim cv2.imshow (' kornizë ', kornizë)#shfaq kornizën në një dritare të veçantë. k = cv2.waitKey (1) & 0xFF nëse (k == ord ('q')): #if 'q' shtypet në tastierë, del nga laku while. pushim
cv2.destroyAllWindows () #mbyll të gjitha dritaret
ard.mbylle () #mbyll komunikimin serik
vid.release () #ndalon marrjen e videos nga ueb -kamera.
Hapi 4: Programimi i Arduino
Mos ngurroni të modifikoni programin sipas konfigurimit tuaj të harduerit që i përshtatet nevojave tuaja.
#përfshi
Servo servoX;
Servo servoY;
int x = 90;
int y = 90;
void setup () {
// vendosni kodin tuaj të konfigurimit këtu, për të ekzekutuar një herë: Serial.begin (9600); servoX.tash (9); servoY.shtoj (10); servoX.shkruaj (x); servoY.shkruani (y); vonesa (1000); }
hyrja e char = ""; // hyrja serike ruhet në këtë ndryshore
lak void () {
// vendosni kodin tuaj kryesor këtu, për ta ekzekutuar në mënyrë të përsëritur: if (Serial.available ()) {// kontrollon nëse ka të dhëna në inputin serial buffer = Serial.read (); // lexon të dhënat në një ndryshore nëse (input == 'U') {servoY.write (y+1); // rregullon këndin servo sipas hyrjes y += 1; // përditëson vlerën e këndit} else if (input == 'D') {servoY.write (y-1); y -= 1; } tjetër {servoY.vrite (y); } if (input == 'L') {servoX.write (x-1); x -= 1; } else if (input == 'R') {servoX.write (x+1); x += 1; } else {servoX.shkruaj (x); } input = ""; // pastron ndryshoren} // procesi vazhdon të përsëritet !!:)}
Hapi 5: Përfundimi
Kjo është një mënyrë e bukur dhe një ndërvepruese përmes së cilës ju mund të krijoni të inkorporoni Computer Vision në projektet tuaja Arduino. Vizioni kompjuterik është në të vërtetë mjaft argëtues. Dhe me të vërtetë shpresoj që juve ju ka pëlqyer. Nëse po, më tregoni në komente. Dhe ju lutemi regjistrohuni në kanalin tim në youtube. Faleminderit paraprakisht <3 <3
youtube.com/channel/UCNOSfI_iQ7Eb7-s8CrExGfw/videos
Recommended:
Si të ndërtoni PHIL - një robot për përcjelljen e dritës: 6 hapa (me fotografi)
Si të Ndërtoni PHIL - një Robot për Ndjekjen e Dritës: Në këtë Instructable unë do t'ju tregoj se si e kam bërë këtë robot të përcjelljes së dritës me aks të dyfishtë duke përdorur një Arduino Uno. E gjithë CAD dhe kodi do të përfshihen në mënyrë që ta ndërtoni vetë pa pasur nevojë për aftësi programimi ose dizajnimi. Gjithçka që ju nevojitet
Pajisja ASS (Pajisja Sociale Anti-Sociale): 7 hapa
Pajisja ASS (Pajisja Sociale Anti-Sociale): Thoni se jeni personi tip që ju pëlqen të jeni pranë njerëzve, por nuk ju pëlqen që ata të afrohen shumë. Ju gjithashtu jeni një popull që ju pëlqen dhe e keni të vështirë të thoni jo njerëzve. Kështu që ju nuk dini si t'i thoni që të tërhiqen. Epo, futni - Pajisja ASS! Y
Njohja dhe Identifikimi i Fytyrës - Arduino Face ID duke përdorur OpenCV Python dhe Arduino .: 6 hapa
Njohja dhe Identifikimi i Fytyrës | Arduino Face ID Duke përdorur OpenCV Python dhe Arduino .: Njohja e fytyrës ID e fytyrës AKA është një nga veçoritë më të rëndësishme në telefonat celularë në ditët e sotme. Pra, kisha një pyetje " a mund të kem një ID të fytyrës për projektin tim Arduino " dhe përgjigja është po … Udhëtimi im filloi si më poshtë: Hapi 1: Qasja tek ne
Rrëshqitës i kamerës për përcjelljen e objektit me bosht rrotullues. Shtypur 3D dhe ndërtuar në kontrolluesin e motorit RoboClaw DC & Arduino: 5 hapa (me fotografi)
Rrëshqitës i kamerës për përcjelljen e objektit me bosht rrotullues. 3D Printed & ndërtuar mbi RoboClaw DC Motor Controller & Arduino: Ky projekt ka qenë një nga projektet e mia të preferuara që kur kam kombinuar interesin tim për prodhimin e videove me DIY. Unë gjithmonë i kam shikuar dhe kam dashur të imitoj ato pamje kinematografike në filma ku një aparat fotografik lëviz nëpër një ekran, ndërsa shikon për të gjurmuar
Kamera për përcjelljen e topit 180 °: 5 hapa (me fotografi)
Ndjekja e Topit Kamera 180 °: Mirësevini në projektin tim të parë! Unë jam i ngazëllyer për të ndarë atë që kam bërë dhe duke ju treguar hapat për të ndërtuar kamerën tuaj përcjellëse. Ky projekt u bë i mundur duke përdorur bibliotekën OpenCV në lidhje me Python