Skip to content
Back to skills

Detection

ASecurity

"Use for PaddleViT object detection workflows with DETR, Swin, or

  • 247 stars
  • 0 votes
  • 0 copies
  • 4 views
  • Added September 8, 2026
toolspythongoshellbashgitapibackend

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 7 files and shows the line behind each finding

Scanned September 8, 2026

npx -y skills add VectorSpaceLab/AREX-Skill --skill detection --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Detection?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Detection
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vectorspacelab-detection-arex-skill/badge)](https://www.skillsdirectory.com/skills/vectorspacelab-detection-arex-skill)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: detection
description: "Use for PaddleViT object detection workflows with DETR, Swin, or
  PVTv2: validate COCO data, select configs, build/train/evaluate models, reason
  about transforms, losses, post-processing, and run safe utility smokes.
  Excludes segmentation and generic export; cross-link deployment-and-operations
  for shared runtime concerns."
disable-model-invocation: true
metadata:
  disco-role: operating
license: Apache 2.0
---

# PaddleViT object detection

Use this route for standalone PaddleViT object detection under `object_detection/`:
DETR, Swin, and PVTv2 with COCO boxes. It covers family/config selection,
data preflight, transforms and targets, safe model-contract checks, checkpoint
triage, training/evaluation boundaries, and backend-aware diagnosis. It does
not own semantic segmentation, generic export/inference, quantization, or
weight porting; route those requests to
[deployment-and-operations](../deployment-and-operations/SKILL.md).

The bundled helpers are self-contained and do not import the original source
checkout, download data or weights, or modify a user-owned dataset. A source
checkout is optional and is needed only for a source-model build or native
candidate test. Details that are useful during a focused investigation live in
[model overview](references/model-overview.md),
[data formats](references/data-formats.md),
[workflows](references/workflows.md), and
[troubleshooting](references/troubleshooting.md).

## Route the request

1. Identify the family before changing a config or launching a command:
   - **DETR** for query-based, end-to-end detection with transformer decoder
     queries, Hungarian matching, and direct box post-processing.
   - **Swin** or **PVTv2** for hierarchical backbones feeding FPN, RPN, and
     RoI-style heads with anchors, proposals, and NMS.
2. If the request says only “PaddleViT detection,” ask which family and
   whether the goal is a utility check, source build, evaluation, or training.
   Do not mix family directories in one Python process: common modules such as
   `config`, `coco`, `box_ops`, and `utils` can resolve incorrectly.
3. Keep segmentation separate, even if a request mentions masks or a DETR
   import. For export, predictor, AMP, distributed, or shared runtime issues,
   use [deployment-and-operations](../deployment-and-operations/SKILL.md).

## Preflight before a source run

Validate the **COCO root**, not a split directory. The expected root contains
`annotations/instances_{train,val}2017.json` and the matching
`train2017/` or `val2017/` image directory. Run the read-only helper from the
skill root (replace placeholders with caller-owned values):

```bash
python <skill-root>/scripts/check_coco_layout.py <coco-root> --split val
```

Add `--check-images` to decode referenced images and compare dimensions, or
`--check-api` to parse the annotation through `pycocotools`. Use `--json` for a
machine-readable report and `--demo` for a temporary one-image validator
fixture. A failed check is a stop condition: repair the dataset outside this
skill and rerun; do not download or silently substitute another dataset.

Before importing a source model, run the bounded synthetic contract smoke:

```bash
python <skill-root>/scripts/detection_model_smoke.py --model all --device cpu
```

This checks tiny DETR and four-level anchor-family shapes and finite values. It
is not a source-model build, checkpoint test, COCO test, mAP result, or
benchmark reproduction. Use `--device gpu:0` only when a GPU claim is required
and the backend has already passed its environment probe.

## Select a source root and config

The three projects are standalone. For a source-backed run, enter exactly one
family directory and expose only that directory (and its intended parent) to
imports:

```bash
cd <source-root>/object_detection/DETR   # or Swin or PVTv2
export PYTHONPATH="$PWD:$PWD/..:${PYTHONPATH:-}"
```

Resolve configuration in this order: Python defaults, recursive YAML `BASE`
files, then CLI overrides. Print and inspect the effective config before model
construction. Check backbone output channels against FPN inputs, pyramid
strides and anchor levels, class/category conventions, image divisibility, and
DETR embedding-dimension/head divisibility. Swin/PVTv2 configs preserve the
historical `ROI.NUM_ClASSES` spelling; do not replace it with a guessed key.
The family-specific config and output/target details are in
[model overview](references/model-overview.md) and
[data formats](references/data-formats.md).

## CLI flag contract

The family `main_single_gpu.py` and `main_multi_gpu.py` scripts use these
short, single-dash options:

```text
-cfg PATH             YAML config (BASE files are recursively merged)
-dataset coco         dataset selector
-data_path PATH       COCO root, not train2017/val2017
-batch_size N         per-process/per-GPU batch size
-eval                 evaluation-only mode
-pretrained PREFIX    source appends .pdparams
-resume PREFIX        source expects .pdparams and .pdopt
-last_epoch N         resume epoch metadata
-ngpus N              configured multi-GPU worker count
```

`-cfg=...` and `-cfg ...` are both acceptable. Pass checkpoint **prefixes**
without `.pdparams` when following the source loader. Inspect launcher shell
files rather than executing them blindly: paths, visible devices, output
prefixes, and training duration are caller-owned. A representative command
shape is:

```bash
cd <source-root>/object_detection/DETR
CUDA_VISIBLE_DEVICES=0 python main_single_gpu.py \
  -cfg=./configs/detr_resnet50.yaml -dataset=coco \
  -batch_size=1 -data_path=<coco-root> -eval \
  -pretrained=<checkpoint-prefix>
```

Treat real training/evaluation as expensive and data/checkpoint/GPU dependent;
use the [workflow reference](references/workflows.md) for gated sequencing.

## Family contracts to preserve

- **DETR:** expect logits shaped `[B,Q,C+1]`, normalized center-size boxes
  `[B,Q,4]`, optional auxiliary decoder outputs, and losses including
  classification, L1, and GIoU. Post-processing needs target sizes in
  `[height,width]` order and emits absolute `xyxy` boxes, scores, and labels.
- **Swin/PVTv2:** expect hierarchical features, FPN/RPN/RoI losses during
  training, and post-NMS rows shaped `[label, score, xmin, ymin, xmax, ymax]`
  during evaluation. Their target path uses absolute boxes and contiguous
  classes; the two families share the broad head/neck contract but not every
  backbone channel/config value.
- **All families:** COCO boxes begin as `[x,y,width,height]`; transformations
  must update geometry and area. A valid synthetic training fixture needs at
  least one non-empty target. Preserve original image IDs for COCO results.
  Full transform and output schemas are in the linked references.

## Verification tiers

Choose the cheapest tier that answers the question and record command, device,
Paddle version, config, and result:

1. `check_coco_layout.py` for root layout, JSON arrays, IDs, boxes, files, and
   optional Pillow/COCO-API checks.
2. `detection_model_smoke.py` for standalone tiny shape and finite-value
   contracts; a non-32-divisible size intentionally reports the padding caveat.
3. Native DETR box/transform/model tests when a source checkout and dependencies
   are available. They are evidence candidates, not runtime prerequisites;
   some are skipped or require an untracked fixture.
4. A one-batch source build/forward using one family root and a tiny local
   fixture, only after config/import checks pass.
5. Real COCO evaluation or training only with explicit data, checkpoint, GPU,
   and time approval. Never call a smoke or random-weight forward mAP evidence.

CPU can validate parsing, layout, box utilities, and tiny diagnostics. It does
not establish CUDA, AMP, distributed, or full detector claims. For those
boundaries use [deployment-and-operations](../deployment-and-operations/SKILL.md).

## Stop and recover

- **Missing files/API:** `-data_path` must be the root; verify exact split
  filenames. If `pycocotools` is absent, omit `--check-api` but do not claim
  COCO evaluation is verified.
- **Import/YAML errors:** start a fresh process, isolate one family root,
  resolve `BASE` relative to its YAML, compare keys to that family's config,
  and inspect the final config. Do not mix module paths or claim a build that
  never constructed a model.
- **Shape/checkpoint errors:** verify family, backbone/FPN channels, attention
  divisibility, query/class counts, head spelling, and checkpoint provenance.
  A prefix normally maps to `.pdparams`; resume also needs `.pdopt`. Do not
  reshape incompatible state dictionaries.
- **Bad boxes/empty batches:** inspect crowd flags, category mapping, positive
  area, coordinate format, resize/flip/crop order, and image IDs. Keep one
  valid target in a fixture; an all-empty batch is not a valid smoke.
- **NaN/Inf or no detections:** run CPU geometry checks, verify normalized DETR
  boxes or absolute Swin/PVTv2 boxes, then inspect thresholds, NMS, and loaded
  keys. Random weights cannot support an accuracy claim.
- **CUDA OOM/unavailable:** lower per-GPU batch size or input scale for OOM.
  If CUDA is unavailable, report CPU-only partial evidence; never substitute it
  for a required GPU result. For multi-GPU, check visible devices, `-ngpus`,
  per-process batch semantics, NCCL, and rank gathering before retrying.

See [troubleshooting](references/troubleshooting.md) for expanded recovery
branches. Do not run network, full-native, long-training, or multi-GPU
workflows as part of this route unless explicitly authorized.

Files in this skill

  • SKILL.md9.4 KB
  • references/data-formats.md3.8 KB
  • references/model-overview.md4 KB
  • references/troubleshooting.md4.7 KB
  • references/workflows.md5.4 KB
  • scripts/check_coco_layout.py11.6 KB
  • scripts/detection_model_smoke.py8.9 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.