पैटर्न मान्यता के एक तरीके के रूप में फ़र्न

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

पृष्ठभूमि


तो चलिए शुरू करते हैं। किसी चीज़ को पहचानने की शास्त्रीय विधि में निम्नलिखित चरण होते हैं:
  1. छवि प्रीप्रोसेसिंग (चमक का संयोजन, समोच्च, आकार समायोजन और बहुत कुछ);
  2. स्थानीय विशेषताओं को हाइलाइट करना (अंग्रेजी साहित्य में स्थानीय डिस्क्रिप्टर / सुविधाएँ, की-पॉइंट);
  3. हम क्लासिफायर ट्रेन करते हैं।

उसके बाद, वर्कफ़्लो वास्तव में शुरू होता है:
  1. वर्तमान छवि को रोकना;
  2. मुख्य बिंदु निकालें;
  3. हम उन्हें मान्यता के लिए क्लासिफायरियर को देते हैं;
  4. हम तत्काल समस्या को हल करने में परिणाम ("ऊपरी कोने में गुलाबी हाथी", "स्टारबोर्ड की तरफ आदमी ...") का उपयोग करते हैं।

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

मठ का कोना


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

क्या होगा अगर हम एक सरल ऑपरेशन के आधार के रूप में लेते हैं - एक तुलना जो हमें 0 या 1 देता है, जो शर्त की पूर्ति पर निर्भर करता है?
आइए हम इस प्रकार तैयार करें:

चीजों के इस दृष्टिकोण के साथ, हमारे कार्य का वर्णन इस प्रकार किया जा सकता है:
के लिए दिया ऐसी कक्षा चुनें कि
। हम यह भी ध्यान में रखते हैं कि किसी विशेष वर्ग को चुनने की संभावना समान रूप से वितरित की जाती है।
परिस्थितियों का एक गुच्छा के साथ काम करना किसी तरह बहुत सुविधाजनक है। इसलिए, हम उन्हें छोटे समूहों में संयोजित करेंगे, जिसे हम फ़र्न (हाँ, फ़र्न) कहेंगे। इसके अलावा, एक fern'a के परिणाम दूसरों के काम को प्रभावित नहीं करते हैं। हम इसे औपचारिक रूप से लिखते हैं:

यह ध्यान रखना महत्वपूर्ण है कि फ़र्न और परीक्षणों की संख्या एक जिज्ञासु संपत्ति को वहन करती है - वास्तव में, यह कक्षा के प्रकार को निर्धारित करता है:


अभ्यास


फू, गणित में महारत हासिल की, चलो सबसे दिलचस्प - चित्रों पर चलते हैं!
फिलहाल हमारे पास क्या है:
  1. 2 पिक्सेल की चमक की तुलना करने के लिए सबसे सरल परीक्षण, चेक के परिणामों के अनुसार 0 और 1 वापस करना
  2. इस तरह के परीक्षणों का एक सेट फर्न है। जब सभी चेक पास हो जाते हैं, तो हमें बाइनरी नंबर मिलता है (10100011101 ...)

जाहिर है, 1 तस्वीर के लिए 1 परीक्षण के लिए 2 विकल्प दिए जाएंगे - 0 या 1. लेकिन यह गलत है, और कई कक्षाएं हो सकती हैं। फिर, बहुत सारे परीक्षण (फ़र्न) हमें शून्य और लोगों का एक सेट देंगे (0 से सीमा में) )। यदि हमारे पास कई अलग-अलग चित्र हैं जो एक ही वर्ग के हैं, तो हमें एक संभावना वितरण मिलता है । हां, एक महत्वपूर्ण विवरण - सत्यापन बिल्कुल कोई भी हो सकता है, लेकिन! हमें एक बार और सभी के लिए, सभी छवियों और फ़र्न के लिए एक परीक्षण विकल्प चुनना होगा, उदाहरण के लिए, हमेशा और हर जगह नीले पिक्सेल को लाल की तुलना में उज्जवल होना चाहिए। यदि हम विपरीत चाहते हैं - कृपया, लेकिन फिर विपरीत हर जगह होना चाहिए।
चलो एक साधारण स्थिति लेते हैं - हमारे पास 3 परीक्षण, 3 फ़र्न और, उदाहरण के लिए, चित्रों के 5 वर्ग। प्रशिक्षण चरण में, हम फ़र्न को 1 वर्ग का 1 नमूना खिलाते हैं और वे पिक्सेल चमक के लिए जांच की एक श्रृंखला आयोजित करते हैं। नतीजतन, प्रत्येक फ़र्न एक द्विआधारी संख्या बनाता है, इस मामले में 101, 011, 100 (आलसी के लिए - क्रमशः कैलकुलस 5, 6 और 1 के दशमलव प्रणाली में)। ये संख्याएँ हमें वितरण में संबंधित कॉलम को बढ़ाने की अनुमति देती हैं। हां, वैसे, ताकि किसी को चोट न पहुंचे , हम इसे डिरिचलेट ( tyk ) की एक समान संभावना वितरण के रूप में शुरू करते हैं।
सभी वर्गों के लिए एक ही नस में जारी:

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


परिणाम


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

कॉपीराइट


रात के लिए कल्पना


  1. रैंडम फर्न्स एम। Alzuysal, एम। कैलंडर, वी। लेपेटिट, पी। फुआ का उपयोग करके फास्ट कीपॉइंट मान्यता।
  2. कोड की दस लाइनों में फास्ट कीपॉइंट की पहचान एम। Alzuysal, पी। फुआ, वी। लेपेटिट
  3. अंग्रेजी में उपरोक्त सामग्री का पूर्ण संस्करण

Source: https://habr.com/ru/post/In129685/


All Articles