लॉग-पोलर डीएफटी आधारित स्केल-इनवेरिएंट इमेज रजिस्ट्रेशन


10

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

रिश्तेदार पैमाने को खोजने के लिए एल्गोरिथ्म, जैसा कि मैं समझता हूं, यह है (देखें: कागज से फ्लोचार्ट ):

F1 = DFT(I1)
F2 = DFT(I2)
H1 = Highpass(F1)
H2 = Highpass(F2)
L1 = LogPolar(Magnitude(H1))
L2 = LogPolar(Magnitude(H2))
PC = PhaseCorrelate(L1,L2)
PM = norm(PC)
R = IDFT(PhaseCorr/PM)
P = Peak(R)
Scale = LogBase^P[1]

स्केल मुझे उचित रूप से निरर्थक मूल्य देता है (छवि से छवि से अलग और कभी सही नहीं)।

लेकिन पैमाने की अनदेखी, अनुवाद के लिए एक ही चरण सहसंबंध दृष्टिकोण ठीक काम करता है; और इसलिए मुझे संदेह है कि मुझे अपने लॉग-पोल परिवर्तन के साथ समस्या है। यहां एक उदाहरण दिया गया है, जहां मैंने अनुवाद के लिए हल किया है - बाईं छवि मूल है और दाईं ओर क्रॉप और अनुवाद किया गया है - समाधान को ओरिजिनल के शीर्ष पर दिखाया गया है:

अनुवाद अकेले काम करता है

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

I^(ρ,θ)=I(r+ρcos(2πθNθ),rρsin(2πθNθ))
IrNθθ
I^log(ρ,θ)=I^(logb(ρ),θ)
b=(2r)Nρ

यहाँ लॉग-पोल स्पेस में के उदाहरण के चित्र हैं (अगर इसमें कुछ गड़बड़ है)ρ=θ=256

ध्रुवीय लॉग करें

अंत में, यह वास्तविक परिवर्तन दिखाता है कि चित्र चरण सहसंबंध चरण से पहले गुजरते हैं (शीर्ष डीएफटी परिमाण पोस्ट हाईपास फिल्टर है, नीचे लॉग इन पोलर स्पेस है):

DFT के ध्रुवीय लॉग करें

मैं OpenCV का उपयोग कर रहा हूं, जिसमें LogPolar और PhaseCorrelate विधियां हैं। जबकि फेजक्रॉलेट, मेरे मैनुअल कार्यान्वयन की तरह, मुझे अनुवाद के लिए सही उत्तर देता है, यह पैमाने पर गलत है। OpenCV LogPolar या मेरे खुद के उपयोग से शुद्धता पर कोई असर नहीं पड़ता, मुझे कुछ याद आ रहा है।

किसी भी सहायता की सराहना की जाएगी।


1
क्या आपने पता लगाया कि क्या गलत था?
श्री। उपास्यमेव

1
@ Mr.WorshipMe दुर्भाग्य से नहीं।
ड्रू कमिंस

@ ड्रू कमिंस, मुझे लगता है कि यह आपके द्वारा उपयोग की जाने वाली परीक्षण छवि के कारण था, क्योंकि पृष्ठभूमि से तेज संक्रमण था। अन्य परीक्षण छवियों के बारे में कैसे? इसके अलावा, अंतिम आंकड़े से, दो परिमाण के बीच स्पष्ट अंतर थे, इस प्रकार डीएफटी से पहले उचित विंडोिंग पूर्व-प्रसंस्करण को बेहतर करना बेहतर है।
lxg

कुछ दिन पहले मैंने उस कागज को पाया और मैं सफलता के बिना एल्गोरिथ्म को लागू करने की कोशिश कर रहा हूं। मैं सोच रहा था कि क्या आप अपने कार्यान्वयन को एक शुरुआत के साथ साझा कर सकते हैं :)
एलेक्सिस एस्पाना

जवाबों:


1

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


0

मुझे लगता है कि यह विशिष्ट कार्यान्वयन मुद्दों के कारण है। उदाहरण के लिए, (1) डीएफटी से पहले विंडोिंग पूर्व-प्रसंस्करण करना बेहतर है; (2) आप हाईपास () फ़ंक्शन की जांच कर सकते हैं, और आप रेड्डी चटर्जी के पेपर Eq में एक का उल्लेख कर सकते हैं। (23) - (24)। साथ ही, स्केल वैल्यू के लिए सीमा होती है, और आप अन्य स्केल वैल्यू आज़मा सकते हैं।

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