estimate_covariances — 3D gicp op

• Data kinds: points → descriptor

• Call: import fullseye as fs; fs.ledger.estimate_covariances(points, k: 'int' = 20, epsilon: 'float' = 0.001) -> 'np.ndarray' (implementation को सीधे call करना हो तो import gicp; gicp.estimate_covariances(points, k: 'int' = 20, epsilon: 'float' = 0.001) -> 'np.ndarray', registry से लेना हो तो ops3d.get("estimate_covariances"))

उपयोग

हर point की local covariance के eigenvalues को (ε,1,1) से बदलकर बनी plane-to-plane covariance (N,3,3)।

k nearest neighbours (point स्वयं सहित) की sample covariance का eigen-decomposition करता है, और eigenvalues को tangent plane के अंदर 1 और surface normal दिशा (सबसे छोटे eigenvalue की दिशा) में ε से बदलकर पुनर्निर्मित करता है। Covariance का आकार neighbourhood के फैलाव से स्वतंत्र, स्थिर (ε,1,1) रहता है, जिससे scale-invariant "समतल होने की संभावना" वाला model बनता है (GICP का मूल)।

Arguments:

points (N,3): point cloud।

k: neighbours की संख्या (point स्वयं सहित)। Covariance estimation लगभग k≥4 से स्थिर रहता है।

epsilon: normal दिशा को दिया गया छोटा variance (0<ε<1)। जितना छोटा, उतना अधिक मज़बूती से

tangent plane पर बाँधता है। Scale-invariant (dimensionless अनुपात)।

Return value:

(N,3,3) symmetric positive-definite covariances का समूह। हर covariance के eigenvalues {ε,1,1} हैं, और ε से

संबंधित eigenvector local surface normal की दिशा है।

Exceptions:

ValueError: points (N,3) नहीं है / N<3 (normal तय नहीं होता, degenerate) /

epsilon (0,1) से बाहर (fail-closed)।

संदर्भ (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 करते हैं)

• gicp_register — py -3.11 examples_3d/gicp_register.py

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

fuse_to_voxel · shape_distance

इसी category के (gicp)

gicp


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

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