Conversation
- Replace single _evaluator with _evaluators list - Remove single-evaluator restriction in _validate_configuration - Instantiate and configure all evaluators in load_configuration - evaluate() runs all evaluators and returns Dict[str, Dict[str, float]] keyed by evaluator class name - Update pipeline config to list both evaluators - Update tests: _evaluator -> _evaluators, multi-evaluator test now expects success, evaluate() result shape updated
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…/add-jitter-metrics
Contributor
There was a problem hiding this comment.
Pull request overview
Note
Copilot was unable to run its full agentic suite in this review.
Adds a new tracking-evaluation “jitter” evaluator to compute smoothness metrics (RMS jerk and acceleration variance) and wires it into the evaluation pipeline.
Changes:
- Introduces
JitterEvaluatorwith RMS jerk and acceleration variance computations based on numerical differentiation. - Adds unit tests for configuration, processing, metric computation, and result-file output.
- Updates pipeline configs and docs to include/describe the new evaluator.
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 12 comments.
Show a summary per file
| File | Description |
|---|---|
| tools/tracker/evaluation/pipeline_configs/metric_test_evaluation.yaml | Adds JitterEvaluator to the metric test pipeline config. |
| tools/tracker/evaluation/evaluators/jitter_evaluator.py | Implements jitter metric processing, computation, and result persistence. |
| tools/tracker/evaluation/evaluators/tests/test_jitter_evaluator.py | Adds unit tests covering JitterEvaluator behavior. |
| tools/tracker/evaluation/evaluators/init.py | Exposes JitterEvaluator from the evaluators package. |
| tools/tracker/evaluation/evaluators/README.md | Documents JitterEvaluator usage, metrics, and algorithm. |
| tools/tracker/evaluation/README.md | Documents pipeline configuration and lists JitterEvaluator as available. |
tools/tracker/evaluation/evaluators/tests/test_jitter_evaluator.py
Outdated
Show resolved
Hide resolved
…/add-jitter-metrics
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
tools/tracker/evaluation/evaluators/tests/test_jitter_evaluator.py
Outdated
Show resolved
Hide resolved
…ub.com/open-edge-platform/scenescape into ITEP-89828/multiple-evaluators-support
…/add-jitter-metrics
…/add-jitter-metrics
tdorauintc
approved these changes
Apr 10, 2026
Contributor
tdorauintc
left a comment
There was a problem hiding this comment.
LGTM, minor comments added.
Please update evaluators in the Agents.md
…en-edge-platform/scenescape into ITEP-89467/add-jitter-metrics
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
📝 Description
Adds a new tracking-evaluation “jitter” evaluator to compute smoothness metrics (RMS jerk and acceleration variance) and wires it into the evaluation pipeline.
Changes:
Metrics:
rms_jerkacceleration_variancerms_jerk_gtrms_jerkcomputed on ground-truth tracksacceleration_variance_gtacceleration_variancecomputed on ground-truth tracksrms_jerk_ratiorms_jerk/rms_jerk_gt— tracker jitter relative to GT (1.0 = equal)acceleration_variance_ratioacceleration_variance/acceleration_variance_gtComparing
rms_jerkwithrms_jerk_gtshows how much jitter the trackeradds on top of any jitter already present in the test data.
Algorithm:
All metrics are derived by applying three sequential layers of forward finite differences to 3D positions, accounting for variable time steps between frames:
Minimum track length: 3 points for acceleration, 4 points for jerk. Shorter tracks are skipped; if no eligible tracks exist, the metric returns 0.0.
For GT metrics, ground-truth frame numbers are converted to relative timestamps using the FPS derived from the tracker output.
Key Features:
TrackEvalEvaluatorbehaviour).jitter_results.txtsummary to the configured output folder.✨ Type of Change
Select the type of change your PR introduces:
🧪 Testing Scenarios
Describe how the changes were tested and how reviewers can test them too:
Unit tests (no Docker required):
Full unit test suite (verify no regressions):
End-to-end pipeline run (requires Docker + scenescape-controller image):
✅ Checklist
Before submitting the PR, ensure the following: