nvidia-tao/tao-skill-bank/tao-analyze-gaps-od-map
Claude Code and agent skill by nvidia-tao/tao-skill-bank
- community
Checking that the SKILL.md file is still in the repository.
Run TAO Data Services object-detection gap analysis from ground-truth and inference annotations. Use when an object detection workflow needs to identify weak images by comparing model predictions against ground truth using per-class recall, precision, and AP50 thresholds. Use when the user asks to "analyze OD gaps", "find weak OD images", or "run mAP gap analysis".
Install
npx vskill@latest install nvidia-tao/tao-skill-bank/tao-analyze-gaps-od-mapSKILL.md
TAO Analyze Gaps OD mAP
Use this skill to run TAO Data Services object-detection gap analysis. The skill compares ground-truth and inference annotations, computes per-image per-class TP/FP/FN/AP50 metrics, and identifies weak images where any class metric falls below its threshold. It does not run inference; upstream steps must produce the inference annotations first.
The container entrypoint is:
Inputs
Required spec fields:
| Field | Meaning | |
|---|---|---|
ground_truth_ann_path | KITTI label directory or COCO .json with ground-truth boxes. | |
inference_ann_path | KITTI label directory or COCO .json with model predictions. | |
images_dir | Root image directory. Establishes the full image universe including unannotated images. | |
results_dir | Output directory for all artifacts. | |
kpi | Identifier tag written to every output row. | |
input_format | kitti or coco. Must be declared explicitly; never inferred from the path. |
Common optional fields:
| Field | Default | Meaning | |
|---|---|---|---|
iou_threshold | 0.5 | IoU at or above which a prediction is accepted as a true positive. | |
conf_threshold | 0.0 | Predictions below this confidence are dropped before matching. | |
min_area | 0 | Boxes whose pixel area (w × h) is strictly below this value are discarded. | |
class_mapping | {} | Maps raw annotation label strings to canonical class names. Absent labels are kept as-is. | |
weak_thresholds | {} | Per-class thresholds as {class_name: {recall, precision, ap50}}. Absent keys fall back to the default_*_threshold values. Reference ITS defaults: car 0.99, bicycle 0.7, person 0.7 — a strict gate on the abundant, well-learned class and looser gates on the rare ones the loop exists to improve. | |
default_recall_threshold | 0.5 | Fallback recall threshold for classes not listed in weak_thresholds. | |
default_precision_threshold | 0.0 | Fallback precision threshold. Set to 0.0 to disable precision-based weak selection. | |
default_ap50_threshold | 0.5 | Fallback for classes absent from weak_thresholds. Set `0.0` so unlisted classes never mark an image weak — the reference filter had no fallback, and leaving TAO DS's 0.5 in place silently gates every class you did not list. |
Do not hand-write the spec. Copy the template and fill in the nulls — every tuning value it already carries is the one this stage wants — then validate:
verify rejects the spellings that fail — uppercase input_format, relative or missing paths, a weak_thresholds entry that is a bare number rather than a mapping — and reports every gated class plus the default_* fallbacks, so the selection criteria behind a weak set are recoverable from the run's output. It warns when a fallback is above zero, since that gates classes you did not list.
Quick Start
Run from the tao-skill-bank repo root.
Write the spec into the results directory. The run emits four artifacts and does not retain the spec, so a completed gap analysis otherwise cannot tell you which thresholds produced its weak set — and that weak set sizes the mining budget downstream. Keeping them together makes the selection criteria recoverable from the run alone.
Keep --user and the identity env block above. TAO DS images call getpass.getuser() at startup; without USER/LOGNAME they fail with KeyError: 'getpwuid(): uid not found: <uid>' because the UID has no /etc/passwd entry. Do not work around it by running the container as root; that leaves root-owned outputs. This follows the launch contract in tao-run-on-docker.
Preflight
- Verify Docker access:
- Resolve and pull the data-services image if needed:
- Confirm
RUN_ROOTcontains the spec, both annotation sources, and the image directory. MountRUN_ROOTto the same absolute path inside Docker.
Outputs
| Artifact | Location | Contents | |
|---|---|---|---|
| FP/FN box gaps | results_dir/box_gaps.parquet | One row per unmatched box: kpi, image_id, filepath, class, gap_type (FP/FN), bbox, confidence, best_iou. | |
| Per-image metrics | results_dir/image_metrics.parquet | Per-image per-class: tp, fp, fn, precision, recall, ap50. | |
| Weak images | results_dir/weak_images.parquet | Images where any class metric falls below threshold: filepath, weak_classes, weak_recall, weak_precision, weak_ap50. Feed this into tao-mine-od-images. | |
| Gap report | results_dir/gap_report.json | FP/FN counts by type and class, plus run settings. |
All four artifacts are always written, even when no gaps are found.
Troubleshooting
`The subtask object_detection requires -e/--experiment_spec_file`: rerun with gap_analysis object_detection -e "$SPEC".
Input path not found inside Docker: use a RUN_ROOT mount where host and container paths are identical.
`input_format` error: set input_format: kitti or input_format: coco explicitly — it is never inferred from the path.
`weak_images.parquet` is empty: all class metrics are above their thresholds. Lower default_recall_threshold / default_ap50_threshold or add per-class entries to weak_thresholds.
Output directory not writable after Docker exits: the container ran without --user, so it wrote as root. Relaunch with the --user and identity env block shown above.
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/data/tao-analyze-gaps-od-map/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/nvidia-tao/tao-skill-bank/tao-analyze-gaps-od-map)