move_detect/edge
유창욱 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
..
adapters feat(edge): hardware adapter stubs + Pi bring-up/benchmark doc 2026-07-11 21:54:24 +09:00
detectors refactor(edge): DRY displacement helper into geometry.track_displacement (FIX 6) 2026-07-11 22:21:27 +09:00
__init__.py feat(edge): data models (Keypoint, BBox, Person) + COCO indices 2026-07-11 20:13:00 +09:00
alert.py feat(edge): PostClient with HMAC+nonce signed event POST 2026-07-11 21:27:38 +09:00
app.py fix(edge): smooth keypoints per-track after tracking, not before (FIX 1) 2026-07-11 22:14:03 +09:00
config.py feat(edge): env-based Config for detectors and transport 2026-07-11 21:40:06 +09:00
engine.py fix(edge): forget per-track state on lost tracks (FIX 5) 2026-07-11 22:19:39 +09:00
events.py feat(edge): Event model + severity mapping (§7.3 payload) 2026-07-11 20:34:57 +09:00
geometry.py refactor(edge): DRY displacement helper into geometry.track_displacement (FIX 6) 2026-07-11 22:21:27 +09:00
models.py feat(edge): data models (Keypoint, BBox, Person) + COCO indices 2026-07-11 20:13:00 +09:00
ports.py feat(edge): Track model + IoU tracker with lost-track reporting 2026-07-11 20:28:45 +09:00
queue.py feat(edge): OfflineQueue (SQLite persist + ordered resend) 2026-07-11 21:33:43 +09:00
smoothing.py fix(edge): smooth keypoints per-track after tracking, not before (FIX 1) 2026-07-11 22:14:03 +09:00
snapshot.py feat(edge): RingBuffer + face blur + JPEG snapshotter 2026-07-11 21:21:57 +09:00
tracking.py feat(edge): Track model + IoU tracker with lost-track reporting 2026-07-11 20:28:45 +09:00