Skip to content

Commit

Permalink
only use max target box for relative zoom limiter (blakeblackshear#8509)
Browse files Browse the repository at this point in the history
  • Loading branch information
hawkeye217 committed Nov 7, 2023
1 parent 591b911 commit 1d99bb9
Showing 1 changed file with 6 additions and 17 deletions.
23 changes: 6 additions & 17 deletions frigate/ptz/autotrack.py
Original file line number Diff line number Diff line change
Expand Up @@ -863,21 +863,11 @@ def _should_zoom_in(self, camera, obj, box, debug_zooming=False):
# introduce some hysteresis to prevent a yo-yo zooming effect
zoom_out_hysteresis = (
self.tracked_object_metrics[camera]["target_box"]
> (
self.tracked_object_metrics[camera]["original_target_box"]
* AUTOTRACKING_ZOOM_OUT_HYSTERESIS
)
or self.tracked_object_metrics[camera]["target_box"]
> self.tracked_object_metrics[camera]["max_target_box"]
* AUTOTRACKING_ZOOM_OUT_HYSTERESIS
)
zoom_in_hysteresis = (
self.tracked_object_metrics[camera]["target_box"]
< (
self.tracked_object_metrics[camera]["original_target_box"]
* AUTOTRACKING_ZOOM_IN_HYSTERESIS
)
or self.tracked_object_metrics[camera]["target_box"]
< self.tracked_object_metrics[camera]["max_target_box"]
* AUTOTRACKING_ZOOM_IN_HYSTERESIS
)
Expand Down Expand Up @@ -1073,15 +1063,14 @@ def _get_zoom_amount(self, camera, obj, predicted_box, debug_zoom=True):
)
) is not None:
# zoom value
limit = (
self.tracked_object_metrics[camera]["original_target_box"]
if self.tracked_object_metrics[camera]["target_box"]
< self.tracked_object_metrics[camera]["max_target_box"]
else self.tracked_object_metrics[camera]["max_target_box"]
ratio = (
self.tracked_object_metrics[camera]["max_target_box"]
/ self.tracked_object_metrics[camera]["target_box"]
)
ratio = limit / self.tracked_object_metrics[camera]["target_box"]
zoom = (ratio - 1) / (ratio + 1)
logger.debug(f"{camera}: Zoom calculation: {zoom}")
logger.debug(
f'{camera}: limit: {self.tracked_object_metrics[camera]["max_target_box"]}, ratio: {ratio} zoom calculation: {zoom}'
)
if not result:
# zoom out with special condition if zooming out because of velocity, edges, etc.
zoom = -(1 - zoom) if zoom > 0 else -(zoom * 2 + 1)
Expand Down

0 comments on commit 1d99bb9

Please sign in to comment.