Contents — find the section you need

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

0. 30-सेकंड का सारांश

  • ट्रैकिंग के दो दृष्टिकोण हैं: "पिछले फ़्रेम के आस-पास के पैच के लिए अगले फ़्रेम में खोज करना", और "प्रत्येक फ़्रेम में डिस्क्रिप्टरों का पता लगाना और उनकी गणना करना और उनका मिलान करना"।

  • लुकास-कनाडे विधि चमक स्थिरता, स्थानीय गति और पड़ोसी पिक्सेल के बीच साझा वेग को मानती है और 2×2 सामान्य-समीकरण प्रणाली को हल करती है। पिरामिड का उपयोग करके इसे बड़े विस्थापनों को संभालने के लिए विस्तारित किया जा सकता है।

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

  • ट्रैकिंग गुणवत्ता का आकलन केवल पत्राचार गणना से ही नहीं, बल्कि छवि में स्थानिक वितरण, पुनर्प्रक्षेपण त्रुटि, अग्र-अग्र संगति और अवरोध के बाद पुनर्प्राप्ति दर से भी किया जाना चाहिए।

  • गति धुंधलापन, निम्न बनावट, परावर्तन, गतिशील वस्तुएं, रोलिंग शटर और अचानक पैमाने में परिवर्तन जैसी स्थितियां जटिल होती हैं। एक आत्मविश्वास स्कोर और पुनः पहचान तंत्र आवश्यक हैं।

1. छवि पर बिंदु गतिमान क्यों दिखाई देते हैं

Diagram 1 · Use the button to switch views
पिछले और वर्तमान फ्रेम के बीच गति तीरों द्वारा जुड़े फ़ीचर बिंदु

चित्र 1 — एक पत्राचार तब तक एक परिकल्पना है जब तक कि इसकी गति पड़ोसी बिंदुओं और कैमरा मॉडल से मेल नहीं खाती। स्थानिक कवरेज उतना ही महत्वपूर्ण है जितना कि रॉ मैच काउंट।

कैमरा गति के तहत छवि पर एक 3D बिंदु X \mathbf{x}=(x,y) पर प्रोजेक्ट होता है। फ्रेम अंतराल \Delta t के साथ, ट्रैकिंग का लक्ष्य \mathbf{d}_k को

\mathbf{x}_{k+1}=\mathbf{x}_k+\mathbf{d}_k
में विस्थापन ज्ञात करना है।

जब कैमरा स्थानांतरित होता है, तो आभासी गति गहराई के साथ बदलती है; जब यह घूमता है, तो पूरी छवि एक ही दिशा में प्रवाहित होती है। लगातार छवियों को घटाना विश्वसनीय नहीं है। प्रकाश परिवर्तन और एक्सपोज़र शोर से बचने के लिए, स्थानीय पैच संरचना का उपयोग किया जाता है।

2. लुकास-कनाडे: एक छोटी विंडो को एक साथ हल करना

चमक-स्थिरता की धारणा है

I(x,y,t)=I(x+u,y+v,t+\Delta t)

छोटे विस्थापन के लिए रेखीयकरण (u,v) से ऑप्टिकल-फ्लो बाधा समीकरण प्राप्त होता है

I_xu+I_yv+I_t=0

एकल पिक्सेल पर, यह दो अज्ञातों (एपर्चर समस्या) के लिए एक समीकरण है। इसलिए एक विंडो W के भीतर के पिक्सेल को पूल किया जाता है, और न्यूनतम वर्ग विधि

\begin{bmatrix}u\\v\end{bmatrix} =-\left(\sum_{W}w\begin{bmatrix}I_x^2&I_xI_y\\I_xI_y&I_y^2\end{bmatrix}\right)^{-1} \sum_Ww\begin{bmatrix}I_xI_t\\I_yI_t\end{bmatrix}

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

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

3. इसके और डिस्क्रिप्टर मिलान के बीच चयन

ORB या SIFT जैसे डिस्क्रिप्टर आसपास के पैच को एक वेक्टर या बिट स्ट्रिंग में परिवर्तित करते हैं, और निकटतम दूरी वाले उम्मीदवार को पत्राचार के रूप में लेते हैं। लगातार फ़्रेमों के बीच थोड़ी गति के लिए, लुकास-कनाडे तेज़ है, लेकिन जब अवरोध से उबरना हो, फ़्रेम छोड़ना हो, या कैमरा काफ़ी हिलता हो, तो डिस्क्रिप्टर पुनः मिलान उपयोगी हो जाता है।

विधि इनपुट खूबियाँ कमियाँ सामान्य उपयोग
LK ट्रैकिंग पिछले फ़्रेम का बिंदु और अगले फ़्रेम की छवि तेज़, सबपिक्सेल सटीकता बड़े विस्थापन, अवरोध, कम बनावट के लिए कमज़ोर VO, रीयल-टाइम ट्रैकिंग
ORB मिलान 2 छवियों से डिस्क्रिप्टर हल्का, रोटेशन को संभालता है प्रतिबिंब/धुंधलापन से विसंगतियाँ SLAM आरंभीकरण/पुनः खोज

SIFT मिलान | 2 छवियों से विवरण | स्केल/रोटेशन के प्रति मजबूत | गणना, मेमोरी | SfM, छवि पुनर्प्राप्ति |

सीखने पर आधारित | बिंदु, विवरण, मिलानकर्ता | बड़े स्वरूप परिवर्तन के प्रति संभावित रूप से मजबूत | प्रशिक्षण डेटा के बाहर, GPU लोड | कठिन वातावरण, अनुसंधान |

केवल निकटतम दूरी के विवरणकर्ता उम्मीदवार को लेने से समान पैटर्न से विसंगतियाँ आ सकती हैं। निकटतम दूरी d_1 और दूसरी निकटतम दूरी d_2 के बीच d_1/d_2\lt\tau (अनुपात परीक्षण) की आवश्यकता और A→B और B→A से पारस्परिक निकटतम पड़ोसियों की जाँच करना सहायक होता है। अंत में, पत्राचार से अनुमानित मौलिक मैट्रिक्स, होमोग्राफी या PnP की पुनर्प्रक्षेपण त्रुटि का उपयोग करके RANSAC के साथ सत्यापित करें।

4. ट्रैकिंग का मात्रात्मक विश्लेषण आत्मविश्वास

कार्यान्वयन में, केवल "एक बिंदु प्राप्त हुआ" को "ट्रैकिंग सफल" मान लेना पर्याप्त नहीं है। निम्नलिखित को लॉग करने से आपको विफलता के कारण का पता लगाने में मदद मिलती है:

  • LK का न्यूनतम आइगेनवैल्यू और अवशिष्ट
  • आगे और पीछे की ट्रैकिंग के बीच का अंतर (आगे-पीछे त्रुटि)
  • डिस्क्रिप्टर अनुपात और दूरी का वितरण
  • RANSAC इनलायर अनुपात और रीप्रोजेक्शन त्रुटि
  • छवि पर बिंदुओं का स्थानिक वितरण (क्या वे केवल केंद्र में ही एकत्रित हैं?)
  • औसत अंतर-फ्रेम विस्थापन, ब्लर मेट्रिक, एक्सपोज़र/गेन

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

5. गतिमान वस्तुएँ और रोलिंग शटर

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

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

6. न्यूनतम कार्यान्वयन का प्रवाह

  1. कैमरे को इंट्रिंसिक्स, विरूपण और टाइमस्टैम्प के साथ कैलिब्रेट करें।

  2. प्रारंभिक फ्रेम में FAST/ORB या शि-टोमासी का पता लगाएं, और एक ग्रिड के माध्यम से स्थानिक रूप से समतुल्य करें।

  3. प्रत्येक नए फ्रेम पर, पिरामिडल LK का उपयोग करके ट्रैक करें, आगे-पीछे की त्रुटि और छवि सीमाओं की जाँच करें।

  4. कम आत्मविश्वास वाले बिंदुओं को हटा दें, और कम आबादी वाले ग्रिड सेल में नए बिंदुओं का पता लगाएं।

  5. आवश्यक अंतराल पर डिस्क्रिप्टर मिलान चलाएँ, RANSAC का उपयोग करके आउटलायर्स को हटा दें।

  6. शेष पत्राचारों को एसेंशियल मैट्रिक्स, PnP, या IMU फ़्यूज़न चरण में भेजें।

  7. यदि बिंदु लगातार खो जाते हैं, तो पुनः आरंभ करें, और ट्रैकिंग स्थिति और कारण को लॉग करें।

ट्रैकिंग कब पुनः शुरू करनी है, यह तय करना

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

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

7. निष्कर्ष

फीचर ट्रैकिंग एक ऐसी तकनीक है जो डिटेक्टर, स्थानीय अनुकूलन, डिस्क्रिप्टर मिलान और ज्यामितीय सत्यापन को एक ही विश्वास-डिज़ाइन समस्या के रूप में मानती है। LK लगातार फ्रेमों को सुचारू रूप से जोड़ता है, डिस्क्रिप्टर पुनर्प्राप्त होते हैं। बड़े बदलावों के लिए, RANSAC ज्यामितीय रूप से विसंगतियों को छानता है। इनमें से किसी एक पर निर्भर रहने के बजाय, पॉइंट वितरण, समय सिंक्रोनाइज़ेशन, गतिशील ऑब्जेक्ट और रोलिंग शटर को शामिल करने वाले लॉग रखने से विज़ुअल SLAM और VIO की पुनरुत्पादकता में काफी सुधार होता है।

अपनी समझ की जाँच करें
क्या सफलतापूर्वक ट्रैक किया गया पॉइंट हमेशा सही मिलान होता है?

ट्रैकिंग एक समान पैटर्न पर जा सकती है। केवल ट्रैक गिनने के बजाय आगे-पीछे की संगति, अवशेषों और ज्यामिति की जाँच करें।

संदर्भ

ऑप्टिकल फ़्लो Lab में दो फ़्रेमों के बीच इन बिंदुओं की गति देखें।

What to read next

Review the backgroundफ़ीचर मिलान लैब — डिस्क्रिप्टर फ़िल्टर, ज्यामितीय इनलायर और ज्ञात सत्यContinue the seriesऑप्टिकल फ़्लो Lab: दो फ़्रेमों के बीच गति का अनुसरणExplore another aspect of this fieldछवि चमक और ल्यूमिनेंस Lab — एक्सपोज़र, गामा और क्लिपिंग