Contents — find the section you need

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

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

  • बंडल एडजस्टमेंट एक नॉन-लीनियर लीस्ट-स्क्वेयर्स समस्या है, जिसके अज्ञात कारक कैमरे के आंतरिक/बाह्य पैरामीटर और 3D-बिंदु निर्देशांक होते हैं। इसका उद्देश्य सभी प्रेक्षणों पर वर्गित रीप्रोजेक्शन त्रुटि के योग को न्यूनतम करना है।

  • इसे गॉस-न्यूटन विधि या लेवेनबर्ग-मार्क्वार्ड (LM) विधि से पुनरावृत्ति विधि द्वारा हल किया जाता है। LM विधि एक पैरामीटर \lambda के माध्यम से अस्थिर लेकिन तीव्र गॉस-न्यूटन विधि और धीमी लेकिन स्थिर स्टीपेस्ट-डिसेंट विधि के बीच सुचारू रूप से अंतर्विन्यास करती है।

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

  • शूर कॉम्प्लीमेंट तकनीक 3D-पॉइंट ब्लॉकों की परस्पर स्वतंत्र (ब्लॉक-विकर्ण) प्रकृति का लाभ उठाती है, और पहले बिंदुओं को हटाकर केवल कैमरों से युक्त एक छोटे "सरलीकृत कैमरा सिस्टम" को हल करती है। इसी कारण से हजारों बिंदुओं और हजारों कैमरों वाली समस्याओं को वास्तविक समय में हल करना संभव हो पाता है।

  • बंडल एडजस्टमेंट, SLAM के पोज़ ग्राफ़ ऑप्टिमाइज़ेशन का एक करीबी रूप है, लेकिन इसमें अंतर यह है कि इसके अज्ञात मानों में स्वयं 3D बिंदु भी शामिल होते हैं। यह एक साझा मूलभूत तकनीक है, जिसका उपयोग SfM को पूरा करने और SLAM के स्थानीय/वैश्विक ऑप्टिमाइज़ेशन दोनों के लिए किया जाता है।

1. यह इनपुट के रूप में क्या लेता है, और यह क्या हल करता है?

इनपुट में निम्नलिखित तीन प्रारंभिक अनुमान शामिल हैं, जो SfM या Visual-SLAM से मध्यवर्ती परिणामों के रूप में प्राप्त किए गए हैं:

  • कैमरा पोज़ के लिए प्रारंभिक मान \{K_i, R_i, \mathbf{t}_i\} ( i=1,\dots,m ; कई मामलों में आंतरिक पैरामीटर K_i ज्ञात या स्थिर होते हैं)
  • 3D बिंदुओं के लिए प्रारंभिक मान \{\mathbf{X}_j\} ( j=1,\dots,n ; त्रिभुजीकरण से प्राप्त अनुमानित निर्देशांक)
  • किस कैमरे ने किस बिंदु का अवलोकन किया, इसका पत्राचार — अर्थात्, प्रत्येक अवलोकन के लिए छवि निर्देशांक \mathbf{u}_{ij} (वह पिक्सेल स्थिति जहां कैमरा i ने बिंदु j को देखा)

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

2. लागत फलन: पुनर्प्रक्षेपण त्रुटि

एक 3D बिंदु \mathbf{X}_j का कैमरा i में प्रक्षेपित स्थान और वास्तव में देखे गए छवि निर्देशांक \mathbf{u}_{ij} के बीच के अंतर को पुनर्प्रक्षेपण त्रुटि कहा जाता है। कैमरा i की स्थिति को R_i, \mathbf{t}_i और प्रक्षेपण फलन को \pi(\cdot) (समरूप निर्देशांकों को पिक्सेल निर्देशांकों में परिवर्तित करने वाला अरैखिक मानचित्र) के रूप में लिखने पर, एक अवलोकन के लिए अवशिष्ट है:

r_{ij} = \pi\big(K_i(R_i\mathbf{X}_j + \mathbf{t}_i)\big) - \mathbf{u}_{ij}

बंडल एडजस्टमेंट देखे गए युग्मों के संपूर्ण सेट \mathcal{O}=\{(i,j)\} पर इस अवशिष्ट के वर्गों के योग को न्यूनतम करता है।

\min_{\{K_i,R_i,\mathbf{t}_i,\mathbf{X}_j\}}\sum_{(i,j)\in\mathcal{O}}\rho\left(\|r_{ij}\|^2\right)

\rho एक मजबूत हानि फ़ंक्शन है, जैसे कि ह्यूबर हानि, जो किसी एक बड़े आउटलायर को पूरे ऑप्टिमाइज़ेशन को विकृत करने से रोकता है। यह समीकरण ठीक उसी रूप में है जैसा कि पहले SfM प्राइमर में देखा गया है — बंडल एडजस्टमेंट इस न्यूनीकरण समस्या को हल करने के कम्प्यूटेशनल कोर से संबंधित है।

3. नॉनलाइनियर लीस्ट स्क्वेयर्स के रूप में हल करना: गॉस-न्यूटन से लेवेनबर्ग-मार्क्वार्ड तक

सभी अज्ञात को एक ही वेक्टर \mathbf{x} (सभी कैमरा पोज़ और सभी 3D बिंदुओं को एक साथ मिलाकर) में एकत्रित करने और अवशिष्टों के पूरे सेट को \mathbf{r}(\mathbf{x}) के रूप में लिखने पर, न्यूनीकरण लक्ष्य \|\mathbf{r}(\mathbf{x})\|^2 प्राप्त होता है। चूंकि \mathbf{r} अरैखिक है, इसलिए हम वर्तमान अनुमान \mathbf{x}_k के आसपास प्रथम-कोटि टेलर विस्तार का उपयोग करते हैं: \mathbf{r}(\mathbf{x}_k+\Delta\mathbf{x})\approx \mathbf{r}(\mathbf{x}_k)+J\Delta\mathbf{x}। J=\partial \mathbf{r}/\partial \mathbf{x} जैकोबियन है। इसे प्रतिस्थापित करके और \Delta\mathbf{x} के लिए हल करने पर गॉस-न्यूटन विधि का सामान्य समीकरण प्राप्त होता है:

(J^\mathsf{T}J)\,\Delta\mathbf{x} = -J^\mathsf{T}\mathbf{r}

H=J^\mathsf{T}J हेसियन सन्निकटन है (गॉस-न्यूटन सन्निकटन, द्वितीय-कोटि पदों को अनदेखा करते हुए)। \Delta\mathbf{x} के लिए इस समीकरण को हल करना, \mathbf{x}_{k+1}=\mathbf{x}_k+\Delta\mathbf{x} को अद्यतन करना और अवशिष्ट के अभिसरण तक इस प्रक्रिया को दोहराना ही संपूर्ण प्रक्रिया है।

गॉस-न्यूटन विधि प्रारंभिक मान के हल के निकट होने पर शीघ्रता से अभिसरण करती है, लेकिन कम प्रारंभिक मान के साथ अपसरण की प्रवृत्ति रखती है। लेवेनबर्ग-मार्क्वार्ड (एलएम), जिसे लेवेनबर्ग (1944) और मार्क्वार्ड (1963) ने स्वतंत्र रूप से प्रस्तावित किया था, सामान्य समीकरण में एक अवमंदन पद जोड़कर इस समस्या को हल करता है।

(J^\mathsf{T}J + \lambda D)\,\Delta\mathbf{x} = -J^\mathsf{T}\mathbf{r}

D आमतौर पर J^\mathsf{T}J (या एक समतुल्य स्केलिंग मैट्रिक्स) का विकर्ण होता है, और \lambda अवमंदन गुणांक है। जब \lambda छोटा होता है, तो यह गॉस-न्यूटन के समान व्यवहार करता है और तेजी से अभिसरित होता है; जब \lambda बड़ा होता है, तो यह छोटे, सुरक्षित कदम उठाता है और सबसे तीव्र अवरोहण के करीब पहुंचता है। एक अनुकूली नियंत्रण योजना के माध्यम से - प्रत्येक पुनरावृति में लागत कम होने पर गति बढ़ाने के लिए \lambda को सिकोड़ें, और लागत बढ़ने पर कदम को अस्वीकार करने और छोटा करने के लिए \lambda को बढ़ाएं - एलएम गॉस-न्यूटन की गति और सबसे तीव्र अवरोहण की स्थिरता के बीच सेतु का काम करता है। बंडल एडजस्टमेंट के लगभग सभी व्यावहारिक कार्यान्वयन (सेरेस सॉल्वर, जी2ओ, एसबीए, और अन्य, जिनकी चर्चा नीचे की गई है) एलएम या इससे मिलती-जुलती ट्रस्ट-रीजन विधि का उपयोग करते हैं।

4. जैकोबियन विरल क्यों है?

बंडल एडजस्टमेंट के अज्ञात मान कैमरा पोज़ (6 डिग्री ऑफ़ फ़्रीडम - 3 रोटेशन प्लस 3 ट्रांसलेशन, यदि आंतरिक पैरामीटर स्थिर हैं) × m कैमरे और 3डी बिंदु (3 डिग्री ऑफ़ फ़्रीडम) × n बिंदु हैं, जिनका योग 6m+3n आयामों तक होता है। हजारों या उससे अधिक प्रेक्षणों वाली वास्तविक एसएफएम समस्याओं में, इसे एक सघन मैट्रिक्स के रूप में सरलता से मानने पर J^\mathsf{T}J लागत आती है - जो वास्तविक समय में हल करने योग्य नहीं है।

यहां जो बात मददगार साबित होती है, वह यह संरचना है कि पुनर्प्रक्षेपण त्रुटि r_{ij} "केवल कैमरा i के मापदंडों और बिंदु j के मापदंडों पर निर्भर करती है।" किसी भी अन्य कैमरा k\neq i या बिंदु l\neq j के सापेक्ष आंशिक अवकलन समान रूप से शून्य होते हैं।

\frac{\partial r_{ij}}{\partial \mathbf{x}_{\text{camera }k}} = 0 \ (k\neq i), \qquad \frac{\partial r_{ij}}{\partial \mathbf{X}_l} = 0 \ (l\neq j)

दूसरे शब्दों में, एकल अवलोकन द्वारा उत्पन्न जैकोबियन की पंक्ति में गैर-शून्य प्रविष्टियाँ केवल संबंधित कैमरा और संबंधित बिंदु के ब्लॉक में ही होती हैं। पंक्तियों की संख्या अवलोकनों की संख्या के अनुपात में बढ़ती है, लेकिन प्रति पंक्ति गैर-शून्य प्रविष्टियों की संख्या स्थिर रहती है (कैमरा 6 + बिंदु 3, या आंतरिक मापदंडों को शामिल करने पर थोड़ी अधिक)। यह विरलता J^\mathsf{T}J को देखने पर निम्नलिखित ब्लॉक संरचना के रूप में दिखाई देती है।

J^\mathsf{T}J = \begin{pmatrix} B & E \\ E^\mathsf{T} & C \end{pmatrix}
  • B: कैमरा मापदंडों के बीच अंतःक्रिया। यह शून्य होता है जब तक कि कैमरे i और k एक उभयनिष्ठ बिंदु का अवलोकन न करें, इसलिए इसकी संरचना विरल ब्लॉक संरचना वाली होती है।

  • C: 3D-बिंदु मापदंडों के बीच अंतःक्रिया। चूंकि एक बिंदु j की 3 स्वतंत्रता की डिग्री कभी भी किसी अन्य बिंदु से युग्मित नहीं होती हैं, इसलिए यह एक ब्लॉक-विकर्ण मैट्रिक्स है - जो अगले भाग में शूर पूरक ट्रिक का आधार है।

  • E: कैमरों और बिंदुओं के बीच अंतःक्रिया (प्रत्येक अवलोकन (i,j) के लिए एक गैर-शून्य ब्लॉक दिखाई देता है)।

5. मूल पाइपलाइन

Diagram 1 · Use the button to switch views
बंडल एडजस्टमेंट संयुक्त रूप से कैमरा पोज़ और 3D बिंदुओं को पुन:प्रक्षेपण अवशेषों और एक विरल जैकोबियन को बार-बार बनाकर, शूर पूरक के माध्यम से हल करके और एक LM चरण लागू करके परिष्कृत करता है
Diagram 2 · Use the button to switch views
r_{ij} Sparse Jacobiancamera × pointblock structure Eliminate points viaSchur complement,reduced camera system Adjust \lambda viaLM method,update \Delta\mathbf{x} Checkconvergence

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

6. शूर कॉम्प्लीमेंट ट्रिक: विरलता को कम गणना में बदलना

पिछले अनुभाग की ब्लॉक संरचना का उपयोग करते हुए, हम सामान्य समीकरण (J^\mathsf{T}J+\lambda D)\Delta\mathbf{x}=-J^\mathsf{T}\mathbf{r} को कैमरा अपडेट \Delta\mathbf{c} और बिंदु अपडेट \Delta\mathbf{p} में विभाजित करके इस प्रकार लिख सकते हैं:

\begin{pmatrix} B' & E \\ E^\mathsf{T} & C' \end{pmatrix} \begin{pmatrix} \Delta\mathbf{c} \\ \Delta\mathbf{p} \end{pmatrix} = \begin{pmatrix} v \\ w \end{pmatrix}

(जहाँ B', C' अवमंदन पद जोड़ने के बाद के ब्लॉक हैं)। चूंकि C' एक ब्लॉक-विकर्ण मैट्रिक्स है, जो प्रत्येक 3D बिंदु के लिए स्वतंत्र है, इसलिए प्रत्येक 3×3 ब्लॉक को अलग-अलग व्युत्क्रमित किया जा सकता है, जिसकी लागत लगभग बिंदुओं की संख्या n के समानुपाती होती है। C'^{-1} का उपयोग करके \Delta\mathbf{p} को हटाने पर, केवल कैमरों से युक्त एक छोटा कैमरा सिस्टम प्राप्त होता है:

\left(B' - E C'^{-1}E^\mathsf{T}\right)\Delta\mathbf{c} = v - E C'^{-1}w

बाईं ओर के B'-EC'^{-1}E^\mathsf{T} को शूर कॉम्प्लीमेंट कहा जाता है। इस मैट्रिक्स का आकार 6m\times 6m है (जो केवल कैमरों की संख्या पर निर्भर करता है, बिंदुओं की संख्या n पर नहीं), और एक बार \Delta\mathbf{c} हल हो जाने पर, प्रत्येक बिंदु के अपडेट को

\Delta\mathbf{p} = C'^{-1}\left(w - E^\mathsf{T}\Delta\mathbf{c}\right)
के साथ आसानी से प्राप्त किया जा सकता है।

एक सामान्य SfM समस्या में, बिंदुओं की संख्या n कैमरों की संख्या m से कई गुना अधिक हो सकती है, इसलिए 6m+3n आयामों वाले सिस्टम को सरलता से हल करने के बजाय, आपको केवल 6m आयामों वाले शूर कॉम्प्लीमेंट को ही हल करने की आवश्यकता होती है। बंडल एडजस्टमेंट का मूल सिद्धांत इसे हजारों बिंदुओं के पैमाने पर भी व्यावहारिक रूप से हल करने योग्य बनाता है। इसका सैद्धांतिक स्वरूप ट्रिग्स एट अल. की पुस्तक "बंडल एडजस्टमेंट - ए मॉडर्न सिंथेसिस" (2000) में मिलता है, और यह सेरेस सॉल्वर और जी2ओ जैसी वर्तमान लाइब्रेरी में मानक आंतरिक कार्यान्वयन है।

सेरेस सॉल्वर इस सरलीकृत प्रणाली को हल करने के लिए कई विकल्प प्रदान करता है: DENSE_SCHUR, जो इसे एक सघन मैट्रिक्स के रूप में हल करता है (कुछ सौ कैमरों तक); SPARSE_SCHUR, जो पुनर्व्यवस्था के माध्यम से विरलता का लाभ उठाता है (हजारों कैमरे); और ITERATIVE_SCHUR, जो शूर पूरक पर संयुग्मी प्रवणता लागू करता है (और भी बड़े पैमाने की समस्याओं के लिए)। समस्या के पैमाने के आधार पर इनमें से किसी एक को चुनना एक व्यावहारिक नियम है।

7. गेज फ्रीडम: वे दिशाएँ जिनके साथ समाधान विशिष्ट रूप से निर्धारित नहीं होता

बंडल एडजस्टमेंट में एक ऐसी स्वतंत्रता होती है जो कॉस्ट फंक्शन के मान को बदले बिना पैरामीटर के पूरे सेट को स्थानांतरित कर सकती है। प्रत्येक कैमरे और प्रत्येक 3D बिंदु को एक साथ समान रोटेशन, ट्रांसलेशन और स्केल द्वारा स्थानांतरित करने से रीप्रोजेक्शन त्रुटि पूरी तरह अपरिवर्तित रहती है (केवल मोनोक्युलर मामले में, निरपेक्ष स्केल भी अनिश्चित होता है)। इस स्वतंत्रता को गेज फ्रीडम कहा जाता है। यदि इसे अनदेखा किया जाता है, तो यह J^\mathsf{T}J को विलक्षण (रैंक-अपर्याप्त) बना देता है, जिससे सामान्य समीकरण या तो अघुलनशील हो जाता है, या संख्यात्मक रूप से अस्थिर हो जाता है।

व्यवहार में, इससे बचने के लिए पहले दो कैमरों या एक बेसलाइन लंबाई की स्थिति को स्थिर किया जाता है, या इस तथ्य पर भरोसा किया जाता है कि LM का अपना डैम्पिंग टर्म \lambda D इस विलक्षण दिशा को अप्रत्यक्ष रूप से नियमित करता है। जब GPS या IMU से निरपेक्ष-पैमाना या निरपेक्ष-स्थिति की जानकारी उपलब्ध होती है, तो गेज को स्थिर करने के लिए इसे एक अतिरिक्त बाधा के रूप में उपयोग करना स्वाभाविक है।

8. पोज़ ग्राफ़ ऑप्टिमाइज़ेशन से अंतर

पोज़ ग्राफ़ ऑप्टिमाइज़ेशन, जिसका वर्णन लूप क्लोज़र प्राइमर में किया गया है, बंडल एडजस्टमेंट के समान गणितीय ढांचे से संबंधित है, क्योंकि यह \mathrm{Log} मैप से निर्मित एक नॉन-लीनियर लीस्ट-स्क्वेयर्स रेसिडुअल को एक रोबस्ट लॉस के साथ न्यूनतम करता है। अंतर अज्ञात राशियों में निहित है।

एस्पेक्ट बंडल एडजस्टमेंट पोज़ ग्राफ़ ऑप्टिमाइज़ेशन
अज्ञात राशियाँ प्रत्येक कैमरा पोज़ + प्रत्येक 3D-पॉइंट निर्देशांक केवल प्रत्येक कैमरे (नोड) का पोज़
रेसिडुअल 3D-पॉइंट रीप्रोजेक्शन त्रुटि (इमेज स्पेस) सापेक्ष-पोज़ प्रेक्षणों से अंतर (SE(3) स्पेस)
विरलता का स्रोत किस कैमरे ने किस बिंदु को देखा कौन से नोड युग्म किसी बाधा से जुड़े हैं
गणना लागत कई बिंदुओं के साथ उच्च, शूर पूरक के माध्यम से नियंत्रित स्वाभाविक रूप से कम, नोड्स (कीफ्रेम) की संख्या के साथ बढ़ती है
प्राथमिक उपयोग SfM का अंतिम परिष्करण, स्थानीय/वैश्विक मानचित्रों को परिष्कृत करना SLAM में वैश्विक बहाव सुधार (लूप बंद होने के बाद)

वास्तविक विज़ुअल-SLAM प्रणालियों में, कार्य विभाजन आम है: स्थानीय बंडल समायोजन (स्थानीय BA), जिसमें 3D बिंदु शामिल हैं, प्रति फ्रेम के आधार पर कीफ्रेम के आसपास के क्षेत्र को परिष्कृत करता है, जबकि स्पष्ट 3D बिंदुओं के बिना हल्का पोज़ ग्राफ़ अनुकूलन लूप बंद होने का पता चलने पर वैश्विक प्रक्षेपवक्र को तुरंत ठीक करता है। 3D बिंदुओं सहित पूर्ण बंडल समायोजन (वैश्विक BA) अधिक सटीक है लेकिन गणनात्मक रूप से महंगा है, इसलिए इसे वास्तविक समय प्रदर्शन की आवश्यकता वाली स्थितियों में बार-बार नहीं चलाया जा सकता है।

9. प्रतिनिधि कार्यान्वयन

  • सेरेस सॉल्वर: गूगल द्वारा विकसित एक सामान्य प्रयोजन वाली नॉनलाइनियर लीस्ट-स्क्वेयर्स लाइब्रेरी, जो 2010 से उत्पादन में है। इसमें शूर-आधारित सॉल्वर अंतर्निहित हैं और इसका उपयोग कई SfM/SLAM कार्यान्वयनों, जिनमें COLMAP भी शामिल है, के लिए बंडल-एडजस्टमेंट बैकएंड के रूप में किया जाता है।

  • g2o: कुम्मरले एट अल द्वारा ICRA 2011 में प्रकाशित एक ग्राफ-ऑप्टिमाइजेशन फ्रेमवर्क, जो एक ही फ्रेमवर्क के भीतर SLAM के पोज ग्राफ ऑप्टिमाइजेशन और बंडल एडजस्टमेंट दोनों को संभालने में सक्षम है। इसका व्यापक रूप से ORB-SLAM परिवार के बैकएंड के रूप में उपयोग किया गया है।

  • एसबीए (स्पार्स बंडल एडजस्टमेंट): स्पार्स बंडल एडजस्टमेंट के लिए विशेष रूप से तैयार किया गया एक प्रारंभिक सार्वजनिक रूप से उपलब्ध कार्यान्वयन, जिसे लौराकिस और अर्गिरोस ने 2009 में एसीएम ट्रांजैक्शंस ऑन मैथमेटिकल सॉफ्टवेयर में प्रकाशित किया था। इसे अक्सर शूर कॉम्प्लीमेंट ट्रिक को स्पष्ट रूप से लागू करने वाले एक प्रतिनिधि उदाहरण के रूप में संदर्भित किया जाता है।

  • कोलमैप का अंतर्निर्मित बीए: आंतरिक रूप से सेरेस सॉल्वर का उपयोग करता है, जो इंक्रीमेंटल एसएफएम के प्रत्येक चरण में स्थानीय और वैश्विक बंडल एडजस्टमेंट के बीच स्वचालित रूप से स्विच करता है।

10. कठिन परिस्थितियाँ और सामान्य विफलता के मामले

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

  • कम प्रेक्षणों या कम लंबन वाले बिंदु: बहुत कम छवियों से प्रेक्षित बिंदु, या कम लंबन वाले बिंदु, में जैकोबियन की स्थिति खराब होने की प्रवृत्ति होती है, और इससे गहराई की दिशा में केंद्रित एक बड़ी अवशिष्ट त्रुटि उत्पन्न हो सकती है।

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

अत्यंत बड़े पैमाने की समस्याएं*: लाखों प्रेक्षणों वाले शहर-स्तरीय पुनर्निर्माण के लिए, शूर पूरक के साथ भी, गणना और मेमोरी लागत नगण्य नहीं रह जाती है, जिसके लिए समस्या को विभाजित और समानांतर करने, या अनुमानित तकनीकों (जैसे एलएम के विश्वास क्षेत्र को मोटा करना) के साथ संयोजित करने की आवश्यकता होती है।

असंभाजित गेज स्वतंत्रता*: जैसा कि ऊपर बताया गया है, गेज को ठीक करना भूल जाने से संख्यात्मक अस्थिरता उत्पन्न होती है, जिससे अभिसरण में विफलता होती है, या अवास्तविक समाधान की ओर विचलन होता है।

11. व्यावहारिक विकल्प

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

  • यदि आप अपना स्वयं का पाइपलाइन शुरू से बना रहे हैं, तो इसे Ceres Solver या g2o जैसी लाइब्रेरी के ऊपर बनाना उचित है। शूर-कॉम्प्लीमेंट कार्यान्वयन को शून्य से लिखने से इसकी शुद्धता को सत्यापित करने की लागत की तुलना में सीखने का लाभ बहुत कम होता है।

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

12. सारांश

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

अपनी समझ की जाँच करें
क्या कम रीप्रोजेक्शन त्रुटि मीट्रिक पैमाने को स्थापित करती है?

केवल एकक्युलर रीप्रोजेक्शन वैश्विक पैमाने को निर्धारित नहीं कर सकता।

किसी माप को स्थिर करने और भौतिक आकार का माप जोड़ने में अंतर स्पष्ट करें। ## संदर्भ - [ट्रिग्स, मैकलॉचलन, हार्टले और फिट्ज़गिबन, बंडल एडजस्टमेंट - एक आधुनिक संश्लेषण (विज़न एल्गोरिदम: सिद्धांत और व्यवहार, 2000)](https://link.springer.com/chapter/10.1007/3-540-44480-7_21) - [कुम्मरले, ग्रिसेटी, स्ट्रास्डेट, कोनोलीज और बर्गर, g2o: ग्राफ अनुकूलन के लिए एक सामान्य ढांचा (ICRA 2011)](http://www2.informatik.uni-freiburg.de/~kuemmerl/publications/kuemmerle11icra-abstract.html) - [लौराकिस और अर्गिरोस, SBA: जेनेरिक स्पार्स बंडल एडजस्टमेंट के लिए एक सॉफ्टवेयर पैकेज (ACM ट्रांजैक्शन ऑन मैथमेटिकल सॉफ्टवेयर, 2009)](https://dl.acm.org/doi/10.1145/1486525.1486527) - [सेरेस सॉल्वर आधिकारिक प्रलेखन: गैर-रेखीय न्यूनतम वर्ग]( [सेरेस सॉल्वर का आधिकारिक दस्तावेजीकरण: शूर-आधारित रैखिक सॉल्वर](https://ceres-solver.readthedocs.io/latest/nnls_tutorial.html) - [हार्टले और ज़िसरमैन, कंप्यूटर विज़न में मल्टीपल व्यू ज्योमेट्री (लेखकों का आधिकारिक पृष्ठ)](https://www.robots.ox.ac.uk/~vgg/hzbook/)

What to read next

Review the backgroundस्ट्रक्चर फ्रॉम मोशन प्राइमर — अव्यवस्थित तस्वीरों के सेट से 3D और कैमरा पोजीशन को एक साथ पुनर्प्राप्त करनाContinue the seriesमल्टी-व्यू स्टीरियो प्राइमर — एक विरल पॉइंट क्लाउड को सघन 3डी आकार में भरनाExplore another aspect of this fieldछवि चमक और ल्यूमिनेंस Lab — एक्सपोज़र, गामा और क्लिपिंग