check object frame time

This commit is contained in:
Josh Hawkins 2024-12-23 07:52:24 -06:00
parent b599624a8f
commit f2aabfec50

View File

@ -184,7 +184,12 @@ class TrackedObject:
self.zone_presence[name] = zone_score - 1 self.zone_presence[name] = zone_score - 1
# update speed # update speed
if zone.distances and name in self.entered_zones: if (
zone.distances
and name in self.current_zones
and obj_data["frame_time"] == current_frame_time
and self.active
):
speed_magnitude, self.velocity_angle = ( speed_magnitude, self.velocity_angle = (
calculate_real_world_speed( calculate_real_world_speed(
zone.contour, zone.contour,
@ -203,18 +208,17 @@ class TrackedObject:
# Convert ft/s to mph # Convert ft/s to mph
self.current_estimated_speed = speed_magnitude * 0.681818 self.current_estimated_speed = speed_magnitude * 0.681818
logger.debug(
f"Camera: {self.camera_config.name}, zone: {name}, tracked object ID: {self.obj_data['id']}, pixel velocity: {str(tuple(np.round(self.obj_data['estimate_velocity']).flatten().astype(int)))} estimated speed: {self.current_estimated_speed:.1f}"
)
if self.active and name in self.current_zones:
# only keep the last 10 speeds # only keep the last 10 speeds
if len(self.speed_history) > 10: if len(self.speed_history) > 10:
self.speed_history = self.speed_history[-10:] self.speed_history = self.speed_history[-10:]
self.speed_history.append(self.current_estimated_speed) self.speed_history.append(self.current_estimated_speed)
self.average_estimated_speed = sum(self.speed_history) / len( self.average_estimated_speed = sum(self.speed_history) / len(
self.speed_history self.speed_history
) )
logger.debug(
f"Camera: {self.camera_config.name}, tracked object ID: {self.obj_data['id']}, zone: {name}, pixel velocity: {str(tuple(np.round(self.obj_data['estimate_velocity']).flatten().astype(int)))}, speed magnitude: {speed_magnitude}, estimated speed: {self.current_estimated_speed:.1f}, average speed: {self.average_estimated_speed:.1f}, length: {len(self.speed_history)}"
)
# update loitering status # update loitering status
self.pending_loitering = in_loitering_zone self.pending_loitering = in_loitering_zone