Release Notes#
Current Release#
Version 1.1.0#
Release Date: May 2026
New:
Search API response format:
visits[]changed toappearances[]with entry/exit similarity and frame URLsDynamic SceneScape configuration: All environment variables are now auto-generated from
configs/zone_config.jsonviamake initthat replacedmake init-env. In result, manual editing of.envis not required.Benchmark targets now use performance-tools submodule instead of backend benchmarks
Two-stage offline search: Historical search now uses a two-stage pipeline — first searches enrolled POI index, then falls back to the all-detections index for non-enrolled persons
Multi-embedding detection index: Stores up to 5 face embeddings per tracked person (spaced 10 seconds apart) for more robust matching
Entry/exit frame capture: Search results include entry and exit frames per track, with zone-level entry/exit frames for dwell records
Track purity filter: Prevents false positives from DL Streamer track ID reuse by checking per-POI event counts and filtering tracks with < 40% purity
Scene export script:
make export-sceneexports scene config from a running SceneScape instance as an importable zip filePer-camera pipeline configs: DL Streamer pipeline configs are generated dynamically per camera from zone_config.json
Benchmark submodule: Benchmark targets now use performance-tools submodule instead of backend benchmarks
Stream density benchmarking: Integrated performance-tools submodule with
make benchmark,make benchmark-stream-density,make consolidate-metrics, andmake plot-metricstargetsApp-specific controller configs: Tracker and reid configs moved from SceneScape to each app’s
configs/directory (POI: cosine/0.97, SAD: L2/30)
Fixed:
Fixed offline search returning false positives due to missing similarity threshold
Fixed UI crash on search results when accessing removed
search_statsfieldsFixed non-enrolled persons not found in search (cross-domain embedding gap between OpenVINO™ enrollment and DL Streamer runtime)
Resolved merge conflicts from suryam/poi branch (entry/exit grouped tracks)
Version 1.0.0#
Release Date: April 2026
Features:
Real-time POI face matching using FAISS cosine similarity on 256-d embeddings from
face-reidentification-retail-0095POI enrollment via REST API with automatic face detection and embedding generation using OpenVINO™
Historical search API — upload an image and get a timeline of appearances across all cameras, with region dwell times and thumbnails
Multi-strategy alert delivery — WebSocket (to UI), MQTT publish, webhook POST, and logging, with configurable deduplication and suppression
React + TypeScript UI for POI management, real-time alert monitoring, and historical investigation
Cache-Aside pattern for object-to-POI mapping — avoids repeated FAISS searches for the same tracked person
Region entry/exit tracking with dwell time computation via Intel® SceneScape regulated scene events
Docker Compose deployment with four services: backend, UI, Redis, and alert service
Full test suite with 110 passing tests covering matching, alerting, MQTT consumption, region tracking, and enrollment
OpenVINO™ Models Used:
Model |
Purpose |
Output |
|---|---|---|
|
Face detection |
Face bounding boxes |
|
Face re-identification |
256-d float32 vector |
HW Used for Validation:
Intel® Xeon® Scalable Processor (4th Generation)
Ubuntu 22.04 LTS
Known Issues/Limitations:
FAISS uses
IndexFlatIP(exact search) — for very large POI galleries (10,000+ embeddings), consider switching toIndexIVFFlatfor approximate nearest neighbor search.Thumbnail capture depends on RTSP stream availability from the camera; if RTSP is not configured, thumbnails may be empty.
SceneScape integration is required for region tracking and dwell time features; without SceneScape, only per-camera tracking is available.
Alert deduplication window is per
(object_id, poi_id)pair — a different POI match for the same person will generate a new alert immediately.