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 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 के स्रोत।
• bundle_adjust — py -3.11 examples_3d/bundle_adjust.py
measurement को input के रूप में लेते हैं)vol_gaussian_psf · fuse_to_voxel · fresnel_reflectance · snell_angle
bundle_adjust)*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.