क्लासिक सीवी टेम्पलेट मिलान पर एक दृश्य निरीक्षण कार्य के लिए दृढ़ एनएन का उपयोग क्यों करें?


9

मेरे पास एक परियोजना पर आधारित एक दिलचस्प चर्चा थी, जिस पर हम काम कर रहे थे: टेम्पलेट मिलान एल्गोरिथ्म पर सीएनएन दृश्य निरीक्षण प्रणाली का उपयोग क्यों करें?

पृष्ठभूमि: मैंने एक साधारण सीएनएन विज़न सिस्टम (वेबकेम + लैपटॉप) का एक डेमो दिखाया था जिसमें पता चला था कि एक विशेष प्रकार की वस्तु "टूटी हुई" / दोषपूर्ण है या नहीं - इस मामले में, पीसीबी सर्किट बोर्ड। मेरे सीएनएन मॉडल को एक स्थिर पृष्ठभूमि पर उचित और टूटे सर्किट बोर्ड (प्रत्येक की लगभग 100 छवियां) के उदाहरण दिखाए गए थे। हमारे मॉडल ने पहले से प्रशिक्षित VGG16 (इमेजेनैट पर) के पहले कुछ कनव / मैक्समूल परतों का उपयोग किया, और फिर हमने कुछ और ड्रैंस के साथ कुछ और ट्रेन योग्य कन्टेंस / पूल जोड़े, जिनकी वजह से वर्गीकरण के लिए एक मंद -3 एक हॉट एन्कोडेड एक्टर्ड आउटपुट प्राप्त हुआ। : (is_empty, has_good_product, has_defective_product)।

मॉडल ने बहुत आसानी से प्रशिक्षित किया और बिना किसी समस्या के 99% सत्यापन तक पहुंच गया; जब हम जानते थे कि हमारे डेटासेट छोटे थे, तो हमने विभिन्न डेटा संवर्द्धन के साथ प्रशिक्षण दिया। व्यवहार में, यह 10 में से 9 बार काम करता था, लेकिन एक ही सर्किट बोर्ड के कुछ यादृच्छिक अनुवाद / घुमाव कभी-कभी इसे विपरीत वर्ग में डालते थे। शायद अधिक आक्रामक डेटा वृद्धि ने मदद की होगी। वैसे भी, एक प्रोटोटाइप अवधारणा परियोजना के लिए हम खुश थे।

अब हम एक अन्य इंजीनियर और उनके सहयोगी को प्रस्तुत कर रहे थे, और उन्होंने यह तर्क पेश किया कि एनएन इसके लिए ओवरकिल हैं, बस टेम्पलेट मिलान का उपयोग करना चाहिए, कोई सीएनएन क्यों करना चाहेगा?

हमारे पास इस बात का कोई बड़ा जवाब नहीं था कि हमारा दृष्टिकोण कुछ अनुप्रयोगों में बेहतर क्यों हो सकता है (उदाहरण के लिए निरीक्षण करने के लिए अन्य भागों)। कुछ बिंदु जो हम लाए हैं:

1) आक्रमणकारियों के लिए अधिक मजबूत (उदाहरण के लिए डेटा वृद्धि)

2) सिस्टम को बेहतर बनाने के लिए ऑनलाइन लर्निंग कर सकते हैं (जैसे मानव सॉफ्टवेयर को बता सकता है कि कौन से उदाहरण गलत हो गए)

3) शास्त्रीय कंप्यूटर दृष्टि एल्गोरिदम की तरह थ्रेसहोल्ड सेट करने की कोई आवश्यकता नहीं है आप लोग क्या सोचते हैं, क्या इस प्रकार के निरीक्षण कार्य के लिए सीएनएन सिस्टम के लिए अधिक फायदे हैं? किन मामलों में यह मिलान से बेहतर होगा?

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


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

जवाबों:


3

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

टेम्पलेट मिलान कैसे काम करता है?

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

एकमात्र टाइम टेम्प्लेट मिलान एक पर्याप्त तकनीक है यदि आप ठीक-ठीक जानते हैं कि आप क्या खोज रहे हैं और आपको विश्वास है कि यह किसी दिए गए वर्ग के हर उदाहरण में लगभग समान रूप से दिखाई देगा।

इसके बजाय मशीन सीखने का उपयोग क्यों करें?

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

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

मैं क्या सुझाव देता हूं।

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


आपकी व्यापक टिप्पणी के लिए धन्यवाद! क्या आप ऐसी परियोजनाओं या कागजात के उदाहरण प्रदान कर सकते हैं जो (और संभवतः डेमो) विसंगति का पता लगाते हैं? चीयर्स
जेडीएस

1
यहाँ विसंगति का पता लगाने वाली वी। चंदोला, ए। बनर्जी और वी। कुमार की साहित्य समीक्षा है, "एनोमली डिटेक्शन: ए सर्वे", एसीएम कम्प्यूटिंग सर्वे, वॉल्यूम। 41, सं। 3, पी। 15, 2009.
JahKnows

5

उत्तर कार्य पर निर्भर करता है। टेम्पलेट मिलान कुछ कार्यों के लिए काम कर सकता है लेकिन सभी के लिए नहीं। सीएनएन संभावित रूप से उन इनपुटों को अनदेखा करने की क्षमता रखता है जो आपके किसी भी टेम्पलेट से मेल नहीं खाते हैं, इसलिए संभावित रूप से बेहतर सामान्यीकरण कर सकते हैं।

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


5

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

आप चाहते हैं कि NN को "कुछ भी जो एक गैर-दोषपूर्ण पीसीबी की तरह नहीं दिखता है, एक दोषपूर्ण पीसीबी" सीखना है। लेकिन क्या होगा अगर यह "दोषपूर्ण पीसीबी की तरह नहीं दिखता है जो कुछ भी सीखा है एक गैर-दोषपूर्ण पीसीबी"?

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

पूरी तरह से नए दोषों का पता लगाने के लिए, विसंगति का पता लगाने के तरीके / एक वर्ग के वर्गीकरण अधिक हो सकते हैं .. भरोसेमंद, क्योंकि उन्हें कुछ भी चुनना चाहिए जो पहले कभी नहीं देखा गया है।

जैसा कि डीडब्ल्यू ने कहा, आप दोनों तरीकों को आजमाने जा रहे हैं और यह पता लगा सकते हैं कि कौन सा बेहतर काम करता है। बस सुनिश्चित करें कि वास्तव में एक अच्छा परीक्षण सेट है जिसमें पूरी तरह से नए दोष शामिल हैं!

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