Commit Graph
100 Commits
Author SHA1 Message Date
Nicolas MowenandGitHub 8b293449f9 Improve review summary (#20216)
CI / ARM Extra Build (push) Blocked by required conditions
CI / Assemble and push default build (push) Blocked by required conditions
CI / AMD64 Build (push) Waiting to run
CI / ARM Build (push) Waiting to run
CI / Jetson Jetpack 6 (push) Waiting to run
CI / AMD64 Extra Build (push) Blocked by required conditions
* Add debug logging for review summaries report

* Improve debug logging

* Improve review report prompt

* Cleanup

* Add date to report
2025-09-25 21:05:22 -05:00
Nicolas MowenandGitHub 2f209b2cf4 Implement stationary car classifier to improve parked car management (#20206)
CI / AMD64 Build (push) Waiting to run
CI / ARM Build (push) Waiting to run
CI / Jetson Jetpack 6 (push) Waiting to run
CI / AMD64 Extra Build (push) Blocked by required conditions
CI / ARM Extra Build (push) Blocked by required conditions
CI / Assemble and push default build (push) Blocked by required conditions
* 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
2025-09-25 10:18:45 -05:00
Nicolas MowenandGitHub 9a22404015 Use devcontainer build to run tests (#20212)
* Use devcontainer build to run tests

* Make ignored github changes more restrictive
2025-09-25 09:59:18 -05:00
Nicolas MowenandGitHub 2c4a043dbb Update go2rtc to 1.9.10 (#20202) 2025-09-25 06:15:04 -05:00
Nicolas MowenandGitHub b23355da53 Update apple silicon docs (#20204) 2025-09-25 06:12:35 -05:00
Nicolas MowenandGitHub 90db2d57b3 Update Ollama docs (#20201)
CI / AMD64 Build (push) Waiting to run
CI / ARM Build (push) Waiting to run
CI / Jetson Jetpack 6 (push) Waiting to run
CI / AMD64 Extra Build (push) Blocked by required conditions
CI / ARM Extra Build (push) Blocked by required conditions
CI / Assemble and push default build (push) Blocked by required conditions
2025-09-24 08:17:20 -05:00
Nicolas MowenandGitHub 7e2f5a3017 Improve 640x640 model detection of small objects (#20190)
* Allow larger models to have smaller regions

* remove unnecessary hailo resize

* Update benchmark

* Fix table

* Update nvidia specs
2025-09-23 15:49:54 -05:00
Nicolas MowenandGitHub 2f99a17e64 Add docs for classification models (#20188) 2025-09-23 08:29:16 -06:00
Nicolas MowenandGitHub 2bc92cce81 Update model explanation for genai (#20186) 2025-09-23 07:30:42 -06:00
Nicolas MowenandGitHub 318457113b Add ability to transfer model via ZMQ Detector (#20161)
* Add ability to transfer model via ZMQ

* Cleanup
2025-09-22 07:02:55 -05:00
Nicolas MowenandGitHub e4d5f1f94e Tune OV for latency (#20160) 2025-09-21 18:52:04 -05:00
Nicolas MowenandGitHub 0e61d3f153 YOLOv9 LPR model is not compatible (#20159) 2025-09-21 18:51:45 -05:00
Nicolas MowenandGitHub 2a860bd85e Update Nvidia model stats to highlight which models support CUDA Graphs (#20141) 2025-09-19 11:16:30 -05:00
Nicolas MowenandGitHub 9c5e560668 Deps updates (#20133) 2025-09-19 06:02:02 -05:00
Nicolas MowenandGitHub b8fd0a2b31 Fix CUDA graph config (#20135) 2025-09-19 05:59:42 -05:00
Nicolas MowenandGitHub 68f806bb61 Cleanup onnx detector (#20128)
* Cleanup onnx detector

* Fix

* Fix classification cropping

* Deprioritize openvino

* Send model type

* Use model type to decide if model can use full optimization

* Clenanup

* Cleanup
2025-09-18 15:12:09 -06:00
Nicolas MowenandGitHub c05e260ae9 Update ROCm to not hang when running on complex RNN models (#20118)
* Update ROCm to not hang when running on complex RNN models

* Formatting
2025-09-17 19:26:32 -05:00
Nicolas MowenandGitHub 1efff67e32 Fix ov for LPR (#20117)
* Check complex model

* Reset state for complex models

* Send arg

* Fix

* Cleanup
2025-09-17 15:21:57 -06:00
Nicolas MowenandGitHub 26178444f3 Fixes (#20102)
* Catch bird classification resize error

* Improve openvino width detection

* Use auto by default

* Set type
2025-09-16 16:06:51 -06:00
Nicolas MowenandGitHub 5f34a18905 Dynamically adjust to configured attribute map for lpr (#20079) 2025-09-15 08:49:07 -05:00
Nicolas MowenandGitHub 03fe054078 OpenVINO Hardware Improvements (#20071)
* Use OpenVINO directly to detect if devices are available

* Cleanup

* Update OpenVINO

* Cleanup

* Don't try to use OpenVINO when CPU is set as device

* Catch case where input tensor can't be pre-defined

* Cleanup
2025-09-15 08:35:49 -05:00
Nicolas MowenandGitHub ff0430964c Correctly calculate input data type for OV (#20066)
* Correctly calculate input data type for OV

* Formatting
2025-09-14 07:15:41 -06:00
Nicolas MowenandGitHub 81d7c47129 Optimize OpenVINO and ONNX Model Runners (#20063)
* Use re-usable inference request to reduce CPU usage

* Share tensor

* Don't count performance

* Create openvino runner class

* Break apart onnx runner

* Add specific note about inability to use CUDA graphs for some models

* Adjust rknn to use RKNNRunner

* Use optimized runner

* Add support for non-complex models for CudaExecutionProvider

* Use core mask for rknn

* Correctly handle cuda input

* Cleanup

* Sort imports
2025-09-14 06:22:22 -06:00
Nicolas MowenandGitHub 751678c845 Fix cuda graph fallback (#20039) 2025-09-12 06:41:26 -05:00
Nicolas MowenandGitHub ba650af6f2 Correctly cast to enum when loading plus config (#20031) 2025-09-11 16:39:34 -06:00
Nicolas MowenandGitHub fad28a764c Use CUDA graphs for object detection on Nvidia GPUs (#20027)
* Use CUDA graphs to improve efficiency of object detection

* Cleanup comments and typing
2025-09-11 10:20:25 -06:00
Nicolas MowenandGitHub 7c7ff49b90 Improve d-fine model export docs (#20020) 2025-09-11 06:17:08 -05:00
Nicolas MowenandGitHub 15729e0f19 Provide model type in header for ZMQ detector (#20000)
* Provide model type in header

* Formatting
2025-09-09 17:53:36 -05:00
Nicolas MowenandGitHub 037c4d1cc0 Don't block UI while pulling the stream live info (#19998) 2025-09-09 17:53:26 -05:00
Nicolas MowenandGitHub 205fdf3ae3 Fixes (#19984)
* Always handle RKNN as NHWC in Frigate+ model loading

* Correct Intel stats

* Update inference time docs

* Update version

* Adjust inference speeds
2025-09-09 06:17:56 -06:00
Nicolas MowenandGitHub f46f8a2160 More inference speed updates (#19974) 2025-09-08 10:39:33 -06:00
Nicolas MowenandGitHub c5ed95ec52 More inference speed updates (#19947)
* More inference speed updates

* Update hardware.md

* Update hardware.md

* Update index.md

* More inference speeds

* Update home-assistant.md

* Update object_detectors.md

* Update first_model.md
2025-09-08 07:43:04 -05:00
Nicolas MowenandGitHub 0eb441fe50 Update inference times for yolov9 (#19946) 2025-09-07 14:59:48 -05:00
Nicolas MowenandGitHub 7e7b3288a8 Update live FAQ for camera distortion (#19907)
* Add item to FAQ about stream distortion

* Update updating docs

* Update link
2025-09-04 07:44:33 -05:00
Nicolas MowenandGitHub 6505ae5fb5 Optimize cuda execution to run in single stream (#19896) 2025-09-03 08:53:30 -05:00
Nicolas MowenandGitHub fe3eb24dfe Update Reolink support docs (#19887) 2025-09-02 15:21:18 -05:00
Nicolas MowenandGitHub e664cb2285 Set lower bound on retry interval (#19883) 2025-09-02 11:24:25 -05:00
Nicolas MowenandGitHub 3a1e1d0841 Improve review segmentation behavior (#19850)
* Refactor active objects to class

* Keep segment going when detection is newer than end of alert

* Cleanup logic

* Fix

* Cleanup ending

* Adjust timing

* Improve detection saving

* Don't have padding at end for in progress reviews

* Add review config for cutoff times
2025-08-31 16:36:12 -05:00
Nicolas MowenandGitHub e9dc30235b Cleanup vod clip handling and add padding arg (#19813) 2025-08-28 07:09:23 -05:00
Nicolas MowenandGitHub 281c461647 Add support for Frigate+ input data type (#19799) 2025-08-27 06:27:08 -06:00
Nicolas MowenandGitHub 195f705616 Support all audio type in MQTT (#19768)
* Support all audio type in MQTT

* Formatting
2025-08-26 09:50:50 -05:00
Nicolas MowenandGitHub ed9d031e80 Add experimental support for AMD AMF decode/encode (#19745)
* Add experimental support for AMD AMF decode/encode

* Organize imports
2025-08-25 13:40:36 -05:00
Nicolas MowenandGitHub 4fcb1ea7ac Unload HLS on unmount (#19747)
* Unload HLS player on unmount so segments don't continue to load

* Add query arg for event padding
2025-08-25 13:33:17 -05:00
Nicolas MowenandGitHub 4347402fcc Don't mention 9.0.0 GFX version (#19742) 2025-08-25 07:32:50 -05:00
Nicolas MowenandGitHub 5af8fbac51 Fix tls config check (#19710)
* Correct tls settings check

* Correct jq format
2025-08-22 18:23:51 -05:00
Nicolas MowenandGitHub 9dd7ead462 Camera Health Status (#19709)
* Send status of camera streams to mqtt

* Update docs

* Formatting

* Fix frontend querying fps
2025-08-22 06:42:36 -06:00
Nicolas MowenandGitHub 539c760953 Don't print when not using rknn (#19698)
* Debug logs for rknn embeddings check

* Debug logs for rknn embeddings check
2025-08-21 18:00:36 -05:00
Nicolas MowenandGitHub f39475a383 Support face recognition via RKNN (#19687)
* Add support for face recognition via RKNN

* Fix crash when adding camera in via UI

* Update docs regarding support for face recognition

* Formatting
2025-08-21 06:18:55 -06:00
Nicolas MowenandGitHub 1be84d6833 Add automatic RKNN conversion and support for semantic search model (#19676)
* Create RKNN model runner and and use for jina v1 clip

* Formatting

* Handle model type inference

* Properly provide input to RKNN

* Adjust rknn conversion

* Update docs

* Formatting

* Fix path handling

* Handle inputs

* Cleanup

* Change normalization for better accuracy

* Clarify supported models

* Remove testing
2025-08-21 05:30:14 -06:00
Nicolas MowenandGitHub 2236ecf23f Auto convert ONNX models to RKNN format (#19674)
* Implement base rknn conversion

* Remove unused

* Formatting

* Add model conversion lock so it doesn't break when multiple detectors are defined

* Ignore unused impor
t
2025-08-20 15:15:57 -06:00
Nicolas MowenandGitHub 6e3b40eaee Fix record motion config (#19672)
* fix record config

* Formatting
2025-08-20 14:45:17 -06:00
Nicolas MowenandGitHub 361014f01c UI improvements (#19659)
* Add indicator when GenAI review infers suspicious activity

* Fix score filtering logic

* Enable mobile view for classification and optimize for mobile layout

* Add missing keys

* Don't require face rec

* fix key
2025-08-20 08:28:47 -05:00
Nicolas MowenandGitHub 9fb09408d1 Fix build (#19634)
* Don't put special constraints

* Undo joserfc install

* Fix joserfc

* Formatting
2025-08-19 13:19:31 -06:00
Nicolas MowenandGitHub ec2543c23f Fix hls not loading video in explore (#19625) 2025-08-19 13:14:14 -05:00
Nicolas MowenandGitHub e92267d7e2 Update deps (#19617)
* Update virtualenv

* Fix device ID

* Fix dependency conflict

* Cleanup mypy
2025-08-19 11:08:34 -05:00
Nicolas MowenandGitHub acf32e1a1e Various Fixes (#19615)
* Don't write to write None response to file

* fix genai config migration

* Fix JP6 build

* Include base image ARG
2025-08-19 06:49:55 -06:00
Nicolas MowenandGitHub 152d9ed4a0 Apple Silicon / ZMQ Detector (#19592)
* Add zmq detector

* Cleanup

* Logging

* Cleanup

* Cleanup

* Add to hardware docs

* Add apple silicon to docs

* Formatting
2025-08-18 09:51:12 -05:00
Nicolas MowenandGitHub b45f642868 Use sed on correct file (#19590) 2025-08-18 07:21:42 -06:00
Nicolas MowenandGitHub 5a49d1f73c Enable mypy for track and fix typing errors (#19529)
* Enable mypy for track

* WIP cleaning up tracked object

* Fix tracked object typing

* Fix typing and imports of centroid tracker

* Cleanup typing

* Cleanup

* Formatting

* Fix imports

* Don't specify callable type

* Type out json setting
2025-08-17 12:27:42 -05:00
Nicolas MowenandBlake Blackshear 856aab8e6e Cleanup filename sanitization 2025-08-16 10:20:33 -05:00
Nicolas MowenandBlake Blackshear ccbaa74a8b Improve natural language of prompt (#19515)
* Make sequence details human-readable so they are used in natural language response

* Cleanup

* Improve prompt and image selection

* Adjust

* Adjust sligtly

* Format time

* Adjust frame selection logic

* Debug save response

* Ignore extra fields

* Adjust docs
2025-08-16 10:20:33 -05:00
Nicolas MowenandBlake Blackshear 6671984e5a Update GenAI docs for new review summaries feature (#19493)
* Remove old genai docs

* Separate existing genai docs to separate sections

* Add docs for genai features

* Update reference config

* Update link

* Move to bottom
2025-08-16 10:20:33 -05:00
Nicolas MowenandBlake Blackshear 7740b08bd9 Add ability to pass additional args to Ollama (#19484)
* Call out recognized objects more specifically

* Cleanup

* Make keep_alive and options configurable

* Generalize

* Use for other providers
2025-08-16 10:20:33 -05:00
Nicolas MowenandBlake Blackshear dace88bfce Genai review summaries (#19473)
* Generate review item summaries with requests

* Adjust logic to only send important items

* Don't mention ladder

* Adjust prompt to be more specific

* Add more relaxed nature for normal activity

* Cleanup summary

* Update ollama client

* Add more directions to analyze the frames in order

* Remove environment from prompt
2025-08-16 10:20:33 -05:00
Nicolas MowenandBlake Blackshear cc18d7f786 Add config for users to define additional concerns that GenAI should make note of in review summary (#19463)
* Don't default to openai

* Improve UI

* Allow configuring additional concerns that users may want the AI to note

* Formatting

* Add preferred language config

* Remove unused
2025-08-16 10:20:33 -05:00
Nicolas MowenandBlake Blackshear 3cf86767f1 Use preview frames for Review Descriptions (#19450)
* Use preview frames for genai

* Cleanup

* Adjust
2025-08-16 10:20:33 -05:00
Nicolas MowenandBlake Blackshear 92417a1b9c Review genai updates (#19448)
* Include extra level for normal activity

* Add dynamic toggling

* Update docs

* Add different threshold for genai

* Adjust webUI for object and review description feature

* Adjust config

* Send on startup

* Cleanup config setting

* Set config

* Fix config name
2025-08-16 10:20:33 -05:00
Nicolas MowenandBlake Blackshear 2cf8dd693c Review Item GenAI metadata (#19442)
* Rename existing function

* Keep track of thumbnial updates

* Tinkering with genai prompt

* Adjust input format

* Create model for review description output

* testing prompt changes

* Prompt improvements and image saving

* Add config for review items genai

* Use genai review config

* Actual config usage

* Adjust debug image saving

* Fix

* Fix review creation

* Adjust prompt

* Prompt adjustment

* Run genai in thread

* Fix detections block

* Adjust prompt

* Prompt changes

* Save genai response to metadata model

* Handle metadata

* Send review update to dispatcher

* Save review metadata to DB

* Send review notification updates

* Quick fix

* Fix name

* Fix update type

* Correctly dump model

* Add card

* Add card

* Remove message

* Cleanup typing and UI

* Adjust prompt

* Formatting

* Add log

* Formatting

* Add inference speed and keep alive
2025-08-16 10:20:33 -05:00
Nicolas MowenandBlake Blackshear 1f3755e45d Migrate object genai configuration (#19437)
* Move genAI object to objects section

* Adjust config propogation behavior

* Refactor genai config usage

* Automatic migration

* Always start the embeddings process

* Always init embeddings

* Config fixes

* Adjust reference config

* Adjust docs

* Formatting

* Fix
2025-08-16 10:20:33 -05:00
Nicolas MowenandBlake Blackshear 7c1681e344 Enable mypy for DB and fix types (#19434)
* Install peewee type hints

* Models now have proper types

* Fix iterator type

* Enable debug builds with dev reqs installed

* Install as wheel

* Fix cast type
2025-08-16 10:20:33 -05:00
Nicolas MowenandBlake Blackshear 6ecc631486 Adjust loitering behavior based on object type (#19433)
* Adjust loitering behavior based on object

* Update docs

* Grammar
2025-08-16 10:20:33 -05:00
Nicolas MowenandBlake Blackshear fcf3824124 Improve comms typing (#18599)
* Enable mypy for comms

* Make zmq data types consistent

* Cleanup inter process typing issues

* Cleanup embeddings typing

* Cleanup config updater

* Cleanup recordings updator

* Make publisher have a generic type

* Cleanup event metadata updater

* Cleanup event metadata updater

* Cleanup detections updater

* Cleanup websocket

* Cleanup mqtt

* Cleanup webpush

* Cleanup dispatcher

* Formatting

* Remove unused

* Add return type

* Fix tests

* Fix semantic triggers config typing

* Cleanup
2025-08-16 10:20:33 -05:00
Nicolas MowenandBlake Blackshear 1add72884a Cleanup 2025-08-16 10:20:33 -05:00
Nicolas MowenandBlake Blackshear e9e3c481b2 Implement start for review item description processor (#19352)
* Add review item data transmission

* Publish review updates

* Add review item subscriber

* Basic implementation for testing review processor

* Formatting
2025-08-16 10:20:33 -05:00
Nicolas MowenandBlake Blackshear fa1b88097b Improve the tablet layout (#19320)
* Improve the tablet layout

* Update imports sort

* Fix more imports
2025-08-16 10:20:33 -05:00
Nicolas MowenandBlake Blackshear 20104761e8 Require setting process priority for FrigateProcess (#19207) 2025-08-16 10:20:33 -05:00
Nicolas MowenandBlake Blackshear d071325ca7 Object attribute classification (#19205)
* Add enum for type of classification for objects

* Update recognized license plate topic to be used as attribute updater

* Update attribute for attribute type object classification

* Cleanup
2025-08-16 10:20:33 -05:00
Nicolas MowenandBlake Blackshear 55e5a55fa2 Classification train updates (#19173)
* Improve model train button

* Add filters for classification

* Cleanup

* Don't run classification on false positives

* Cleanup filter

* Fix icon color
2025-08-16 10:20:33 -05:00
Nicolas MowenandBlake Blackshear 28f816b49a Classification improvements (#19020)
* Move classification training to full process

* Sort class images
2025-08-16 10:20:33 -05:00
Nicolas MowenandBlake Blackshear 528f0d2b1f Improve classification UI (#18910)
* Move threhsold to base model config

* Improve score handling

* Add back button
2025-08-16 10:20:33 -05:00
Nicolas MowenandBlake Blackshear f925154b8a Remove TFLite init logs 2025-08-16 10:20:33 -05:00
Nicolas MowenandBlake Blackshear 13fb7bc260 Improve object classification (#18908)
* Ui improvements

* Improve image cropping and model saving

* Improve naming

* Add logs for training

* Improve model labeling

* Don't set sub label for none object classification

* Cleanup
2025-08-16 10:20:33 -05:00
Nicolas MowenandBlake Blackshear ceeb6543f5 0.17 tweaks (#18892)
* Set version

* Cleanup more logs

* Don't log matplotlib
2025-08-16 10:20:33 -05:00
ec6c04e49a Improve logging (#18867)
* Ignore numpy get limits warning

* Add function wrapper to redirect stdout and stderr to logpipe

* Save stderr too

* Add more to catch

* run logpipe

* Use other logging redirect class

* Use other logging redirect class

* add decorator for redirecting c/c++ level output to logger

* fix typing

---------

Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>
2025-08-16 10:20:33 -05:00
542bf05bb8 Handle SIGINT with forkserver (#18860)
* Pass stopevent from main start

* Share stop event across processes

* preload modules

* remove explicit os._exit call

---------

Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>
2025-08-16 10:20:33 -05:00
Nicolas MowenandBlake Blackshear e1ee6f010f Fix process name 2025-08-16 10:20:33 -05:00
Nicolas MowenandBlake Blackshear 3327be05ea Classification model cover images (#18843)
* Move to separate component

* Add cover images for clssification models
2025-08-16 10:20:33 -05:00
Nicolas MowenandBlake Blackshear 847b03e71b Catch unpickling error 2025-08-16 10:20:33 -05:00
Nicolas MowenandBlake Blackshear 0d5a49ab82 Don't fail on unicode debug for config updates 2025-08-16 10:20:33 -05:00
Nicolas MowenandBlake Blackshear 2f4d7353f4 Don't use staticmethod 2025-08-16 10:20:33 -05:00
Nicolas MowenandBlake Blackshear ef060b97ca Reduce tf initialization 2025-08-16 10:20:33 -05:00
Nicolas MowenandBlake Blackshear e832bb4bad Fix go2rtc init (#18708)
* Cleanup process handling

* Adjust process name
2025-08-16 10:20:33 -05:00
1caf8b97c4 Use Fork-Server As Spawn Method (#18682)
* Set runtime

* Use count correctly

* Don't assume camera sizes

* Use separate zmq proxy for object detection

* Correct order

* Use forkserver

* Only store PID instead of entire process reference

* Cleanup

* Catch correct errors

* Fix typing

* Remove before_run from process util

The before_run never actually ran because:

You're right to suspect an issue with before_run not being called and a potential deadlock. The way you've implemented the run_wrapper using __getattribute__ for the run method of BaseProcess is a common pitfall in Python's multiprocessing, especially when combined with how multiprocessing.Process works internally.

Here's a breakdown of why before_run isn't being called and why you might be experiencing a deadlock:

The Problem: __getattribute__ and Process Serialization
When you create a multiprocessing.Process object and call start(), the multiprocessing module needs to serialize the process object (or at least enough of it to re-create the process in the new interpreter). It then pickles this serialized object and sends it to the newly spawned process.

The issue with your __getattribute__ implementation for run is that:

run is retrieved during serialization: When multiprocessing tries to pickle your Process object to send to the new process, it will likely access the run attribute. This triggers your __getattribute__ wrapper, which then tries to bind run_wrapper to self.
run_wrapper is bound to the parent process's self: The run_wrapper closure, when created in the parent process, captures the self (the Process instance) from the parent's memory space.
Deserialization creates a new object: In the child process, a new Process object is created by deserializing the pickled data. However, the run_wrapper method that was pickled still holds a reference to the self from the parent process. This is a subtle but critical distinction.
The child's run is not your wrapped run: When the child process starts, it internally calls its own run method. Because of the serialization and deserialization process, the run method that's ultimately executed in the child process is the original multiprocessing.Process.run or the Process.run if you had directly overridden it. Your __getattribute__ magic, which wraps run, isn't correctly applied to the Process object within the child's context.

* Cleanup

* Logging bugfix (#18465)

* use mp Manager to handle logging queues

A Python bug (https://github.com/python/cpython/issues/91555) was preventing logs from the embeddings maintainer process from printing. The bug is fixed in Python 3.14, but a viable workaround is to use the multiprocessing Manager, which better manages mp queues and causes the logging to work correctly.

* consolidate

* fix typing

* Fix typing

* Use global log queue

* Move to using process for logging

* Convert camera tracking to process

* Add more processes

* Finalize process

* Cleanup

* Cleanup typing

* Formatting

* Remove daemon

---------

Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>
2025-08-16 10:20:33 -05:00
faadea8e1f Dynamic Management of Cameras (#18671)
* Add base class for global config updates

* Add or remove camera states

* Move camera process management to separate thread

* Move camera management fully to separate class

* Cleanup

* Stop camera processes when stop command is sent

* Start processes dynamically when needed

* Adjust

* Leave extra room in tracked object queue for two cameras

* Dynamically set extra config pieces

* Add some TODOs

* Fix type check

* Simplify config updates

* Improve typing

* Correctly handle indexed entries

* Cleanup

* Create out SHM

* Use ZMQ for signaling object detectoin is completed

* Get camera correctly created

* Cleanup for updating the cameras config

* Cleanup

* Don't enable audio if no cameras have audio transcription

* Use exact string so similar camera names don't interfere

* Add ability to update config via json body to config/set endpoint

Additionally, update the config in a single rather than multiple calls for each updated key

* fix autotracking calibration to support new config updater function

---------

Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>
2025-08-16 10:20:33 -05:00
Nicolas MowenandBlake Blackshear 4b57e5e265 Refactor TensorRT (#18643)
* Combine base and arm trt detectors

* Remove unused deps for amd64 build

* Add missing packages and cleanup ldconfig

* Expand packages for tensorflow model training

* Cleanup

* Refactor training to not reserve memory
2025-08-16 10:20:33 -05:00
Nicolas MowenandBlake Blackshear b1a65c88e8 Classification Model Metrics (#18595)
* Add speed and rate metrics for custom classification models

* Use metrics for classification models

* Use keys

* Cast to list
2025-08-16 10:20:33 -05:00
Nicolas MowenandBlake Blackshear 765a28d812 Live classification model training (#18583)
* Implement model training via ZMQ and add model states to represent training

* Get model updates working

* Improve toasts and model state

* Clean up logging

* Add back in
2025-08-16 10:20:33 -05:00
Nicolas MowenandBlake Blackshear 1c75ff59f1 Classification Model UI (#18571)
* Setup basic training structure

* Build out route

* Handle model configs

* Add image fetch APIs

* Implement model training screen with dataset selection

* Implement viewing of training images

* Adjust directories

* Implement viewing of images

* Add support for deleting images

* Implement full deletion

* Implement classification model training

* Improve naming

* More renaming

* Improve layout

* Reduce logging

* Cleanup
2025-08-16 10:20:33 -05:00
Nicolas MowenandBlake Blackshear 3f8ec72336 Tiered recordings (#18492)
* Implement tiered recording

* Add migration for record config

* Update docs

* Update reference docs

* Fix preview query

* Fix incorrect accesses

* Fix

* Fix

* Fix

* Fix
2025-08-16 10:20:33 -05:00
Nicolas MowenandBlake Blackshear 0b9997015a Intel updates (#18493)
* Update openvino and onnxruntime

* Install icd and level-zero-gpu deps from intel directly

* Install

* Add dep

* Fix package install
2025-08-16 10:20:33 -05:00