diabolo_axis_from_image — DRIVE diabolo op

• 数据种类:rgb × table × table → table

• 调用: import fullseye as fs; fs.ledger.diabolo_axis_from_image(img, cam: 'dict', params: 'dict', *, refine: 'bool' = True, iters: 'int' = 15) -> 'dict'(要直接调用实现,import diabolo; diabolo.diabolo_axis_from_image(img, cam: 'dict', params: 'dict', *, refine: 'bool' = True, iters: 'int' = 15) -> 'dict';从台账取用则 opsdrive.get("diabolo_axis_from_image"))

• GPU:无(仅 CPU 参考实现)

用法

从 1 帧求出近侧杯口边缘的中心 center_rim 和轴 axis(朝向相机)。空竹中心 center = center_rim − (L/2) axis。无学习。

初始值(弱透视):边缘椭圆半长轴→深度,短/长= cos θ,底板中心位移=(L/2 − z_h)sin θ,θ = atan2(sin, cos) (避开acos底板),偏差方向=轴像方向。精加工:边圆(半径 R,中心 C)和底板(半径 r_h,中心 C − (L/2 − z_h) a)使用高斯-牛顿(5 个自由度,8 个残差)将精确透视投影的多边形矩(面积、重心、二次)与掩模的矩进行匹配。如果剩余“residual_px”超过 0.15 px(例如,底板被墙隐藏,距视线 45° 处 2.8 px,38° 以内≤ 0.02 px),则“ok = False”。

返回{“center”,“center_rim”,“axis”,“axis_init”,“tilt_init_deg”,“a_px”,“b_px”,“hub_px”,“rim_px”,“residual_px”,“ok”,“seg”}。引发 ValueError:无法看到图像的形状、杯子的内部或底板(无法估计)。

参考(示例数据、文献)

• 示例数据目录(下载 URL / 许可证) —— 2-D 用 skimage.data(BSD/公有领域)加合成图,3-D 给出真实数据源(Stanford/PDS 等)的下载 URL。

• 算子来历与参考文献 —— 该算子族所依据的研究/方法出处。

• 算法的正典(作者、年份)与用途见上面的族使用指南。

可运行的示例(实际调用该算子并已验证的样例)

• poc_diabolo_model_and_vision — py -3.11 examples/poc_diabolo_model_and_vision.py

类型可衔接的下一个算子(可接受 table 作为输入)

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

同类别(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 算子登记表。本条目由 tools/opdocs.py md 自动生成(请勿手工编辑)。*

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