2 डी कैमरे का उपयोग करके 3 डी स्थिति का अनुमान


9

मेरे पास एक कैमरा (आईफोन) है, मेरे पास छवि में एक 3 डी कंट्रोल ऑब्जेक्ट है जिसे मैं इसके गुणों को अच्छी तरह से जानता हूं। (मेरी नियंत्रण वस्तु)। गति में एक द्वितीयक वस्तु भी है। अंतिम लक्ष्य किसी दिए गए समय के लिए चलती वस्तु के 3 डी प्रक्षेपवक्र की स्थापना करना है। (नज़र रखना)

मुझे पूछना पसंद है, क्या मुझे पता चल सकता है?

  • नियंत्रण वस्तु के लिए फोन की दूरी (चर्चा के लिए, मान लें कि कैमरा कुछ ऊंचाई पर है और निश्चित दूरी पर दोनों में से कोई भी ज्ञात नहीं है लेकिन कैमरा उस सतह के लंबवत है जो ज्ञात है)

  • द्वितीयक ऑब्जेक्ट जहां मैं प्रत्येक बाद के फ्रेम में ऑब्जेक्ट का पता लगा सकता हूं। मेरा लक्ष्य इसके 3 डी प्रक्षेपवक्र का अनुमान लगाना है जैसा मैंने ऊपर बताया है।

बोनस प्रश्न, हम सिस्टम को ऐसा बना सकते हैं कि नियंत्रण वस्तु पर फोन की दूरी निर्धारित की जा सकती है (हालांकि पसंदीदा नहीं है), क्या इससे मुझे दूसरे बिंदु पर मदद मिलेगी?


क्या आप इस क्षेत्र के साहित्य से परिचित हैं? यदि मैं कुछ कागजात की सिफारिश नहीं कर सकता, लेकिन चेतावनी दी है: गणित शामिल है।
एमर

@ यदि आप कुछ संकेत प्रदान कर सकते हैं तो यह बहुत अच्छा होगा। गणित कोई समस्या नहीं है, हम गणित से प्यार करते हैं।
Ktuncer


@emre मैंने रिव्यू पेपर पर एक त्वरित नज़र डाली .. यह ट्रैकिंग के लिए अधिक है, मैं ऑब्जेक्ट को आसानी से ट्रैक कर सकता हूं, यह मुद्दा नहीं है। मैं उस पॉइंट को पिन कर सकता हूं जिसमें पिक्स ऑब्जेक्ट है। मुद्दा यह है कि ऑब्जेक्ट 3 डी स्पेस में कहां है। क्या यह संभव है? मूल रूप से, मेरे पास 3 डी स्पेस में एक और ऑब्जेक्ट है जो मुझे उन गुणों को जानता है जिन्हें मैं संदर्भ के फ्रेम के रूप में उपयोग कर सकता हूं लेकिन यह है।
Ktuncer

आई एम सॉरी, गलत पेपर। शायद आप अज्ञात वातावरण [पीडीएफ] के लिए विज़न-आधारित 3 डी प्रक्षेपवक्र ट्रैकिंग को अनुकूलित कर सकते हैं ? वे एक स्टीरियो कैमरा का उपयोग करते हैं; क्या यह आपके लिए एक संभावना है?
एमरे

जवाबों:


15

यदि आप ऑब्जेक्ट में 6 ज्ञात बिंदु (ज्ञात 3D निर्देशांक, और ) हैं, तो आप ऑब्जेक्ट समन्वय प्रणाली से संबंधित कैमरे के स्थान की गणना कर सकते हैं।X,YZ

पहले कुछ मूल बातें।

समरूप निर्देशांक यूक्लिडियन समन्वय की सदिश प्रस्तुति है जिसमें हमने तथाकथित पैमाने कारक को जोड़ दिया है, जैसे कि समरूप समन्वय । अपनी स्वयं की गणनाओं में जितनी बार संभव हो सके रखने का प्रयास करें (इसका अर्थ है कि आप सजातीय समन्वय को अपने अंतिम तत्व के साथ विभाजित करके "सामान्य" करते हैं: )। हम 2 डी बिंदुओं के लिए समरूप प्रस्तुति का उपयोग भी कर सकते हैं जैसे कि (याद रखें कि ये और(X,Y,Z)ωX=ω[XYZ1]Tω=1XXωx=ω[XY1]ω,X,YZप्रत्येक बिंदु के लिए अलग हैं, यह 2 डी या 3 डी बिंदु हो)। समरूप समन्वय प्रस्तुति गणित को आसान बनाती है।

कैमरा मैट्रिक्स डी प्रोजेक्शन मैट्रिक्स 3 डी दुनिया से छवि सेंसर के लिए है:3×4

x=PX

जहां छवि सेंसर (पिक्सेल इकाइयों के साथ) पर बिंदु है और अनुमानित 3 डी बिंदु है (यह कहता है कि इसकी इकाइयों के रूप में मिलीमीटर है)।xX

हमें याद है कि दो 3-वैक्टरों के बीच क्रॉस उत्पाद को मैट्रिक्स-वेक्टर-गुणन के रूप में परिभाषित किया जा सकता है जैसे:

v×u=(v)xu=[0v3v2v30v1v2v10]u

यह भी ध्यान रखना उपयोगी है कि उत्पादन को पार ।v×v=0

अब पिछले समीकरणों से प्रोजेक्शन मैट्रिक्स को हल करने का प्रयास करें । लेफ्ट साइड से प्रोजेक्शन समीकरण को क्रॉस उत्पाद मैट्रिक्स से गुणा करें :Px

(x)xx=(x)xPX=0

अहा! परिणाम शून्य वेक्टर होना चाहिए। यदि हम अब खुला समीकरण प्राप्त करते हैं:

[0wyw0xyx0][P1,1P1,2P1,3P1,4P2,1P2,2P2,3P2,4P3,1P3,2P3,3P3,4]X=[P3,4WyP2,1XwP2,2YwP2,4Ww+P3,1XyP2,3Zw+P3,2Yy+P3,3ZyP1,4Ww+P1,1XwP3,4Wx+P1,2YwP3,1Xx+P1,3ZwP3,2YxP3,3ZxP2,4Wx+P2,1XxP1,4WyP1,1Xy+P2,2YxP1,2Yy+P2,3ZxP1,3Zy]=0

थोड़ा सा रिफैक्टरिंग के साथ हम मैट्रिक्स के बाहर प्रोजेक्शन मैट्रिक्स प्राप्त कर सकते हैं :P

[0000XwYwZwWwXyYyZyWyXwYwZwWw0000XxYxZxWxXyYyZyWyXxYxZxWx0000][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[RRC]

जहाँ वस्तुओं की उत्पत्ति के सापेक्ष कैमरा स्थान है। यह से हल किया जा सकता की गणना के द्वारा एस अशक्त वेक्टर।CPP

(हार्टले, ज़िसरमैन - कंप्यूटर विज़न में मल्टीपल व्यू ज्यामिति)

अंत में, जब आप दो फ़्रेमों के लिए कैमरे के स्थान की गणना करते हैं, तो आप लिए दो समीकरणों को हल करके अज्ञात ऑब्जेक्ट स्थानों (या ऑब्जेक्ट के कुछ बिंदुओं के स्थानों) की गणना कर सकते हैं :X

x1=P1Xx2=P2X

जो बहुत हद तक उसी तरह से जाता है जैसे हमने कैमरा को कैसे हल किया:

(x1)xP1X=0(x2)xP2X=0

और इसी तरह।


क्या यह कहना सही है कि कैमरे की 3D स्थिति की गणना करने का आपका तरीका OpenCV सॉल्यूशन के बराबर है? docs.opencv.org/2.4/modules/calib3d/doc/… (पेज में solutionPnP के लिए खोज। मैं एक URL को # के साथ पेस्ट नहीं कर सकता)
gregoiregentil
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.