mean_reprojection_error — 3D bundle_adjust op

• Data kinds: pose × points → measurement

• Call: import fullseye as fs; fs.ledger.mean_reprojection_error(cameras, points, obs_cam, obs_pt, obs_uv, K) (implementation को सीधे call करना हो तो import bundle3d; bundle3d.mean_reprojection_error(cameras, points, obs_cam, obs_pt, obs_uv, K), registry से लेना हो तो ops3d.get("mean_reprojection_error"))

उपयोग

reprojection RMS error (pixels)।

सभी observation k के लिए project(points[obs_pt[k]], cameras[obs_cam[k]]) और obs_uv[k] का अंतर (du, dv) लेकर, sqrt(mean_k(du² + dv²)) = हर observation की reprojection दूरी की 2nd power के mean का square root float के रूप में लौटाता है (implementation r.reshape(-1,2)**2 * 2 के mean का square root है, वही मात्रा)। unit obs_uv और K के अनुसार pixel है।

• cameras: (nc,6) का [rvec(3) | t(3)] (X_cam = R X + t)।

• points: (m,3) के 3D point।

• obs_cam / obs_pt: हर observation का camera index और point index (int)। obs_uv: (K,2) के observed pixel।

• K: सभी camera के लिए साझा (3,3) intrinsic matrix।

यह bundle_adjust की return value rmse जैसी ही गणना है, optimisation से पहले और बाद की तुलना के लिए। 0 observation होने पर खाली array का mean NaN देता है (लंबाई की जाँच bundle_adjust में है, यह function अकेले नहीं करता)। camera के पीछे के point भी project वैसे ही project कर देता है, इसलिए visibility की गारंटी caller को देनी होती है।

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

• bundle_adjust — py -3.11 examples_3d/bundle_adjust.py

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

vol_gaussian_psf · fuse_to_voxel · fresnel_reflectance · snell_angle

इसी category के (bundle_adjust)

bundle_adjust · project


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

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