विषयसूची:

चेहरा पहचान और पहचान - ओपनसीवी पायथन और अरुडिनो का उपयोग करके Arduino फेस आईडी .: 6 कदम
चेहरा पहचान और पहचान - ओपनसीवी पायथन और अरुडिनो का उपयोग करके Arduino फेस आईडी .: 6 कदम

वीडियो: चेहरा पहचान और पहचान - ओपनसीवी पायथन और अरुडिनो का उपयोग करके Arduino फेस आईडी .: 6 कदम

वीडियो: चेहरा पहचान और पहचान - ओपनसीवी पायथन और अरुडिनो का उपयोग करके Arduino फेस आईडी .: 6 कदम
वीडियो: Face Mask Detection using Python, Keras, OpenCV Based Automate Door Lock at Home | Arduino Project 2024, दिसंबर
Anonim
Image
Image

फेशियल रिकग्निशन AKA फेस आईडी आजकल मोबाइल फोन पर सबसे महत्वपूर्ण फीचर में से एक है।

तो, मेरा एक सवाल था "क्या मेरे पास अपने Arduino प्रोजेक्ट के लिए एक फेस आईडी हो सकती है" और इसका उत्तर हां है …

मेरी यात्रा इस प्रकार शुरू हुई:

चरण 1: वेबकैम तक पहुंच

चरण 2: चेहरा पहचान।

चरण 3: डेटा संग्रह

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

चरण 5: चेहरा पहचान

चरण 6: प्रोग्रामिंग Arduino

मैं नीचे सभी चरणों के बारे में बताऊंगा। मुझे उम्मीद है कि इससे आपको मदद मिलेगी।

चरण 1: वेबकैम तक पहुंच

वेबकैम तक पहुंच
वेबकैम तक पहुंच

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

आप सोच रहे होंगे कि OpenCV क्या है, है ना?

OpenCV (ओपन सोर्स कंप्यूटर विज़न लाइब्रेरी) एक ओपन-सोर्स कंप्यूटर विज़न और मशीन लर्निंग सॉफ़्टवेयर लाइब्रेरी है। OpenCV को कंप्यूटर विज़न अनुप्रयोगों के लिए एक सामान्य बुनियादी ढांचा प्रदान करने और वाणिज्यिक उत्पादों में मशीन धारणा के उपयोग में तेजी लाने के लिए बनाया गया था।

यदि आपके कंप्यूटर पर Opencv स्थापित है तो आप जाने के लिए अच्छे हैं। अगर नहीं तो इस स्टेप को फॉलो करें।

कमांड प्रॉम्प्ट खोलें और "पाइप इंस्टॉल ओपनसीवी" टाइप करें।

चेतावनी: आपको एक त्रुटि मिल सकती है क्योंकि "'पाइप' को आंतरिक या बाहरी कमांड के रूप में पहचाना नहीं गया है"। जिसके लिए आपको अपने पाइप संस्थापन के पथ को अपने PATH सिस्टम चर में जोड़ने की आवश्यकता है। इस पोस्ट के माध्यम से जाएं यह आपकी मदद कर सकता है।

stackoverflow.com/questions/23708898/pip-i…

एक बार ओपनसीवी स्थापित हो जाने के बाद हम जाने के लिए अच्छे हैं … यह जांचने के लिए कि क्या यह ठीक से स्थापित है, अपना पायथन दुभाषिया खोलें और पुस्तकालय आयात करें। ऊपर की छवि देखें जो आपका आउटपुट होना चाहिए।

अजगर फ़ाइल "AccessTo_webcam.py" डाउनलोड करें और इसे चलाएं। मैंने वहां सभी आवश्यक टिप्पणियां प्रदान की हैं।

वहां आप जाएं, अब आपके पास वेबकैम तक पहुंच है। बहुत बढ़िया। आइए चरण 2 पर आगे बढ़ें।

चरण 2: चेहरा पहचान।

चेहरा पहचान।
चेहरा पहचान।

उसी OpenCV मॉड्यूल की मदद से, हमें यह पहचानना होगा कि वीडियो स्ट्रीम पर कोई चेहरा है या नहीं।

OpenCV एक प्रशिक्षण पद्धति या पूर्व-प्रशिक्षित मॉडल प्रदान करता है जिसे कैस्केड क्लासिफायर कहा जाता है। पूर्व-प्रशिक्षित मॉडल OpenCV स्थापना में डेटा फ़ोल्डर में स्थित हैं। मैं वह फ़ाइल प्रदान कर रहा हूँ बस इसे डाउनलोड करें और इसे अपने प्रोजेक्ट फ़ोल्डर में रखें। वह फ़ोल्डर जहाँ "AccessTo_webcam.py" फ़ाइल संग्रहीत है। यदि आपने एक नहीं बनाया है तो इसे करें।

"Haarcascade_frontalface_default" डाउनलोड करें और इसे मुख्य प्रोजेक्ट फ़ोल्डर में रखें।

"Face_identification.py" डाउनलोड करें और इसे मुख्य प्रोजेक्ट फ़ोल्डर में रखें। इसमें सारी व्याख्या दी गई है।

अब आप वीडियो स्ट्रीम में चेहरों की पहचान कर सकते हैं। तो चलिए चरण 3 पर चलते हैं।

चरण 3: डेटा संग्रह

आंकड़ा संग्रहण
आंकड़ा संग्रहण

चेहरों को पहचानने के लिए हमें अपने पायथन प्रोग्राम को प्रशिक्षित करने की आवश्यकता है। जिसके लिए हमें कुछ डेटा चाहिए।

डेटा संग्रह बल्कि इस परियोजना में सबसे आसान कदम है। अपने मुख्य प्रोजेक्ट फ़ोल्डर में "image_data" नाम का एक फोल्डर बनाएं। "Image_data" फोल्डर के अंदर व्यक्ति के नाम के साथ कुछ अतिरिक्त फोल्डर बनाएं, जहां हम डेटा स्टोर करेंगे। उदाहरण के लिए:

"Image_data" फोल्डर में मैंने "HRK" और "Yahiya" नाम के दो और फोल्डर बनाए हैं। जैसा कि ऊपर इमेज में दिखाया गया है।

अब आगे बढ़ें अपने खुद के फोल्डर बनाएं और उन्हें नाम दें।

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

बस अब चलिए चरण 4 पर चलते हैं।

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

संक्षेप में, हम "image_data" फोल्डर में मौजूद सभी फोल्डर और इमेज को देखेंगे और एक डिक्शनरी बनाएंगे जिसमें लेबल आईडी और संबंधित नाम होगा। साथ ही हम प्रत्येक छवि में चेहरे का पता लगाने के लिए छवि को लोड करेंगे जिसे हम इसे "रुचि का क्षेत्र" कहते हैं और एक ".yml" फ़ाइल बनाते हैं जिसमें वह जानकारी होती है।

यह मानते हुए कि आपके पास व्यक्ति X और Y के लिए डेटा एकत्र किया गया है।

हम व्यक्ति X को 1 के रूप में लेबल करेंगे जो उसकी लेबल आईडी होगी और नाम X ही होगा। हम छवि को उसके चेहरे यानी रुचि के क्षेत्र को खोजने के लिए लोड करते हैं और डेटा को एक सूची में जोड़ते हैं।

व्यक्ति Y के लिए समान चरणों का पालन किया जाएगा। और अंत में, हम एक ".yml" फ़ाइल बनाएंगे।

"Face_trainer.py" फ़ाइल डाउनलोड करें और इसे मुख्य प्रोजेक्ट फ़ोल्डर में रखें। उस फ़ाइल में ही सभी आवश्यक स्पष्टीकरण दिए गए हैं।

जब आप इस प्रोग्राम को चलाते हैं तो यह सभी छवियों के माध्यम से जाएगा और "labels.pickle" और "trainer.yml" नाम की दो फाइलें बनाएगा। अब आपने अपने खुद के मॉडल को प्रशिक्षित किया है। तो चलिए चरण 5 पर चलते हैं।

चरण 5: चेहरा पहचान

चेहरा पहचान
चेहरा पहचान

यदि आप सभी चरणों को ठीक से पढ़ चुके हैं तो हो सकता है कि आपने अपना खुद का प्रशिक्षित डेटा बनाया हो। अब हम उस डेटा का इस्तेमाल फेस रिकग्निशन के लिए करेंगे।

मूल रूप से हम अपने प्रशिक्षित मॉडल को पायथन फ़ाइल में लोड करेंगे, हमारे वेबकैम तक पहुंचेंगे, और वीडियो स्ट्रीम में चेहरों की पहचान करेंगे और वीडियो स्ट्रीम में पहचाने जाने वाले वर्तमान चेहरे और प्रशिक्षित मॉडल के बीच तुलना या भविष्यवाणी करेंगे। यदि डेटा का मिलान किया जाता है तो हम कहते हैं कि व्यक्ति को पहचाना जाता है यह बस इतना आसान है …

"फेस_रिकग्निस.पी" डाउनलोड करें और इसे चलाएं। इसमें सभी जरूरी जानकारियां दी गई हैं। अब शायद तेरा चेहरा पहचान गया होगा। यदि सटीकता अच्छी नहीं है तो डेटा को अपडेट करने का प्रयास करें। यदि आप जाने के लिए तैयार हैं तो चलिए चरण 6 पर आगे बढ़ते हैं/

चरण 6: प्रोग्रामिंग Arduino

अंतिम और अंतिम चरण Arduino प्रोग्रामिंग है, और अजगर और Arduino के बीच संचार का एक तरीका प्रदान करना है। संचार के लिए, मैंने "सीरियल कम्युनिकेशन" का उपयोग किया। सीरियल कम्युनिकेशन कैसे काम करता है और इसे स्थापित करने के लिए मैंने ऊपर जो वीडियो लिंक किया है, उसके माध्यम से जाएं। आपको वीडियो विवरण में सभी आवश्यक फाइलें मिलेंगी।

अगर आपने वीडियो देखा है तो मैं आपको समझाता हूं कि मैंने क्या किया। जब मेरा चेहरा पहचाना जाता है तो प्रदान की गई लेबल आईडी 2 होती है। एक बार लेबल आईडी 2 हो जाने पर मैं अपने Arduino को सीरियल डेटा के रूप में '1' भेजूंगा। जो मेरे LED चेज़र सर्किट को ऑन कर देगा। यदि लेबल आईडी 2 के अलावा अन्य है तो मैं सीरियल डेटा के रूप में '0' भेजूंगा, जिससे मेरा एलईडी चेज़र सर्किट बंद हो जाएगा।

"ard_chaser.ino" फ़ाइल डाउनलोड करें। यह एक साधारण एलईडी चेज़र प्रोग्राम है जो धारावाहिक संचार का उपयोग करता है।

सिमिलरली डाउनलोड करें "फेस_रिकग्निसर1.py" जो Arduino और पायथन प्रोग्राम के बीच सीरियल संचार स्थापित करेगा।

तुम वहाँ जाओ। मुझे आशा है कि आपने कुछ नया सीखा होगा। अजगर और अरुडिनो से संबंधित अधिक सामग्री के लिए मेरे यूट्यूब चैनल को सब्सक्राइब करें। अच्छा लगे तो इसे शेयर करें। समर्थन करते रहें।

धन्यवाद।

सिफारिश की: