2013-01-20 18 views
5

मैं वर्तमान में ब्याज बिंदु डिटेक्टरों के लिए अपना मूल्यांकन-उपकरण समाप्त कर रहा हूं। आखिरी चरणों में मुझे एक भ्रमित त्रुटि मिली।ओपनसीवी सीवी खोज होमोग्राफी दावा त्रुटि - काउंटर => 4

Mat findHomography(InputArray srcPoints, InputArray dstPoints, int method=0, double ransacReprojThreshold=3, OutputArray mask=noArray()) 

srcPoints और dstPointsvector<Points2f> जो मिलान keypoints की इसी अंक संग्रहीत करता है। अब तक कुछ खास नहीं है - यह ट्यूटोरियल्स की तरह है।

लेकिन जब मैं RANSAC का उपयोग करता हूं और vector<Points2f> श्रेणी [0, ..., 4] में है, तो मुझे काउंटर की तुलना में अधिक दावा होना चाहिए या चार बराबर होना चाहिए।

प्रश्न 1: क्या एल्गोरिदम को कम से कम चार बिंदुओं की आवश्यकता है ताकि वर्तमान मॉडल से संबंधित हो या सर्वसम्मति बनाने के लिए?

प्रश्न 2: क्या इस बारे में कोई दस्तावेज है? (मैंने doc और tutorials पर एक नज़र डाली।)

Please note that I already have seen this question। लेकिन RANSAC के व्यवहार के लिए कोई संतोषजनक उत्तर नहीं है। या मुझे यह स्वीकार करना चाहिए कि होमोग्राफी खोजने के लिए इस विधियों को कम से कम चार अंक चाहिए?

आपकी मदद के लिए धन्यवाद।

उत्तर

8

एक होमोग्राफी को 4 अंकों से कम के साथ गणना नहीं की जा सकती है। ऐसा इसलिए है क्योंकि केवल 3 अंक के साथ एक परिप्रेक्ष्य अस्पष्टता है। तस्वीर एक त्रिकोण

a 


b  c 
छवि 1 में

छवि 2 में अंक इस

a 


b c 

बी और सी के बीच की दूरी आधी कर दिया गया है की तरह लग रहे करने के लिए बदल गए हैं। दुर्भाग्य से आप नहीं जानते कि क्या ऐसा इसलिए है क्योंकि बिंदु सी आपके या आपके आगे से निकट हो गया है। चौथे बिंदु के साथ अंतर स्पष्ट हो जाता है।

a  d 


b  c 

यहाँ छवि में एक वर्ग 1

 d 


a   


b c  

यहाँ घ और ग घुमाया ओर

a  

    d 
b c 

और यहाँ वे तुम से दूर घुमाया है।

मुझे ओपनसीवी दस्तावेज में यह आवश्यकता नहीं दिखाई देती है, लेकिन यदि आपको होमोग्राफी गणना पर कोई संसाधन मिलता है तो आपको यह आवश्यकता मिलने से पहले और 4 अंकों के अधिक कठोर प्रमाण को पर्याप्त रूप से पढ़ने की आवश्यकता नहीं होगी।

4

RANSAC का उपयोग अधिक सेट या पत्राचार में मिलान करने वाले बिंदुओं के 4 जोड़े का चयन करने के लिए किया जाता है (यानी srcPoints.size() >= 4)। यही कारण है कि srcPoints.size() <=4 अगर आपको कोई त्रुटि मिलती है।

आपको कम से कम 4 पत्राचार की आवश्यकता है क्योंकि होमोग्राफी मैट्रिक्स H में 8 डिग्री स्वतंत्रता है, इसलिए समाधान खोजने के लिए 8 रैखिक समीकरणों की आवश्यकता होती है। चूंकि अंक के प्रत्येक जोड़े दो रैखिक समीकरण उत्पन्न करते हैं (एक्स और वाई निर्देशांक का उपयोग करके) आपको कम से कम 4 पत्राचार की आवश्यकता होगी।

+0

क्या आप कृपया मुझे एक संकेत दे सकते हैं जहां मैं इस समीकरण को पढ़ सकता हूं? मुझे केवल ग्रंथों में कुछ वाक्यांश मिले जो मुझे बताते हैं कि "आपको कम से कम चार अंक चाहिए" लेकिन बिना किसी स्पष्टीकरण के। –

+0

इसे देखें: http://cseweb.ucsd.edu/classes/wi07/cse252a/homography_estimation/homography_estimation.pdf – memecs

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