essential_8point — 3D two_view op

• Data kinds: image2d × image2d → matrix

• Call: import fullseye as fs; fs.ledger.essential_8point(pts1, pts2, K1, K2=None) (implementation को सीधे call करना हो तो import twoview; twoview.essential_8point(pts1, pts2, K1, K2=None), registry से लेना हो तो ops3d.get("essential_8point"))

उपयोग

corresponding points + K से essential matrix E सीधे। → E (3,3)।

प्रक्रिया: fundamental_8point(pts1, pts2) से F का अनुमान लगाकर E = K2ᵀ F K1 बनाया जाता है, फिर SVD से singular values को (1, 1, 0) से बदला जाता है (essential matrix का गुण। परिणाम का Frobenius norm √2 पर स्थिर होता है)।

• K1 (3,3) image 1 का intrinsic matrix है, K2 छोड़ने पर K1 दोनों images के लिए उपयोग होता है (एक ही camera की मान्यता)।

• correspondence points pixel coordinates (N,2) हैं। सत्यापन और exceptions fundamental_8point जैसे ही हैं (8 points से कम, points की संख्या में बेमेल, non-finite, या (N,2) न होने वाला input ValueError देता है)।

• E का चिह्न अनिश्चित है, और (R, t) 4 candidates में बँट जाता है। decomposition और cheirality से अद्वितीय चुनाव तक सब एक साथ recover_pose करता है।

• outliers के सामने असुरक्षित। planar और pure rotation की degeneracy भी यह op नहीं पकड़ता (recover_pose पकड़ता है)। deterministic।

पृष्ठभूमि guides (इस op के पीछे की physics और conventions)

• depth_sensors — Depth sensors — ranging के सिद्धांत, असली devices के आँकड़े, dropouts कैसे दिखते हैं

संदर्भ (sample data, साहित्य)

• Sample data catalog (DL URL / license) — 2-D के लिए skimage.data (BSD/public) + synthetic, 3-D के लिए real data sources (Stanford/PDS आदि) के DL URL।

• Operators का स्रोत और संदर्भ — इस op family के मूल research/methods के स्रोत।

चलाए जा सकने वाले उदाहरण (verified samples जो सच में यह op call करते हैं)

• sfm_recon — py -3.11 examples_3d/sfm_recon.py

वे अगले ops जिनसे type जुड़ता है (matrix को input के रूप में लेते हैं)

fuse_to_voxel

इसी category के (two_view)

fundamental_8point · recover_pose · triangulate · sampson_distance


*Provenance: twoview.py — 3D operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.