विषयसूची:

ARDUINO का उपयोग करके फेस ट्रैकिंग !!!: 7 Steps
ARDUINO का उपयोग करके फेस ट्रैकिंग !!!: 7 Steps

वीडियो: ARDUINO का उपयोग करके फेस ट्रैकिंग !!!: 7 Steps

वीडियो: ARDUINO का उपयोग करके फेस ट्रैकिंग !!!: 7 Steps
वीडियो: Computer Vision & Arduino Project - Face Detection (LED) 2024, नवंबर
Anonim
ARDUINO का उपयोग करके फेस ट्रैकिंग !!!
ARDUINO का उपयोग करके फेस ट्रैकिंग !!!

पिछले निर्देश में मैंने साझा किया था कि आप 'पिसरियल' मॉड्यूल का उपयोग करके Arduino और Python के बीच कैसे संवाद कर सकते हैं और एक एलईडी को नियंत्रित कर सकते हैं। यदि आपने इसे नहीं देखा है तो इसे यहाँ देखें: ARDUINO और PYTHON के बीच संचार!

और आप किसी वस्तु के रंग का पता कैसे लगा सकते हैं और उसे स्क्रीन पर कैसे ट्रैक कर सकते हैं, इसे यहां देखें: OPENCV और PYTHON का उपयोग करके रंग का पता लगाना।

इस निर्देशयोग्य में मैं आपको दिखाऊंगा कि कैसे Arduino और Python का उपयोग करके चेहरों को ट्रैक किया जाए और कैमरे को चेहरे का अनुसरण किया जाए। यह मुश्किल लग सकता है लेकिन मेरा विश्वास करो ऐसा नहीं है, आपको केवल Arduino और Python का बुनियादी ज्ञान चाहिए।

तो चलो शुरू हो जाओ…

चरण 1: चीजें जिनकी आपको आवश्यकता होगी:

आपको जिन चीजों की आवश्यकता होगी
आपको जिन चीजों की आवश्यकता होगी
आपको जिन चीजों की आवश्यकता होगी
आपको जिन चीजों की आवश्यकता होगी
आपको जिन चीजों की आवश्यकता होगी
आपको जिन चीजों की आवश्यकता होगी

आवश्यकताएं न्यूनतम हैं। यहां मैंने आपकी जरूरत की हर चीज की आंशिक सूची प्रदान की है:

हार्डवेयर आवश्यकता:

  • Arduino यूएनओ (अमेज़ॅन यूएस/अमेज़ॅन ईयू)
  • वेब कैम (अमेज़ॅन यूएस / अमेज़ॅन ईयू)
  • सर्वोस एक्स 2 (अमेज़ॅन यूएस / अमेज़ॅन ईयू)
  • ब्रेडबोर्ड (अमेज़ॅन यूएस / अमेज़ॅन ईयू)
  • सर्वो पैन टिल्ट किट (अमेज़ॅन यूएस / अमेज़ॅन ईयू)

सॉफ्टवेयर आवश्यकता:

  1. पायथन 2.7 (स्थापित किया जाना चाहिए, लिनक्स ओएस में आमतौर पर यह पहले से स्थापित होता है)
  2. OpenCV (आप इसे अलग से डाउनलोड कर सकते हैं या 'पाइप इंस्टाल' का उपयोग करके इंस्टॉल कर सकते हैं, आगे बताया गया है)
  3. pyserial (पाइप के साथ स्थापित किया जा सकता है)
  4. सुन्न
  5. हरकास्केड।

सब कुछ इकट्ठा होने के बाद हम इंस्टॉलेशन स्टेप पर आगे बढ़ सकते हैं…

चरण 2: पायथन पर्यावरण की स्थापना:

पायथन पर्यावरण की स्थापना
पायथन पर्यावरण की स्थापना
पायथन पर्यावरण की स्थापना
पायथन पर्यावरण की स्थापना
पायथन पर्यावरण की स्थापना
पायथन पर्यावरण की स्थापना

पायथन स्थापित करना:

तो सबसे पहले हमें Python 2.7 अप एंड रनिंग की आवश्यकता है। ऐसा करने के लिए पहले अजगर 2.7.14 को डाउनलोड और इंस्टॉल करें। यह जांचने के लिए कि क्या यह सही तरीके से स्थापित है गोटो: विंडोज सर्च >> "आईडीएलई" टाइप करें >> एंटर दबाएं। एक पायथन शेल पॉप अप होना चाहिए।

या

सर्च टाइप 'सीएमडी' में और कमांड प्रॉम्प्ट खोलने के लिए एंटर दबाएं। सीएमडी टाइप >> पायथन और हिट एंटर में, पायथन इंटरफेस प्रदर्शित होना चाहिए।

यदि आपको सीएमडी में कोई त्रुटि दिखाई देती है, तो घबराएं नहीं आपको शायद पर्यावरण चर सेट करने की आवश्यकता है। पर्यावरण चर सेट करने के लिए आप यहां इस ट्यूटोरियल का अनुसरण कर सकते हैं।

अजगर में 'pyserial', 'OpenCV' और "numpy" इंस्टॉल करना:

इन मॉड्यूल को स्थापित करने के लिए हम उपयोग करेंगे pip install, सबसे पहले सीएमडी खोलें और निम्नलिखित कोड टाइप करें: -

पाइप सीरियल स्थापित करें

पाइप इंस्टाल ओपनसीवी-पायथन >पाइप इंस्टाल numpy

ये आदेश आवश्यक मॉड्यूल स्थापित करेंगे। अब हम कोडिंग भाग में जा सकते हैं…

चरण 3: पायथन लिपि:

पायथन लिपि
पायथन लिपि

कोड लिखना शुरू करने से पहले सबसे पहले एक नया फ़ोल्डर बनाना है क्योंकि सभी कोड को एक ही फ़ोल्डर में संग्रहीत करने की आवश्यकता है। इसलिए एक नया फोल्डर बनाएं, उसे जो चाहें नाम दें। और नीचे से 'Harcascade' डाउनलोड करें और इसे फोल्डर में पेस्ट करें।

अब नोटपैड खोलें और नीचे दी गई स्क्रिप्ट लिखें, इसे 'face.py' के रूप में उसी फोल्डर में सेव करें जैसे harcascade. (आप उस कोड को डाउनलोड कर सकते हैं जो मैंने नीचे दी गई फ़ाइल प्रदान की है):

#सभी आवश्यक मॉड्यूल आयात करें

np के रूप में आयात numpy आयात सीरियल आयात समय आयात sys आयात cv2 # arduino के लिए सेटअप संचार पथ ('COM5' के स्थान पर उस पोर्ट को रखें जिससे आपका arduino जुड़ा हुआ है) arduino = serial. Serial ('COM5', 9600) समय। सो जाओ (2) प्रिंट ("आर्डिनो से कनेक्टेड …") # फेस डिटेक्शन के लिए हार्कास्केड को आयात करना face_cascade = cv2. CascadeClassifier('haarcascade_frontalface_default.xml') # वेबकैम से वीडियो स्ट्रीम कैप्चर करने के लिए। cap = cv2. VideoCapture(0) # कैप्चर की गई इमेज को पढ़ें, इसे ग्रे इमेज में बदलें और चेहरों को ढूंढें जबकि 1: ret, img = cap.read() cv2.resizeWindow('img', 500, 500) cv2.line(img, (500, 250), (0, 250), (0, 255, 0), 1) cv2.line(img, (250, 0), (250, 500), (0, 255, 0), 1) cv2.circle(img, (250, 250), 5, (255, 255, 255), -1) ग्रे = cv2.cvtColor(img, cv2. COLOR_BGR2GRAY) चेहरे = face_cascade.detectMultiScale(ग्रे, 1.3) # चेहरे का पता लगाएं और उसके चारों ओर एक आयत बनाएं। (x, y, w, h) चेहरों के लिए: cv2.rectangle(img, (x, y), (x+w, y+h), (0, 255, 0), 5) roi_gray = धूसर[y:y+h, x:x+w] roi_color = img[y:y+h, x:x+w] arr = {y:y+h, x:x+w} प्रिंट (गिरफ्तारी) प्रिंट ('X):' +str(x)) प्रिंट ('Y:'+str(y)) प्रिंट ('x+w:' +str(x+w)) प्रिंट ('y+h:' +str(y+h))) # roi का केंद्र (आयत) xx = int(x+(x+h))/2 yy = int(y+(y+w))/2 प्रिंट (xx) प्रिंट (yy) केंद्र = (xx, yy) # Arduino प्रिंट में डेटा भेजना ("आयत का केंद्र है:", केंद्र) डेटा = "X {0: d} Y {1: d} Z"। प्रारूप (xx, yy) प्रिंट ("आउटपुट = '" + डेटा + "'") arduino.write(data) #स्ट्रीम को प्रदर्शित करें। cv2.imshow('img', img) #Hit 'Esc' निष्पादन को समाप्त करने के लिए k = cv2.waitKey(30) और 0xff अगर k == 27: ब्रेक

एक बार यह हो जाने के बाद, arduino के लिए कोड लिखने के लिए आगे बढ़ें…

चरण 4: Arduino कोड:

अरुडिनो कोड
अरुडिनो कोड

पायथन लिपि तैयार होने के बाद हमें सर्वो को नियंत्रित करने के लिए आर्डिनो स्केच की आवश्यकता होती है। नीचे दिए गए कोड को देखें, इसे Arduino IDE में पेस्ट करें और इसे 'servo.ino' के रूप में उसी फ़ोल्डर में सेव करें जैसे कि face.py और haarcascade। कोड अपलोड करें और कनेक्शन बनाने के लिए अगले चरण पर जाएं।

(डाउनलोड करने योग्य फाइल नीचे दी गई है)

#शामिल

सर्वो सर्वोवर; // लंबवत सर्वो सर्वो सर्वोहोर; // क्षैतिज सर्वो int x; इंट वाई; इंट प्रीवएक्स; इंट पिछला; शून्य सेटअप () {Serial.begin (९६००); सर्वोवर.अटैच(5); // ५ सर्वोहोर.अटैच(६) को पिन करने के लिए वर्टिकल सर्वो संलग्न करें; // क्षैतिज सर्वो को पिन 6 सर्वोवर.राइट (90) में संलग्न करें; सर्वोहोर.राइट (90); } शून्य स्थिति () { अगर (पिछला! = एक्स || पिछला! = वाई) {इंट सर्वोएक्स = नक्शा (एक्स, ६००, ०, ७०, १७९); इंट सर्वोवाई = नक्शा (वाई, 450, 0, 179, 95); सर्वोएक्स = मिनट (सर्वोएक्स, १७९); सर्वोएक्स = अधिकतम (सर्वोएक्स, 70); सर्वोवाई = मिनट (सर्वो, १७९); सर्वोवाई = अधिकतम (सर्वो, 95); सर्वोहोर.राइट (सर्वोएक्स); सर्वोवर.राइट (सर्वोवाई); }} शून्य लूप () { अगर (सीरियल.उपलब्ध ()> 0) { अगर (सीरियल.रीड () == 'एक्स') { x = Serial.parseInt (); अगर (सीरियल.रीड () == 'वाई') { y = Serial.parseInt (); स्थिति (); } } जबकि (सीरियल.उपलब्ध ()> 0) {सीरियल.रीड (); } } }

चरण 5: पैन-टिल्ट मैकेनिज्म: -

पैन-टिल्ट मैकेनिज्म
पैन-टिल्ट मैकेनिज्म
पैन-टिल्ट मैकेनिज्म
पैन-टिल्ट मैकेनिज्म

मैंने पैन-टिल्ट के लिए आसानी से उपलब्ध किट का उपयोग किया है। आप चाहें तो लकड़ी/प्लास्टिक या यहां तक कि 3डी प्रिंट का इस्तेमाल कर खुद भी बना सकते हैं।

मैंने जो इस्तेमाल किया वह बहुत सस्ता है, और इकट्ठा करना बहुत आसान है। फिर भी यदि आप इसे कैसे करना चाहते हैं, इस पर निर्देश चाहते हैं, तो आप इसे यहां पा सकते हैं।

चरण 6: संबंध बनाना:

सम्पर्क बनाना
सम्पर्क बनाना
सम्पर्क बनाना
सम्पर्क बनाना

सर्किट काफी सरल है। आर्डिनो में बस दो सर्वो संलग्न करें।

  1. 5. पिन करने के लिए लंबवत
  2. पिन 6. के लिए क्षैतिज
  3. +5V. की शक्ति
  4. ग्राउंड टू जीएनडी

संदर्भ के लिए सर्किट आरेख की जाँच करें।

चरण 7: परीक्षण:

  • सब कुछ हो जाने के बाद आखिरी काम यह करना है कि अगर यह काम करता है तो परीक्षण करें। पहले परीक्षण करने के लिए सुनिश्चित करें कि सर्वो ठीक से arduino से जुड़े हुए हैं और स्केच अपलोड किया गया है।
  • स्केच अपलोड होने के बाद आईडीई को बंद करना सुनिश्चित करें ताकि पोर्ट अजगर से जुड़ने के लिए स्वतंत्र हो।
  • अब Python IDLE के साथ 'face.py' खोलें और कोड चलाने के लिए 'F5' दबाएं। Arduino से कनेक्ट होने में कुछ सेकंड का समय लगेगा और फिर आपको वेब कैम को स्ट्रीम करने वाली एक विंडो देखने में सक्षम होना चाहिए। अब कोड आपके चेहरे का पता लगाएगा और सर्वो इसे ट्रैक करेगा।
  • जैसे ही आप वस्तु को हिलाते हैं सर्वो को हिलना चाहिए। अब बस कैमरे को सर्वो से जोड़ दें ताकि यह सर्वो के साथ आगे बढ़े।

धन्यवाद।

सिफारिश की: