fix(demo): pace gait windows before buffering
Make the OpenGait-studio demo drop unpaced frames before they grow the silhouette window. Separate source-frame gap tracking from paced-frame stride tracking so runtime scheduling matches the documented demo-window-and-stride behavior. Add regressions for paced window growth and schedule-frame stride semantics.
This commit is contained in:
@@ -148,6 +148,7 @@ class ScoliosisPipeline:
|
||||
_visualizer: OpenCVVisualizer | None
|
||||
_last_viz_payload: _VizPayload | None
|
||||
_frame_pacer: _FramePacer | None
|
||||
_paced_frame_idx: int
|
||||
_visualizer_accepts_pose_data: bool | None
|
||||
_visualizer_signature_owner: object | None
|
||||
|
||||
@@ -209,6 +210,7 @@ class ScoliosisPipeline:
|
||||
self._visualizer = None
|
||||
self._last_viz_payload = None
|
||||
self._frame_pacer = _FramePacer(target_fps) if target_fps is not None else None
|
||||
self._paced_frame_idx = -1
|
||||
self._visualizer_accepts_pose_data = None
|
||||
self._visualizer_signature_owner = None
|
||||
|
||||
@@ -393,8 +395,6 @@ class ScoliosisPipeline:
|
||||
"confidence": None,
|
||||
"pose": pose_data,
|
||||
}
|
||||
self._window.push(silhouette, frame_idx=frame_idx, track_id=track_id)
|
||||
|
||||
if self._frame_pacer is not None and not self._frame_pacer.should_emit(
|
||||
timestamp_ns
|
||||
):
|
||||
@@ -409,6 +409,13 @@ class ScoliosisPipeline:
|
||||
"confidence": None,
|
||||
"pose": pose_data,
|
||||
}
|
||||
self._paced_frame_idx += 1
|
||||
self._window.push(
|
||||
silhouette,
|
||||
frame_idx=frame_idx,
|
||||
track_id=track_id,
|
||||
schedule_frame_idx=self._paced_frame_idx,
|
||||
)
|
||||
segmentation_input = self._window.buffered_silhouettes
|
||||
|
||||
if not self._window.should_classify():
|
||||
|
||||
Reference in New Issue
Block a user