2011-01-28 12 views
93

कोई भी कृपया मुझे यह समझने में सहायता कर सकता है कि मीन शिफ्ट विभाजन वास्तव में कैसे काम करता है?मीन शिफ्ट का उपयोग करके छवि सेगमेंटेशन

यहाँ एक 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 विभिन्न स्तरों अलग होगा संभव है?

+0

तीन स्तर? मैं 100 के आसपास है और 150 – John

+2

खैर इसकी के रूप में एक segmenation मैंने सोचा था कि बीच में नंबरों के लिए अब तक बढ़त संख्या से दूर सीमा के उस अनुभाग में शामिल किया जाना होगा आसपास नंबर देखें। कारण है कि मैं ने कहा कि 3. मुझे लगता है मैं वास्तव में समझने न के रूप में कैसे segmenation के इस प्रकार काम करता है गलत हो सकता है। – Sharpie

+0

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

उत्तर

179

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

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

enter image description here

कार्रवाई: एक सीमा-r पड़ोस में पिक्सल के मतलब के साथ प्रत्येक पिक्सेल बदल देता है और जिसका मूल्य एक दूरी घ के भीतर है।

  1. पिक्सल के बीच की दूरी को मापने के लिए एक दूरी समारोह:

    मीन शिफ्ट आमतौर पर 3 आदानों लेता है। आमतौर पर यूक्लिडियन दूरी, लेकिन किसी भी अन्य अच्छी तरह से परिभाषित दूरी समारोह का उपयोग किया जा सकता है। Manhattan Distance कभी-कभी एक और उपयोगी विकल्प है।

  2. एक त्रिज्या। इस त्रिज्या के भीतर सभी पिक्सेल (उपरोक्त दूरी के अनुसार मापा गया) गणना के लिए जिम्मेदार होगा।
  3. एक मूल्य अंतर। r त्रिज्या के अंदर सभी पिक्सल से, हम ले केवल उन जिसका मूल्यों मतलब

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

मैं यहां गॉरी गणितीय विवरणों पर चर्चा नहीं करूंगा, क्योंकि वे उचित गणितीय नोटेशन के बिना दिखाना असंभव हैं, स्टैक ओवरव्लो में उपलब्ध नहीं है, और यह भी कि वे from good sources elsewhere पाए जा सकते हैं। अपने मैट्रिक्स के केंद्र में

आइए नज़र:

153 153 153 153 
147 96 98 153 
153 97 96 147 
153 153 147 156 
त्रिज्या और दूरी के लिए उचित विकल्प के साथ

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

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

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

enter image description here

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

MeanShiftFilter[a, 3, 3] 

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

enter image description here

जहां सभी केंद्र तत्व बराबर हैं (9 7, बीटीडब्ल्यू)।

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

enter image description here

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

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

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

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}} 

या:

enter image description here

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

एचटीएच!

+1

प्रभावशाली उत्तर! –

+0

क्या छवि के लिए मीन शिफ्ट का मैटलैब कार्यान्वयन है? –

+2

@KaushikAcharya देखें http://www.shawnlankton.com/2007/11/mean-shift-segmentation-in-matlab/ –

143

एक मतलब-शिफ्ट विभाजन कुछ इस तरह काम करता है:

छवि डेटा सुविधा अंतरिक्ष feature space

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

खोजें खिड़कियों सुविधा अंतरिक्ष में वितरित कर रहे हैं enter image description here

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

मीन-शिफ्ट पुनरावृत्तियों के आधार पर किया जा सकता है:

1।) प्रत्येक खिड़की के भीतर डेटा के नमूनों का मतलब है enter image description here

2. गणना) विंडोज़ उनके पहले से गणना की साधन के बराबर स्थानों में स्थानांतरित कर रहे enter image description here

कदम 1.) और 2 ।) अभिसरण जब तक दोहराया जाता है, यानी सभी खिड़कियां अंतिम स्थानों enter image description here

खिड़कियों पर खत्म पर आकर बस गए हैं एक ही स्थानों enter image description here

डेटा क्लस्टर है विलय कर रहे हैं खिड़की traversals enter image description here

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

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

+0

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

+0

@ हेल्विन वांग हां, यह हो सकता है। – mlai

+0

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

संबंधित मुद्दे