विषयसूची:
- आपूर्ति
- चरण 1: पायथन और ओपनसीवी स्थापित करना
- चरण 2: हार जैसी विशेषताएं क्या हैं?
- चरण 3: पायथन में कोडिंग
- चरण 4: Arduino की प्रोग्रामिंग
- चरण 5: निष्कर्ष
वीडियो: फेस ट्रैकिंग डिवाइस! पायथन और अरुडिनो: 5 कदम
2024 लेखक: John Day | [email protected]. अंतिम बार संशोधित: 2024-01-30 09:20
Techovator0819My Youtube Channel द्वारा लेखक का अनुसरण करें:
के बारे में: मुझे बस नई चीजें बनाना पसंद है। जैसे माइक्रो-कंट्रोलर, मैकेनिकल इंजीनियरिंग, आर्टिफिशियल इंटेलिजेंस, कंप्यूटर साइंस और कुछ भी जो मुझे रूचि देता है। और यहाँ आपको सभी… Techovator0819 के बारे में अधिक जानकारी मिलेगी »
इस निर्देश को पढ़कर सभी को नमस्कार। यह एक फेस ट्रैकिंग डिवाइस है जो ओपनसीवी नामक पायथन लाइब्रेरी पर काम करता है। CV का मतलब 'कंप्यूटर विजन' है। फिर मैंने अपने पीसी और अपने Arduino UNO के बीच एक सीरियल इंटरफ़ेस स्थापित किया। तो इसका मतलब है कि यह पूरी तरह से पायथन पर काम नहीं करता है।
यह उपकरण फ्रेम में आपके चेहरे को पहचानता है, फिर यह कैमरे को इस तरह से स्थापित करने के लिए Arduino को कुछ आदेश भेजता है कि यह फ्रेम के अंदर रहता है! अच्छा लग रहा है? चलो ठीक उसी में कूदते हैं।
आपूर्ति
1. अरुडिनो यूएनओ
2. 2 एक्स सर्वो मोटर्स (कोई भी सर्वो मोटर ठीक रहेगा लेकिन मैंने टॉवर प्रो एसजी 90 का इस्तेमाल किया)
3. पायथन स्थापित करना
4. ओपनसीवी स्थापित करना
5. वेब कैमरा
चरण 1: पायथन और ओपनसीवी स्थापित करना
पायथन को स्थापित करना बहुत सीधा है!
www.python.org/downloads/
आप अजगर संस्करण (मैक, विंडोज़ या लिनक्स) को डाउनलोड करने के लिए उपरोक्त लिंक का अनुसरण कर सकते हैं जो आपको सबसे अच्छा (64 बिट या 32 बिट) सूट करता है। बाकी इंस्टॉलेशन प्रक्रिया सरल है और आपको इंटरफ़ेस द्वारा निर्देशित किया जाएगा।
एक बार इंस्टॉलेशन पूरा करने के बाद, अपना कमांड प्रॉम्प्ट खोलें और निम्न टाइप करें:
पाइप ओपनसीवी-पायथन स्थापित करें
उसे ओपनसीवी लाइब्रेरी स्थापित करनी चाहिए। समस्या निवारण के मामले में, आप इस पृष्ठ को देख सकते हैं।
पर्यावरण और सभी पूर्वापेक्षाएँ स्थापित करने के बाद, आइए देखें कि हम वास्तव में इसे कैसे बना सकते हैं!
चरण 2: हार जैसी विशेषताएं क्या हैं?
हार जैसी विशेषताएं एक डिजिटल छवि की विशेषताएं हैं। नाम हार वेवलेट्स से आता है। ये चौकोर आकार की तरंगों के परिवार हैं जिनका उपयोग एक डिजिटल छवि में सुविधाओं की पहचान के लिए किया जाता है। हार कैस्केड मूल रूप से एक क्लासिफायरियर है जो हमें वस्तुओं का पता लगाने में मदद करता है (हमारे मामले में चेहरे में) हायर जैसी विशेषताओं का उपयोग करके।
हमारे मामले में, सरलता के लिए, हम चेहरों की पहचान करने के लिए पूर्व-प्रशिक्षित Haar Cascades का उपयोग करेंगे। आप github पेज के THIS लिंक का अनुसरण कर सकते हैं और Haar Cascade के लिए xml फ़ाइल डाउनलोड कर सकते हैं।
1. 'haarcascade_frontalface_alt.xml' पर क्लिक करें
2. कोड विंडो के ऊपरी दाएं भाग पर 'रॉ' बटन पर क्लिक करें।
3. यह आपको केवल टेक्स्ट वाले दूसरे पेज पर ले जाएगा।
4. राइट क्लिक करें और 'Save as..' को हिट करें
5. इसे उसी डायरेक्टरी या फोल्डर में सेव करें, जिसमें आप पाइथन कोड लिख रहे हैं।
चरण 3: पायथन में कोडिंग
आयात cv2
एनपी आयात सीरियल आयात समय के रूप में numpy आयात करें
हम उन सभी पुस्तकालयों को आयात करते हैं जिनकी हमें आवश्यकता होती है।
अर्द = सीरियल। सीरियल ("COM3", 9600)
हम 'ard' नामक एक सीरियल ऑब्जेक्ट बनाते हैं। हम पोर्ट नाम और बॉडरेट को पैरामीटर के रूप में भी निर्दिष्ट करते हैं।
face_cascade = cv2. CascadeClassifier('haarcascade_frontalface_default.xml')
हम अपने हार कैस्केड के लिए एक और वस्तु बनाते हैं। सुनिश्चित करें कि HaarCascade फ़ाइल उसी फ़ोल्डर में रहती है जिसमें यह पायथन प्रोग्राम है।
vid = cv2.वीडियो कैप्चर (0)
हम एक ऑब्जेक्ट बनाते हैं जो वेबकैम से वीडियो कैप्चर करता है। 0 के रूप में पैरामीटर का अर्थ है मेरे पीसी से जुड़ा पहला वेब कैमरा।
docs.opencv.org/2.4/modules/objdetect/doc/cascade_classification.html
जबकि सच:
_, फ्रेम = vid.read () # वर्तमान फ्रेम को वेरिएबल फ्रेम में पढ़ता है ग्रे = cv2.cvtColor (फ्रेम, cv2. COLOR_BGR2GRAY) # कन्वर्ट फ्रेम -> ग्रेस्केल्ड इमेज #निम्न लाइन चेहरों का पता लगाती है। #पहला पैरामीटर वह छवि है जिस पर आप #minSize=() पर पता लगाना चाहते हैं, पिक्सेल के संदर्भ में चेहरे के न्यूनतम आकार को निर्दिष्ट करता है #कैस्केड वर्गीकरण चेहरों के बारे में अधिक जानने के लिए उपरोक्त लिंक पर क्लिक करें = face_cascade.detectMultiScale(ग्रे, minSize =(८०, ८०), minNeighbors=३) #ए चेहरे का पता लगाने के लिए लूप के लिए। के लिए (x, y, w, h) फलकों में: cv2.rectangle(frame, (x, y), (x+w, y+h), (255, 0, 0), 2)#चारों ओर एक आयत बनाता है चेहरा Xpos = x+(w/2)# चेहरे के केंद्र के X निर्देशांक की गणना करता है। Ypos = y+(h/2)# यदि Xpos > 280: #निम्नलिखित कोड ब्लॉक चेक करता है कि चेहरा ard.write('L'.encode()) #on है, तो चेहरे के केंद्र के Y को-ऑर्डिनेट को कैलकुलेट करता है। समय के संबंध में बाएँ, दाएँ, ऊपर या नीचे। सोएं (0.01) #फ्रेम का केंद्र। elif Xpos 280: ard.write('D'.encode()) time.sleep(0.01) elif Ypos <200: ard.write('U'.encode()) time.sleep(0.01) और: ard.write ('S'.encode()) time.sleep(0.01) break cv2.imshow('frame',frame)#फ्रेम को अलग विंडो में दिखाता है। k = cv2.waitKey(1)&0xFF if(k == ord('q')): #if 'q' को कीबोर्ड पर दबाया जाता है, यह while लूप से बाहर निकल जाता है। टूटना
cv2.destroyAllWindows () # सभी विंडो बंद कर देता है
ard.close () #धारावाहिक संचार बंद करता है
vid.release() #वेब कैम से वीडियो प्राप्त करना बंद कर देता है।
चरण 4: Arduino की प्रोग्रामिंग
अपनी आवश्यकताओं के अनुरूप अपने हार्डवेयर सेटअप के अनुसार प्रोग्राम को बेझिझक संशोधित करें।
#शामिल
सर्वो सर्वोएक्स;
सर्वो सर्वोवाई;
इंट एक्स = ९०;
इंट वाई = ९०;
व्यर्थ व्यवस्था() {
// अपना सेटअप कोड यहां डालें, एक बार चलाने के लिए: Serial.begin(9600); सर्वोएक्स.अटैच(9); सर्वोवाई.अटैच(10); सर्वोएक्स.राइट (एक्स); सर्वोवाई।लिखें (वाई); देरी (1000); }
चार इनपुट = ""; // सीरियल इनपुट इस वेरिएबल में स्टोर होता है
शून्य लूप () {
// अपना मुख्य कोड यहां रखें, बार-बार चलाने के लिए: अगर (सीरियल.उपलब्ध ()) {// चेक करता है कि कोई डेटा सीरियल बफर इनपुट में है या नहीं। सीरियल। रीड (); // डेटा को एक चर में पढ़ता है if(input == 'U'){servoY.write(y+1); // इनपुट y + = 1 के अनुसार सर्वो कोण को समायोजित करता है; // कोण के मान को अपडेट करता है} और अगर (इनपुट == 'डी') {servoY.write (y-1); वाई - = 1; } और { सर्वोवाई.लिखें (वाई); } अगर (इनपुट == 'एल') {सर्वोएक्स.राइट (एक्स -1); एक्स - = 1; } और अगर (इनपुट == 'आर') {servoX.write(x+1); एक्स + = 1; } और {सर्वोएक्स.राइट (एक्स); } इनपुट = ""; // वेरिएबल को क्लियर करता है } // प्रोसेस रिपीट होता रहता है !!:)}
चरण 5: निष्कर्ष
यह एक अच्छा और इंटरैक्टिव तरीका है जिसके माध्यम से आप अपने Arduino प्रोजेक्ट्स में कंप्यूटर विज़न को शामिल कर सकते हैं। कंप्यूटर विजन वास्तव में काफी मजेदार है। और मुझे पूरी उम्मीद है कि आप लोगों को यह पसंद आया होगा। अगर हां तो मुझे कमेंट में बताएं। और मेरे यूट्यूब चैनल को सब्सक्राइब जरूर करें। अग्रिम धन्यवाद <3<3
youtube.com/channel/UCNOSfI_iQ7Eb7-s8CrExGfw/videos
सिफारिश की:
ARDUINO का उपयोग करके फेस ट्रैकिंग !!!: 7 Steps
ARDUINO का उपयोग करते हुए फेस ट्रैकिंग !!!: पिछले निर्देश में मैंने साझा किया था कि कैसे आप Arduino और Python के बीच 'pyserial' मॉड्यूल का उपयोग करके संवाद कर सकते हैं और एक LED को नियंत्रित कर सकते हैं। यदि आपने इसे नहीं देखा है तो इसे यहाँ देखें: ARDUINO & के बीच संचार अजगर! और आप रंग ओ का पता कैसे लगा सकते हैं
चेहरा पहचान और पहचान - ओपनसीवी पायथन और अरुडिनो का उपयोग करके Arduino फेस आईडी .: 6 कदम
चेहरा पहचान और पहचान | ओपनसीवी पायथन और अरुडिनो का उपयोग करते हुए Arduino फेस आईडी: चेहरे की पहचान AKA फेस आईडी आजकल मोबाइल फोन पर सबसे महत्वपूर्ण विशेषताओं में से एक है। तो, मेरा एक प्रश्न था "क्या मेरे पास अपने Arduino प्रोजेक्ट के लिए एक फेस आईडी हो सकता है" और इसका उत्तर हां है… मेरी यात्रा इस प्रकार शुरू हुई: चरण 1: हम तक पहुंच
DIY स्मार्ट रोबोट ट्रैकिंग कार किट ट्रैकिंग कार सहज: 7 कदम
DIY स्मार्ट रोबोट ट्रैकिंग कार किट ट्रैकिंग कार फोटोसेंसिटिव: SINONING ROBOT द्वारा डिज़ाइन आप ट्रैकिंग रोबोट कार से खरीद सकते हैं। स्पिन करें, ताकि
फेस ट्रैकिंग गन: 4 कदम
फेस ट्रैकिंग गन: यह प्रोजेक्ट यहां दिखाए गए लेजर ट्रिप वायर गन प्रोजेक्ट का विस्तार है - https://www.instructables.com/id/Building-a-Sentry-Gun-with-Laser-Trip-Wire-System-/ ?ALLSTEPS फर्क सिर्फ इतना है कि बंदूक को लेजर से नहीं चलाया जाएगा बल्कि
टेक्सास बिग फेस - ३डी फेस प्रोजेक्शन कैसे करें: १० कदम (चित्रों के साथ)
टेक्सास बिग फेस - ३डी फेस प्रोजेक्शन कैसे करें: "जीवित प्रतिमाएं" बनाएं मूर्तियों पर अपना चेहरा प्रक्षेपित करके।A How To By: डेविड सदरलैंड, किर्क मोरेनो ने ग्रैफिटी रिसर्च लैब ह्यूस्टन* के सहयोग से कई टिप्पणियों में कहा है कि कुछ ऑडियो समस्याएं हैं। यह है