कैमरा कैलिब्रेशन / पिन होल कैमरा मॉडल और 3 डी पोजीशन का वर्कआउट


10

मेरे पास एक कैलिब्रेटेड कैमरा है और आंतरिक पैरामीटर हैं। मेरे पास वास्तविक दुनिया में एक तल सतह पर एक बिंदु (विश्व उत्पत्ति) के सापेक्ष बाहरी पैरामीटर भी हैं। इस बिंदु को मैंने वास्तविक दुनिया में मूल के रूप में निर्धारित किया है [0,0,0] सामान्य [0,0,1] के साथ।

इन बाहरी मापदंडों से मैं दुनिया के प्लेन 3 डी कोऑर्डिनेट में कैमरा पोजिशन और रोटेशन को इस्तेमाल कर सकता हूं: http://en.wikipedia.org/wiki/Camera_resectioning

अब मेरे पास एक दूसरा बिंदु है जिसे मैंने छवि निर्देशांक के लिए निकाला है [x, y]। अब मैं विश्व समन्वय प्रणाली में इस बिंदु की 3 डी स्थिति कैसे प्राप्त करूं?

मुझे लगता है कि यहाँ अंतर्ज्ञान यह है कि मुझे एक किरण का पता लगाना है जो कैमरे के ऑप्टिकल केंद्र से जाता है (जो कि अब ऊपर वर्णित के लिए 3 डी स्थिति है), कैमरे के छवि विमान [एक्स, वाई] के माध्यम से और फिर अपने वास्तविक विश्व विमान के माध्यम से जिसे मैंने सबसे ऊपर परिभाषित किया था।

अब मैं एक दुनिया को 3 डी किरण के साथ समतल कर सकता हूँ क्योंकि मैं सामान्य जानता हूँ और उस विमान को इंगित करता हूँ। जब मुझे यह नहीं मिलता है कि मैं 3D स्थिति और दिशा का पता कैसे लगाता हूं, जब यह एक पिक्सेल के माध्यम से छवि विमान को छोड़ देता है। यह विभिन्न समन्वय प्रणालियों के माध्यम से परिवर्तन है जो मुझे भ्रमित कर रहा है।


इस उत्तर की जाँच करें, यह मदद कर सकता है। अगर आपको लगता है कि कुछ भी पूरा हो सकता है / मुझे बताएं। dsp.stackexchange.com/a/2737/1473
— Jav_Rock 10

जवाबों:


6

यदि आपके पास एक्सटेंसिनिक्स है तो यह बहुत आसान है। एक्सट्रिंसिक्स होने के रूप में "कैमरा पोज" और होमोग्राफी होने के समान है। इस पोस्ट की जाँच करें stackoverflow में।

आपके पास एक्सट्रिंसिक्स हैं, जिन्हें कैमरा पोज़ भी कहा जाता है, जिसे अनुवाद और घुमाव के रूप में वर्णित किया जाता है:

Pose=[R|t]=[R11R12R13txR21R22R23tyR31R32R33tz]

आप प्राप्त कर सकते हैं homography से पोज इस तरह:

H=1tz[R1xR2xtxR1yR2ytyR1zR2ztz]

फिर आप अपने 2 डी बिंदुओं को होमोग्राफी को अंकों से गुणा करके संबंधित 3 डी बिंदुओं में प्रोजेक्ट कर सकते हैं:

p2D=[xy1] add उन्हें सजातीय बनाने के लिएz=1

p3D=H∗p2D

p=p/p(z) बिंदुओं को सामान्य करें


आप यहाँ p (z) से क्या मतलब है?
— बेलाल होमैडान

3

आपके पास दो विकल्प हैं, दो विमानों (होमोग्राफी) के बीच बैक प्रोजेक्शन या प्रोजेक्शन का उपयोग करें।

बैक प्रोजेक्शन के साथ आप कैमरा मैट्रिक्स का एक छद्म उलटा लेते हैं और परिणाम को अपनी छवि के समरूप प्रस्तुतीकरण के साथ गुणा करते हैं:P

P=K[R−RC]Xreprojected=P+x

अब आपके पास एक 3D लाइन है जो कैमरा केंद्र और बिंदु गर्त में ले जाती है । यदि आप चाहें, तो आप इसे प्रस्तुति के साथ आसानी से निपटा सकते हैं। उदाहरण के लिए एक बिंदु और दिशा सदिश के साथ (समरूप निर्देशांक को सामान्य करने के लिए याद रखें जैसे पैमाने कारक वास्तविक गणना से पहले):एक्स वी = ω [ एक्स वाई जेड 1 ] टी ω = 1CXV=ω[XYZ1]Tω=1

u=Xreprojected−Cv=u‖u‖L(t)=C+tv

यदि आपके पास विमान तो आप समीकरण हल कर सकते हैं। लिए ।एल ( टी ) = Π टीΠ=[π1π2π3π4]T,π1X+π2Y+π3Z+π4=0L(t)=Πt

यदि आप होमोग्राफी का उपयोग करने का निर्णय लेते हैं, तो आपको होमोग्राफी मैट्रिक्स गणना करने की आवश्यकता होती है, जिसे imaged विमान और कैमरा सेंसर के विमान के बीच प्रक्षेपण के रूप में परिभाषित किया गया है:एच3×3H

Xplane=[XY01]Tx=PXplane=H[XY1]T

अब यदि आप : जानते हैंx

Xplane=H−1x

यदि आपने कैमरे को कैलिब्रेट करते समय गणना नहीं की है (शायद प्रत्यक्ष रैखिक परिवर्तन, डीएलटी का उपयोग करके), तो आप निम्न सूत्रीकरण का उपयोग कर सकते हैं:H

H=R+1dTNT

जहां प्लेन से कैमरे की dinstance है और । (मा, सोआटो, कोसेका, शास्त्री - छवियों से 3-डी विजन के लिए एक निमंत्रण, जीईएस मॉडल, पी। 132)dT=−RC


2

आप दूसरे बिंदु की 3D स्थिति नहीं जान सकते। यह आपके कैमरे के केंद्र से किरण तक किसी भी बिंदु हो सकता है अनंत तक।

आप निम्न कार्य कर सकते हैं:

  • एक पूर्वनिर्धारित 3 डी स्पेस बनाएं जो वास्तविक जीवन दृश्य जैसा दिखता है
  • एक अलग कोण से छवियों के अधिक अंक प्राप्त करें, विभिन्न कोणों से किरणों के प्रतिच्छेदन का उपयोग करके, आप 3 डी बिंदु का एक अनुमान प्राप्त कर सकते हैं।

डटे रहो। मैं 3 डी विश्व बिंदु पा सकता हूं कि 3 डी किरण प्लेनर की सतह को काटती है, निश्चित रूप से? जैसा कि मुझे पता है कि एक 3 डी दुनिया का समन्वय है और एक 3 डी दुनिया उस विमान के सामान्य ..... 3 डी बिंदु जो मैं खोजने की कोशिश कर रहा हूं वह बिंदु है जो कि प्लेनर की सतह को काटता है !! (क्षमा करें, मुझे लगता है कि मेरी व्याख्या पर्याप्त नहीं थी)
— चीता

आप तलीय सतह के साथ क्या मतलब है? छवि विमान, या शून्य दुनिया के विमान निर्देशांक? उत्तरार्द्ध के मामले में, आप चौराहे की गणना कर सकते हैं, लेकिन इसका मतलब है कि आपका 3 डी दृश्य 3 डी नहीं है, लेकिन 2 डी :) (क्योंकि यह एक विमान है)।
— गेर्टन

क्षमा करें, यह मेरे लिए नहीं हुआ। मैं समझता हूं कि आप क्या कह रहे हैं, यह सिर्फ मेरे लिए वास्तव में दृष्टिगोचर नहीं है। तो, हां मेरा दृश्य वास्तव में "2d" है क्योंकि मेरे पास छवि विमान है और मेरे पास वास्तविक विश्व विमान है, जिस पर वास्तविक विश्व उत्पत्ति [0,0,0] है और वास्तविक दुनिया सामान्य है [0,0] 1], इसलिए प्रत्येक बिंदु जो इस वास्तविक विश्व विमान पर स्थित है, [x, y, 0] के रूप में है। मुझे पता है कि मैं चौराहे की गणना कर सकता हूं हालांकि कुल्हाड़ी + द्वारा + cz + d = 0, लेकिन यह वही है जो मुझे परेशान कर रहा है। (अगली टिप्पणी में जारी रखने के लिए)
— चीता

मेरे पास एक किरण है जो मेरे कैमरा सेंटर / ओरिजिन पर शुरू होती है, जिसके लिए मेरे पास असली दुनिया [x, y, z] है और एक वास्तविक दुनिया सामान्य [nx, ny, nz] है। मुझे इस बिंदु से एक किरण की आग लगाने की ज़रूरत है जो छवि विमान को [यू, वी] पर प्रतिच्छेद करती है और फिर वास्तविक दुनिया के विमान को [x, y, 0] पर काटती है (यह यह x, y है जिसे मैं प्राप्त करना चाहता हूं)। मुझे जो परेशानी हो रही है, वह पहला बिट है, छवि विमान के साथ चौराहा। मैं यह नहीं देख सकता कि मैं ऐसा कैसे करूं?
— चीता

आप इसे देखना चाहते हैं: en.wikipedia.org/wiki/Line-plane_intersection
— Geerten
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.