move_detect/edge/detectors
유창욱 e81ea8961c refactor(edge): DRY displacement helper into geometry.track_displacement (FIX 6)
_displacement (mean per-keypoint delta between the last two track frames,
normalized by bbox height) was duplicated verbatim in
edge/detectors/fall.py and edge/detectors/immobility.py.

Move it to edge/geometry.py as track_displacement(track) and have both
detectors call the shared helper instead of their own private copy.
Pure refactor — behavior is identical (byte-identical formula), no
config or public API changes.

Tests: tests/test_geometry.py adds direct coverage for the new public
helper (fewer-than-two-frames default, and the normalized-by-height
calculation). Existing fall/immobility tests are unchanged and stay green,
confirming behavior parity.
2026-07-11 22:21:27 +09:00
..
__init__.py feat(edge): FallDetector state machine (OR-logic, baseline freeze, post-fall no-motion) 2026-07-11 20:41:11 +09:00
fall.py refactor(edge): DRY displacement helper into geometry.track_displacement (FIX 6) 2026-07-11 22:21:27 +09:00
ghost.py fix(edge): identity-aware GHOST dedup keyed on track_id (FIX 4) 2026-07-11 22:17:48 +09:00
immobility.py refactor(edge): DRY displacement helper into geometry.track_displacement (FIX 6) 2026-07-11 22:21:27 +09:00
zone.py fix(edge): forget per-track state on lost tracks (FIX 5) 2026-07-11 22:19:39 +09:00