समझने के लिए एक महत्वपूर्ण बात यह है कि कीपॉइंट्स निकालने के बाद, आप केवल उनकी स्थिति के बारे में जानकारी प्राप्त करते हैं , और कभी-कभी उनकी कवरेज क्षेत्र (आमतौर पर एक सर्कल या दीर्घवृत्त द्वारा अनुमानित) छवि में। जबकि कीपॉइंट की स्थिति के बारे में जानकारी कभी-कभी उपयोगी हो सकती है, यह खुद के बारे में अधिक नहीं कहता है।
Keypoint (SIFT, हैरिस कॉर्नर, MSER) निकालने के लिए उपयोग किए जाने वाले एल्गोरिथ्म के आधार पर, आप निकाले गए कीपॉइंट्स की कुछ सामान्य विशेषताओं को जान पाएंगे (उदाहरण के लिए वे ब्लॉब्स , किनारों, प्रमुख कोनों ...) के आसपास केंद्रित होते हैं, लेकिन आपको पता नहीं होगा कि कैसे अलग हैं या इसी तरह की एक कुंजी दूसरे के लिए है।
यहां दो सरल उदाहरण दिए गए हैं, जहां केवल स्थिति और मुख्य बिंदु क्षेत्र ही हमारी मदद नहीं करेंगे:
यदि आपके पास एक छवि ए (एक सफेद पृष्ठभूमि पर एक भालू की), और एक और छवि बी, ए की सटीक प्रतिलिपि है, लेकिन कुछ पिक्सेल के लिए अनुवादित है: निकाले गए कीपॉइंट समान होंगे (उस भालू के समान भाग पर)। उन दो छवियों को समान या समान के रूप में मान्यता दी जानी चाहिए।
लेकिन, यदि हमारे पास एकमात्र जानकारी उनकी स्थिति है, और अनुवाद के कारण वह बदल गई है, तो आप छवियों की तुलना नहीं कर सकते।
यदि आपके पास एक छवि A है (मान लीजिए, इस समय एक बतख की है), और दूसरी छवि B, बिलकुल उसी बतख के रूप में A जो केवल दो बार आकार को छोड़कर है: निकाले गए कुंजी बिंदु समान (बतख के समान भाग) होंगे। वे भी समान (समान) चित्र हैं।
लेकिन उनके सभी आकार (क्षेत्र) अलग-अलग होंगे: छवि बी से सभी की-पॉइंट छवि ए से उन लोगों के आकार का दोगुना होगा।
तो, यहाँ वर्णनकर्ता आते हैं : वे की-पॉइंट की तुलना करने का तरीका हैं। वे सारांशित करते हैं, वेक्टर प्रारूप में (स्थिर लंबाई का) कीपॉइंट्स के बारे में कुछ विशेषताएं। उदाहरण के लिए, यह उनके सबसे स्पष्ट अभिविन्यास की दिशा में उनकी तीव्रता हो सकती है। यह उस छवि के क्षेत्र के लिए एक संख्यात्मक विवरण प्रदान कर रहा है, जो कीपर को संदर्भित करता है।
विवरणकर्ताओं के लिए कुछ महत्वपूर्ण बातें हैं:
उन्हें कीपॉइंट पोजीशन से स्वतंत्र होना चाहिए
यदि एक ही कीप विभिन्न पदों पर निकाला जाता है (उदाहरण के लिए अनुवाद के कारण) तो विवरणक एक ही होना चाहिए।
उन्हें छवि परिवर्तनों के खिलाफ मजबूत होना चाहिए
कुछ उदाहरण विपरीत हैं (उदाहरण के लिए एक ही जगह की छवि एक धूप और बादल वाले दिन के दौरान) और परिप्रेक्ष्य के परिवर्तन (केंद्र-दाएं और केंद्र-बाएं से भवन की छवि, हम अभी भी इसे उसी भवन के रूप में पहचानना चाहते हैं) ।
बेशक, कोई भी डिस्क्रिप्टर सभी परिवर्तनों के खिलाफ पूरी तरह से मजबूत नहीं है (न ही किसी एक के खिलाफ अगर यह मजबूत है, उदाहरण के लिए परिप्रेक्ष्य में बड़ा बदलाव)।
अलग-अलग विवरणों को अलग-अलग परिवर्तनों के खिलाफ मजबूत बनाने के लिए डिज़ाइन किया गया है जो कभी-कभी उनकी गणना करने की गति के विपरीत होता है।
उन्हें स्वतंत्र होना चाहिए
विवरणकर्ताओं को ध्यान में रखना चाहिए। यदि एक कीप का "प्रमुख" भाग 10px की एक ऊर्ध्वाधर रेखा है (8px की त्रिज्या वाले एक गोलाकार क्षेत्र के अंदर), और दूसरी पंक्ति का प्रमुख भाग 5px (4px की त्रिज्या वाले एक गोलाकार क्षेत्र के अंदर) है - इन कीपॉइंट्स को समान डिस्क्रिप्टर सौंपा जाना चाहिए।
अब, जब आपने सभी की-पॉइंट के लिए डिस्क्रिप्टर की गणना की, तो आपके पास उन की-पॉइंट्स की तुलना करने का एक तरीका है । छवि मिलान के एक सरल उदाहरण के लिए (जब आप जानते हैं कि चित्र एक ही वस्तु के हैं, और वे अलग-अलग छवियों में उन हिस्सों की पहचान करना चाहते हैं जो दृश्य के एक ही हिस्से को चित्रित करते हैं, या दो छवियों के बीच परिप्रेक्ष्य परिवर्तन की पहचान करना चाहते हैं) , आप एक छवि के प्रत्येक कीपॉइंट डिस्क्रिप्टर की तुलना दूसरे इमेज के प्रत्येक की-पॉइंट डिस्क्रिप्टर से करेंगे। जैसा कि वर्णनकर्ता संख्याओं के वैक्टर हैं , आप उनकी तुलना यूक्लिडियन दूरी की तुलना में कुछ सरल कर सकते हैं । कुछ और जटिल दूरियाँ हैं जिनका उपयोग समानता के उपाय के रूप में किया जा सकता है, बेशक। लेकिन, अंत में, आप कहेंगे किkeypoints जिसका वर्णनकर्ता उन दोनों के बीच छोटी से छोटी दूरी हैं मैचों , एक ही "स्थानों" या विभिन्न छवियों में "वस्तुओं के कुछ हिस्सों" जैसे।
कीपॉइंट / डिस्क्रिप्टर के अधिक जटिल उपयोग के लिए, आपको इस प्रश्न पर एक नज़र डालनी चाहिए - विशेष रूप से मेरे उत्तर में "निम्न-स्तरीय स्थानीय दृष्टिकोण" और @Maurits उत्तर में "बैग-ऑफ- वर्ड्स " दृष्टिकोण । साथ ही, उन उत्तरों में दिए गए लिंक उपयोगी हैं।