diabolo_axis_from_image — DRIVE diabolo op

• Data kinds: rgb × table × table → table

• Call: import fullseye as fs; fs.ledger.diabolo_axis_from_image(img, cam: 'dict', params: 'dict', *, refine: 'bool' = True, iters: 'int' = 15) -> 'dict' (implementation को सीधे call करना हो तो import diabolo; diabolo.diabolo_axis_from_image(img, cam: 'dict', params: 'dict', *, refine: 'bool' = True, iters: 'int' = 15) -> 'dict', registry से लेना हो तो opsdrive.get("diabolo_axis_from_image"))

• GPU: नहीं (केवल CPU reference implementation)

उपयोग

1 frame से पास वाले cup के किनारे का केंद्र center_rim और axis axis (camera की ओर) निकालता है। diabolo का केंद्र center = center_rim − (L/2) axis। learning के बिना।

प्रारंभिक मूल्य (कमजोर परिप्रेक्ष्य): किनारे दीर्घवृत्त का अर्ध-प्रमुख अक्ष → गहराई, छोटा/लंबा = cos θ, नीचे की प्लेट के केंद्र का बदलाव = (L/2 - z_h) पाप θ, θ = atan2(sin, cos) (एकोस फ्लोर से बचें), विचलन की दिशा = अक्ष की छवि की दिशा। फिनिशिंग: एज सर्कल (त्रिज्या आर, केंद्र सी) और नीचे की प्लेट (त्रिज्या आर_एच, केंद्र सी - (एल/2 - जेड_एच) ए) गॉस-न्यूटन (स्वतंत्रता के 5 डिग्री, 8 अवशेष) का उपयोग करके मास्क के क्षणों के सटीक परिप्रेक्ष्य प्रक्षेपण के बहुभुज क्षणों (क्षेत्र, गुरुत्वाकर्षण का केंद्र, द्विघात) का मिलान करें। ठीक = गलत यदि अवशिष्ट अवशिष्ट_पीएक्स 0.15 पीएक्स से अधिक है (उदाहरण के लिए नीचे की प्लेट एक दीवार से छिपी हुई है, दृष्टि की रेखा से 45 डिग्री पर 2.8 पिक्सल, ≤ 0.02 पिक्सल 38 डिग्री तक)।

{"center", "center_rim", "axis", "axis_init", "tilt_init_deg", "a_px", "b_px", "hub_px", "rim_px", "residual_px", "ok", "seg"} लौटाता है। उठाता है ValueError: छवि का आकार, कप के अंदर या निचली प्लेट को नहीं देखा जा सकता (अनुमान नहीं लगाया जा सकता)।

संदर्भ (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 के स्रोत।

• Algorithm का मानक स्रोत (लेखक, वर्ष) और उपयोग ऊपर की family usage guide में दिए गए हैं।

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

• poc_diabolo_model_and_vision — py -3.11 examples/poc_diabolo_model_and_vision.py

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

course_layout · course_occupancy · course_contains · world_build · world_camera · world_move · lidar_scan · rss_longitudinal_same

इसी category के (diabolo)

diabolo_params · diabolo_spheroid · spheroid_closest · diabolo_dynamics_step · diabolo_simulate · diabolo_state_sequence · diabolo_throw_catch_truth · string_tension_static


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

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