mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-05-05 04:57:42 +03:00
Save initial frame of new objects to frame cache
Objects that move quickly through the frame and are only seen briefly may not have the update() method called to save thumbnail_data, and may not have the initial frame saved to the tracked object frame cache. This caused a "Frame missing from frame cache" message that was patched by #7313 but this sometimes caused the wrong frame to be chosen for the thumb/snapshot.
This commit is contained in:
parent
03f4318e40
commit
039148397b
@ -263,6 +263,27 @@ class CameraState:
|
||||
current_detections[id],
|
||||
)
|
||||
|
||||
# add initial frame to frame cache
|
||||
self.frame_cache[frame_time] = np.copy(current_frame)
|
||||
|
||||
# save initial thumbnail data and best object
|
||||
thumbnail_data = {
|
||||
"frame_time": frame_time,
|
||||
"box": new_obj.obj_data["box"],
|
||||
"area": new_obj.obj_data["area"],
|
||||
"region": new_obj.obj_data["region"],
|
||||
"score": new_obj.obj_data["score"],
|
||||
"attributes": new_obj.obj_data["attributes"],
|
||||
"current_estimated_speed": 0,
|
||||
"velocity_angle": 0,
|
||||
"path_data": [],
|
||||
"recognized_license_plate": None,
|
||||
"recognized_license_plate_score": None,
|
||||
}
|
||||
new_obj.thumbnail_data = thumbnail_data
|
||||
tracked_objects[id].thumbnail_data = thumbnail_data
|
||||
self.best_objects[new_obj.obj_data["label"]] = new_obj
|
||||
|
||||
# call event handlers
|
||||
for c in self.callbacks["start"]:
|
||||
c(self.name, new_obj, frame_name)
|
||||
|
||||
@ -144,8 +144,14 @@ class TrackedObject:
|
||||
obj_data,
|
||||
self.camera_config.frame_shape,
|
||||
):
|
||||
# use the current frame time if the object's frame time isn't in the frame cache
|
||||
selected_frame_time = (
|
||||
current_frame_time
|
||||
if obj_data["frame_time"] not in self.frame_cache.keys()
|
||||
else obj_data["frame_time"]
|
||||
)
|
||||
self.thumbnail_data = {
|
||||
"frame_time": current_frame_time,
|
||||
"frame_time": selected_frame_time,
|
||||
"box": obj_data["box"],
|
||||
"area": obj_data["area"],
|
||||
"region": obj_data["region"],
|
||||
|
||||
Loading…
Reference in New Issue
Block a user