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"))

用法

從 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)的嚴格透視投影多邊形矩(面積、重心、二階)以 Gauss–Newton 對齊遮罩的矩(5 自由度、8 個殘差)。殘差 residual_px 超過 0.15 px 則 ok = False(底板被壁遮住等。距視線 45° 時為 2.8 px,到 38° 為止 ≤ 0.02 px)。

回傳 {"center", "center_rim", "axis", "axis_init", "tilt_init_deg", "a_px", "b_px", "residual_px", "ok", "seg"}。Raises 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.