ttc op• Datenarten: image2d × image2d → table
• Aufruf: 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' (die Implementierung direkt: 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'; aus dem Register: opsdrive.get("foe_from_flow"))
Schätzt den Expansionsfokus (FoE) aus dem optischen Fluss: {"foe": (col, row), "n", "residual"}.
Der Fluss reiner Translation ist radial vom FoE aus (Longuet-Higgins & Prazdny 1980), daher verlaufen alle Flusslinien der Pixel (die Gerade durch Punkt p_i in Flussrichtung) durch den FoE. FoE = der Punkt, der Σ w_i·dist(F, Flusslinie_i)² minimiert (2×2-Normalgleichungen). Die Gewichte sind iterativ 1/|p_i − F|·1/(1 + (角度残差/angle_scale)²) (Cauchy-artig). Je weiter das Pixel entfernt ist, desto stärker wirkt der Richtungsfehler seiner Flusslinie auf die FoE-Position, daher wird durch den Abstand geteilt, und Ausreißer (Verdeckung, texturlos) werden über das Winkelresiduum unterdrückt. Der Einstieg (Runde 16), der den in Runde 15 als "bekannt" gesetzten FoE aus dem Fluss bestimmt.
Theorem-Gate: Mit dem wahren Fluss (flow_from_depth_motion) stimmt es mit foe_from_motion auf 1e-9 überein.
mask sind die zu verwendenden Pixel (Standard = endliche Pixel mit Geschwindigkeit in [min_speed, max_speed]). Weniger als 3 gültige Pixel oder singuläre Normalgleichungen (alle Flusslinien parallel) lösen ValueError aus.
• Katalog der Beispieldaten (Download-URLs / Lizenzen) — 2-D nutzt skimage.data (BSD/Public Domain) plus synthetische Bilder, 3-D nennt Download-URLs echter Datenquellen (Stanford, PDS, …).
• Herkunft und Literatur der Operatoren — die Quellen der Forschung/Verfahren, auf denen diese Operatorfamilie beruht.
• Der kanonische Algorithmus (Autor, Jahr) und seine Anwendungen stehen im Familienleitfaden oben.
• poc_world_terrain — py -3.11 examples/poc_world_terrain.py
table als Eingabe)course_layout · course_occupancy · course_contains · world_build · world_camera · world_move · lidar_scan · rss_longitudinal_same
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. Diese Notiz wird von tools/opdocs.py md erzeugt (nicht von Hand bearbeiten).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.