* don't flatten the search result cache when updating
this would cause an infinite swr fetch if something was mutated and then fetch was called again
* Properly sort keys for recording summary in StorageMetrics
* tracked object description box tweaks
* Remove ability to right click on elements inside of face popup
* Update reprocess message
* don't show object track until video metadata is loaded
* fix blue line height calc for in progress events
* Use timeline tab by default for notifications but add a query arg for customization
* Try and improve notification opening behavior
* Reduce review item buffering behavior
* ensure logging config is passed to camera capture and tracker processes
* ensure on demand recording stops when browser closes
* improve active line progress height with resize observer
* remove icons and duplicate find similar link in explore context menu
* fix for initial broken image when creating trigger from explore
* display friendly names for triggers in toasts
* lpr and triggers docs updates
* remove icons from dropdowns in face and classification
* fix comma dangle linter issue
* re-add incorrectly removed face library button icons
* fix sidebar nav links on < 768px desktop layout
* allow text to wrap on mark as reviewed button
* match exact pixels
* clarify LPR docs
---------
Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
* Fix filtering for classification
* Adjust prompt to account for response tokens
* Correctly return response for reprocess
* Use API response to update data instead of trying to re-parse all of the values
* Implement rename class api
* Fix model deletion / rename dialog
* Remove camera spatial context
* Catch error
* show id field when editing zone
* improve zone capitalization
* Update NPU models and docs
* fix mobilepage in tracked object details
* Use thread lock for openvino to avoid concurrent requests with JinaV2
* fix hashing function to avoid collisions
* remove extra flex div causing overflow
* ensure header stays on top of video controls
* don't smart capitalize friendly names
* Fix incorrect object classification crop
* don't display submit to plus if object doesn't have a snapshot
* check for snapshot and clip in actions menu
* frigate plus submission fix
still show frigate+ section if snapshot has already been submitted and run optimistic update, local state was being overridden
* Don't fail to show 0% when showing classification
* Don't fail on file system error
* Improve title and description for review genai
* fix overflowing truncated review item description in detail stream
* catch events with review items that start after the first timeline entry
review items may start later than events within them, so subtract a padding from the start time in the filter so the start of events are not incorrectly filtered out of the list in the detail stream
* also pad on review end_time
* fix
* change order of timeline zoom buttons on mobile
* use grid to ensure genai title does not cause overflow
* small tweaks
* Cleanup
---------
Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
* feat: add zones friendly name
* fix: fix the issue where the input field was empty when there was no friendly_name
* chore: fix the issue where the friendly name would replace spaces with underscores
* docs: update zones docs
* Update web/src/components/settings/ZoneEditPane.tsx
Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>
* Add friendly_name option for zone configuration
Added optional friendly name for zones in configuration.
* fix: fix the logical error in the null/empty check for the polygons parameter
* fix: remove the toast name for zones will use the friendly_name instead
* docs: remove emoji tips
* revert: revert zones doc ui tips
* Update docs/docs/configuration/zones.md
Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>
* Update docs/docs/configuration/zones.md
Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>
* Update docs/docs/configuration/zones.md
Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>
* feat: add friendly zone names to tracking details and lifecycle item descriptions
* chore: lint fix
* refactor: add friendly zone names to timeline entries and clean up unused code
* refactor: add formatList
---------
Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>
* Pull context size from openai models
* Adjust wording based on type of model
* Instruct to not use parenthesis
* Simplify genai config
* Don't use GPU for training
* Update docs for review descriptions
* Add logging for context tokens used
* Incrase number of images due to lower than expected context usage
* Re-balance the suspicious activity checks
* Adjustments to context sizing
* optimize context usage
* Adjust context usage
* Make title more direct
* Update docs
* Implement extraction of images for classification state models
* Add object classification dataset preparation
* Add first step wizard
* Update i18n
* Add state classification image selection step
* Improve box handling
* Add object selector
* Improve object cropping implementation
* Fix state classification selection
* Finalize training and image selection step
* Cleanup
* Design optimizations
* Cleanup mobile styling
* Update no models screen
* Cleanups and fixes
* Fix bugs
* Improve model training and creation process
* Cleanup
* Dynamically add metrics for new model
* Add loading when hitting continue
* Improve image selection mechanism
* Remove unused translation keys
* Adjust wording
* Add retry button for image generation
* Make no models view more specific
* Adjust plus icon
* Adjust form label
* Start with correct type selected
* Cleanup sizing and more font colors
* Small tweaks
* Add tips and more info
* Cleanup dialog sizing
* Add cursor rule for frontend
* Cleanup
* remove underline
* Lazy loading
* Add cutoff for object classification
* Add selector for classifiction model type
* Improve model selection view
* Clean up design of classification card
* Tweaks
* Adjust button colors
* Improvements to gradients and making face library consistent
* Add basic classification model wizard
* Use relative coordinates
* Properly get resolution
* Clean up exports
* Cleanup
* Cleanup
* Update to use pre-defined component for image shadow
* Refactor image grouping
* Clean up mobile
* Clean up decision logic
* Remove max check on classification objects
* Increase default number of faces shown
* Cleanup
* Improve mobile layout
* Clenaup
* Update vocabulary
* Fix layout
* Fix page
* Cleanup
* Choose last item for unknown objects
* Move explore button
* Cleanup grid
* Cleanup classification
* Cleanup grid
* Cleanup
* Set transparency
* Set unknown
* Don't filter all configs
* Check length
* Add optional idle heartbeat for Birdseye (periodic frame emission when idle)
birdseye: add optional idle heartbeat and FFmpeg tuning envs (default off)
This adds an optional configuration field `birdseye.idle_heartbeat_fps` to
enable a lightweight idle heartbeat mechanism in Birdseye. When set to a value
greater than 0, Birdseye periodically re-sends the last composed frame during
idle periods (no motion or active updates).
This helps downstream consumers such as go2rtc, Alexa, or Scrypted to attach
faster and maintain a low-latency RTSP stream when the system is idle.
Key details:
- Config-based (`birdseye.idle_heartbeat_fps`), default `0` (disabled).
- Uses existing Birdseye rendering pipeline; minimal performance impact.
- Does not alter behavior when unset.
Documentation: added tip section in docs/configuration/restream.md.
* Update docs/docs/configuration/restream.md
Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
* Update docs/docs/configuration/reference.md
Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
* Refactors Birdseye idle frame broadcasting
Simplifies the idle frame broadcasting logic by removing the dedicated thread.
The idle frame is now resent directly within the main loop,
improving efficiency and reducing complexity. Also, limits the idle
heartbeat FPS to a maximum of 10 since the framebuffer is limited to 10 anyway
* ruff fix
---------
Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
Co-authored-by: Francesco Durighetto <francesco.durighetto@subbyx.com>
Co-authored-by: duri <duri@homelabubuntu.durihome.unifi>
* save clean webp instead of png
* send clean webp to plus with fallback for old events
* manual event webp
* event cleanup
* api def
* convert png to webp if exists
* update reference config
* change quality
* camera level config
* set up model runner on thread start to avoid unpickling error
* ensure feature is enabled globally
* suppress info logs from faster_whisper
* fix incorrect event_type for api and audio timeline entries
* docs
* fix
* clean up
* Update classification API docs
* Add information to events api
* Fix tag
* Add exports
* Add generic response to model for classification apis
* Add preview API information
* Cleanup
* Cleanup
* Update ROCm to 7.0.1
* Update ONNXRuntime
* Add back in
* Get basic detection working
* Use env vars
* Handle complex migraphx models
* Enable model caching
* Remove unused
* Add tip to docs
* [Init] Initial commit for Synaptics SL1680 NPU
* add a rough detector which is testing with yolov8 tflite model.
* [Feat] Add dependencies installation in docker build
- Add runtime library and wheels installation in main/Dockerfile
- Add model.synap(default model, transfer from mobilenet_224full80) in docker/synap1680
* [Update] Remove dependencies installation from main Dockerfile
- remove deps installation from Dockerfile
- add dependencies installation and split wheels, deps stage in synap1680 Dockerfile
* Refactor synap detector to more closely match other implementations
* [Update] Add model path configuration check
* [Update] update ModelType to ssd
* [Update] Remove unuse script
- install_deps.sh has already been executing in deps download stage
- Dockerfile.toolchain is for testing to extract runtime libraries from Synaptics toolchain
* [Update] update Synaptics SL1680 setup description
* [Update] remove install_synap1680
- The deps download and installation is existed in synap1680
* [Fix] update document content
* [Update] Update detector from synap1680 to synaptics
This update is in order to make the synaptics SL-series NPU detector more general.
- Fix detector `os` module not import bug
- Update detector type `synap1680` to `synaptics`
- Update document description `SL1680` to `Synaptics` only
- Update docker build content `synap1680` to `synaptics`
* [Fix] Update configuration document
* Update docs/docs/configuration/object_detectors.md
Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
* [Update] Update document content and detector default layout
- Update object_detectors document
- Update detector's default layout
- Update default model name
* [Update] Update object detector document content
* [Fix] Fix InputTensorEnum not defined error
- import InputTensorEnum from detector_config
* [Update] Update detector script coding format
* [Update] Update synaptics detector coding format
* [Update] Add synaptics ci workflow
* [Update] update synaptics runtime libs download path
- Fork Synaptics astra sdk repo and put the runtime lib package on it
- Frigate team can update this download path later
---------
Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
* Implement stationary car classifier to base stationary state on visual changes and not just bounding box stability
* Cleanup
* Fix mypy
* Move to new file and add config to disable if needed
* Cleanup
* Undo