विषयसूची:

रीसायकल छँटाई रोबोट: १५ कदम (चित्रों के साथ)
रीसायकल छँटाई रोबोट: १५ कदम (चित्रों के साथ)

वीडियो: रीसायकल छँटाई रोबोट: १५ कदम (चित्रों के साथ)

वीडियो: रीसायकल छँटाई रोबोट: १५ कदम (चित्रों के साथ)
वीडियो: हाथ में Lightning Device फंस गया 😲 #asmr #viral 2024, जुलाई
Anonim
Image
Image
डेटा प्राप्त करना
डेटा प्राप्त करना

क्या आप जानते हैं कि समुदायों और व्यवसायों में प्रदूषण की औसत दर 25% तक है? इसका मतलब है कि आपके द्वारा फेंके गए रीसाइक्लिंग के हर चार टुकड़ों में से एक का पुनर्नवीनीकरण नहीं किया जाता है। यह रीसाइक्लिंग केंद्रों में मानवीय त्रुटि के कारण होता है। परंपरागत रूप से, श्रमिक सामग्री के आधार पर कचरे के माध्यम से अलग-अलग डिब्बे में छांटेंगे। मनुष्य गलतियाँ करने के लिए बाध्य हैं और अंत में कचरे को ठीक से नहीं छाँटते हैं, जिससे संदूषण होता है। जैसे-जैसे प्रदूषण और जलवायु परिवर्तन आज के समाज में और भी अधिक महत्वपूर्ण होते जा रहे हैं, रीसाइक्लिंग हमारे ग्रह की रक्षा करने में एक बड़ी भूमिका निभाता है। कचरे को छांटने के लिए रोबोट का उपयोग करने से, संदूषण दर में भारी कमी आएगी, न कि बहुत सस्ता और अधिक टिकाऊ। इसे हल करने के लिए, मैंने एक रीसायकल सॉर्टिंग रोबोट बनाया जो विभिन्न रीसायकल सामग्री के बीच सॉर्ट करने के लिए मशीन लर्निंग का उपयोग करता है।

चरण 1: भाग

सुनिश्चित करें कि आपके पास इस ट्यूटोरियल के साथ अनुसरण करने के लिए निम्नलिखित भाग हैं:

3डी प्रिंटेड पार्ट्स (नीचे चरण देखें)

रास्पबेरी पाई आरपीआई 4 4GB

गूगल कोरल यूएसबी त्वरक

Arduino Uno R3

रास्पबेरी पाई कैमरा मॉड्यूल V2

5V 2A डीसी वॉल पावर सप्लाई

डीसी 12 वी बिजली की आपूर्ति

SG90 9g माइक्रो सर्वोस 4पीसी।

एम 3 x 0.5 मिमी स्टेनलेस स्टील सेल्फ-लॉक नायलॉन हेक्स लॉक नट 100 पीसी।

M3x20 बटन हेड टाइटेनियम स्क्रू 10 पीसी।

MG996R मेटल गियर टॉर्क एनालॉग सर्वो मोटर 4पीसी।

सैमसंग 32GB मेमोरी कार्ड चुनें

रास्पबेरी पाई कैमरा के लिए एडफ्रूट फ्लेक्स केबल - 1 मीटर

एम 2 पुरुष महिला पीतल स्पेसर स्टैंडऑफ स्क्रू नट वर्गीकरण किट

60 मिमी 12 वी फैन

6.69 "x 5.12" x 2.95 "प्रोजेक्ट बॉक्स

चरण 2: 3डी प्रिंटेड पार्ट्स

रोबोटिक आर्म के लिए आपको सभी पुर्जों को 3डी प्रिंट करना होगा। आप यहां सभी फाइलें पा सकते हैं।

चरण 3: कोड

कृपया इस ट्यूटोरियल के साथ अनुसरण करने के लिए मेरे GitHub रिपॉजिटरी को क्लोन करें।

चरण 4: डेटा प्राप्त करना

ऑब्जेक्ट डिटेक्शन मॉडल को प्रशिक्षित करने के लिए जो विभिन्न रीसाइक्लिंग सामग्री का पता लगा सकता है और पहचान सकता है, मैंने ट्रैशनेट डेटासेट का उपयोग किया जिसमें 2527 छवियां शामिल हैं:

  • 501 गिलास
  • ५९४ पेपर
  • 403 कार्डबोर्ड
  • 482 प्लास्टिक
  • 410 धातु
  • 137 कचरा

ऊपर दी गई तस्वीर डेटासेट से छवियों में से एक का उदाहरण है।

ऑब्जेक्ट डिटेक्शन मॉडल को प्रशिक्षित करने के लिए यह डेटासेट बहुत छोटा है। कूड़ेदान की केवल लगभग 100 छवियां हैं जो एक सटीक मॉडल को प्रशिक्षित करने के लिए बहुत कम हैं, इसलिए मैंने इसे छोड़ने का फैसला किया।

डेटासेट डाउनलोड करने के लिए आप इस Google ड्राइव फ़ोल्डर का उपयोग कर सकते हैं। डेटासेट-रिसाइज़्ड.ज़िप फ़ाइल डाउनलोड करना सुनिश्चित करें। इसमें छवियों का एक सेट होता है जिसे पहले से ही छोटे आकार में बदल दिया जाता है ताकि तेजी से प्रशिक्षण की अनुमति मिल सके। यदि आप अपनी पसंद के अनुसार कच्ची छवियों का आकार बदलना चाहते हैं, तो बेझिझक डेटासेट-ओरिजिनल.ज़िप फ़ाइल डाउनलोड करें।

चरण 5: छवियों को लेबल करना

छवियों को लेबल करना
छवियों को लेबल करना

इसके बाद, हमें विभिन्न रीसाइक्लिंग सामग्री की कई छवियों को लेबल करने की आवश्यकता है ताकि हम ऑब्जेक्ट डिटेक्शन मॉडल को प्रशिक्षित कर सकें। ऐसा करने के लिए, मैंने लेबलआईएमजी का उपयोग किया, एक मुफ्त सॉफ्टवेयर जो आपको छवियों में ऑब्जेक्ट बाउंडिंग बॉक्स को लेबल करने की अनुमति देता है।

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

ऊपर दी गई तस्वीर दिखाती है कि अपनी छवियों को कैसे लेबल किया जाए।

यह एक बहुत ही थकाऊ और दिमाग को सुन्न करने वाला अनुभव है। आपके लिए शुक्र है, मैंने आपके लिए सभी छवियों को पहले ही लेबल कर दिया है! आप इसे यहां देख सकते हैं।

चरण 6: प्रशिक्षण

प्रशिक्षण के संदर्भ में, मैंने Tensorflow का उपयोग करके स्थानांतरण सीखने का उपयोग करने का निर्णय लिया। यह हमें बड़ी मात्रा में डेटा के बिना एक सटीक सटीक मॉडल को प्रशिक्षित करने की अनुमति देता है।

हम ऐसा कुछ तरीके से कर सकते हैं। हम इसे क्लाउड पर अपने स्थानीय डेस्कटॉप मशीन पर कर सकते हैं। आपका कंप्यूटर कितना शक्तिशाली है और यदि आपके पास एक शक्तिशाली GPU है, तो हमारे स्थानीय मशीन पर प्रशिक्षण में बहुत लंबा समय लगेगा। मेरी राय में यह शायद सबसे आसान तरीका है, लेकिन फिर से गति के नकारात्मक पक्ष के साथ।

ट्रांसफर लर्निंग के बारे में कुछ महत्वपूर्ण बातें ध्यान देने योग्य हैं। आपको यह सुनिश्चित करने की आवश्यकता है कि प्रशिक्षण के लिए आपके द्वारा उपयोग किया जाने वाला पूर्व-प्रशिक्षित मॉडल कोरल एज टीपीयू के अनुकूल है। आप यहां संगत मॉडल पा सकते हैं। मैंने MobileNet SSD v2 (COCO) मॉडल का उपयोग किया। दूसरों के साथ भी प्रयोग करने के लिए स्वतंत्र महसूस करें।

यदि आप विंडोज 10 पर चल रहे हैं तो मैं आपकी स्थानीय मशीन पर प्रशिक्षण लेने की सलाह दूंगा। मैं पुष्टि नहीं कर सकता कि क्या Google का ट्यूटोरियल काम करेगा, लेकिन अगर ऐसा नहीं होता है तो मुझे आश्चर्य होगा।

क्लाउड में प्रशिक्षित करने के लिए, आप AWS या GCP का उपयोग कर सकते हैं। मुझे यह ट्यूटोरियल मिला है जिसे आप आजमा सकते हैं। यह Google के क्लाउड टीपीयू का उपयोग करता है जो आपके ऑब्जेक्ट डिटेक्शन मॉडल को सुपर फास्ट प्रशिक्षित कर सकता है। एडब्ल्यूएस का भी उपयोग करने के लिए स्वतंत्र महसूस करें।

चाहे आप अपनी स्थानीय मशीन पर या क्लाउड में प्रशिक्षण लें, आपको एक प्रशिक्षित टेंसरफ़्लो मॉडल के साथ समाप्त होना चाहिए।

चरण 7: प्रशिक्षित मॉडल का संकलन

प्रशिक्षित मॉडल का संकलन
प्रशिक्षित मॉडल का संकलन

अपने प्रशिक्षित मॉडल को कोरल एज टीपीयू के साथ काम करने के लिए, आपको इसे संकलित करने की आवश्यकता है।

ऊपर वर्कफ़्लो के लिए एक आरेख है।

प्रशिक्षण के बाद, आपको इसे एक जमे हुए ग्राफ (.pb फ़ाइल) के रूप में सहेजना होगा। फिर, आपको इसे एक Tensorflow Lite मॉडल में बदलने की आवश्यकता है। ध्यान दें कि यह कैसे कहता है "प्रशिक्षण के बाद का परिमाणीकरण"। यदि आपने स्थानांतरण सीखने का उपयोग करते समय संगत पूर्व-प्रशिक्षित मॉडल का उपयोग किया है, तो आपको ऐसा करने की आवश्यकता नहीं है। यहां संगतता पर पूर्ण दस्तावेज़ीकरण पर एक नज़र डालें।

Tensorflow Lite मॉडल के साथ, आपको इसे एक एज TPU मॉडल में संकलित करने की आवश्यकता है। इसे यहां कैसे करें, इसके बारे में विवरण देखें।

चरण 8: रीसायकल डिटेक्शन मॉडल

यदि आप ऑब्जेक्ट डिटेक्शन मॉडल को प्रशिक्षित करने, परिवर्तित करने और संकलित करने की परेशानी से नहीं गुजरना चाहते हैं, तो यहां मेरा रीसायकल डिटेक्शन मॉडल देखें।

चरण 9: मॉडल तैनात करें

मॉडल तैनात करें
मॉडल तैनात करें

अगला कदम प्रशिक्षित ऑब्जेक्ट डिटेक्शन मॉडल को चलाने के लिए रास्पबेरी पाई (आरपीआई) और एज टीपीयू स्थापित करना है।

सबसे पहले, इस ट्यूटोरियल का उपयोग करके RPI सेट करें।

इसके बाद, इस ट्यूटोरियल के बाद एज टीपीयू सेट करें।

अंत में, RPI कैमरा मॉड्यूल को रास्पबेरी पाई से कनेक्ट करें।

अब आप अपने ऑब्जेक्ट डिटेक्शन मॉडल का परीक्षण करने के लिए तैयार हैं!

यदि आपने मेरी रिपॉजिटरी को पहले ही क्लोन कर लिया है, तो आप RPI निर्देशिका में नेविगेट करना चाहेंगे और test_detection.py फ़ाइल चला सकते हैं:

अजगर test_detection.py --model recycle_ssd_mobilenet_v2_quantized_300x300_coco_2019_01_03/detect_edgetpu.tflite --labels recycle_ssd_mobilenet_v2_quantized_300x300_coco_2019_01_03/labels.txt

एक छोटी सी खिड़की खुलनी चाहिए और यदि आप प्लास्टिक की पानी की बोतल या अन्य रीसायकल सामग्री डालते हैं, तो इसे ऊपर की छवि की तरह पता लगाना चाहिए।

प्रोग्राम को समाप्त करने के लिए अपने कीबोर्ड पर "q" अक्षर दबाएं।

चरण 10: रोबोटिक आर्म का निर्माण करें

रोबोटिक आर्म का निर्माण करें
रोबोटिक आर्म का निर्माण करें

रोबोटिक आर्म एक 3डी प्रिंटेड आर्म है जो मुझे यहां मिला है। इसे स्थापित करने के लिए बस ट्यूटोरियल का पालन करें।

ऊपर की छवि दिखाती है कि मेरी रोबोटिक भुजा कैसे निकली।

सुनिश्चित करें कि आप मेरे कोड में Arduino I/O पिन के अनुसार सर्वो पिन को कनेक्ट करते हैं। इस क्रम में नीचे से ऊपर तक सर्वो को कनेक्ट करें: ३, ११, १०, ९, ६, ५। इसे इस क्रम में नहीं जोड़ने से हाथ गलत सर्वो को स्थानांतरित कर देगा!

Arduino निर्देशिका में नेविगेट करके और basicMovement.ino फ़ाइल चलाकर इसे काम करते हुए देखने के लिए परीक्षण करें। यह बस उस वस्तु को पकड़ लेगा जिसे आप हाथ के सामने रखते हैं और उसे पीछे छोड़ देते हैं।

चरण 11: आरपीआई और रोबोटिक शाखा को जोड़ना

आरपीआई और रोबोटिक शाखा को जोड़ना
आरपीआई और रोबोटिक शाखा को जोड़ना

हमें पहले कैमरा मॉड्यूल को पंजे के नीचे माउंट करना होगा। ऊपर की छवि दिखाती है कि इसे कैसा दिखना चाहिए।

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

इसके बाद, आपको robotArm.ino फ़ाइल को Arduino बोर्ड पर अपलोड करना होगा।

अंत में, हमें बस RPI के USB पोर्ट और Arduino के USB पोर्ट के बीच एक USB केबल कनेक्ट करना है। यह उन्हें धारावाहिक के माध्यम से संवाद करने की अनुमति देगा। इसे कैसे सेट करें, इस ट्यूटोरियल का अनुसरण करें।

चरण 12: अंतिम स्पर्श

अंतिम स्पर्श
अंतिम स्पर्श
अंतिम स्पर्श
अंतिम स्पर्श

यह कदम पूरी तरह से वैकल्पिक है लेकिन मैं अपने सभी घटकों को एक अच्छे छोटे प्रोजेक्ट बॉक्स में रखना पसंद करता हूं।

ऊपर की छवियां दिखाती हैं कि यह कैसा दिखता है।

आप सामग्री सूची पर प्रोजेक्ट बॉक्स पा सकते हैं। मैंने बस कुछ छेद ड्रिल किए और इलेक्ट्रॉनिक्स को माउंट करने के लिए पीतल के गतिरोध का इस्तेमाल किया। मैंने गर्म होने पर आरपीआई और टीपीयू के माध्यम से निरंतर वायु प्रवाह रखने के लिए 4 कूलिंग पंखे भी लगाए।

चरण 13: चल रहा है

अब आप रोबोटिक भुजा और RPI दोनों को चालू करने के लिए तैयार हैं! RPI पर, आप केवल recycle_detection.py फ़ाइल चला सकते हैं। इससे एक विंडो खुलेगी और डेमो वीडियो की तरह ही रोबोटिक आर्म चलने लगेगा! प्रोग्राम को समाप्त करने के लिए अपने कीबोर्ड पर "q" अक्षर दबाएं।

कोड के साथ खेलने के लिए स्वतंत्र महसूस करें और मज़े करें!

चरण 14: भविष्य का काम

मैं R. O. S का उपयोग करने की आशा करता हूं। अधिक सटीक आंदोलनों के साथ रोबोटिक बांह को नियंत्रित करने के लिए। यह वस्तुओं को अधिक सटीक रूप से उठाने में सक्षम करेगा।

चरण 15: प्रश्न?

नीचे टिप्पणी करने के लिए स्वतंत्र महसूस करें यदि आपके कोई प्रश्न हैं!

सिफारिश की: