Mündəricat:
- Təchizat
- Addım 1: Python və OpenCV qurmaq
- Addım 2: Haar kimi xüsusiyyətlər nələrdir?
- Addım 3: Pythonda kodlaşdırma
- Addım 4: Arduino proqramlaşdırılması
- Addım 5: Nəticə
Video: Üz İzləmə Cihazı! Python və Arduino: 5 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:45
Techovator0819 tərəfindən Youtube Kanalım Müəllif tərəfindən daha çox izləyin:
Haqqında: Yalnız yeni şeylər etməyi sevirəm. Mikro nəzarətçilər, maşınqayırma, Süni Zəka, Kompüter Elmləri və məni maraqlandıran hər şeylə əlaqəli şeylər kimi. Və burada hər şeyi tapa bilərsiniz … Techovator0819 haqqında daha çox »
Hamıya salam bu təlimatı oxuyan. OpenCV adlı bir python kitabxanasında işləyən bir üz izləmə cihazıdır. CV 'Computer Vision' deməkdir. Sonra kompüterimlə Arduino UNO arasında serial interfeys qurdum. Yəni bu, yalnız Python üzərində işləmir.
Bu cihaz üzünüzü çərçivədə tanıyır, sonra Arduinoya kameranı çərçivənin içində qalacaq şəkildə yerləşdirmək üçün müəyyən əmrlər göndərir! Sərin səslənir? Gəlin dərhal oraya girək.
Təchizat
1. Arduino UNO
2. 2 x Servo Motor (Hər hansı bir servo mühərrik yaxşı olacaq, amma Tower Pro SG90 istifadə etmişəm)
3. Python -un quraşdırılması
4. OpenCV -nin quraşdırılması
5. Veb Kamera
Addım 1: Python və OpenCV qurmaq
Python qurmaq olduqca sadədir!
www.python.org/downloads/
Sizə ən uyğun olan (64 bit və ya 32 bit) python versiyasını (Mac, Windows və ya Linux) yükləmək üçün yuxarıdakı linki izləyə bilərsiniz. Quraşdırma prosesinin qalan hissəsi sadədir və interfeyslə idarə olunacaqsınız.
Quraşdırmanı bitirdikdən sonra əmr satırınızı açın və aşağıdakıları yazın:
opencv-python quraşdırın
Bu, OpenCV kitabxanasını quraşdırmalıdır. Çətinliklə qarşılaşdığınız təqdirdə BU səhifəyə baxa bilərsiniz.
Ətraf mühiti və bütün ön şərtləri qurduqdan sonra görək bunu əslində necə qura bilərik!
Addım 2: Haar kimi xüsusiyyətlər nələrdir?
Haar kimi xüsusiyyətlər rəqəmsal görüntünün xüsusiyyətləridir. Adı Haar dalğaclarından gəlir. Rəqəmsal bir görüntünün xüsusiyyətlərini müəyyən etmək üçün istifadə olunan kvadrat formalı dalğalar ailəsidir. Haar kaskadları, haar kimi xüsusiyyətlərdən istifadə edərək cisimləri (bizim vəziyyətimizdə) aşkar etməyimizə kömək edən bir təsnifatdır.
Bizim vəziyyətimizdə, sadəlik üçün, üzləri müəyyən etmək üçün əvvəlcədən öyrədilmiş Haar Cascades istifadə edəcəyik. Bu github səhifəsinin BU linkini izləyə və Haar Cascade üçün xml faylını yükləyə bilərsiniz.
1. 'haarcascade_frontalface_alt.xml' üzərinə basın
2. Kod pəncərəsinin sağ üst hissəsindəki 'Raw' düyməsini basın.
3. Sizi yalnız mətni olan başqa bir səhifəyə yönləndirəcək.
4. Sağ klikləyin və 'kimi Saxla' düyməsini basın.
5. Yazmaq istədiyiniz python kodu ilə eyni qovluqda və ya qovluqda saxlayın.
Addım 3: Pythonda kodlaşdırma
idxal cv2
np idxal seriyalı idxal vaxtı kimi numpy idxal edin
Ehtiyacımız olan bütün kitabxanaları idxal edirik.
ard = serial. Serial ("COM3", 9600)
'Ard' adlı bir serial obyekti yaradırıq. Liman Adını və BaudRate'i də parametr olaraq təyin edirik.
face_cascade = cv2. CascadeClassifier ('haarcascade_frontalface_default.xml')
Haar Cascade üçün başqa bir obyekt yaradırıq. HaarCascade faylının bu python proqramı ilə eyni qovluqda qaldığından əmin olun.
vid = cv2. VideoCapture (0)
Veb kameradan video çəkən bir obyekt yaradırıq. 0 olaraq parametr, kompüterimə qoşulan ilk veb kamera deməkdir.
docs.opencv.org/2.4/modules/objdetect/doc/cascade_classification.html
Doğru halda:
_, frame = vid.read ()#cari çərçivəni dəyişən çərçivəyə oxuyur grey = cv2.cvtColor (frame, cv2. COLOR_BGR2GRAY)#çərçivəni çevirir -> boz rəngli şəkil#aşağıdakı sətir üzləri aşkar edir. #İlk parametr, #minSize = () üzərində üzün minimum ölçüsünü təyin etmək istədiyiniz şəkildir #Cascade Təsnifat üzləri haqqında daha çox məlumat əldə etmək üçün yuxarıdakı linki vurun = face_cascade.detectMultiScale (boz, minSize) = (80, 80), minNeighbors = 3) Üzləri aşkar etmək üçün loop üçün #A. üzlərdə (x, y, w, h) üçün: cv2.dörtbucaqlı (çərçivə, (x, y), (x+w, y+h), (255, 0, 0), 2)#ətrafa düzbucaqlı çəkir üz Xpos = x+(w/2)#üz mərkəzinin X koordinatını hesablayır. Ypos = y+(h/2) #Xpos> 280 olduqda üzün mərkəzinin Y koordinatını hesablayır: #Aşağıdakı kod blokları üzün ard.write ('L'.encode ()) #on olduğunu yoxlayır saata görə sol, sağ, yuxarı və ya aşağı.yuxu (0.01) #çərçivənin mərkəzi. elif Xpos 280: ard.write ('D'.encode ()) time.sleep (0.01) elif Ypos <200: ard.write (' U'.encode ()) time.sleep (0.01) other: ard.write ('S'.encode ()) time.sleep (0.01) break cv2.imshow (' frame ', frame)#çərçivəni ayrı bir pəncərədə göstərir. k = cv2.waitKey (1) & 0xFF if (k == ord ('q')):: #if 'q' klaviaturada basıldıqda while döngəsindən çıxır. fasilə
cv2.destroyAllWindows () #bütün pəncərələri bağlayır
ard.close () #serial əlaqəsini bağlayır
vid.release () #veb kameradan video almağı dayandırır.
Addım 4: Arduino proqramlaşdırılması
Proqramı ehtiyaclarınıza uyğun olaraq qurğunuza uyğun olaraq dəyişdirə bilərsiniz.
#daxil edin
Servo servoX;
Servo xidmət;
int x = 90;
int y = 90;
boş quraşdırma () {
// quraşdırma kodunuzu buraya qoyun, bir dəfə işləsin: Serial.begin (9600); servoX.attach (9); servoY.attach (10); servoX.write (x); servoY.write (y); gecikmə (1000); }
char girişi = ""; // serial girişi bu dəyişəndə saxlanılır
boşluq döngəsi () {
// əsas kodunuzu bura qoyun, təkrar işləsin: if (Serial.available ()) {// seriyalı tampon girişində hər hansı bir məlumatın olub olmadığını yoxlayır = Serial.read (); // məlumatları bir dəyişənə oxuyur, əgər (input == 'U') {servoY.write (y+1); // y += 1 girişinə görə servo bucağını tənzimləyir; // bucağın dəyərini yeniləyir} else if if (input == 'D') {servoY.write (y-1); y -= 1; } başqa {servoY.write (y); } if (input == 'L') {servoX.write (x-1); x -= 1; } başqa əgər (giriş == 'R') {servoX.write (x+1); x += 1; } başqa {servoX.write (x); } giriş = ""; // dəyişəni təmizləyir} // proses təkrarlanmağa davam edir !!:)}
Addım 5: Nəticə
Bu, Arduino layihələrinizə Kompüter Vizyonunu daxil edə biləcəyiniz dizayn edə biləcəyiniz gözəl və interaktiv bir yoldur. Computer Vision əslində olduqca əyləncəlidir. Və ümid edirəm ki, bəylər bəyəndiniz. Bəli, şərhlərdə mənə bildirin. Və zəhmət olmasa youtube kanalıma abunə olun. Əvvəlcədən təşəkkürlər <3 <3
youtube.com/channel/UCNOSfI_iQ7Eb7-s8CrExGfw/videos
Tövsiyə:
ATtiny85 Geyinilə bilən Titrəmə Aktivliyi İzləmə İzləmə və Proqramlaşdırma Arduino Uno ilə ATtiny85: 4 addım (şəkillərlə)
ATtiny85 Geyinilə bilən Titrəmə Aktivliyi İzləmə Saatı və Proqramlaşdırılması Arduino Uno ilə ATtiny85: Geyinilə bilən fəaliyyət izləmə saatı necə edilir? Bu, durğunluq algıladıqda titrəmək üçün hazırlanmış geyilə bilən bir gadgetdır. Vaxtınızın çoxunu mənim kimi kompüterdə keçirirsinizmi? Özünüz də bilmədən saatlarla oturursunuz? Sonra bu cihaz f
Arduino istifadə edərək GPS İzləmə və Xəbərdarlıqları olan Qadın Təhlükəsizlik Cihazı: 6 addım
Arduino istifadə edərək GPS İzləmə və Xəbərdarlıqları olan Qadın Təhlükəsizlik Cihazı: Son zamanlarda əlimizdə olan bütün texnologiyalarla qadınlar üçün yalnız təcili həyəcan siqnalı yaratmayacaq, həm də dostlarınıza, ailənizə bir mesaj göndərəcək bir təhlükəsizlik cihazı qurmaq çətin deyil. və ya narahat olan şəxs. Burada bir qrup quracağıq
Xpedit - Gəzinti və Trekking üçün Atmosfer İzləmə Cihazı: 12 Addım (Şəkillərlə birlikdə)
Xpedit - Yürüyüş və Trekking üçün Atmosfer İzləmə Cihazı: Bir macəra səyahəti və ya vəhşi təbiətə səyahət etməyi planlaşdırarkən, çantanızda ətraf mühiti anlamağa kömək edəcək bir cihazın olması vacibdir. Qarşıdakı macəra səfərim üçün kömək edəcək bir əl cihazı qurmağı planlaşdırdım
Asan 5 Dəqiqə USB Günəş Şarj Cihazı/Survival USB Şarj Cihazı: 6 Addım (Şəkillərlə birlikdə)
Asan 5 Dəqiqə USB Günəş Şarj Cihazı/Survival USB Şarj Cihazı: Salam uşaqlar! Bu gün (bəlkə də) ən asan usb günəş paneli şarj cihazı etdim! Əvvəlcə sizin üçün təlimat verən bir şey yükləmədiyim üçün üzr istəyirəm .. Son bir neçə ayda bir neçə imtahan aldım (əslində bir neçə həftə də ola bilməz ..). Amma
GPS və İki Yollu Radiolardan Xam İzləmə Cihazı: 7 addım
GPS və İki Yollu Radiolardan Xam İzləmə Cihazı: Beləliklə, bir izləmə cihazı əldə etmək istədim. Bazara baxan kimi başa düşdüm ki, bir şeyin qiymətləri bir qolundan başlayır və bir ayağına və ya daha çoxuna qalxır! Dəlilik dayandırılmalıdır! Şübhəsiz ki, bir şeyin harada olduğunu bilmək prinsipləri