छानने RANSAC अनुमानित होमोग्राफी


10

मैं कैमरों के साथ ली गई छवियों के जोड़े के बीच होमोग्राफी अनुमान के लिए RANSAC एल्गोरिथ्म का उपयोग कर रहा हूं, जिनके बीच कोई अनुवाद नहीं है (शुद्ध रोटेशन और स्केल / ज़ूम के परिवर्तन)। यह आधे मामलों में अच्छा काम करता है। सही आउटपुट इस तरह दिखता है:

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

लाल रेखाएं फ़िल्टर किए गए पत्राचार हैं और चतुर्भुज यह दर्शाते हैं कि होमोग्राफी कैसे विकृत करती है।

कभी-कभी, हालांकि, कई बुरे मामले होते हैं, जैसे:

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

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

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

RANSAC लूप में मेरा पहले से ही एक साधारण परीक्षण है। यह एक साधारण चतुर्भुज (एक इकाई वर्ग) बनाता है और इसे नमूना परिवर्तन के साथ बदल देता है। फिर यह दिखता है कि क्या परिवर्तन ने अपनी उत्कर्षता को बनाए रखा है।

फिर भी, अवतल चतुर्भुज के गुच्छे निकलते हैं।

क्या आपके पास कोई विचार है कि होमोग्राफी का सही तरीके से परीक्षण कैसे करें, अगर यह "अच्छी तरह से" व्यवहार करता है और गलत समाधान को फ़िल्टर करता है?

मुझे कुछ कोड मिले, जहां उन्होंने परीक्षण किया कि तीनों में से कोई भी एक बिंदु नहीं है। लेकिन यह पर्याप्त नहीं लगता है क्योंकि यह बाहर deltoids और अन्य "अवैध" चतुर्भुज फ़िल्टर नहीं होगा ...

जवाबों:


1

इस विषय पर एक दिलचस्प पेपर है: http://link.springer.com/chapter/10.1007%2F978-3-642-17691-3_19#

पेपर RANSAC एल्गोरिथ्म में होमोग्राफी की गणना करने से पहले कुछ गलत पत्राचार को फ़िल्टर करने की विधि का वर्णन करता है।


4

यह जांचने में समस्या है कि होमोग्राफी ठीक है या नहीं।

सही आत्मकथाओं की जाँच के लिए एल्गोरिथ्म किसी की दिलचस्पी हो सकती है, इसलिए मैं इसे यहाँ लिखूंगा:

1) शीर्ष निर्देशांक के साथ एक चतुर्भुज बनाएँ (समरूप निर्देशांक में):ABDC

A:(w/2,h/2,1.0)B:(w/2,h/2,1.0)C:(-w/2,/2,1.0)डी:(w/2,/2,1.0)

w,

'बी'डी'सी'सी'=एचसी

यूv

1:+(डी-)रों=+यूरों2:बी+(सी-बी)टी=बी+vटी

1=2

टी=1[(बीy-y)यूएक्स-(बीएक्स-एक्स)यूy]

रों=1[(एक्स-बीएक्स)vy-(y-बीy)vएक्स]

रों,टी(0,1)

रों,टी(λ,1.0-λ)λ=0.01

उपरोक्त एल्गोरिथ्म में तय की गई पुरानी समस्या:

मुझे यहां समस्या मिली - एक निश्चित होमोग्राफी होने पर, परीक्षण एक छोटे चतुर्भुज के लिए पारित हो सकता है, लेकिन बड़े के लिए नहीं। यही कारण है कि कुछ "बीमार" गृहणियों से गुजरा।

हरे रंग का वर्ग एक स्रोत छवि का प्रतिनिधित्व करता है, नारंगी एक रूपांतरित है। जैसा कि आप देख सकते हैं, बाएं हाथ एक उत्तल है, लेकिन स्रोत बड़ा होने के कारण ख़राब होने लगता है:

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

अंत में भी बड़े स्रोत उपज गैर परिवर्तित चतुर्भुज:

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

(एक्स,y,w)एक्सyw

मैंने तदनुसार एल्गोरिथ्म को ठीक किया है।


1

x_i \ sim Hx_i ^ '\ sum_ {j = 1 \ dots n} \ | x_j - Hx_j ^ '\ |एच ^ 'x ^ '= H ^' x\ sum_ {j = 1 \ dots n} \ | x_j - Hx_j ^ '\ | + \ _ x_j ^ '- H ^' x \ |

हार्टले और ज़िसरमैन देखें - कंप्यूटर विज़न अध्याय 4.2 और विशेष रूप से 4.2.3 और समीकरण (4.8) पर कई दृश्य ज्यामिति।


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

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

रेखाएँ संगत बिंदुओं को जोड़ती हैं और मैंने उन सभी की जाँच की - जब चित्र संरेखित होते हैं, तो वे सभी मिलते हैं। जब मैं खराब मिलान छवि जोड़े को बाहर करता हूं, तो यह एक अच्छा चित्रमाला में परिणत होता है।
१17

चित्र एक घूमने वाले कैमरे का उपयोग करके बनाए गए हैं, इसलिए ऐसा लग सकता है कि विमान बदलते हैं, लेकिन चूंकि कैमरे ऑप्टिकल केंद्र के बारे में घूमते हैं, मुझे पूरा यकीन है कि एक होमोग्राफी का अनुमान है। मैं भी फोकल लंबाई और रोटेशन मैट्रिक्स की गणना कर सकते हैं। लेकिन समस्या कहीं और है, मेरे सॉफ्टवेयर में एक विचित्रता मुझे
ढूंढनी है

आह, आपने यह जानकारी शामिल नहीं की कि कैमरों के बीच कोई अनुवाद नहीं है। फिर आप सही हैं और होमोग्राफी छवियों के बीच परिवर्तन का वर्णन करती है।
buq2
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.