2011-10-10 23 views
6

मेरी परियोजना में मुझे छवियों की तुलना करने की आवश्यकता है। एक छवि एक रेंडर मॉडल दिखाती है और दूसरी छवि एक तस्वीर है, जिसमें वास्तविक वस्तु, जिसे मॉडल में दर्शाया गया है, दिखाया गया है। मैं वास्तव में क्या चाहता हूं:मैं दो किनारे-छवियों (ओपनसीवी में) की तुलना कैसे करूं?

  • एल्गोरिदम को दो छवियों की तुलना करना और एक संख्या वापस करना है, जो समानता का वर्णन करता है। आइए मान लें कि संख्या कम है, छवियों को एक साथ फिट करने के लिए बेहतर है।
  • दोनों छवियों को बाइनरी छवियों के रूप में दर्शाया जाता है जिनमें वास्तविक रेंडर-छवि/फोटो के समोच्च/किनार होते हैं।
  • तस्वीर में रेंडर-छवि की तुलना में फ़ोटो में बहुत अधिक ऑब्जेक्ट्स हैं। इसलिए मैं केवल यह जांचना चाहता हूं कि रेंडर-ऑब्जेक्ट का दृष्टिकोण लगभग फ़ोटो में वास्तविक ऑब्जेक्ट के दृष्टिकोण के समान है या नहीं। (उदाहरण: एक कार का मॉडल किया जाता है, इसलिए यह वास्तविक कार का अनुमान लगाता है। मैं एक वास्तविक स्थिति और अभिविन्यास से वास्तविक कार की तस्वीर लेता हूं। अब मैं जांचना चाहता हूं, अगर मेरे वर्चुअल कैमरे की स्थिति और अभिविन्यास रेंडर-कार को देख रहा है मेरे वास्तविक जीवन-कैमरे की स्थिति और अभिविन्यास की तुलना में लगभग समान है)। समाधान केवल रेंडर छवि के सफेद पिक्सेल की तुलना तस्वीर के पिक्सल (किनारे-छवि के रूप में) करने के लिए करना है। अन्य पिक्सेल दिलचस्प नहीं हैं।
  • छवि-तुलना के लौटे हुए मूल्य को बेहतर ढंग से कम करना चाहिए मेरे वर्चुअल कैमरा की वास्तविकता और स्थिति वास्तविक कैमरे के अभिविन्यास और स्थिति में फिट बैठती है।

मैंने दो छवियों की यूक्लिडियन दूरी की गणना करने की कोशिश की लेकिन नतीजा केवल अच्छा है, जब पिक्सेल एक दूसरे के लिए बिल्कुल फिट होते हैं। अब मैं बदलाव के लिए खोज रहा हूँ।

अब तक मुझे सामान्यीकृत क्रॉस-सहसंबंध का उपयोग करने के लिए माना जाता है, लेकिन मुझे नहीं पता कि यह मेरे कार्य के लिए उपयुक्त है या नहीं।

सवाल यह है कि, सामान्यीकृत क्रॉस-सहसंबंध एक प्रयास के लायक है या यदि मेरी समस्या को हल करने के बेहतर तरीके हैं!

एल्गोरिदम जितना तेज़ हो सके, क्योंकि मैं कई छवियों की तुलना करता हूं।

धन्यवाद एक बहुत


अपने सुझाव के लिए धन्यवाद। मैं इस तथ्य के कारण थोड़ा उलझन में हूं कि सामान्यीकृत क्रॉस-कोरलेशन और हाउसडॉर्फ दूरी एक बड़ी तस्वीर में एक छोटे से पैटर्न को खोजने के लिए अच्छा प्रतीत होता है।

सवाल यह है: क्या दो एल्गोरिदम भी एक ही आकार की 2 चित्रों की तुलना करने के लिए अच्छे हैं?

यहां 2 छवियों का एक उदाहरण है जिनकी तुलना की जानी चाहिए। फिलहाल मैं लगभग 120 चित्रों की तुलना कर रहा हूं-एक दूसरे के पैयर्स।

बहुत बुरा है कि मैं छवियों को एक नए उपयोगकर्ता के रूप में पोस्ट नहीं कर सकता। तो यहां सीधा लिंक है: http://s14.directupload.net/file/d/2674/t8qzbq9i_png.htm

+0

आप दो छवियों पोस्ट कर सकते हैं? – Maurits

+0

एक उदाहरण के लिए लिंक पोस्ट किया गया है। दिलचस्प प्रश्न के लिए – user987979

+0

+1। क्या आप उन्हें चित्रित करने से पहले छवियों को पोस्ट कर सकते हैं, साथ ही साथ? इससे आपके प्रश्न में कुछ संदर्भ जोड़ने में मदद मिलेगी। – misha

उत्तर

1

आप cosine similarity भी चेक-आउट कर सकते हैं। मैंने वीडियो स्ट्रीम में कट-सीन का पता लगाने पर बड़ी सफलता के साथ इसका इस्तेमाल किया। अनिवार्य रूप से, आप पूरी छवि को 1 डी वेक्टर के रूप में देखते हैं, और कोसाइन समानता माप के साथ आगे बढ़ते हैं। असल में, छोटे कोणों का मतलब एक करीबी मैच होता है, और बड़े मूल्यों का मतलब है कि कोई मेल नहीं है। थ्रेसहोल्ड को आपके डेटासेट के लिए कुछ ट्यूनिंग की आवश्यकता होगी, लेकिन यह काम कर सकता है, और यह बहुत तेज़ है।

सामान्यीकृत क्रॉस-सहसंबंध अधिक मजबूत होना चाहिए, लेकिन इसमें थोड़ा और समय लगेगा।चूंकि आपने अलग-अलग पॉज़ को संभालने की आवश्यकता का उल्लेख किया है, इसलिए आपको एक फीचर डिटेक्शन और निष्कर्षण समाधान भी देखना चाहिए। ओपनसीवी के matcher_simple.cpp और matching_to_many_images.cpp नमूने पर एक नज़र डालें। इन तकनीकों में पैमाने और घूर्णन मतभेदों के लिए कुछ सहनशीलता है।

आशा है कि यह सहायक है!

+1

उच्च आयामी डेटा, जैसे छवि के लिए, मुझे यूक्लिडियन दूरी और कोसाइन समानता के बीच कोई महत्वपूर्ण अंतर की उम्मीद नहीं होगी। – Maurits

4

हाउसडॉर्फ दूरी के साथ शुरुआती बिंदु के रूप में प्रयोग करने के बारे में कैसे? सामान्य विचार और सी कार्यान्वयन here। यहाँ अनुच्छेद:

Comparing images using the Hausdorff distance, डी पी Huttenlocher द्वारा - 1993.

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