Retail users investigating shrinkage often need to isolate where a person lingered, not just whether they entered a predefined zone. The Explore tab currently can’t filter by an ad‑hoc region or by “person stopped here,” even though Frigate already persists the data needed to support both.
The request is to allow a user to draw an arbitrary polygon directly on the Explore tab camera frame, filter events to objects whose path intersected that polygon, and optionally toggle a stationary filter to show only events where the object became motionless inside that polygon. This enables a practical workflow: pick the suspicious spot, toggle stationary, and instantly browse only the relevant person or vehicle events.
All required data already exists today. Event.data.path_data contains normalized position history, and the Timeline table stores every stationary/active transition with normalized coordinates. No schema changes are required for a first implementation.
Performance considerations (optional enhancements):
The initial implementation can rely entirely on existing data. For typical Explore usage, this is fast enough. However, large searches across many cameras or long time ranges may benefit from lightweight denormalization. Two optional improvements would help: storing stationary positions directly inside Event.data to avoid Timeline joins, and adding a simple normalized bounding box around path_data to quickly reject events that never overlap the polygon.
This SOTA feature would make Explore dramatically more useful for real‑world investigations without touching the core tracking pipeline.
Retail users investigating shrinkage often need to isolate where a person lingered, not just whether they entered a predefined zone. The Explore tab currently can’t filter by an ad‑hoc region or by “person stopped here,” even though Frigate already persists the data needed to support both.
The request is to allow a user to draw an arbitrary polygon directly on the Explore tab camera frame, filter events to objects whose path intersected that polygon, and optionally toggle a stationary filter to show only events where the object became motionless inside that polygon. This enables a practical workflow: pick the suspicious spot, toggle stationary, and instantly browse only the relevant person or vehicle events.
All required data already exists today. Event.data.path_data contains normalized position history, and the Timeline table stores every stationary/active transition with normalized coordinates. No schema changes are required for a first implementation.
Performance considerations (optional enhancements):
The initial implementation can rely entirely on existing data. For typical Explore usage, this is fast enough. However, large searches across many cameras or long time ranges may benefit from lightweight denormalization. Two optional improvements would help: storing stationary positions directly inside Event.data to avoid Timeline joins, and adding a simple normalized bounding box around path_data to quickly reject events that never overlap the polygon.
This SOTA feature would make Explore dramatically more useful for real‑world investigations without touching the core tracking pipeline.