2011-06-10 13 views
12

मुझे एहसास है कि यह एक बेहद विशिष्ट प्रश्न है .. लेकिन यहां जाता है। मैं दो छवियों पर मैचों को खोजने के लिए एसआईएफटी के कार्यान्वयन का उपयोग कर रहा हूं। मेरे पास वर्तमान कार्यान्वयन के साथ, जब मैं 90 या 180 डिग्री संस्करण के साथ एक छवि से मेल खाता हूं, तो मुझे लगातार मिलते-जुलते पिक्सल से मेल मिलते हैं लेकिन यह एक सीमा के भीतर भिन्न होता है। तो उदाहरण के लिए, यदि एक मैच im1 में पिक्सेल समन्वय (x, y) पर मिलता है, तो उसके 90 डिग्री घुमावदार छवि im2 में संबंधित मिलान (x, y + 0.5) पर होता है। यदि मैं 180 डिग्री छवि का उपयोग करता हूं तो ऑफसेट दोनों एक्स और वाई समन्वय में दिखाई देता है और केवल x में यदि मैं 270 डिग्री (-90) घुमावदार छवि का उपयोग करता हूं।डेविड लोवे का एसआईएफटी - स्केल स्पेस और छवि निर्देशांक (अजीब ऑफसेट समस्या) के बारे में प्रश्न

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

2) मेरे पास अन्य कार्यान्वयन हैं जो इस ऑफसेट को नहीं देते हैं।

3) मुझे लगता है कि यह ऑफसेट प्रोग्रामिंग से संबंधित है और संभावित रूप से स्केल-स्पेस कीपॉइंट निर्देशांक से छवि-स्थान कुंजी-बिंदु समन्वय में रूपांतरण के साथ करना है।

मुझे उम्मीद है कि किसी ने इस समस्या को पार किया है या मुझे स्केल-स्पेस से छवि-स्थान में परिवर्तित करने के तरीके के संदर्भ में इंगित कर सकता है।

+1

दिलचस्प, क्या आपके पास साझा करने के लिए कोई कोड है? –

+1

मुझे लगता है कि आप अपने प्रश्न के 'प्रश्न' भाग को भूल गए हैं ... – ildjarn

+0

क्या यह कैमरा छवि या चिकित्सा छवि है? क्या आपको पिक्सेल स्पेसिंग को ध्यान में रखना होगा? – nav

उत्तर

4

मिकोला के दावों के विपरीत, एसआईएफटी से स्केल और अभिविन्यास प्राप्त करना संभव है। एसआईएफटी सबसे बड़ी डीओजी एक्स्ट्रेमा (एस) के साथ पैमाने को खोजने का प्रयास करता है और यह एक प्रमुख अभिविन्यास (आर) भी पाता है। एक झारना सुविधा के लिए प्रत्येक स्थान वेक्टर रिटर्न (एक्स, वाई, एस, आर)

कैसे पैमाने अंतरिक्ष पिक्सल में धर्मान्तरित देखने के लिए, VLFeat के implementation प्रयास करें। विशेष रूप से, वर्णनकर्ताओं को साजिश करने के लिए vl_plotsiftdescriptor का उपयोग करें। आप इस कार्यान्वयन के लिए पिक्सल के सापेक्ष s स्केल देख सकते हैं। अन्य कार्यान्वयनों को समझने के लिए, दोनों कार्यान्वयन के साथ एक ही सुविधा पाएं और देखें कि स्केल फैक्टर एस भिन्न है।

2

सबसे पहले एक सामान्य टिप्पणी:

झारना केवल आपके एक्स, पिक्सेल निर्देशांक में y स्थानों के साथ सुविधाओं देता है। यह आपको डिजाइन द्वारा किसी दिए गए फीचर के पैमाने या घूर्णन के बारे में सीधे कुछ नहीं बताता है, और वास्तव में यह एसआईएफटी की परिभाषित विशेषता है कि फीचर वेक्टर इन प्रकार के परिवर्तनों के तहत आविष्कारक है (यानी यही कारण है कि एसआईएफटी काम करता है)। ~~ (संपादित करें: यह गलत है, WTF मैं सोच रहा था जब मैं यह लिखा?)

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

अब आप अपने अधिक विशिष्ट चिंताओं को दूर करने:

  1. यह एक बुरा धारणा है। Rectilinearly नमूना छवियों घूर्णन के तहत सामान्य invariant में नहीं हैं। 90 डिग्री के गुणकों द्वारा घूर्णन करने से भी समस्याएं पैदा हो सकती हैं यदि आपका एसआईएफटी कार्यान्वयन कई घूर्णन का नमूना देता है जो कि 4 में से एक नहीं है। हालांकि, पर्याप्त नमूने के साथ आप के पास सही परिणाम प्राप्त करने की उम्मीद कर सकते हैं, लेकिन यह लगभग कभी नहीं होगा सटीक रहें (कुछ बहुत ही विशेष अपमानजनक परिस्थितियों को छोड़कर)।

  2. आप कैसे जानते हैं कि वे सही ऑफसेट दे रहे हैं? वे सभी एक ही कोड बेस के क्लोन या बंदरगाह हो सकते हैं और समान बग हो सकते हैं।

  3. मुझे नहीं पता कि आप इसकी अपेक्षा क्यों करेंगे, क्योंकि एसआईएफटी कई आंतरिक घुमावदार कारकों पर निर्भर करता है जो कार्यान्वयन के बीच भिन्न हो सकते हैं।

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

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