मीन शिफ्ट का उपयोग करते हुए छवि विभाजन


107

क्या कोई मुझे यह समझने में मदद कर सकता है कि मीन शिफ्ट सेगमेंट वास्तव में कैसे काम करता है?

यहाँ एक 8x8 मैट्रिक्स है जिसे मैंने अभी बनाया है

  103  103  103  103  103  103  106  104   
  103  147  147  153  147  156  153  104   
  107  153  153  153  153  153  153  107   
  103  153  147  96   98   153  153  104   
  107  156  153  97   96   147  153  107   
  103  153  153  147  156  153  153  101   
  103  156  153  147  147  153  153  104   
  103  103  107  104  103  106  103  107

उपरोक्त मैट्रिक्स का उपयोग करके यह स्पष्ट करना संभव है कि मीन शिफ्ट सेगमेंट 3 विभिन्न स्तरों की संख्याओं को कैसे अलग करेगा?


तीन स्तर? मैं 100 के आसपास है और 150 के आसपास संख्या देखने
जॉन

2
अच्छी तरह से इसकी एक अलगाव के रूप में मुझे लगा कि सीमा के उस हिस्से में शामिल होने के लिए किनारे की संख्या को बीच में दूर करना होगा। यही कारण है कि मैंने कहा 3. मैं गलत हो सकता है क्योंकि मैं वास्तव में यह नहीं समझता कि इस प्रकार का अलगाव कैसे काम करता है।
शार्प

ओह ... शायद हम अलग-अलग चीजों का मतलब निकालने के लिए स्तर ले रहे हैं। सब अच्छा। :)
जॉन

1
मुझे स्वीकृत उत्तर पसंद है, लेकिन मुझे नहीं लगता कि इसमें पूरी तस्वीर दिखाई गई है। IMO इस pdf का मतलब है शिफ्ट सेगमेंटेशन बेहतर (उदाहरण के रूप में उच्च आयाम स्थान का उपयोग करना 2d मेरे विचार से बेहतर है)। eecs.umich.edu/vision/teaching/EECS442_2012/lectures/…
हेलिन वांग

जवाबों:


204

मूल बातें पहले:

मीन शिफ्ट सेगमेंटेशन एक स्थानीय होमोजेनाइजेशन तकनीक है जो स्थानीयकृत वस्तुओं में छायांकन या टॉन्सिलिटी अंतर के लिए बहुत उपयोगी है। एक उदाहरण कई शब्दों से बेहतर है:

यहां छवि विवरण दर्ज करें

क्रिया: प्रत्येक पिक्सेल को एक श्रेणी-आर पड़ोस में पिक्सेल के माध्यम से बदल देता है और जिसका मूल्य दूरी d के भीतर है।

मीन शिफ्ट में आमतौर पर 3 इनपुट लगते हैं:

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

कृपया ध्यान दें कि एल्गोरिथ्म सीमाओं पर अच्छी तरह से परिभाषित नहीं है, इसलिए विभिन्न कार्यान्वयन आपको वहां अलग-अलग परिणाम देंगे।

मैं यहाँ गौरी गणितीय विवरणों की चर्चा नहीं करूँगा, क्योंकि वे उचित गणितीय संकेतन के बिना दिखाना असंभव हैं, StackOverflow में उपलब्ध नहीं हैं, और इसलिए भी कि वे कहीं और अच्छे स्रोतों से मिल सकते हैं

आइए अपने मैट्रिक्स के केंद्र को देखें:

153  153  153  153 
147  96   98   153 
153  97   96   147   
153  153  147  156  

त्रिज्या और दूरी के लिए उचित विकल्पों के साथ, चार केंद्र पिक्सल 97 (उनके माध्य) का मान प्राप्त करेंगे और आसन्न पिक्सल का अलग रूप होगा।

इसकी गणना गणितज्ञ करते हैं । वास्तविक संख्या दिखाने के बजाय, हम एक रंग कोडिंग प्रदर्शित करेंगे, इसलिए यह समझना आसान है कि क्या हो रहा है:

आपके मैट्रिक्स के लिए रंग कोडिंग है:

यहां छवि विवरण दर्ज करें

फिर हम एक उचित मीन शिफ्ट लेते हैं:

MeanShiftFilter[a, 3, 3]

और हम प्राप्त करते हैं:

यहां छवि विवरण दर्ज करें

जहां सभी केंद्र तत्व समान हैं (97, BTW)।

आप मीन शिफ्ट के साथ कई बार पुनरावृत्ति कर सकते हैं, अधिक सजातीय रंग प्राप्त करने की कोशिश कर रहे हैं। कुछ पुनरावृत्तियों के बाद, आप एक स्थिर गैर-आइसोट्रोपिक कॉन्फ़िगरेशन पर पहुंचते हैं:

यहां छवि विवरण दर्ज करें

इस समय, यह स्पष्ट होना चाहिए कि आप मीन शिफ्ट को लागू करने के बाद आपको कितने "रंगों" का चयन नहीं कर सकते हैं। तो, आइए दिखाते हैं कि यह कैसे करना है, क्योंकि यह आपके प्रश्न का दूसरा भाग है।

आपको पहले से आउटपुट क्लस्टर्स की संख्या निर्धारित करने में सक्षम होने के लिए कुछ की आवश्यकता है जैसे कि माइग्रेन क्लस्टरिंग

यह आपके मैट्रिक्स के लिए इस तरह से चलता है:

b = ClusteringComponents[a, 3]

{{1, 1, 1, 1, 1, 1, 1, 1}, 
 {1, 2, 2, 3, 2, 3, 3, 1}, 
 {1, 3, 3, 3, 3, 3, 3, 1}, 
 {1, 3, 2, 1, 1, 3, 3, 1}, 
 {1, 3, 3, 1, 1, 2, 3, 1}, 
 {1, 3, 3, 2, 3, 3, 3, 1}, 
 {1, 3, 3, 2, 2, 3, 3, 1}, 
 {1, 1, 1, 1, 1, 1, 1, 1}}  

या:

यहां छवि विवरण दर्ज करें

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

HTH!


क्या इमेज के लिए मीन शिफ्ट का माटलैब कार्यान्वयन है?
कौशिक आचार्य


164

मीन-शिफ्ट सेगमेंट कुछ इस तरह से काम करता है:

इमेज डेटा को फीचर स्पेस में बदल दिया जाता है सुविधा स्थान

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

खोज विंडो सुविधा स्थान पर वितरित की जाती हैं यहां छवि विवरण दर्ज करें

इस उदाहरण के लिए खिड़कियों, खिड़की के आकार और प्रारंभिक स्थानों की संख्या मनमानी है - कुछ जो विशिष्ट अनुप्रयोगों के आधार पर ठीक-ठीक हो सकते हैं

मीन-शिफ्ट पुनरावृत्तियों:

1.) प्रत्येक विंडो के भीतर डेटा नमूनों के MEAN की गणना की जाती है यहां छवि विवरण दर्ज करें

2.) खिड़कियों को उनके पहले गणना किए गए साधनों के बराबर स्थानों पर शिफ्ट किया जाता है यहां छवि विवरण दर्ज करें

चरण 1.) और 2.) अभिसरण तक दोहराए जाते हैं, अर्थात सभी विंडो अंतिम स्थानों पर बस गए हैं यहां छवि विवरण दर्ज करें

समान स्थानों पर समाप्त होने वाली खिड़कियां मर्ज की जाती हैं यहां छवि विवरण दर्ज करें

डेटा विंडो ट्रैवर्सल्स के अनुसार क्लस्टर किया गया है यहां छवि विवरण दर्ज करें

... उदाहरण के लिए, सभी डेटा जो कि विंडो द्वारा ट्रेस किए गए थे, कहते हैं, स्थान "2", उस स्थान से जुड़ा एक क्लस्टर बनाएगा।

तो, यह विभाजन (संयोग से) तीन समूहों का उत्पादन करेगा। मूल छवि प्रारूप में उन समूहों को देखने से कुछ ऐसा लग सकता है जैसे कि बेलिसियस के उत्तर में अंतिम चित्र । अलग-अलग विंडो आकार और प्रारंभिक स्थान चुनना अलग परिणाम उत्पन्न कर सकता है।


सुविधा की जगह तीन आयामी नहीं हो सकती, प्रत्येक पिक्सेल की स्थिति का लेखा-जोखा?
हेलिन वैंग

@ हेलिनवांग हाँ, यह कर सकता है।
० '

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

@ Lennert यदि मैं आपके प्रश्न को सही ढंग से समझता हूं, तो अनिवार्य रूप से आप जो करेंगे, वह पिक्सेल स्थानों (x, y) को सुविधाओं के रूप में जोड़ देगा, या अन्य स्थान-आधारित सुविधाओं को क्लस्टरिंग स्थान में जोड़ देगा। ऐसा लगता है कि बेलिसरियस का उत्तर गणित में एक विशिष्ट कार्यान्वयन का संदर्भ देता है जो कुछ अधिक परिष्कृत हो सकता है। क्या उससे मदद हुई?
मलाई

1
@ Lennert हाँ, मुझे लगता है कि आपको मिल गया है। मैं समझ सकता हूं कि आपको मेरा जवाब भ्रामक क्यों लगा। मैंने अपनी 'विंडोज़' को दो आयामी के रूप में आकर्षित किया, लेकिन वास्तव में मैं केवल एक आयामी वर्णक्रमीय मूल्यों पर क्लस्टरिंग को चित्रित करने की कोशिश कर रहा था। यह एक ड्राइंग या एनीमेशन के साथ त्रि-आयामी फीचर अंतरिक्ष में मीन शिफ्ट क्लस्टर की कल्पना करने के लिए बहुत अच्छा होगा (शायद इन दिनों में से एक अगर मुझे समय मिलता है)
mlai
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.