विसंगतियों का पता लगाने के माध्यम से बिल्लियों का पता लगाना


17

मेरे पास एक शौक परियोजना है जिसे मैं मशीन सीखने के अपने अब तक के अनुभव को बढ़ाने के एक तरीके के रूप में करने पर विचार कर रहा हूं। मैंने विषय पर कौरसेरा एमओओसी को लिया और पूरा किया है। मेरा सवाल परियोजना की व्यवहार्यता के संबंध में है।

कार्य निम्नलिखित है:

पड़ोसी बिल्लियाँ समय-समय पर मेरे बगीचे में आती हैं, जो मुझे नापसंद हैं क्योंकि वे मेरे लॉन में शौच करती हैं। मैं एक चेतावनी प्रणाली है कि मुझे चेतावनी देता है जब वहाँ एक बिल्ली मौजूद है ताकि मैं अपने सुपर soaker का उपयोग कर इसे बंद जा सकता है हो सकता है। सादगी की खातिर, कहते हैं कि मैं केवल एक बिल्ली की देखभाल करता हूं जिसके पास काले और सफेद रंग हैं।

मेरे पास कैमरा मॉड्यूल के साथ एक रास्पबेरी पाई है जो बगीचे के एक हिस्से के वीडियो और / या चित्रों को कैप्चर कर सकता है।

नमूना छवि:

नमूना बाग छवि

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

मेरा अनुमान है कि अगर मैं दिन के हर सेकंड में एक फोटो खींचता हूं, तो शायद मैं प्रति दिन बिल्लियों के पांच फोटो (लगभग 60,000 सूर्य के प्रकाश के साथ) के साथ समाप्त हो जाऊंगा।

विसंगति का पता लगाने के लिए क्या यह संभव है? यदि हां, तो आप क्या विशेषताएं सुझाएंगे? मेरे विचार अभी तक केवल कुछ रंगों वाले पिक्सेल की संख्या की गणना करना है; किसी प्रकार की ब्लॉब डिटेक्शन / इमेज सेगमेंटिंग करें (जो मुझे नहीं पता कि यह कैसे करना है, और इस तरह से बचना चाहेंगे) और उन पर समान रंग विश्लेषण करें।


1
शायद यह सवाल क्रॉस वैरिफिकेशन एसई साइट के लिए बेहतर है, अब जब मैं इसके बारे में सोचता हूं। भेद मेरे लिए कुछ अस्पष्ट है ...
फ्रॉस्ट

4
मुझे लगता है कि यह सवाल इस साइट के लिए बहुत उपयुक्त है, क्योंकि यह मशीन सीखने के व्यावहारिक अनुप्रयोग पर चर्चा करता है। btw, मूर्खतापूर्ण सवाल, बिल्लियों की इतनी कम तस्वीरें क्यों? क्या वे केवल पाँच सेकंड के लिए ही आते हैं?
INSYS

@insys, सॉकर के साथ मेरी सतर्कता के बारे में अफवाह फैली हुई समुदाय में फैलती दिखाई देती है। वे उस तरह नहीं झुकते जैसे वे करते थे। मुझे लगता है कि यह एक अच्छी बात है w / r / t मेरे बगीचे की बिल्लियों से छुटकारा पाने का वास्तविक उद्देश्य है, भले ही यह मेरे पसंदीदा, अधिक परिष्कृत समाधान को जटिल करता है।
फ्रॉस्ट

2
स्पष्ट अगले चरण की तरह लगता है (बिल्ली का पता लगाने के बाद काम करना) रास्पबेरी पाई नियंत्रित सुपर सॉकर है :-)
क्रिएटेन

जवाबों:


8

आप गति / परिवर्तन का पता लगाने के दृष्टिकोण का उपयोग करके अपनी समस्या को काफी सरल कर सकते हैं। उदाहरण के लिए, आप प्रत्येक छवि / फ्रेम की एक प्रारंभिक समय (जैसे, एक मिनट पहले) से तुलना कर सकते हैं, फिर केवल उन पिक्सल पर विचार करें जो पहले के समय से बदल गए हैं। आप तब परिवर्तन के आयताकार क्षेत्र को निकाल सकते हैं और अपने वर्गीकरण या विसंगति का पता लगाने के आधार के रूप में उपयोग कर सकते हैं।

इस प्रकार के दृष्टिकोण को लेना आपके क्लासिफायरियर को सरल बना सकता है और आपकी झूठी लक्ष्य दर को कम कर सकता है क्योंकि आप किसी भी चीज को अनदेखा कर सकते हैं जो कि बिल्ली के आकार का नहीं है (जैसे, एक व्यक्ति या पक्षी)। फिर आप निकाले गए परिवर्तन क्षेत्रों का उपयोग करेंगे जिन्हें आपके क्लासिफायरियर (या विसंगति डिटेक्टर) के लिए प्रशिक्षण सेट बनाने के लिए फ़िल्टर नहीं किया गया था।

बस अपने झूठे लक्ष्य दर प्राप्त करने के लिए सुनिश्चित करें कि आपके ललित घुसपैठ प्रणाली का पता लगाने के लिए एक लेजर बुर्ज बढ़ते से पहले पर्याप्त रूप से कम हो।


1
यह एक नियंत्रित वातावरण के लिए एक अच्छा विचार है, लेकिन मुझे इस मामले में प्रयोज्यता पर यकीन नहीं है, क्योंकि हम प्राकृतिक वातावरण से निपट रहे हैं, जहां निरंतर परिवर्तन होता है, यानी मौसम में बदलाव, सूर्य की स्थिति, पौधों और पेड़ों की वजह से हवा, मौसम आदि मेरा मानना ​​है कि आपके द्वारा वर्णित परिवर्तन का क्षेत्र किसी भी मामले में पूरी छवि के आकार के करीब बढ़ेगा।
INSYS

@insys - मैं आपकी बात देखता हूं लेकिन मैं असहमत हूं - मेरा मानना ​​है कि यह डिटेक्टर को बदलने के लिए अधिक लचीला बनाता है। रिश्तेदार फ़्रेमों के बीच का समय छोटा होना चाहिए (~ सेकंड से एक मिनट) इसलिए सूरज, मौसम, मौसम नगण्य होना चाहिए। मैं सहमत हूं कि हवा पौधों को स्थानांतरित करने का कारण बनेगी लेकिन वर्गीकरण कदम उन लोगों से बच सकते हैं क्योंकि उनका आकार / आकार / रंग एक बिल्ली से अलग है। इसके अलावा, एक ही समय में दो फ्रेम का उपयोग करने से पिक्सेल तीव्रता को सामान्य करने में सक्षम होता है ताकि रोशनी की स्थिति बेहतर हो सके (जैसे, धूप बनाम बादल दिन पर एक बिल्ली)।
बोगट्रॉन

दरअसल, अब मैं आपके उत्तर के बारे में अधिक उलझन में हूं जो मैंने आपकी टिप्पणी के माध्यम से पढ़ा है :) शायद मुझे गलत समझा गया है, लेकिन अगर आप वास्तव में अपने सकारात्मक नमूनों को बनाने के लिए "निकाले गए परिवर्तन क्षेत्रों" का उपयोग करते हैं, जैसा कि आपके प्रश्न में उल्लेख किया गया है, तो आप भी कैसे बनाते हैं यकीन है कि वे बिल्लियों हैं? वे कुछ भी हो सकते हैं। जैसे, आपका वर्गीकरण कदम किसी भी चीज़ का पता लगाने में विफल रहेगा लेकिन पता लगाने के लिए जो सिखाया जाता है - वह है, किसी भी प्रकार का परिवर्तन। तो यह वास्तव में "परिवर्तन" डिटेक्टर का काम दोहरा रहा है।
INSYS

इसके अलावा, रोशनी की स्थिति निश्चित रूप से चिंता का विषय है, लेकिन, अगर मुझे आपकी बात सही लगती है, तो यह स्पष्ट नहीं है कि 1 मिनट के अंतर के साथ ली गई दो समान छवियां, पिक्सेल तीव्रता को सामान्य करने की दिशा में क्या प्रस्ताव देंगी?
INSYS

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

4

यह एक दिलचस्प और काफी महत्वाकांक्षी परियोजना है :)

मुझे यकीन नहीं है कि विसंगति का पता चल रहा है (कम से कम इस मायने में कि आपने जो कोर्स किया है, उसमें वर्णित है) इस मामले में एक बहुत ही उपयुक्त एल्गोरिथ्म होगा।

मैं एक अधिक व्यवहार्य दृष्टिकोण पर विचार करूंगा कि उस पाठ्यक्रम के अंत में चर्चा की गई है जहां एक फोटो ओसीआर वर्कफ़्लो का प्रदर्शन किया गया था।

इस दृष्टिकोण में आपकी छवि को छोटे "ब्लॉक" में विभाजित करना शामिल है, और एक पर्यवेक्षित शिक्षण एल्गोरिथ्म का उपयोग करके एक-एक करके उनके माध्यम से जाना और प्रत्येक ब्लॉक को यह वर्गीकृत करने की कोशिश करना है कि इसमें एक बिल्ली शामिल है या नहीं। यदि एक ब्लॉक में एक बिल्ली है, तो अलार्म बंद हो जाता है। एक बोनस के रूप में, आपको बिल्ली की स्थिति भी मिलती है, ताकि आप अपनी परियोजना के भविष्य के कदम के रूप में कुछ "स्वचालित" प्रतिक्रिया को शामिल करने के बारे में सोच सकें।

यहां लाभ यह है कि आपको अपने बगीचे के लिए एक डेटासेट का उपयोग करके अपने एल्गोरिथ्म को प्रशिक्षित नहीं करना होगा (जो, जैसा कि आप उल्लेख करना मुश्किल है), लेकिन आप नेट से ली गई बिल्लियों की छवियों का उपयोग कर सकते हैं (जैसे शायद आप खोज सकते हैं "बिल्ली पर घास" या कुछ और, और शायद आपके (या अन्य) बगीचों से तस्वीरों के पैच। इसलिए, आपको अपना समय अपने कैमरे से तस्वीरें एकत्रित करने में नहीं लगाना है, और आप सकारात्मक (यानी बिल्लियों) का एक बहुत छोटा (तुलनीय) नमूना होने के जोखिम से बचते हैं।

अब, निश्चित रूप से एक सटीक बिल्ली डिटेक्टर का निर्माण करना कितना आसान है यह एक और विषय है ..


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

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

Btw, विभाजन के बारे में जो आप उल्लेख करते हैं, एक स्पष्ट रणनीति यह है कि आपकी खिड़कियों को ओवरलैप करने दिया जाए, ताकि विभाजन की स्थिति आपके क्लासिफायर को प्रभावित न करे।
INSYS

मैं अपने प्रस्ताव (गति का पता लगाने) एक बिल्ली बनावट के साथ SIFT एल्गोरिथ्म का उपयोग करने के लिए जोड़ देगा। SIFT विधि का उपयोग ब्लॉक की उस रणनीति के साथ भी किया जा सकता है, लेकिन उस स्थिति में आप आवश्यकता से अधिक ब्लॉक की तुलना करेंगे। ध्यान दें कि एक बिल्ली चलती है, लेकिन एक पेड़ या झाड़ी इतना नहीं है।
एडीसेंटोस

3

गति / परिवर्तन का पता लगाने की रणनीति निश्चित रूप से पर्याप्त है, लेकिन मैं एक अतिरिक्त ऑपरेशन जोड़ूंगा। मैं उन क्षेत्रों का पता लगाऊंगा, जिनके बदलने की संभावना अधिक है, उदाहरण के लिए, सीढ़ी एक ऐसा स्थान है जहां मनुष्य (बिल्लियों) भी हो सकते हैं और घास जहां कुत्ते, बिल्ली या मनुष्य हो सकते हैं।

मैं ऑब्जेक्ट और प्रक्षेपवक्र के आकार के साथ एक मानचित्र पर कब्जा कर लूंगा और इसके साथ मैं एक निश्चित गति और प्रक्षेपवक्र के साथ चलने वाली वस्तु (पिक्सेल के संदर्भ में छवि के भीतर विशिष्ट आकार के साथ) का पता लगाने के उद्देश्य से एक क्लस्टर बनाऊंगा।

आप आर का उपयोग करके इसे प्राप्त कर सकते हैं या मैं आंदोलन का पता लगाने और विभिन्न वस्तुओं का पालन करने के लिए ओपनसीवी का सुझाव दूंगा।


2

OpenCV की पृष्ठभूमि घटाव वस्तुओं को आपके कड़े के बारे में घूमता हुआ मिलेगा। उसके बाद आप बिल्लियों, लोगों, पेड़ों और आदि के बीच अंतर करने के लिए एक वर्गीकरण या आकार विश्लेषण का उपयोग कर सकते हैं।


1

क्या यह चिड़िया है? क्या यह एक बिल्ली है? हमारे पास काली-और सफेद बिल्ली है! यहाँ Magpies। ताकि फेल हो जाए।

पहली बात उन सभी क्षेत्रों को बाहर करना होगा जो हरे हैं, बिल्लियाँ शायद ही कभी हरी होती हैं।

फिर पत्थर और सीढ़ियों जैसी स्थिर चीजों को हटाने के लिए बाकी की तुलना एक संदर्भ छवि से करें।

एक न्यूनतम आकार की वस्तुओं का पता लगाना संभव होना चाहिए, लेकिन एक वर्गीकरण के लिए संकल्प बहुत कम है। आपका पड़ोसी भी अपने नए रिमोट नियंत्रित ड्रोन का परीक्षण कर सकता है।

दो कैमरों से आप ऑब्जेक्ट्स की 3 डी मैपिंग कर सकते हैं और फ्लाइंग ऑब्जेक्ट्स को खत्म कर सकते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.