मैं वर्तमान में दृश्य सुविधा मिलान के आधार के रूप में OpenCV द्वारा प्रदान किए गए कई फ़ीचर डिटेक्टरों के प्रदर्शन की तुलना और उनके साथ काम कर रहा हूं।
मैं SIFT डिस्क्रिप्टर का उपयोग कर रहा हूं । मैंने MSER और DoG (SIFT) सुविधाओं का पता लगाते समय संतोषजनक मिलान (खराब मैचों को अस्वीकार करने के बाद ) पूरा किया है।
वर्तमान में, मैं तुलना करने के लिए GFTT (गुड फीचर्स टू ट्रैक - हैरिस कॉर्नर) के साथ अपने कोड का परीक्षण कर रहा हूं , और यह भी क्योंकि अंतिम एप्लायंस में, GFTT सुविधाओं का एक सेट विजुअल फीचर ट्रैकिंग प्रक्रिया से उपलब्ध होगा।
मैं उपयोग कर रहा हूँ cv::FeatureDetector::detect(...)जो मुझे एक साथ प्रदान करता है std::vector<cv::KeyPoint>के साथ भर का पता चला सुविधाओं / keypoints / ब्याज के क्षेत्रों । संरचना cv::KeyPointके बारे में सुविधा के स्थान के बारे में बुनियादी जानकारी है, साथ ही में जानकारी शामिल है sizeऔर octaveजिसमें Keypoint पाया गया है।
GFTT के साथ मेरा पहला परिणाम तब तक भयानक था जब तक कि मैं विभिन्न प्रकार की विशेषताओं में विशिष्ट sizeऔर octaveमापदंडों की तुलना नहीं करता :
- MSER आकार (10 और 40px के बीच) सेट करता है और ऑक्टेव को 0 पर छोड़ देता है
- DoG (SIFT) दोनों का आकार और सप्तक ( आकार / अष्टक अनुपात 20 से 40 के बीच है)
- GFTT पैरामीटर हमेशा होते हैं : आकार = 3 , ऑक्टेव = 0
मुझे लगता है कि क्योंकि GFTT सुविधाओं का प्राथमिक उद्देश्य मिलान में ही नहीं बल्कि ट्रैकिंग में उपयोग किया जाना था। यह मिलान परिणामों की निम्न गुणवत्ता की व्याख्या करता है, क्योंकि इस तरह की छोटी विशेषताओं से निकाले गए वर्णनकर्ता छोटे, 1-पिक्सेल बदलाव सहित कई चीजों के लिए भेदभावपूर्ण और अपरिवर्तनीय होना बंद कर देते हैं।
यदि मैंने मैन्युअल रूप sizeसे GFTT की संख्या 10 - 12 पर सेट की है , तो मुझे MSER या DoG (SIFT) का उपयोग करते समय बहुत अच्छे परिणाम मिलते हैं ।
मेरा प्रश्न है: क्या यह तय करने के लिए कि size(और / या octave) को बढ़ाने के लिए 10-साथ-साथ-अगर-यह काम करता है तो कितना बेहतर तरीका है ? मैं sizeयदि संभव हो तो वृद्धि को हार्डकोड करने से बचना चाहता हूं और इसे प्रोग्रामेटिक रूप से निर्धारित करना चाहता हूं , लेकिन हार्डकोडिंग तब तक ठीक है जब तक कि मेरे पास नए size/ sizeवृद्धि / sizeआकलन एल्गोरिदम के मेरे विकल्पों का समर्थन करने के लिए कुछ ठोस तर्क हैं ।