foe_from_flow — DRIVE ttc op

• Data kinds: image2d × image2d → table

• Call: import fullseye as fs; fs.ledger.foe_from_flow(u, v, mask=None, *, min_speed: 'float' = 0.3, max_speed: 'float' = inf, iters: 'int' = 5, angle_scale: 'float' = 0.05) -> 'dict' (implementation को सीधे call करना हो तो import drivettc; drivettc.foe_from_flow(u, v, mask=None, *, min_speed: 'float' = 0.3, max_speed: 'float' = inf, iters: 'int' = 5, angle_scale: 'float' = 0.05) -> 'dict', registry से लेना हो तो opsdrive.get("foe_from_flow"))

उपयोग

optical flow से focus of expansion (FoE) का अनुमान लगाता है: {"foe": (col, row), "n", "residual"}।

> नीचे का विस्तृत विवरण मूल text में है — सारांश और headings का अनुवाद हो चुका है।

純平行移動の流れは FoE から放射状(Longuet-Higgins & Prazdny 1980)なので、各画素の流線(点 p_i を流れの向きに通る直線)は全部 FoE を通る。FoE = Σ w_i·dist(F, 流線_i)² を最小にする点(2×2 の正規方程式)。重みは反復で 1/|p_i − F|·1/(1 + (角度残差/angle_scale)²)(Cauchy 風)。遠い画素の流線ほど向きの誤差が FoE の位置に効くので距離で割り、外れ値(遮蔽・無地)を角度残差で落とす。15 巡目で「既知」にした FoE を流れから出す口(16 巡目)。

定理の門: 真の流れ(flow_from_depth_motion)を入れると foe_from_motion と 1e-9 で一致。

mask は使う画素(既定 = 有限で速さが [min_speed, max_speed] の画素)。有効画素が 3 未満、または正規方程式が特異(流線が全部平行)なら 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_world_terrain — py -3.11 examples/poc_world_terrain.py

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

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

इसी category के (ttc)

relative_motion · foe_from_motion · flow_from_depth_motion · ttc_truth · ttc_from_flow · ttc_from_scale · ttc_from_range · label_extent


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

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