bundle_adjust op• Data kinds: points → keypoints
• Call: import fullseye as fs; fs.ledger.project(points, rvec, t, K) (implementation को सीधे call करना हो तो import bundle3d; bundle3d.project(points, rvec, t, K), registry से लेना हो तो ops3d.get("project"))
3D points (n,3) को camera (rvec,t,K) से 2D (n,2) पर project करता है (perspective division)।
X_cam = R(rvec) @ X + t, x = K @ X_cam, uv = x[:2] / x[2] सभी points के लिए एक साथ गणना करता है (project_points जैसा ही convention)। rvec rotation vector है (axis × कोण [rad], scipy का Rotation.from_rotvec), t (3,) translation है, K (3,3) intrinsic matrix है। return value (n,2) float है, जिसमें column 0 u (क्षैतिज, column दिशा) और column 1 v (ऊर्ध्वाधर, row दिशा) है, unit K के अनुसार pixel।
सावधानी (कोई जाँच नहीं): camera के पीछे या image plane पर के point (Z_cam <= 0) हटाए नहीं जाते, सीधे भाग दिया जाता है। Z_cam = 0 पर 0 से भाग के कारण inf/NaN आता है, ऋणात्मक Z image के अंदर दिखने वाले नकली coordinates देता है, इसलिए visibility का निर्णय caller करे। shape की जाँच भी नहीं होती (केवल np.asarray से float बनाया जाता है)। bundle_adjust / mean_reprojection_error के reprojection residual इसी function से बनते हैं।
• 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
keypoints को input के रूप में लेते हैं)fuse_to_voxel · dlt_pose · pnp_ransac · reprojection_error
bundle_adjust)bundle_adjust · mean_reprojection_error
*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.