तेजी से अनुमानित ऑप्टिकल प्रवाह / छवि बदलाव


9

मुझे पता लगाने की आवश्यकता है कि ऑपरेटर को धीमा करने के लिए चेतावनी देने के लिए एक कैमरा कितना तेज़ (या तो क्षैतिज / ऊर्ध्वाधर) पैनिंग कर रहा है।

पूरी छवि एक ब्लॉक के रूप में घूम रही है, मुझे वास्तविक दिशा की आवश्यकता नहीं है (हालांकि एच या वी एक बोनस होगा) और मुझे केवल अनुमानित परिमाण की आवश्यकता है - अर्थात। ट्रिगर अगर फ्रेम के बीच 'एन' पिक्सेल से अधिक है।

छवियां बड़ी हैं और आम तौर पर समान कम विपरीत दृश्य हैं, मेरे पास ट्रैक करने के लिए कोई स्पष्ट हाइलाइट नहीं है। मुझे यह रियलटाइम (60 एफपीएस) और सीपीयू के सभी का उपयोग किए बिना करने की आवश्यकता है।

Niave सॉल्यूशन को केंद्र में एक RoI पिक है, किनारों को ढूंढें, फ्रेम के जोड़े के बीच समानता की गणना करें, पिक्सेल में से किसी एक को बाएं / दाएं / ऊपर / नीचे शिफ्ट करें, दोहराएं - minima खोजें।

मुझे आश्चर्य है कि क्या कोई बेहतर समाधान था?

जवाबों:


3

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

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

सामान्य तौर पर, कैमरा पैनिंग और मोशन आकलन काफी स्थापित अनुसंधान डोमेन है। यहाँ एक संदर्भ है: कागज और दूसरा कागज

इस विषय पर। आपको कठोर और सटीक एल्गोरिदम और साथ ही सरल और तेज़ दोनों मिलेंगे।


अगर मैं आसानी से एक MPEG लिब में हुक कर सकता हूं जो अच्छा होगा, मुझे याद है कि एमपीईजी में जीएमसी की आलोचना थी। मुझे लगा कि कैमरे के स्थिरीकरण एल्गोरिदम के कारण यह एक सामान्य क्षेत्र होगा
मार्टिन बेकेट

आप निश्चित रूप से (या बल्कि निकालने) एमपीईजी एल्गोरिदम हुक कर सकते हैं। आप FFMPEG को लाइब्रेरी के रूप में उपयोग कर सकते हैं और इसे निकाल सकते हैं - लेकिन मुश्किल हो सकता है। वैकल्पिक रूप से, आप निकालने के लिए MSSG का साफ कोड पढ़ सकते हैं ।
दीपन मेहता

जीएमसी पर आलोचना के बारे में - यह नाटकीय रूप से बिट दर को कम करने और ऑब्जेक्ट आधारित एन्कोडिंग बनाने के वादे पर अधिक है । हालांकि, यह वास्तव में कैमरा गति मापदंडों का अनुमान लगाने के लिए कठिन नहीं है।
दीपन मेहता

धन्यवाद, मैं एमएसएसजी पर एक नज़र डालूंगा। मैं ffmpeg का उपयोग करता हूं, लेकिन चीजों को बाहर निकालने के लिए यह एक आसान पुस्तकालय नहीं है!
मार्टिन बेकेट

3

यह एक धीमी गति से भयानक समाधान हो सकता है, लेकिन आप बाद के फ़्रेमों का एफएफटी-आधारित क्रॉस-सहसंबंध कर सकते हैं और फिर फ़्रेम के बीच ऑफसेट की पहचान करने के लिए चोटी का पता लगा सकते हैं। प्रोसेसर प्रोसेसर को बचाने के लिए शायद यह केवल छवि के एक छोटे सबसेट पर करता है।

यह एक फ्रेम से दूसरे फ्रेम में रोटेशन या कठोर दृश्य परिवर्तन के साथ काम नहीं करेगा, और शायद बेहतर तरीके हैं। यह एक तरह का "मेरे पास एक हथौड़ा है इसलिए सब कुछ एक नाखून जैसा दिखता है" समाधान। मुझे लगता है कि यह आपके भोले समाधान की तरह है, सिवाय इसके कि किनारे का पता लगाने की कोई आवश्यकता नहीं है और एफएफटी एक समय में स्पष्ट रूप से एक पिक्सेल को स्थानांतरित करने की तुलना में बहुत तेज बनाता है।

यह प्रश्न समान है, और किसी ने क्रॉस-सहसंबंध के अलावा कुछ भी सुझाव नहीं दिया है, इसलिए शायद यह इतना बुरा नहीं है: लगातार छवियों के बीच ऑफसेट गणना करने के लिए MATLAB का उपयोग करना


धन्यवाद, यह मानना ​​आसान है कि एफएफटी धीमा है, लेकिन मैं एक छोटा 2 ^ एन विंडो कर सकता हूं। ps। बस खोज के लिए stackoverflow.com/questions/1100100/…
मार्टिन बेकेट

3

एक तरह से आप वेग का अनुमान लगा सकते हैं और दिशा छवि के केंद्र में चार खिड़कियों की तरह "स्थानीय" प्रवाह का अनुमान लगाने के लिए होगी। लुकास-कनाडे अंतर विधि मानती है कि विस्थापन लगभग स्थिर है और इसलिए समीकरण के रूप में हल करना संभव है।

तो मेरा चरण-दर-चरण मार्गदर्शन होगा:

  1. छवि के केंद्र में पिक्सेल की एक खिड़की प्राप्त करें, जैसे 20x20
  2. ग्रेडिएंट Ix और Iy की गणना करें।
  3. ढाल विंडो को चार टुकड़ों में विभाजित करें, जैसे 4x10x10।
  4. अगले फ्रेम के साथ चार रैखिक कम से कम वर्ग समीकरणों को हल करें।
  5. औसत चार वेग वैक्टर।

यह दिशा और वेग निर्धारित करता है, हालांकि आप इसे अधिक मजबूत बनाने के लिए भारित खिड़की का उपयोग कर सकते हैं। को देखो लुकास-कनाडे विधि अपने एक्सटेंशन के लिए।


0

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


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