"Evaluate PySOT benchmark result layouts, metric families, eval
Scanned 9/9/2026
Install to Claude Code
npx -y skills add VectorSpaceLab/AREX-Skill --skill evaluation-toolkit --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Evaluation Toolkit?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/vectorspacelab-evaluation-toolkit)More formats (shields.io, HTML) on the badges page.
---
name: evaluation-toolkit
description: "Evaluate PySOT benchmark result layouts, metric families, eval
commands, hp_search, and dataset adapter troubleshooting."
disable-model-invocation: true
metadata:
disco-role: operating
license: Apache 2.0
---
# Evaluation Toolkit
Use this sub-skill when the task is about evaluating already-generated PySOT tracker results, checking benchmark result layouts, selecting the metric family, running the PySOT evaluation CLI, interpreting OPE/AR/EAO/F1 output, using hyperparameter-search result conventions, or debugging dataset/result adapter failures.
## Route here for
- “Evaluate PySOT results” or “run eval.py” on OTB, UAV, NFS, LaSOT, VOT short-term, or VOT2018-LT style outputs.
- Result-tree questions such as tracker directory names, per-video result files, VOT `baseline/` or `longterm/` folders, GOT-10k server-style files, or `--tracker_prefix` matching.
- Metric-family questions: OPE success/precision/norm precision, VOT accuracy/robustness/EAO, and VOT-LT precision/recall/F1.
- Safe preflight checks that do not require benchmark images, snapshots, CUDA, or full metric computation.
- Hyperparameter-search planning and result naming for penalty-k, learning rate, window influence, and search-region sweeps.
## Route elsewhere
- To generate tracker result files from snapshots/videos/datasets, use sibling sub-skill `../tracking-inference/`.
- To train a snapshot or prepare training crops/annotations, use sibling sub-skill `../training-data/`.
- To choose or edit model/config families before running tracking, use sibling sub-skill `../configuration-models/`.
- For cross-cutting install/import issues before any workflow, use the root skill troubleshooting and environment checks.
## Operating workflow
1. Identify the benchmark family and result root.
- PySOT’s evaluation CLI expects a tracker root shaped like `<tracker_path>/<dataset>/<tracker_name>/...`.
- The default tracker root from PySOT tracking runs is usually `results/`.
- Full metric evaluation also expects benchmark data and JSON sidecars under `testing_dataset/<dataset>/`; the bundled validator below only checks result-tree shape.
2. Read [references/datasets-and-results.md](references/datasets-and-results.md) for supported dataset names, JSON sidecars, and expected tracker result files.
3. Run the safe validator before full evaluation:
```bash
python scripts/validate_results_layout.py \
--tracker-path results \
--dataset OTB100 \
--tracker-prefix siamrpn
```
This does not import PySOT, open images, require CUDA, or compute metrics. It fails clearly when the dataset result directory or prefix-selected tracker directories are missing, and it prints an evaluation command skeleton when PySOT’s Python evaluator supports the dataset family.
4. Read [references/metrics.md](references/metrics.md) to map the dataset family to `OPEBenchmark`, `AccuracyRobustnessBenchmark`, `EAOBenchmark`, or `F1Benchmark` and to interpret printed columns.
5. Read [references/workflows.md](references/workflows.md) for concrete `eval` and `hp_search` command templates, flag semantics, and VOT/server benchmark notes.
6. If validation or evaluation fails, use [references/troubleshooting.md](references/troubleshooting.md) before changing code. Common fixes are prefix correction, moving result directories under the expected dataset root, installing the legacy `toolkit.utils.region` extension with `Cython<3`, and reducing multiprocessing to `--num 1`.
## Safe versus full checks
Safe checks in this sub-skill:
- CLI help/import checks for the evaluation and hyperparameter-search scripts.
- Import of benchmark classes and the region extension after the toolkit is installed.
- Result-tree validation with the bundled script.
- Small synthetic result-layout fixtures.
Full metric evaluation is not a safe default check. It requires user-supplied benchmark datasets, JSON sidecars, tracker result files, and a compatible Python environment. Hyperparameter search additionally requires a model snapshot, PySOT config, benchmark images, and CUDA because the source workflow loads the model with `.cuda()`.
## Input/output contract
Inputs usually needed:
- `tracker_path`: root containing dataset result directories, for example `results`.
- `dataset`: one of the supported dataset family names described in the references.
- `tracker_prefix`: optional prefix used to select tracker directories under `<tracker_path>/<dataset>/`.
- For full evaluation only: benchmark data at `testing_dataset/<dataset>/` with `<dataset>.json` sidecar and image/ground-truth files referenced by the sidecar.
Outputs:
- Validator: actionable pass/fail report and an evaluation command skeleton.
- PySOT evaluation: terminal tables for success/precision/norm precision, accuracy/robustness/lost/EAO, or precision/recall/F1 depending on dataset family.
- Hyperparameter search: many tracker result directories named from snapshot and parameter values under the hp-search result root; evaluate or compare them like ordinary tracker directories after the expensive sweep finishes.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!