पता चला लाइनों के आधार पर एक होमोग्राफी की गणना


12

मुझे पता है कि आप एक "आदर्श मॉडल" और छवि बिंदुओं के बीच पत्राचार बिंदुओं का उपयोग करके छवि से कैमरा प्लेन तक की गणना कर सकते हैं।

मैं इसे फुटबॉल पिच / मैदान के लिए कर रहा हूं, और पिच में सफेद रेखाओं को खोजने के लिए एज डिटेक्शन का उपयोग किया है।

लेकिन कैमरा हमेशा (सभी) पिच को कवर नहीं करता है, इसलिए मैं सभी कोनों को नहीं देख सकता ... और मैं केवल कोनों को मॉडल में 100% ज्ञात बिंदु (कोई अन्य प्रतिष्ठित बिंदु नहीं)।

तो समस्या यह है कि जब तक रेखा किसी अन्य रेखा के साथ प्रतिच्छेद नहीं करती है और एक कोने का निर्माण नहीं करती है, मैं केवल रेखा के छवि बिंदुओं को जानता हूं, न कि यह मॉडल में "सही / वास्तविक दुनिया" निर्देशांक के अनुरूप है।

क्या किसी तरह से मैं एक होमोग्राफी की गणना करने के लिए पता लगाने वाली पंक्तियों का उपयोग कर सकता हूं , या यहां तक ​​कि उम्मीदवार की एक सूची भी बना सकता हूं , भले ही पता चला लाइनें एक-दूसरे के साथ नहीं मिलती हैं और एक कोने बनाते हैं?

उदाहरण की छवि, पिच, हमारे देखने का क्षेत्र, और पिच के बिंदु जहां मैं संबंधित रियलवर्ल्ड / मॉडल निर्देशांक (ग्रीन सर्कल) को जान सकता हूं, और 2 लाइनों का एक उदाहरण जो हमारे देखने के क्षेत्र में पूरी तरह से बेकार हो सकता है। , मुझे इस बात का कोई सुराग नहीं है कि वे पिच के संबंधित रियलवर्ल्ड / मॉडल में किस बिंदु पर शुरू या बंद करते हैं:

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


2
क्या आपके पास कुछ उदाहरण चित्र हैं? या कम से कम रेखा का पता लगाने के लिए संभावित मामलों का एक स्केच? मुझे लगता है कि आपके प्रश्न का संक्षिप्त उत्तर "हाँ, आप कर सकते हैं", लेकिन आपसे अधिक विवरण से अधिक विस्तृत उत्तर देने में मदद मिलेगी :)
पेनेलोप

2
क्या आप एक उदाहरण छवि प्रदान कर सकते हैं? क्या आप कह रहे हैं कि पता चला लाइन सेगमेंट्स इंटरसेक्ट नहीं करते हैं या क्या आपने डिटेक्ट किए गए सेगमेंट को लाइनों तक फैलाने की कोशिश की है और फिर चौराहों को खोजने की कोशिश की है?
पिपलसेक

3
मैंने प्रश्न के लिए एक उदाहरण चित्र जोड़ा
हेनरिक काजस अलस्टैड

1
क्या आपको इसका कभी पता चला ? मुझे नतीजों में भी दिलचस्पी है।

जवाबों:


3

मैं इसके लिए दो दृष्टिकोण बताऊंगा:

1) एक दृष्टिकोण को एक लाइन मैचिंग एल्गोरिदम की आवश्यकता होगी। रेखाओं के मिलान के बाद, आप होमोग्राफी की गणना करने के लिए लाइनों के अंतिम बिंदुओं का उपयोग कर सकते हैं। यह सुनिश्चित करने के लिए कि EDLine या LSD आधारित विवरणक हाल ही में OpenCV में प्रस्तावित किए गए हैं। साथ ही उनमें से हैशिंग और तेजी से मिलान भी लागू किया जाता है। यहां देखें वीडियो:

http://www.youtube.com/watch?v=MqMjvSkM39k

http://www.youtube.com/watch?v=naSWTlbg3To

हाल के opencv_contrib रिपॉजिटरी में इन विधियों का स्रोत कोड है।

इस मामले में कि लाइन एंड पॉइंट शोर कर रहे हैं, आप तब रेखाओं का उपयोग सीधे तौर पर होमोग्राफियों की गणना करने के लिए कर सकते हैं। इस तरह के कागजात तब पढ़े जाएंगे:

आंतरिक रिपोर्ट: 2005-V04 एक छवि जोड़ी जी। लोपेज-निकोलस, जेजे गुरेरो, ओए पजेरो, सी। सैग्यूस में तीन लाइनों या बिंदुओं से कम्प्यूटिंग की गई

आंतरिक रिपोर्ट: 2003-V01 रॉबस्ट लाइन मिलान और एक साथ जी। लोपेज-निकोलस की होमगार्ड का अनुमान

उनके होमोग्राफी टैमिन किम, जिह्वा वू, और इन केवॉन के लिए लाइन्स की संभावित मिलान

2) खेतों के लिए विशिष्ट एक विधि यहाँ दी गई है:

" प्रसारण हॉकी वीडियो के सुधार के लिए लाइन और दीर्घवृत्त सुविधाओं का उपयोग करना ।", गुप्ता, अंकुर, जेम्स जे। लिटिल, और रॉबर्ट जे। वुडहम कंप्यूटर और रोबोट विजन (सीआरवी), 2011 कनाडाई सम्मेलन। IEEE, 2011।

तथा

" होमोग्राफी आकलन के लिए संयोजन रेखा और बिंदु पत्राचार ।", डबरोफ़्स्की, एलेन और रॉबर्ट जे। वुडहम । दृश्य संगणन पर अंतर्राष्ट्रीय संगोष्ठी। स्प्रिंगर बर्लिन हीडलबर्ग, 2008।

विचार इस प्रकार है: कोई भी रेखा, इसके गुणांक मैप्स to का उपयोग कर अन्य छवि में:li=(u,v,1)Tli=(x,y,1)T

li=HTli

इस रूप में समीकरण को सीधे DLT विधि में प्लग किया जा सकता है:

Ai=[u0uxv0vx10x0uuy0vvy01y]

एकमात्र अंतर सामान्यीकरण है, जो आपको उपरोक्त संदर्भों में मिलेगा।

जोड़ना: कोई भी बिंदु शंकु भाग पर स्थित यदि । यह परिवर्तन संबंध को जन्म देता है:xCxTCx=0

C=HTCH1

ऊपर दिए गए संदर्भ यह भी बताते हैं कि इस बाधा को DLT एल्गोरिथ्म में कैसे सम्मिलित किया जाए।

दीर्घवृत्त और रेखाओं का उपयोग करके, एक मजबूत प्रक्षेप्य संबंध प्राप्त करना संभव है।


2

यदि लाइनें समानांतर नहीं हैं, तो आप उनके चौराहे के बिंदु की गणना कर सकते हैं और इसे संदर्भ बिंदु के रूप में उपयोग कर सकते हैं। अपनी पेंटिंग में, आप बैंगनी बिंदुओं का उपयोग कर सकते हैं:

यहाँ छवि विवरण दर्ज करें

वैसे, लाइनों के चौराहे को छवि में नहीं होने की आवश्यकता है। जब तक लाइनें समानांतर होती हैं

यदि लाइनें समानांतर हैं, तो आप अतिरिक्त बाधाओं को प्राप्त करने के लिए उनका उपयोग कर सकते हैं। उदाहरण के लिए यदि आपके पास N <4 अंक और K रेखाएँ हैं तो आप परिवर्तन का अनुमान लगा सकते हैं

याद रखें कि प्रक्षेप्य परिवर्तन का समीकरण है:

x=(a11x+a12y+a13)(a31x+a32y+1)y=(a21x+a22y+a23)(a31x+a32y+1)

आपका लक्ष्य गुणांकa11,a12,a13,a21,a22,a23,a31,a32

इस प्रकार, यदि कोई रेखा जो कि मानचित्रों को , तो:ax+by+c=0Ax+By+C

Ax+By+C=0A(a21x+a22y+a23)+B(a21x+a22y+a23)+C(a31x+a32y+1)=0

इसे फिर से लिखा जा सकता है:

(AxAyABxByBCxCy)(a11a12a13a21a22a23a31a32)=C

( एक्स , वाई ) एक्स + बी वाई + सी = 0A,B,C ज्ञात मूल्य हैं, क्योंकि आपने लाइनों के समीकरणों की गणना की है। आप किसी भी बिंदु लिए इनपुट कर सकते हैं , और अतिरिक्त बाधा प्राप्त कर सकते हैं। उन्हें उन बाधाओं के साथ मिलाएं जो आपको बिंदुओं से मिलती हैं, और आपको अतिरिक्त जानकारी मिल सकती है। ध्यान दें कि आपको दो से अधिक बिंदुओं से अधिक जानकारी नहीं मिलेगी, क्योंकि कोई भी तीसरा बिंदु बाधाओं की मैट्रिक्स में रैखिक निर्भर रेखाओं को जोड़ देगा।(x,y)ax+by+c=0

अतिरिक्त संदर्भ " एलान डबरोव्स्की द्वारा होमोग्राफी का अनुमान " - भाग 2.3.1 देखें, लाइनों से होमोग्राफी का अनुमान।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.