यदि आप ऑब्जेक्ट में 6 ज्ञात बिंदु (ज्ञात 3D निर्देशांक, और ) हैं, तो आप ऑब्जेक्ट समन्वय प्रणाली से संबंधित कैमरे के स्थान की गणना कर सकते हैं।X,YZ
पहले कुछ मूल बातें।
समरूप निर्देशांक यूक्लिडियन समन्वय की सदिश प्रस्तुति है जिसमें हमने तथाकथित पैमाने कारक को जोड़ दिया है, जैसे कि समरूप समन्वय । अपनी स्वयं की गणनाओं में जितनी बार संभव हो सके रखने का प्रयास करें (इसका अर्थ है कि आप सजातीय समन्वय को अपने अंतिम तत्व के साथ विभाजित करके "सामान्य" करते हैं: )। हम 2 डी बिंदुओं के लिए समरूप प्रस्तुति का उपयोग भी कर सकते हैं जैसे कि (याद रखें कि ये और(X,Y,Z)ωX=ω[XYZ1]Tω=1X←Xωx=ω[XY1]ω,X,YZप्रत्येक बिंदु के लिए अलग हैं, यह 2 डी या 3 डी बिंदु हो)। समरूप समन्वय प्रस्तुति गणित को आसान बनाती है।
कैमरा मैट्रिक्स डी प्रोजेक्शन मैट्रिक्स 3 डी दुनिया से छवि सेंसर के लिए है:3×4
x=PX
जहां छवि सेंसर (पिक्सेल इकाइयों के साथ) पर बिंदु है और अनुमानित 3 डी बिंदु है (यह कहता है कि इसकी इकाइयों के रूप में मिलीमीटर है)।xX
हमें याद है कि दो 3-वैक्टरों के बीच क्रॉस उत्पाद को मैट्रिक्स-वेक्टर-गुणन के रूप में परिभाषित किया जा सकता है जैसे:
v×u=(v)xu=⎡⎣⎢0v3−v2−v30v1v2−v10⎤⎦⎥u
यह भी ध्यान रखना उपयोगी है कि उत्पादन को पार ।v×v=0
अब पिछले समीकरणों से प्रोजेक्शन मैट्रिक्स को हल करने का प्रयास करें । लेफ्ट साइड से प्रोजेक्शन समीकरण को क्रॉस उत्पाद मैट्रिक्स से गुणा करें :Px
(x)xx=(x)xPX=0
अहा! परिणाम शून्य वेक्टर होना चाहिए। यदि हम अब खुला समीकरण प्राप्त करते हैं:
⎡⎣⎢0w−y−w0xy−x0⎤⎦⎥⎡⎣⎢P1,1P2,1P3,1P1,2P2,2P3,2P1,3P2,3P3,3P1,4P2,4P3,4⎤⎦⎥X=⎡⎣⎢P3,4Wy−P2,1Xw−P2,2Yw−P2,4Ww+P3,1Xy−P2,3Zw+P3,2Yy+P3,3ZyP1,4Ww+P1,1Xw−P3,4Wx+P1,2Yw−P3,1Xx+P1,3Zw−P3,2Yx−P3,3ZxP2,4Wx+P2,1Xx−P1,4Wy−P1,1Xy+P2,2Yx−P1,2Yy+P2,3Zx−P1,3Zy⎤⎦⎥=0
थोड़ा सा रिफैक्टरिंग के साथ हम मैट्रिक्स के बाहर प्रोजेक्शन मैट्रिक्स प्राप्त कर सकते हैं :P
⎡⎣⎢⎢⎢0Xw−Xy0Yw−Yy0Zw−Zy0Ww−Wy−Xw0Xx−Yw0Yx−Zw0Zx−Ww0WxXy−Xx0Yy−Yx0Zy−Zx0Wy−Wx0⎤⎦⎥⎥⎥⎡⎣⎢⎢P1P2P3⎤⎦⎥⎥=0
जहाँ कैमरा मैट्रिक्स की : th पंक्ति का स्थानान्तरण है । पिछली (बड़ी) मैट्रिक्स समीकरण की अंतिम पंक्ति पहली दो पंक्तियों का रैखिक संयोजन है, इसलिए यह कोई अतिरिक्त जानकारी नहीं लाती है और इसे छोड़ा जा सकता है।PnnP
छोटे ठहराव ताकि हम अपनी मुश्किलों को इकट्ठा कर सकें। ध्यान दें कि पिछले मैट्रिक्स समीकरण का गठन प्रत्येक ज्ञात 3D-> 2D पत्राचार के लिए किया जाना चाहिए (उनमें से कम से कम 6 होना चाहिए)।
अब, प्रत्येक बिंदु पत्राचार के लिए, ऊपर दी गई मैट्रिक्स की पहली दो पंक्तियों की गणना करें, एक दूसरे के शीर्ष पर मैट्रिसेस को स्टैक करें और आपको नया मैट्रिक्स मिलता है जिसके लिए2×12A
A⎡⎣⎢P1P2P3⎤⎦⎥=0
जैसा कि हमारे पास 12 अज्ञात हैं और (कम से कम) 12 समीकरणों को हल किया जा सकता है। केवल समस्या यह है कि हम उस तुच्छ उत्तर को नहीं चाहते हैं जहाँ
⎡⎣⎢P1P2P3⎤⎦⎥=0
सौभाग्य से हम बल के लिए एकवचन मूल्य अपघटन (SVD) का उपयोग कर सकते हैं
∥⎡⎣⎢P1P2P3⎤⎦⎥∥=1
इसलिए समीकरणों को हल करने के लिए, मैट्रिक्स एसवीडी की गणना करें और सबसे छोटे आइजन मूल्य के अनुरूप एकवचन वेक्टर चुनें। यह वेक्टर मैट्रिक्स A का शून्य वेक्टर है और कैमरा मैट्रिक्स लिए भी समाधान है । बस और फॉर्म ।AP[P1P2P3]TP
अब आप वस्तु से दूरी जानना चाहते थे। को इस प्रकार परिभाषित किया गया है:P
P=K[R−RC]
जहाँ वस्तुओं की उत्पत्ति के सापेक्ष कैमरा स्थान है। यह से हल किया जा सकता की गणना के द्वारा एस अशक्त वेक्टर।CPP
(हार्टले, ज़िसरमैन - कंप्यूटर विज़न में मल्टीपल व्यू ज्यामिति)
अंत में, जब आप दो फ़्रेमों के लिए कैमरे के स्थान की गणना करते हैं, तो आप लिए दो समीकरणों को हल करके अज्ञात ऑब्जेक्ट स्थानों (या ऑब्जेक्ट के कुछ बिंदुओं के स्थानों) की गणना कर सकते हैं :X
x1=P1Xx2=P2X
जो बहुत हद तक उसी तरह से जाता है जैसे हमने कैमरा को कैसे हल किया:
(x1)xP1X=0(x2)xP2X=0
और इसी तरह।