मैं समझता हूँ कि कितनी तेजी से, झारना, सर्फ काम लेकिन जो ऊपर की लोगों केवल डिटेक्टरों हैं और जो एक्सट्रैक्टर्स हैं यह पता लगाने नहीं कर पा रहे। , उनमें से कुछ ही कर रहे हैं (डिटेक्टरों की सुविधा:
असल में, सुविधा डिटेक्टरों की उस सूची से/एक्सट्रैक्टर्स (FAST, GFTT, SIFT, SURF, MSER, STAR, ORB, BRISK, FREAK, BRIEF लेख के लिए लिंक) फास्ट, जीएफटीटी) अन्य फीचर डिटेक्टर और डिस्क्रिप्टर एक्स्ट्रेक्टर्स दोनों हैं (सिफ्ट, एसयूआरएफ, ओआरबी, फ्लेचर)।
अगर मुझे सही याद है, BRIEF केवल एक वर्णक निकालने वाला है, इसलिए इसे किसी अन्य एल्गोरिदम द्वारा फास्ट या ओआरबी जैसे लक्षणों की आवश्यकता होती है।
यकीन है कि जो है तो आप या तो एल्गोरिथ्म से संबंधित लेख ब्राउज़ करें या opencv प्रलेखन ब्राउज़ देखने के लिए जो FeatureDetector
वर्ग के लिए लागू किया गया था या जो DescriptorExtractor
वर्ग के लिए था करने के लिए है, जो होने के लिए।
Q1: के रूप में उल्लेख नाव और uchar के आधार पर डिटेक्टरों, extractors और matchers के प्रकार, या वर्गीकरण के कुछ अन्य प्रकार को वर्गीकृत?
प्रश्न 2: फ्लोट और उचर वर्गीकरण या जो भी वर्गीकरण का उपयोग किया जा रहा है, के बीच अंतर की व्याख्या करें?
सवालों के 1 और 2 के बारे में, उन्हें नाव और uchar के रूप में वर्गीकृत करने के लिए, link you already posted सबसे अच्छा संदर्भ मुझे पता है, हो सकता है किसी को पूरा करने के लिए सक्षम हो जाएगा।
प्रश्न 3: विभिन्न प्रकार के डिटेक्टरों को शुरू करने के लिए (कोड) कैसे शुरू करें, निकालने वाले और मैचर्स? मुख्य रूप से आप एक विशेषता डिटेक्टर चुनना है -
उत्तर देना प्रश्न 3, OpenCV विभिन्न प्रकार के काफी एक ही उपयोग करने के लिए कोड बनाया है। अधिकांश अंतर matcher के प्रकार को चुनने में है और आपने पहले ही ओपनसीवी के 3 लोगों का उल्लेख किया है। यहां आपकी सबसे अच्छी शर्त दस्तावेज, code samples, और संबंधित स्टैक ओवरफ़्लो प्रश्नों को पढ़ने के लिए है। साथ ही, कुछ ब्लॉग पोस्ट जानकारी का एक उत्कृष्ट स्रोत हैं, जैसे कि series of feature detector benchmarks by Ievgen Khvedchenia (ब्लॉग अब उपलब्ध नहीं है इसलिए मुझे अपने Google कैश से कच्ची टेक्स्ट कॉपी बनाना पड़ा)।
Matchers का उपयोग यह पता लगाने के लिए किया जाता है कि कोई वर्णनकर्ता किसी सूची से किसी अन्य वर्णनकर्ता के समान है या नहीं। आप सूची (bruteforce) से अन्य सभी वर्णनकर्ता के साथ आपकी क्वेरी वर्णनकर्ता तुलना सकते हैं या आप एक बेहतर अनुमानी (FlannBased, knnMatch) का उपयोग करें। समस्या यह है कि हेरिस्टिक्स सभी प्रकार के वर्णनकर्ताओं के लिए काम नहीं करता है। उदाहरण के लिए, uchar
के साथ ही साथ float
वर्णनकर्ता नहीं बल्कि काम करता था कार्यान्वयन FlannBased (लेकिन 2.4.0 के बाद से, LSH सूचकांक के साथ FlannBased वर्णनकर्ता uchar लिए लागू किया जा सकता है)।
this App-Solut blog postDescriptorMatcher
प्रकार के बारे में हवाला देते हुए:
DescriptorMatcher किस्मों "FlannBased", "BruteForceMatcher", "bruteforce-एल 1" और "bruteforce-HammingLUT" में आता है। "FlannBased" मिलान हुड के नीचे फ्लान (अनुमानित निकटतम पड़ोसियों के लिए तेजी से पुस्तकालय) लाइब्रेरी का उपयोग करता तेजी से लेकिन अनुमानित मिलान करने के लिए। "BruteForce- *" संस्करणों विस्तृत रूप से शब्दकोश यह खोज शब्दकोश में एक शब्द के लिए एक छवि सुविधा के लिए निकटतम मिलान ढूंढने का।
अधिक लोकप्रिय संयोजन से कुछ हैं:
फ़ीचर डिटेक्टरों/Decriptor एक्सट्रैक्टर्स/matchers प्रकार
(फास्ट, सर्फ)/सर्फ/FlannBased
(फास्ट, एसआईएफटी)/एसआईएफटी/फ्लैनबेस
(फास्ट, ओर्ब)/ओर्ब/bruteforce
(फास्ट, ओर्ब)/संक्षिप्त/bruteforce
(फास्ट, सर्फ)/सनकी/bruteforce
आप हो सकता है यह भी देखा गया है कि फीचर डिटेक्टरों में कुछ एडेप्टर (गतिशील, पिरामिड, ग्रिड) हैं। The App-Solut blog post वास्तव में अच्छी तरह से उनके उपयोग सार रखते हैं:
(...) और वहाँ भी एक प्रमुख मुद्दा डिटेक्टरों का व्यवहार बदलने के लिए उपयोग कर सकते हैं एडाप्टर के एक जोड़े हैं। उदाहरण के लिए Dynamic
एडाप्टर जो एक डिटेक्टर प्रकार विशिष्ट पहचान सीमा पर्याप्त कुंजी अंक तक समायोजित कर देता है या एक छवि में पाए जाते हैं Pyramid
एडाप्टर जो कई पैमानों पर अंक पता लगाने के लिए एक गाऊसी पिरामिड निर्माण करती है। Pyramid
एडाप्टर फीचर डिस्क्रिप्टर के लिए उपयोगी है जो स्केल इनवेरिएंट नहीं हैं।
अतिरिक्त पठन:
यह बहुत कुछ नहीं पूछ रहा है या नहीं, यहां मुद्दा यह है कि आप एपीआई के माध्यम से इस विशिष्ट विषय के बारे में जानने की कोशिश कर रहे हैं। इसके बजाय आपको क्या करना चाहिए, उन तरीकों का वर्णन करना जो विधियों का वर्णन करते हैं क्योंकि लाइब्रेरी कागजात के साथ जो चाहती है वह करने के लिए स्वतंत्र है और परिणामस्वरूप फ़ंक्शन कॉल विधि के सभी चीजों को पुन: उत्पन्न नहीं कर सकता है। आप किसी भी कारण से ओपनसीवी पर खुद को सीमित कर रहे हैं। उस सीमा को हटाने के बाद एक विशिष्ट संदेह चुनें। – mmgp
मैं वास्तव में आपके द्वारा वर्णित दृष्टिकोण का पालन करना चाहता था लेकिन कुछ स्थितियों के कारण, मुझे गंभीर समय की बाधाओं के साथ छवि सिलाई पर काम करने के लिए मजबूर किया गया है। यही कारण है कि मैं कुछ अवधारणाओं को समझने में मदद लेने की कोशिश कर रहा हूं जो अब मेरे समझ से परे हैं। मैं अभी भी सक्रिय रूप से कई कागजात और एल्गोरिदम पढ़ रहा हूं लेकिन ऐसी सहायता निश्चित रूप से प्रक्रिया को तेज करेगी। – hriddle