2012-06-30 16 views
6

मेरे पास कुछ संलग्न मार्करों के साथ एक कठोर शरीर की छवियों का एक सेट है। मैंने इन मार्करों में से एक में मूल के साथ एक समन्वय प्रणाली परिभाषित की है और मैं इस समन्वय प्रणाली और कैमरे के मूल में परिभाषित एक के बीच घूर्णन और अनुवाद प्राप्त करना चाहता हूं।कैमरा अंशांकन (ओपनसीवी 2.3) - विकृति पैरामीटर का उपयोग कैसे करें?

मैंने कुछ समय के लिए POSIT (this के बाद) स्वीकार्य परिणाम प्राप्त किए बिना कोशिश की, जब तक मुझे एहसास हुआ कि मुझे कैमरे को पहले स्थान पर कैलिब्रेट करना था। this के आधार पर और अंशांकन निकाय के साथ अधिग्रहित कुछ छवियों का उपयोग करके, मुझे कैमरा इंट्रिनिक्स मैट्रिक्स और विकृति पैरामीटर मिला। मुझे 1.276 की एक खराब (?) पुन: प्रक्षेपण त्रुटि भी मिली।

  1. पुन: प्रक्षेपण त्रुटि बहुत अधिक है? मैं इसे कैसे सुधार सकता हूँ? (मैंने और अधिक छवियों का उपयोग किया और मूल्य की थोड़ी कमी हासिल की)।
  2. क्या मैं पीओएसआईटी में विकृति पैरामीटर का उपयोग कर सकता हूं? कैसे?

धन्यवाद।


ऐसा लगता है कि एक ही रास्ता पुनः प्रक्षेपण त्रुटि में कमी लाने के लिए (यह से बदल ~ 1.3 की ~ 0.7) XML कॉन्फ़िगरेशन फ़ाइल में '0' निम्नलिखित मानकों को निर्धारित करके है:

<Calibrate_FixAspectRatio> 0 </Calibrate_FixAspectRatio> 
<Calibrate_AssumeZeroTangentialDistortion> 0 </Calibrate_AssumeZeroTangentialDistortion> 
<Calibrate_FixPrincipalPointAtTheCenter> 0 </Calibrate_FixPrincipalPointAtTheCenter> 

अधिक छवियों का उपयोग करना त्रुटि को नहीं बदलता है और मुझे अभी भी यकीन नहीं है कि यह नई त्रुटि स्वीकार्य है या नहीं।

मैंने पॉज़िट में आउटपुट (अर्थात् फोकल लम्बाई और ऑप्टिकल सेंटर) के रूप में दिए गए मानों का उपयोग किया था, लेकिन जब मैं प्री-कैलिब्रेशन मानों का उपयोग कर रहा था तो परिणाम मुझे बहुत ही समान थे। मैंने विरूपण पैरामीटर का उपयोग नहीं किया क्योंकि मुझे नहीं पता कि उन्हें पीओएसआईटी में कैसे संभाला जाए (क्या वे परिणामों में अंतर डाल सकते हैं?)।

कैमरा मैट्रिक्स मैं अंशांकन के बाद मिल गया:

<Camera_Matrix type_id="opencv-matrix"> 
<rows>3</rows> 
<cols>3</cols> 
<dt>d</dt> 
<data> 
2.0613885351075501e+003 0. 2.2865517805186334e+002 0. 
2.2546461307897816e+003 2.5261706201677623e+002 0. 0. 1. 
</data> 
</Camera_Matrix> 

और जिस तरह मैं मंज़ूर में इसका इस्तेमाल किया:

#define FOCAL_LENGTH 2158.0175 
#define FOCAL_LENGTH_X 2061.389 
#define FOCAL_LENGTH_Y 2254.646 
#define cX 203.655 
#define cY 205.117 

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

मैं दो अलग-अलग छवियों पर पीओएसआईटी का उपयोग कर रहा हूं, जहां सैद्धांतिक रूप से मुझे मॉडल और कैमरे समन्वय प्रणाली के बीच 0 (पहले के लिए) और 10 (दूसरी के लिए) डिग्री का घूर्णन प्राप्त करना चाहिए। प्रत्येक छवि के लिए रोटेशन मैट्रिक्स प्राप्त करने के बाद, मैंने कैमरा समन्वय प्रणाली पर एक यूनिट वेक्टर परिभाषित किया और इसे मॉडल समन्वय प्रणाली पर पीओएसआईटी द्वारा दिए गए दो रोटेशन मैट्रिक्स के विपरीत से गुणा करके मॉडल में दो नए वैक्टर प्राप्त करने के साथ गणना की समन्वय प्रणाली। जब मैं मॉडल समन्वय प्रणाली में इन दो वैक्टरों के बीच कोण की गणना करता हूं, तो आउटपुट ऐसा नहीं होना चाहिए - 10 डिग्री।

क्या किसी को पता है कि मैं गलत कहां जा रहा हूं?

+0

यह उल्लेख करना भूल गया कि मेरा अंशांकन शरीर एक सर्कल ग्रिड पैटर्न है, न कि सामान्य शतरंज। –

उत्तर

2

छवि संकल्प कौन सा है? मुख्य बिंदु छवि केंद्र के करीब होना चाहिए। लेंस की फोकल लम्बाई कौन सा है? आपको आवश्यक परिशुद्धता के आधार पर वह अंशांकन त्रुटि ठीक हो सकती है। लेंस विकृति द्वारा पेश की गई त्रुटि से बचने के लिए आपको UndistortPoints का उपयोग करके POSIT को पारित छवि बिंदुओं को अनदेखा करना चाहिए।यह त्रुटि कितनी बड़ी है कि आपके लेंस की विकृति कितनी बड़ी है।

+0

मेरे पास छवि संकल्प और न ही फोकल लम्बाई के बारे में कोई जानकारी नहीं है - यही कारण है कि मैंने अंशांकन किया था। कैमरा मैट्रिक्स से मुझे एक्स और वाई में फोकल लम्बाई मिलती है और छवि का मुख्य बिंदु (यह छवि केंद्र के करीब है)। क्या मेरा तर्क कहीं गलत है? –

+0

छवि संकल्प आपकी छवियों की चौड़ाई और ऊंचाई है। आपको अपने लेंस की वास्तविक फोकल लंबाई (8 मिमी, 16 मिमी, ...) पता होना चाहिए। छवि संकल्प और वास्तविक फोकल लंबाई फ़ोकल लंबाई मान निर्धारित करती है जिसे अंशांकन प्रक्रिया के साथ अनुमानित किया जाना चाहिए। बीटीडब्ल्यू, सीएक्स और सीवाई 228.655 और 252.617 नहीं होना चाहिए? –

+0

बस इसे मिला .. मैं छवि बिंदुओं का गलत लेबलिंग कर रहा था, इसे पहले नहीं खोज सका। आपकी मदद के लिए धन्यवाद जेवियर! –

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