Contents — find the section you need

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

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

  • एक होमोग्राफी H एक 3\times3 मैट्रिक्स है जो एक छवि पत्राचार \tilde{\mathbf{x}}'\sim H\tilde{\mathbf{x}} का प्रतिनिधित्व करता है, चाहे वह एक ही समतल पर स्थित बिंदुओं के लिए हो या शुद्ध घूर्णन से गुजर रहे कैमरे के लिए। इसमें स्केल अस्पष्टता तक 8 डिग्री स्वतंत्रता होती है।

  • DLT (डायरेक्ट लीनियर ट्रांसफॉर्म) विधि प्रति बिंदु पत्राचार दो रैखिक समीकरण बनाती है, और 4 या अधिक पत्राचारों से SVD के माध्यम से H को रैखिक रूप से हल करती है। संख्यात्मक स्थिरीकरण के लिए हार्टले का सामान्यीकरण प्रभावी है।

  • चूंकि वास्तविक पत्राचारों में बेमेल शामिल होते हैं, इसलिए अंतिम अनुमान से पहले RANSAC का उपयोग करके आउटलायर्स को हटा दिया जाता है। न्यूनतम नमूना आकार 4 बिंदु है, जो आवश्यक/मौलिक मैट्रिक्स अनुमान की तुलना में मजबूत-अनुमान पुनरावृत्तियों की संख्या को कम रखता है।

  • कैलिब्रेटेड कैमरे को देखते हुए, यह H=K(R+\mathbf{t}\mathbf{n}^\mathsf{T}/d)K^{-1} के रूप में रोटेशन R, ट्रांसलेशन दिशा और प्लेन नॉर्मल \mathbf{n} में विघटित हो जाता है - हालांकि आम तौर पर, कई भौतिक रूप से संभावित समाधान शेष रहते हैं, और उन्हें सीमित करने के लिए आपको अतिरिक्त जानकारी की आवश्यकता होती है।

  • समतलीय दृश्यों या शुद्ध रोटेशन के लिए, होमोग्राफी एसेंशियल या फंडामेंटल मैट्रिक्स की तुलना में अधिक उपयुक्त मॉडल है। इस विकृति का पता लगाने में विफलता का अर्थ है ऐसी स्थिति में जबरदस्ती 3D पुनर्निर्माण का प्रयास करना जहां गहराई को पुनर्प्राप्त करना मौलिक रूप से संभव नहीं है।

1. होमोग्राफी क्या है: समतलीय प्रक्षेपी रूपांतरण

जब दो छवियों पर समरूप निर्देशांक \tilde{\mathbf{x}}=(x,y,1)^\mathsf{T} और \tilde{\mathbf{x}}'=(x',y',1)^\mathsf{T} निम्नलिखित संबंध को संतुष्ट करते हैं:

\tilde{\mathbf{x}}' \sim H\tilde{\mathbf{x}}

किसी 3\times3 मैट्रिक्स H के माध्यम से, तो हम H को होमोग्राफी कहते हैं। \sim का अर्थ है स्केल तक बराबर — H को किसी भी गैर-शून्य स्थिरांक से गुणा करने पर वही रूपांतरण प्राप्त होता है — इसलिए H की स्वतंत्रता की डिग्री 9-1=8 है।

Diagram 1 · Use the button to switch views
होमोग्राफी H द्वारा छवि 1 से छवि 2 पर मैप किए गए एक ही समतल पर चार संगत बिंदु, गहराई-लंबन मामले के विपरीत जहां एक H अपर्याप्त है
Diagram 2 · Use the button to switch views

होमोग्राफी के मान्य होने की मुख्यतः दो भौतिक स्थितियाँ हैं। पहली, सभी संगत 3D बिंदु एक ही समतल पर स्थित होते हैं। दूसरी, सामान्य 3D संरचना वाले दृश्य के लिए भी, यदि कैमरा बिल्कुल भी स्थानांतरित नहीं होता है और केवल शुद्ध रूप से घूमता है (पैन/टिल्ट), तो गहराई की परवाह किए बिना संबंध को होमोग्राफी द्वारा वर्णित किया जा सकता है। ऐसा इसलिए है क्योंकि जब कैमरा केवल घूमता है, तो कोई लंबन उत्पन्न नहीं होता है।

2. डीएलटी विधि द्वारा अनुमान

एकल पत्राचार (x,y)\to(x',y') से, हम H के प्रत्येक तत्व h_1,\dots,h_9 पर एक रैखिक बाधा प्राप्त कर सकते हैं (\mathbf{h}=\operatorname{vec}(H) लिखकर)। क्रॉस प्रोडक्ट \tilde{\mathbf{x}}'\times H\tilde{\mathbf{x}}=\mathbf{0} के शून्य होने की शर्त का विस्तार करने पर, प्रत्येक पत्राचार के लिए निम्नलिखित दो स्वतंत्र समीकरण प्राप्त होते हैं।

\begin{bmatrix} -x & -y & -1 & 0 & 0 & 0 & x'x & x'y & x' \\ 0 & 0 & 0 & -x & -y & -1 & y'x & y'y & y' \end{bmatrix}\mathbf{h}=\mathbf{0}

4 पत्राचारों के साथ, आपको 8 समीकरण मिलते हैं, जो (सामान्य स्थिति में) 8-डिग्री-ऑफ-फ्रीडम H को विशिष्ट रूप से निर्धारित करते हैं। वास्तविक स्थिति में, जहाँ 5 या अधिक पत्राचार उपलब्ध हैं, आप सभी पत्राचारों को स्टैक करके मैट्रिक्स A के लिए A\mathbf{h}=\mathbf{0} का न्यूनतम वर्ग हल ज्ञात करते हैं — अर्थात्, A के सबसे छोटे विलक्षण मान के अनुरूप दायाँ विलक्षण सदिश, SVD के माध्यम से। यह DLT (डायरेक्ट लीनियर ट्रांसफॉर्म) विधि है।

जिस प्रकार एपिपोलर ज्यामिति में 8-बिंदु एल्गोरिथम के साथ होता है, उसी प्रकार कच्चे पिक्सेल निर्देशांकों का सीधे उपयोग करना संख्यात्मक रूप से अनुपयुक्त होता है। मानक कार्यान्वयन हार्टले का सामान्यीकृत डीएलटी है: प्रत्येक छवि के बिंदु समूह पर एक समानता रूपांतरण T,T' लागू करें ताकि उसका केंद्र शून्य हो और औसत दूरी \sqrt{2} हो, उस सामान्यीकृत फ्रेम में हल करें, फिर निर्देशांकों को H=T'^{-1}H_{\text{norm}}T के साथ वापस रूपांतरित करें।

3. RANSAC के माध्यम से मजबूत अनुमान

चूंकि वास्तविक पत्राचारों में विसंगतियां शामिल होती हैं, इसलिए प्रत्येक पत्राचार पर सीधे डीएलटी लागू करने से आउटलायर्स समाधान को बुरी तरह विकृत कर देते हैं। RANSAC निम्नलिखित चरणों को दोहराता है:

  1. यादृच्छिक रूप से 4 पत्राचारों का चयन करें, और डीएलटी के माध्यम से H के लिए एक परिकल्पना बनाएं।

  2. प्रत्येक पत्राचार के लिए, H द्वारा अनुमानित स्थिति और वास्तविक संगत बिंदु के बीच पुनर्प्रक्षेपण त्रुटि की गणना करें।

  3. थ्रेशोल्ड के भीतर सबसे अधिक पत्राचारों (इनलायर्स) वाली परिकल्पना को अपनाएं।

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

इनलायर अनुपात w, न्यूनतम नमूना आकार s=4 और लक्ष्य सफलता प्रायिकता p को देखते हुए, आवश्यक पुनरावृत्तियों की संख्या का अनुमान इस प्रकार लगाया जा सकता है:

N=\frac{\log(1-p)}{\log\!\left(1-w^{s}\right)}

समान इनलायर अनुपात के लिए, होमोग्राफी के s=4 को एसेंशियल/फंडामेंटल मैट्रिक्स अनुमान की तुलना में कम पुनरावृत्तियों की आवश्यकता होती है, जिसके लिए s=5 – 8 पुनरावृत्तियों की आवश्यकता होती है। यही कारण है कि SIFT या ORB मिलान के तुरंत बाद, पूर्ण 3D अनुमान पर आगे बढ़ने से पहले होमोग्राफी के साथ एक मोटा ज्यामितीय सत्यापन करना आम बात है।

4. H का विघटन: घूर्णन, स्थानान्तरण और समतल अभिलंब निकालना

यदि कैमरा कैलिब्रेटेड है और आंतरिक पैरामीटर K_1,K_2 ज्ञात हैं, तो समतल के इकाई अभिलंब \mathbf{n} (कैमरा 1 के निर्देशांक फ्रेम में), समतल से दूरी d और सापेक्ष स्थिति R,\mathbf{t} का उपयोग करके मानकीकृत होमोग्राफी \tilde H = K_2^{-1}HK_1 को इस प्रकार लिखा जा सकता है:

\tilde H = R+\frac{\mathbf{t}\,\mathbf{n}^\mathsf{T}}{d}

यदि कैमरा बिना स्थानान्तरण के शुद्ध घूर्णन करता है, \mathbf{t}=\mathbf{0}, तो \tilde H=R — घूर्णन मैट्रिक्स ही है।

\tilde H से R,\mathbf{t}/d,\mathbf{n} को पुनर्प्राप्त करने की प्रक्रिया को होमोग्राफी विघटन कहा जाता है। कई एल्गोरिदम ज्ञात हैं, जिनमें क्लासिकल फाउगेरस-लस्टमैन विधि और विश्लेषणात्मक मालिस-वर्गास विधि शामिल हैं, जो \tilde H^\mathsf{T}\tilde H के आइगेनडिकंपोज़िशन का उपयोग करके एक क्लोज्ड-फॉर्म समाधान प्राप्त करते हैं। हालांकि, विशुद्ध रूप से गणितीय रूप से, 4 तक भौतिक रूप से संभव समाधान शेष रह सकते हैं (जिनमें साइन फ्लिप या रिफ्लेक्शन से संबंधित समाधान भी शामिल हैं)। व्यवहार में, इन्हें निम्न का उपयोग करके सीमित किया जाता है:

  • सकारात्मक गहराई (चीरैलिटी): त्रिभुजीकृत बिंदु दोनों कैमरों के सामने स्थित होने चाहिए।

  • प्लेन नॉर्मल की संभाव्यता: अनुप्रयोग से पहले से ज्ञात एक मोटे नॉर्मल दिशा के साथ संगति — जैसे कि जमीन या दीवार।

  • कई फ्रेमों में संगति: भले ही एक फ्रेम में अस्पष्ट हो, समय के साथ ट्रैकिंग से निरंतरता की कमी के कारण अप्राकृतिक समाधान सामने आते हैं।

OpenCV का decomposeHomographyMat यह विघटन करता है और फ़िल्टर फ़ंक्शन (जैसे filterHomographyDecompByVisibleRefpoints, जो ज्ञात समतल अभिलंब के निकट समाधान का चयन करता है) प्रदान करता है जो कई संभावित विकल्पों का मूल्यांकन करने में सहायता करते हैं।

5. उपध्रुवीय ज्यामिति से संबंध: H सही उत्तर कब है

जैसा कि हमने उपध्रुवीय ज्यामिति परिचय में देखा, एक सामान्य 3D दृश्य में दो-दृश्य पत्राचार को मौलिक/आवश्यक मैट्रिक्स द्वारा वर्णित किया जाता है। होमोग्राफी इसका एक विशेष मामला है, और इनके बीच चुनाव इस प्रकार है।

स्थिति उपयुक्त मॉडल कारण
सामान्य 3D संरचना, अनुवाद सहित F (असंरेखित) / E (संरेखित) पैरेलेक्स गहराई पर निर्भर करता है और इसे एक ही समतल में समाहित नहीं किया जा सकता।

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

कैमरा केवल शुद्ध घूर्णन (पैन/टिल्ट) करता है। बिना किसी स्थानांतरण के, कोई पैरेलेक्स नहीं होता, इसलिए यह सिद्धांत लागू नहीं होता।

दूर के दृश्य को देखने पर, पैरेलेक्स नगण्य होता है (व्यावहारिक सन्निकटन)। गहराई के अंतर के कारण उत्पन्न पैरेलेक्स पिक्सेल शोर में दब जाता है।

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

6. अनुप्रयोग: इमेज स्टिचिंग, AR प्लेन ट्रैकिंग और ग्राउंड-प्लेन अनुमान

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

AR में प्लेन-एंकर ट्रैकिंग पहले फ्रेम में किसी समतल, जैसे कि डेस्क या पोस्टर, का पता लगाती है, और प्रत्येक बाद के फ्रेम में होमोग्राफी को ट्रैक करके, उस समतल के सापेक्ष स्थिति को फ्रेम दर फ्रेम स्थिर रूप से निर्धारित कर सकती है। विघटित R,\mathbf{t}/d का उपयोग करके, आप दृश्य असंगति के बिना समतल के निर्देशांक फ्रेम से जुड़े एक आभासी ऑब्जेक्ट को ओवरले कर सकते हैं।

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

7. OpenCV में कार्यान्वयन उदाहरण

import cv2 as cv
import numpy as np

orb = cv.ORB_create(nfeatures=3000)
kp1, des1 = orb.detectAndCompute(img1, None)
kp2, des2 = orb.detectAndCompute(img2, None)
matches = cv.BFMatcher(cv.NORM_HAMMING).knnMatch(des1, des2, k=2)
good = [m for m, n in matches if m.distance < 0.75 * n.distance]

p1 = np.float32([kp1[m.queryIdx].pt for m in good]).reshape(-1, 1, 2)
p2 = np.float32([kp2[m.trainIdx].pt for m in good]).reshape(-1, 1, 2)

# threshold is the allowed reprojection error, in pixels. USAC_MAGSAC is also selectable in place of RANSAC.
H, mask = cv.findHomography(p1, p2, method=cv.RANSAC, ransacReprojThreshold=3.0)
inliers = mask.ravel().astype(bool)

# if K is known, decompose into candidate solutions
num_solutions, Rs, ts, ns = cv.decomposeHomographyMat(H, K)

ध्यान दें कि findHomography द्वारा लौटाया गया H स्केल-अस्पष्ट है। एपिपोलर ज्योमेट्री प्राइमर में आवश्यक मैट्रिक्स की तरह, विघटन से प्राप्त अनुवाद वेक्टर भी केवल एक दिशा निर्धारित करता है — इसका निरपेक्ष स्केल किसी अन्य माध्यम से प्रदान किया जाना चाहिए (एक ज्ञात समतल दूरी, एक स्टीरियो बेसलाइन, एक जड़त्वीय सेंसर, इत्यादि)।

8. कठिन परिस्थितियाँ

  • टूटी हुई समतलता: एक दृश्य जो समतल दिखता है उसमें भी वास्तविक मोटाई वाली वस्तुएँ शामिल हो सकती हैं — किताबें, साइनबोर्ड के किनारे, पौधे — और उन पर स्थित बिंदु व्यवस्थित आउटलायर बन जाते हैं। RANSAC की सीमा को लापरवाही से ढीला करने से गैर-समतल बिंदु अंदर आ जाते हैं, जिससे H स्वयं विकृत हो जाता है।

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

  • अपभ्रष्ट विन्यास: यदि पत्राचार बिंदु छवि में एक ही रेखा पर या एक संकीर्ण क्षेत्र में केंद्रित होते हैं, तो डीएलटी मैट्रिक्स खराब स्थिति में आ जाता है, और पत्राचार बिंदुओं से दूर के क्षेत्रों (H) में त्रुटि तेजी से बढ़ जाती है।

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

  • विघटन में अस्पष्टता: यदि K गलत है, या शोर अधिक है, तो विघटन से कई उम्मीदवारों में से भौतिक रूप से सही समाधान को विशिष्ट रूप से चुनना असंभव हो सकता है। इसे हमेशा अतिरिक्त पूर्व ज्ञान (सामान्य दिशा, धनात्मक गहराई) के साथ संयोजित करें।

9. सारांश

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

अपनी समझ की जाँच करें
क्या एक होमोग्राफी अलग-अलग गहराई पर स्थित वस्तुओं को संरेखित कर सकती है?

सामान्य अनुवाद से समतल से बाहर की वस्तुओं के लिए लंबन (parallax) रह जाता है।

एकल होमोग्राफी का उपयोग करने से पहले समतल दृश्य या शुद्ध घूर्णन संबंधी मान्यताओं की जाँच करें। ## संदर्भ - [हार्टले और ज़िसरमैन, कंप्यूटर विज़न में मल्टीपल व्यू ज्योमेट्री (लेखकों का आधिकारिक पृष्ठ)](https://www.robots.ox.ac.uk/~vgg/hzbook/) - [फिशलर और बोल्स, रैंडम सैंपल कंसेंसस (कम्युनिकेशन्स ऑफ द एसीएम, 1981)](https://doi.org/10.1145/358669.358692) - [मालिस और वर्गास, विज़न-आधारित नियंत्रण के लिए होमोग्राफी डीकंपोज़िशन की गहरी समझ (आईएनआरआईए रिसर्च रिपोर्ट आरआर-6303, 2007)](https://inria.hal.science/inria-00174036) - [मुर-आर्टल, मोंटिएल और टार्डोस, ORB-SLAM: एक बहुमुखी और सटीक मोनोक्युलर SLAM सिस्टम (IEEE TRO, 2015)](https://doi.org/10.1109/TRO.2015.2463671) ) - [ओपनसीवी — कोड सहित होमोग्राफी की बुनियादी अवधारणाओं की व्याख्या](https://docs.opencv.org/4.x/d9/dab/tutorial_homography.html) - [ओपनसीवी — फाइंडहोमोग्राफी / डीकंपोजहोमोग्राफीमैट संदर्भ](https://docs.opencv.org/4.x/d9/d0c/group__calib3d.html) - [ओपनसीवी — इमेज स्टिचिंग मॉड्यूल](https://docs.opencv.org/4.x/d1/d46/group__stitching.html)

What to read next

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