mirror of
https://github.com/blakeblackshear/frigate.git
synced 2024-11-25 10:20:32 -06:00
Misc bugfixes and improvements (#14460)
* only save a fixed number of thumbnails if genai is enabled * disable cpu_mem_arena to save on memory until its actually needed * fix search settings pane so it actually saves to the config
This commit is contained in:
parent
b24d292ade
commit
6c70e56059
@ -31,6 +31,8 @@ from .embeddings import Embeddings
|
|||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
MAX_THUMBNAILS = 10
|
||||||
|
|
||||||
|
|
||||||
class EmbeddingMaintainer(threading.Thread):
|
class EmbeddingMaintainer(threading.Thread):
|
||||||
"""Handle embedding queue and post event updates."""
|
"""Handle embedding queue and post event updates."""
|
||||||
@ -117,6 +119,15 @@ class EmbeddingMaintainer(threading.Thread):
|
|||||||
return
|
return
|
||||||
|
|
||||||
camera_config = self.config.cameras[camera]
|
camera_config = self.config.cameras[camera]
|
||||||
|
# no need to save our own thumbnails if genai is not enabled
|
||||||
|
# or if the object has become stationary
|
||||||
|
if (
|
||||||
|
not camera_config.genai.enabled
|
||||||
|
or self.genai_client is None
|
||||||
|
or data["stationary"]
|
||||||
|
):
|
||||||
|
return
|
||||||
|
|
||||||
if data["id"] not in self.tracked_events:
|
if data["id"] not in self.tracked_events:
|
||||||
self.tracked_events[data["id"]] = []
|
self.tracked_events[data["id"]] = []
|
||||||
|
|
||||||
@ -127,7 +138,14 @@ class EmbeddingMaintainer(threading.Thread):
|
|||||||
|
|
||||||
if yuv_frame is not None:
|
if yuv_frame is not None:
|
||||||
data["thumbnail"] = self._create_thumbnail(yuv_frame, data["box"])
|
data["thumbnail"] = self._create_thumbnail(yuv_frame, data["box"])
|
||||||
|
|
||||||
|
# Limit the number of thumbnails saved
|
||||||
|
if len(self.tracked_events[data["id"]]) >= MAX_THUMBNAILS:
|
||||||
|
# Always keep the first thumbnail for the event
|
||||||
|
self.tracked_events[data["id"]].pop(1)
|
||||||
|
|
||||||
self.tracked_events[data["id"]].append(data)
|
self.tracked_events[data["id"]].append(data)
|
||||||
|
|
||||||
self.frame_manager.close(frame_id)
|
self.frame_manager.close(frame_id)
|
||||||
except FileNotFoundError:
|
except FileNotFoundError:
|
||||||
pass
|
pass
|
||||||
|
@ -85,8 +85,14 @@ class ONNXModelRunner:
|
|||||||
else:
|
else:
|
||||||
# Use ONNXRuntime
|
# Use ONNXRuntime
|
||||||
self.type = "ort"
|
self.type = "ort"
|
||||||
|
options = ort.SessionOptions()
|
||||||
|
if device == "CPU":
|
||||||
|
options.enable_cpu_mem_arena = False
|
||||||
self.ort = ort.InferenceSession(
|
self.ort = ort.InferenceSession(
|
||||||
model_path, providers=providers, provider_options=options
|
model_path,
|
||||||
|
sess_options=options,
|
||||||
|
providers=providers,
|
||||||
|
provider_options=options,
|
||||||
)
|
)
|
||||||
|
|
||||||
def get_input_names(self) -> list[str]:
|
def get_input_names(self) -> list[str]:
|
||||||
|
@ -84,7 +84,10 @@ export default function SearchSettingsView({
|
|||||||
|
|
||||||
axios
|
axios
|
||||||
.put(
|
.put(
|
||||||
`config/set?semantic_search.enabled=${searchSettings.enabled}&semantic_search.reindex=${searchSettings.reindex}&semantic_search.model_size=${searchSettings.model_size}`,
|
`config/set?semantic_search.enabled=${searchSettings.enabled ? "True" : "False"}&semantic_search.reindex=${searchSettings.reindex ? "True" : "False"}&semantic_search.model_size=${searchSettings.model_size}`,
|
||||||
|
{
|
||||||
|
requires_restart: 0,
|
||||||
|
},
|
||||||
)
|
)
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
if (res.status === 200) {
|
if (res.status === 200) {
|
||||||
|
Loading…
Reference in New Issue
Block a user