Բովանդակություն:
- Պարագաներ
- Քայլ 1: Տեղադրեք Python և OpenCV
- Քայլ 2: Որո՞նք են Haar- ի նման հատկությունները:
- Քայլ 3: Կոդավորում Python- ում
- Քայլ 4. Arduino- ի ծրագրավորում
- Քայլ 5: Եզրակացություն
Video: Դեմքի հետևման սարք: Python և Arduino ՝ 5 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:47
Ըստ Techovator0819 Իմ Youtube ալիքի Հետևեք հեղինակի ավելին.
Մասին: Ես պարզապես սիրում եմ նոր բաներ պատրաստել: Ինչպես միկրոկարգավորիչների, մեխանիկական ճարտարագիտության, արհեստական բանականության, համակարգչային գիտության և ընդհանրապես ինձ հետաքրքրող բաների նման: Եվ այստեղ դուք կգտնեք բոլոր… Ավելին Techovator0819- ի մասին »
Բարև բոլորին, ովքեր կարդում են այս հրահանգը: Սա դեմքի հետևող սարք է, որն աշխատում է OpenCV կոչվող պիթոնի գրադարանում: CV- ն նշանակում է «Համակարգչային տեսողություն»: Հետո ես ստեղծեցի սերիական ինտերֆեյս իմ համակարգչի և իմ Arduino UNO- ի միջև: Այսպիսով, դա նշանակում է, որ սա չի աշխատում միայն Python- ի վրա:
Այս սարքը կճանաչի ձեր դեմքը, այնուհետև որոշակի հրամաններ է ուղարկում Arduino- ին ՝ տեսախցիկը այնպես տեղադրելու համար, որ այն մնա շրջանակի ներսում: Թույն է հնչում? Եկեք անմիջապես մտնենք դրա մեջ:
Պարագաներ
1. Arduino UNO
2. 2 x Servo Motors (serանկացած servo շարժիչ լավ կլինի, բայց ես օգտագործել եմ Tower Pro SG90)
3. Python- ի տեղադրում
4. OpenCV- ի տեղադրում
5. Վեբ-տեսախցիկ
Քայլ 1: Տեղադրեք Python և OpenCV
Python- ի տեղադրումը բավականին պարզ է:
www.python.org/downloads/
Կարող եք հետևել վերը նշված հղմանը ՝ պիթոնի տարբերակը (Mac, Windows կամ Linux) ներբեռնելու համար, որն առավել հարմար է ձեզ (64 բիթ կամ 32 բիթ): Մնացած տեղադրման գործընթացը պարզ է, և դուք կառաջնորդվեք ինտերֆեյսի միջոցով:
Տեղադրումն ավարտելուց հետո բացեք ձեր հրամանի տողը և մուտքագրեք հետևյալը.
pip տեղադրել opencv-python
Դա պետք է տեղադրի openCV գրադարանը: Նկարահանումների դժվարության դեպքում կարող եք ստուգել ԱՅՍ էջը:
Շրջակա միջավայրի և բոլոր նախադրյալների ստեղծումից հետո եկեք տեսնենք, թե իրականում ինչպես կարող ենք դա կառուցել:
Քայլ 2: Որո՞նք են Haar- ի նման հատկությունները:
Haar- ի նման հատկությունները թվային պատկերի առանձնահատկություններ են: Անունը գալիս է Haar ալիքներից: Սրանք քառակուսի ալիքների ընտանիք են, որոնք օգտագործվում են թվային պատկերի առանձնահատկությունները նույնականացնելու համար: Haar cascades- ը հիմնականում դասակարգիչ է, որն օգնում է մեզ հայտնաբերել օբյեկտները (մեր դեպքում ՝ դեմքերը) ՝ օգտագործելով haar- ի նման հատկությունները:
Մեր դեպքում, պարզության համար, մենք կօգտագործենք նախապես պատրաստված Haar Cascades- ը `դեմքերը ճանաչելու համար: Կարող եք հետևել github էջի ԱՅՍ հղմանը և ներբեռնել Haar Cascade- ի xml ֆայլը:
1. Սեղմեք 'haarcascade_frontalface_alt.xml'
2. Կտտացրեք կոճակի պատուհանի վերևի աջ մասում գտնվող «Հում» կոճակին:
3. Այն ձեզ կուղղորդի մեկ այլ էջ `միայն տեքստով:
4. Աջ սեղմեք և կտտացրեք «Պահել որպես..»:
5. Պահեք այն նույն գրացուցակում կամ թղթապանակում, ինչ պիտոնի կոդը, որը դուք գրում եք:
Քայլ 3: Կոդավորում Python- ում
ներմուծել cv2
ներմուծել numpy as np ներմուծել սերիական ներմուծման ժամանակը
Մենք ներմուծում ենք բոլոր անհրաժեշտ գրադարանները:
ard = serial. Serial («COM3», 9600)
Մենք ստեղծում ենք սերիական օբյեկտ ՝ «ard» անունով: Մենք նաև նշում ենք նավահանգստի անունը և BaudRate- ը որպես պարամետրեր:
face_cascade = cv2. CascadeClassifier ('haarcascade_frontalface_default.xml')
Մենք ստեղծում ենք մեկ այլ օբյեկտ մեր Հաար կասկադի համար: Համոզվեք, որ HaarCascade ֆայլը մնում է նույն պանակում, ինչ այս python ծրագիրը:
vid = cv2. VideoCapture (0)
Մենք ստեղծում ենք օբյեկտ, որը տեսախցիկից տեսանյութեր է գրավում: 0 որպես պարամետր նշանակում է իմ համակարգչին միացված առաջին վեբ -տեսախցիկը:
docs.opencv.org/2.4/modules/objdetect/doc/cascade_classification.html
իսկական True:
_, frame = vid.read ()#կարդում է ընթացիկ շրջանակը փոփոխական շրջանակին gray = cv2.cvtColor (շրջանակ, cv2. COLOR_BGR2GRAY)#փոխակերպում է շրջանակ -> մոխրագույն պատկերով#հետևյալ տողը դեմքեր է հայտնաբերում: #Առաջին պարամետրն այն պատկերն է, որի վրա ցանկանում եք հայտնաբերել #minSize = () - ում նշվում է դեմքի նվազագույն չափը պիքսելներով #Կտտացրեք վերևի հղմանը ՝ Կասկադի դասակարգման դեմքերին ավելին իմանալու համար = face_cascade.detectMultiScale (մոխրագույն, minSize = (80, 80), min Հարևաններ = 3) #A for loop ՝ դեմքերը հայտնաբերելու համար: (x, y, w, h) դեմքերի համար. cv2. ուղղանկյուն (շրջանակ, (x, y), (x+w, y+h), (255, 0, 0), 2)#նկարում է ուղղանկյուն շուրջը դեմքը Xpos = x+(w/2)#հաշվարկում է դեմքի կենտրոնի X կոորդինատը: Ypos = y+(h/2) #հաշվարկում է դեմքի կենտրոնի Y- ի կոորդինատը, եթե Xpos> 280: #Հետևյալ ծածկագիրը արգելափակում է դեմքի արդի լինելը ձախ, աջ, վերև կամ ներքև ՝ ժամանակի համեմատ: քուն (0.01) #շրջանակի կենտրոն: elif Xpos 280: ard.write ('D'.encode ()) time.sleep (0.01) elif Ypos <200: ard.write (' U'.encode ()) time.sleep (0.01) else: ard.write ('S'.encode ()) time.sleep (0.01) ընդմիջում cv2.imshow (' շրջանակ ', շրջանակ)#ցուցադրում է շրջանակը առանձին պատուհանում: k = cv2.waitKey (1) & 0xFF եթե (k == ord ('q')): #if 'q' սեղմված է ստեղնաշարի վրա, այն դուրս է գալիս while հանգույցից: ընդմիջում
cv2.destroyAllWindows () #փակում է բոլոր պատուհանները
ard.close () #փակում է սերիական հաղորդակցությունը
vid.release () #դադարեցնում է վեբ տեսախցիկից տեսանյութեր ստանալը:
Քայլ 4. Arduino- ի ծրագրավորում
Ազատորեն փոփոխեք ծրագիրը ՝ ըստ ձեր կարիքներին համապատասխանող ապարատային կարգավորման:
#ներառում
Servo servoX;
Servo servoY;
int x = 90;
int y = 90;
void setup () {
// տեղադրեք ձեր տեղադրման կոդը այստեղ ՝ մեկ անգամ գործարկելու համար. Serial.begin (9600); servoX.attach (9); servoY.attach (10); servoX. գրել (x); servoY. գրել (y); ուշացում (1000); }
char մուտքագրում = ""; // սերիական մուտքագրումը պահվում է այս փոփոխականի մեջ
դատարկ շրջան () {
// տեղադրեք ձեր հիմնական կոդը այստեղ ՝ բազմիցս գործարկելու համար. // տվյալները կարդում է փոփոխականի մեջ, եթե (մուտքագրում == 'U') {servoY.write (y+1); // կարգավորում է servo անկյունը ըստ մուտքի y += 1; // թարմացնում է անկյունի արժեքը} else if (մուտքագրում == 'D') {servoY.write (y-1); y -= 1; } else {servoY.write (y); } if (մուտքագրում == 'L') {servoX.write (x-1); x -= 1; } else if (մուտքագրում == 'R') {servoX.write (x+1); x += 1; } else {servoX.write (x); } մուտքագրում = ""; // մաքրում է փոփոխականը} // գործընթացը անընդհատ կրկնում է !!:)}
Քայլ 5: Եզրակացություն
Սա գեղեցիկ և ինտերակտիվ միջոց է, որի միջոցով կարող եք նախագծել ներառել համակարգչային տեսլականը ձեր Arduino նախագծերում: Համակարգչային տեսլականը իրականում բավականին զվարճալի է: Եվ ես իսկապես հույս ունեմ, որ ձեզ դուր եկավ: Եթե այո, ասեք ինձ մեկնաբանություններում: Եվ խնդրում եմ բաժանորդագրվեք իմ youtube ալիքին: Նախապես շնորհակալություն <3 <3
youtube.com/channel/UCNOSfI_iQ7Eb7-s8CrExGfw/videos
Խորհուրդ ենք տալիս:
Գլխի շարժման հետևման համակարգ VR- ի համար ՝ 8 քայլ
Head Motion Tracking System VR- ի համար. Իմ անունն է Sam KODO: Այս ձեռնարկում ես ձեզ քայլ առ քայլ կսովորեցնեմ, թե ինչպես օգտագործել Arduino IMU սենսորները ՝ VR- ի համար գլխի հետևման համակարգ կառուցելու համար: Այս նախագծում ձեզ հարկավոր կլինի. - LCD էկրան HDMI ՝ https: //www.amazon.com/Elecrow-Capacitive-interfac…- An
Հետևման ակտիվ երկրպագու ՝ 5 քայլ
Ակտիվ հետևող երկրպագու. Սինգապուրը խոնավ երկիր է, և մեզ զով պահելու համար մենք օգտագործում ենք օդափոխիչներ կամ օդորակիչներ: Այնուամենայնիվ, մենք չենք օգտագործում ամենաարդյունավետ էներգաարդյունավետ պարամետրերը, երբեմն մենք ռեժիմը չափազանց ցուրտ ենք դնում կամ օդափոխիչը բարձր ենք դնում, այնուհետև կրում ենք բաճկոն, որը ոչ
ASS սարք (Հակասոցիալական սոցիալական սարք) ՝ 7 քայլ
ASS սարք (Հակասոցիալական սոցիալական սարք). Ասեք, որ դուք այն մարդն եք, ով սիրում է մարդկանց կողքին լինել, բայց չի սիրում, որ նրանք շատ մոտենան: Դուք նաև հաճույք եք պատճառում մարդկանց և դժվարանում եք ոչ -ին ասել մարդկանց: Այսպիսով, դուք չգիտեք, թե ինչպես ասել նրանց հետ կանգնել: Դե, մուտքագրեք - ASS սարքը: Y
Դեմքի ճանաչում և նույնականացում - Arduino Face ID ՝ օգտագործելով OpenCV Python և Arduino. 6 քայլ
Դեմքի ճանաչում և նույնականացում | Arduino Face ID ՝ օգտագործելով OpenCV Python և Arduino. Դեմքի ճանաչում AKA face ID- ն մեր օրերում բջջային հեռախոսների ամենակարևոր հատկություններից է: Այսպիսով, ես ունեի մի հարց " կարո՞ղ եմ ունենալ դեմքի ID իմ Arduino նախագծի համար " և պատասխանը այո է … Իմ ճանապարհորդությունը սկսվեց հետևյալ կերպ. Քայլ 1. Մուտք դեպի մեզ
Arduino նախագիծ. Փորձարկման միջակայք LoRa մոդուլ RF1276 GPS- ի հետևման լուծման համար. 9 քայլ (նկարներով)
Arduino նախագիծ. Փորձարկման միջակայք LoRa մոդուլ RF1276 GPS- ի հետևման լուծում. Միացում ՝ USB - սերիա Անհրաժեշտություն ՝ Chrome դիտարկիչ Անհրաժեշտ է ՝ 1 X Arduino Mega կարիք ՝ 1 X GPS կարիք ՝ 1 X SD քարտի անհրաժեշտություն. 2 X LoRa մոդեմ RF1276 Ֆունկցիա ՝ Arduino Ուղարկել GPS արժեք դեպի հիմնական բազա - Հիմնական բազայի տվյալները պահվում են Dataino Server Lora մոդուլում. Չափազանց հեռահար