mirror of
https://github.com/blakeblackshear/frigate.git
synced 2025-08-04 13:47:37 +02:00
Cleanup event metadata updater
This commit is contained in:
parent
d6f2d55525
commit
87efebde19
@ -1094,7 +1094,7 @@ def set_sub_label(
|
|||||||
new_score = None
|
new_score = None
|
||||||
|
|
||||||
request.app.event_metadata_updater.publish(
|
request.app.event_metadata_updater.publish(
|
||||||
EventMetadataTypeEnum.sub_label, (event_id, new_sub_label, new_score)
|
(event_id, new_sub_label, new_score), EventMetadataTypeEnum.sub_label.value
|
||||||
)
|
)
|
||||||
|
|
||||||
return JSONResponse(
|
return JSONResponse(
|
||||||
@ -1148,8 +1148,8 @@ def set_plate(
|
|||||||
new_score = None
|
new_score = None
|
||||||
|
|
||||||
request.app.event_metadata_updater.publish(
|
request.app.event_metadata_updater.publish(
|
||||||
EventMetadataTypeEnum.attribute,
|
|
||||||
(event_id, "recognized_license_plate", new_plate, new_score),
|
(event_id, "recognized_license_plate", new_plate, new_score),
|
||||||
|
EventMetadataTypeEnum.attribute,
|
||||||
)
|
)
|
||||||
|
|
||||||
return JSONResponse(
|
return JSONResponse(
|
||||||
@ -1232,8 +1232,8 @@ def regenerate_description(
|
|||||||
|
|
||||||
if camera_config.genai.enabled or params.force:
|
if camera_config.genai.enabled or params.force:
|
||||||
request.app.event_metadata_updater.publish(
|
request.app.event_metadata_updater.publish(
|
||||||
EventMetadataTypeEnum.regenerate_description,
|
|
||||||
(event.id, params.source, params.force),
|
(event.id, params.source, params.force),
|
||||||
|
EventMetadataTypeEnum.regenerate_description.value,
|
||||||
)
|
)
|
||||||
|
|
||||||
return JSONResponse(
|
return JSONResponse(
|
||||||
@ -1390,7 +1390,6 @@ def create_event(
|
|||||||
event_id = f"{now}-{rand_id}"
|
event_id = f"{now}-{rand_id}"
|
||||||
|
|
||||||
request.app.event_metadata_updater.publish(
|
request.app.event_metadata_updater.publish(
|
||||||
EventMetadataTypeEnum.manual_event_create,
|
|
||||||
(
|
(
|
||||||
now,
|
now,
|
||||||
camera_name,
|
camera_name,
|
||||||
@ -1403,6 +1402,7 @@ def create_event(
|
|||||||
body.source_type,
|
body.source_type,
|
||||||
body.draw,
|
body.draw,
|
||||||
),
|
),
|
||||||
|
EventMetadataTypeEnum.manual_event_create.value,
|
||||||
)
|
)
|
||||||
|
|
||||||
return JSONResponse(
|
return JSONResponse(
|
||||||
@ -1426,7 +1426,7 @@ def end_event(request: Request, event_id: str, body: EventsEndBody):
|
|||||||
try:
|
try:
|
||||||
end_time = body.end_time or datetime.datetime.now().timestamp()
|
end_time = body.end_time or datetime.datetime.now().timestamp()
|
||||||
request.app.event_metadata_updater.publish(
|
request.app.event_metadata_updater.publish(
|
||||||
EventMetadataTypeEnum.manual_event_end, (event_id, end_time)
|
(event_id, end_time), EventMetadataTypeEnum.manual_event_end.value
|
||||||
)
|
)
|
||||||
except Exception:
|
except Exception:
|
||||||
return JSONResponse(
|
return JSONResponse(
|
||||||
|
@ -28,8 +28,8 @@ class EventMetadataPublisher(Publisher):
|
|||||||
def __init__(self) -> None:
|
def __init__(self) -> None:
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|
||||||
def publish(self, topic: EventMetadataTypeEnum, payload: Any) -> None:
|
def publish(self, payload: Any, sub_topic: str) -> None:
|
||||||
super().publish(payload, topic.value)
|
super().publish(payload, sub_topic)
|
||||||
|
|
||||||
|
|
||||||
class EventMetadataSubscriber(Subscriber):
|
class EventMetadataSubscriber(Subscriber):
|
||||||
|
@ -1170,7 +1170,6 @@ class LicensePlateProcessingMixin:
|
|||||||
event_id = f"{now}-{rand_id}"
|
event_id = f"{now}-{rand_id}"
|
||||||
|
|
||||||
self.event_metadata_publisher.publish(
|
self.event_metadata_publisher.publish(
|
||||||
EventMetadataTypeEnum.lpr_event_create,
|
|
||||||
(
|
(
|
||||||
now,
|
now,
|
||||||
camera,
|
camera,
|
||||||
@ -1181,6 +1180,7 @@ class LicensePlateProcessingMixin:
|
|||||||
None,
|
None,
|
||||||
plate,
|
plate,
|
||||||
),
|
),
|
||||||
|
EventMetadataTypeEnum.lpr_event_create.value,
|
||||||
)
|
)
|
||||||
return event_id
|
return event_id
|
||||||
|
|
||||||
@ -1518,7 +1518,7 @@ class LicensePlateProcessingMixin:
|
|||||||
# If it's a known plate, publish to sub_label
|
# If it's a known plate, publish to sub_label
|
||||||
if sub_label is not None:
|
if sub_label is not None:
|
||||||
self.sub_label_publisher.publish(
|
self.sub_label_publisher.publish(
|
||||||
EventMetadataTypeEnum.sub_label, (id, sub_label, avg_confidence)
|
(id, sub_label, avg_confidence), EventMetadataTypeEnum.sub_label.value
|
||||||
)
|
)
|
||||||
|
|
||||||
# always publish to recognized_license_plate field
|
# always publish to recognized_license_plate field
|
||||||
@ -1537,8 +1537,8 @@ class LicensePlateProcessingMixin:
|
|||||||
),
|
),
|
||||||
)
|
)
|
||||||
self.sub_label_publisher.publish(
|
self.sub_label_publisher.publish(
|
||||||
EventMetadataTypeEnum.attribute,
|
|
||||||
(id, "recognized_license_plate", top_plate, avg_confidence),
|
(id, "recognized_license_plate", top_plate, avg_confidence),
|
||||||
|
EventMetadataTypeEnum.attribute,
|
||||||
)
|
)
|
||||||
|
|
||||||
# save the best snapshot for dedicated lpr cams not using frigate+
|
# save the best snapshot for dedicated lpr cams not using frigate+
|
||||||
@ -1552,8 +1552,8 @@ class LicensePlateProcessingMixin:
|
|||||||
frame_bgr = cv2.cvtColor(frame, cv2.COLOR_YUV2BGR_I420)
|
frame_bgr = cv2.cvtColor(frame, cv2.COLOR_YUV2BGR_I420)
|
||||||
_, encoded_img = cv2.imencode(".jpg", frame_bgr)
|
_, encoded_img = cv2.imencode(".jpg", frame_bgr)
|
||||||
self.sub_label_publisher.publish(
|
self.sub_label_publisher.publish(
|
||||||
EventMetadataTypeEnum.save_lpr_snapshot,
|
|
||||||
(base64.b64encode(encoded_img).decode("ASCII"), id, camera),
|
(base64.b64encode(encoded_img).decode("ASCII"), id, camera),
|
||||||
|
EventMetadataTypeEnum.save_lpr_snapshot.value,
|
||||||
)
|
)
|
||||||
|
|
||||||
if id not in self.detected_license_plates:
|
if id not in self.detected_license_plates:
|
||||||
|
@ -147,8 +147,8 @@ class BirdRealTimeProcessor(RealTimeProcessorApi):
|
|||||||
return
|
return
|
||||||
|
|
||||||
self.sub_label_publisher.publish(
|
self.sub_label_publisher.publish(
|
||||||
EventMetadataTypeEnum.sub_label,
|
|
||||||
(obj_data["id"], self.labelmap[best_id], score),
|
(obj_data["id"], self.labelmap[best_id], score),
|
||||||
|
EventMetadataTypeEnum.sub_label.value,
|
||||||
)
|
)
|
||||||
self.detected_birds[obj_data["id"]] = score
|
self.detected_birds[obj_data["id"]] = score
|
||||||
|
|
||||||
|
@ -294,16 +294,16 @@ class CustomObjectClassificationProcessor(RealTimeProcessorApi):
|
|||||||
):
|
):
|
||||||
if sub_label != "none":
|
if sub_label != "none":
|
||||||
self.sub_label_publisher.publish(
|
self.sub_label_publisher.publish(
|
||||||
EventMetadataTypeEnum.sub_label,
|
|
||||||
(obj_data["id"], sub_label, score),
|
(obj_data["id"], sub_label, score),
|
||||||
|
EventMetadataTypeEnum.sub_label,
|
||||||
)
|
)
|
||||||
elif (
|
elif (
|
||||||
self.model_config.object_config.classification_type
|
self.model_config.object_config.classification_type
|
||||||
== ObjectClassificationType.attribute
|
== ObjectClassificationType.attribute
|
||||||
):
|
):
|
||||||
self.sub_label_publisher.publish(
|
self.sub_label_publisher.publish(
|
||||||
EventMetadataTypeEnum.attribute,
|
|
||||||
(obj_data["id"], self.model_config.name, sub_label, score),
|
(obj_data["id"], self.model_config.name, sub_label, score),
|
||||||
|
EventMetadataTypeEnum.attribute,
|
||||||
)
|
)
|
||||||
|
|
||||||
def handle_request(self, topic, request_data):
|
def handle_request(self, topic, request_data):
|
||||||
|
@ -321,8 +321,8 @@ class FaceRealTimeProcessor(RealTimeProcessorApi):
|
|||||||
|
|
||||||
if weighted_score >= self.face_config.recognition_threshold:
|
if weighted_score >= self.face_config.recognition_threshold:
|
||||||
self.sub_label_publisher.publish(
|
self.sub_label_publisher.publish(
|
||||||
EventMetadataTypeEnum.sub_label,
|
|
||||||
(id, weighted_sub_label, weighted_score),
|
(id, weighted_sub_label, weighted_score),
|
||||||
|
EventMetadataTypeEnum.sub_label.value,
|
||||||
)
|
)
|
||||||
|
|
||||||
self.__update_metrics(datetime.datetime.now().timestamp() - start)
|
self.__update_metrics(datetime.datetime.now().timestamp() - start)
|
||||||
|
@ -500,8 +500,8 @@ class EmbeddingMaintainer(threading.Thread):
|
|||||||
to_remove.append(id)
|
to_remove.append(id)
|
||||||
for id in to_remove:
|
for id in to_remove:
|
||||||
self.event_metadata_publisher.publish(
|
self.event_metadata_publisher.publish(
|
||||||
EventMetadataTypeEnum.manual_event_end,
|
|
||||||
(id, now),
|
(id, now),
|
||||||
|
EventMetadataTypeEnum.manual_event_end.value,
|
||||||
)
|
)
|
||||||
self.detected_license_plates.pop(id)
|
self.detected_license_plates.pop(id)
|
||||||
|
|
||||||
|
@ -293,7 +293,6 @@ class AudioEventMaintainer(threading.Thread):
|
|||||||
self.requestor.send_data(f"{self.camera_config.name}/audio/{label}", "ON")
|
self.requestor.send_data(f"{self.camera_config.name}/audio/{label}", "ON")
|
||||||
|
|
||||||
self.event_metadata_publisher.publish(
|
self.event_metadata_publisher.publish(
|
||||||
EventMetadataTypeEnum.manual_event_create,
|
|
||||||
(
|
(
|
||||||
now,
|
now,
|
||||||
self.camera_config.name,
|
self.camera_config.name,
|
||||||
@ -306,6 +305,7 @@ class AudioEventMaintainer(threading.Thread):
|
|||||||
"audio",
|
"audio",
|
||||||
{},
|
{},
|
||||||
),
|
),
|
||||||
|
EventMetadataTypeEnum.manual_event_create.value,
|
||||||
)
|
)
|
||||||
self.detections[label] = {
|
self.detections[label] = {
|
||||||
"id": event_id,
|
"id": event_id,
|
||||||
@ -329,8 +329,8 @@ class AudioEventMaintainer(threading.Thread):
|
|||||||
)
|
)
|
||||||
|
|
||||||
self.event_metadata_publisher.publish(
|
self.event_metadata_publisher.publish(
|
||||||
EventMetadataTypeEnum.manual_event_end,
|
|
||||||
(detection["id"], detection["last_detection"]),
|
(detection["id"], detection["last_detection"]),
|
||||||
|
EventMetadataTypeEnum.manual_event_end.value,
|
||||||
)
|
)
|
||||||
self.detections[detection["label"]] = None
|
self.detections[detection["label"]] = None
|
||||||
|
|
||||||
@ -343,8 +343,8 @@ class AudioEventMaintainer(threading.Thread):
|
|||||||
f"{self.camera_config.name}/audio/{label}", "OFF"
|
f"{self.camera_config.name}/audio/{label}", "OFF"
|
||||||
)
|
)
|
||||||
self.event_metadata_publisher.publish(
|
self.event_metadata_publisher.publish(
|
||||||
EventMetadataTypeEnum.manual_event_end,
|
|
||||||
(detection["id"], now),
|
(detection["id"], now),
|
||||||
|
EventMetadataTypeEnum.manual_event_end.value,
|
||||||
)
|
)
|
||||||
self.detections[label] = None
|
self.detections[label] = None
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user