mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-02-19 01:17:06 +03:00
remove max estimated speed
This commit is contained in:
parent
eaf362b424
commit
69b3ebcfc0
@ -323,7 +323,6 @@ def events_explore(limit: int = 10):
|
||||
"description",
|
||||
"sub_label_score",
|
||||
"average_estimated_speed",
|
||||
"max_estimated_speed",
|
||||
]
|
||||
},
|
||||
"event_count": label_counts[event.label],
|
||||
@ -597,7 +596,6 @@ def events_search(request: Request, params: EventsSearchQueryParams = Depends())
|
||||
"description",
|
||||
"sub_label_score",
|
||||
"average_estimated_speed",
|
||||
"max_estimated_speed",
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
@ -27,7 +27,6 @@ def should_update_db(prev_event: Event, current_event: Event) -> bool:
|
||||
or prev_event["end_time"] != current_event["end_time"]
|
||||
or prev_event["average_estimated_speed"]
|
||||
!= current_event["average_estimated_speed"]
|
||||
or prev_event["max_estimated_speed"] != current_event["max_estimated_speed"]
|
||||
):
|
||||
return True
|
||||
return False
|
||||
@ -213,7 +212,6 @@ class EventProcessor(threading.Thread):
|
||||
"top_score": event_data["top_score"],
|
||||
"attributes": attributes,
|
||||
"average_estimated_speed": event_data["average_estimated_speed"],
|
||||
"max_estimated_speed": event_data["max_estimated_speed"],
|
||||
"type": "object",
|
||||
"max_severity": event_data.get("max_severity"),
|
||||
},
|
||||
|
||||
@ -65,7 +65,6 @@ class TrackedObject:
|
||||
self.speed_history = []
|
||||
self.current_estimated_speed = 0
|
||||
self.average_estimated_speed = 0
|
||||
self.max_estimated_speed = 0
|
||||
self.velocity_angle = 0
|
||||
self.previous = self.to_dict()
|
||||
|
||||
@ -208,7 +207,7 @@ class TrackedObject:
|
||||
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:
|
||||
if self.active and name in self.current_zones:
|
||||
# only keep the last 10 speeds
|
||||
if len(self.speed_history) > 10:
|
||||
self.speed_history = self.speed_history[-10:]
|
||||
@ -217,9 +216,6 @@ class TrackedObject:
|
||||
self.speed_history
|
||||
)
|
||||
|
||||
if self.current_estimated_speed > self.max_estimated_speed:
|
||||
self.max_estimated_speed = self.current_estimated_speed
|
||||
|
||||
# update loitering status
|
||||
self.pending_loitering = in_loitering_zone
|
||||
|
||||
@ -303,7 +299,6 @@ class TrackedObject:
|
||||
"max_severity": self.max_severity,
|
||||
"current_estimated_speed": self.current_estimated_speed,
|
||||
"average_estimated_speed": self.average_estimated_speed,
|
||||
"max_estimated_speed": self.max_estimated_speed,
|
||||
"velocity_angle": self.velocity_angle,
|
||||
}
|
||||
|
||||
|
||||
@ -4,7 +4,15 @@ import numpy as np
|
||||
|
||||
|
||||
def order_points_clockwise(points):
|
||||
points = np.array(points)
|
||||
"""
|
||||
Ensure points are sorted in clockwise order starting from the top left
|
||||
|
||||
:param points: Array of zone corner points in pixel coordinates
|
||||
:return: Ordered list of points
|
||||
"""
|
||||
if not isinstance(points, np.ndarray):
|
||||
points = np.array(points)
|
||||
|
||||
centroid = np.mean(points, axis=0)
|
||||
|
||||
angles = np.arctan2(points[:, 1] - centroid[1], points[:, 0] - centroid[0])
|
||||
@ -26,7 +34,7 @@ def create_ground_plane(zone_points, distances):
|
||||
"""
|
||||
Create a ground plane that accounts for perspective distortion using real-world dimensions for each side of the zone.
|
||||
|
||||
:param zone_points: Array of zone corner points in pixel coordinates in circular order
|
||||
:param zone_points: Array of zone corner points in pixel coordinates
|
||||
[[x1, y1], [x2, y2], [x3, y3], [x4, y4]]
|
||||
:param distances: Real-world dimensions ordered by A, B, C, D
|
||||
:return: Function that calculates real-world distance per pixel at any coordinate
|
||||
|
||||
@ -328,18 +328,6 @@ function ObjectDetailsTab({
|
||||
}
|
||||
}, [search]);
|
||||
|
||||
const maxEstimatedSpeed = useMemo(() => {
|
||||
if (!search || !search.data?.max_estimated_speed) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
if (search.data?.max_estimated_speed != 0) {
|
||||
return search.data?.max_estimated_speed.toFixed(1);
|
||||
} else {
|
||||
return undefined;
|
||||
}
|
||||
}, [search]);
|
||||
|
||||
const updateDescription = useCallback(() => {
|
||||
if (!search) {
|
||||
return;
|
||||
@ -451,7 +439,7 @@ function ObjectDetailsTab({
|
||||
{score}%{subLabelScore && ` (${subLabelScore}%)`}
|
||||
</div>
|
||||
</div>
|
||||
{(averageEstimatedSpeed || maxEstimatedSpeed) && (
|
||||
{averageEstimatedSpeed && (
|
||||
<div className="flex flex-col gap-1.5">
|
||||
<div className="text-sm text-primary/40">Estimated Speeds</div>
|
||||
<div className="flex flex-col space-y-0.5 text-sm">
|
||||
@ -462,13 +450,6 @@ function ObjectDetailsTab({
|
||||
<span className="text-primary/40">(average)</span>
|
||||
</div>
|
||||
)}
|
||||
{maxEstimatedSpeed && (
|
||||
<div>
|
||||
{maxEstimatedSpeed}{" "}
|
||||
{config?.ui.unit_system == "imperial" ? "mph" : "kph"}{" "}
|
||||
<span className="text-primary/40">(maximum)</span>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
|
||||
@ -56,7 +56,6 @@ export type SearchResult = {
|
||||
type: "object" | "audio" | "manual";
|
||||
description?: string;
|
||||
average_estimated_speed: number;
|
||||
max_estimated_speed: number;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user