界面已本地化;技能介绍与说明文档按所选语言由 AI 自动翻译,代码、命令、路径和专业术语保留原文,以原作者文档为准。
探索技能
数据与研究 · SKILL.md

detectron2

detectron2

【数据与研究】Use Detectron2 for object detection, segmentation, configuration, datasets, training, inference, export, and extension workflows.

独立 GitHub 快照 · 自动分类 · 以原作者文档为准

技能说明

GitHub

name: detectron2 description: "Use Detectron2 for object detection, segmentation, configuration, datasets, training, inference, export, and extension workflows." disable-model-invocation: true metadata: disco-role: operating license: Apache 2.0

Detectron2 Repo Skill

Use this repo skill when a task mentions Detectron2, Detectron, object detection, instance/keypoint/panoptic/semantic segmentation, Detectron2 model zoo configs, DefaultPredictor, DefaultTrainer, DatasetCatalog, Detectron2 export, or custom Detectron2 model components.

Start Here

Installation Baseline

Detectron2 is a PyTorch-based library with native C++/CUDA extensions. Public installs should start from a compatible PyTorch and torchvision pair, then install Detectron2 from a release wheel or source build appropriate for the platform.

python -m pip install torch torchvision
python -m pip install 'git+https://github.com/facebookresearch/detectron2.git'
python - <<'PY'
import detectron2
print(detectron2.__version__)
PY

For source builds, ensure torch is importable before running Detectron2 setup. If editable source installation fails because build isolation cannot import torch, retry with a package/build process that disables build isolation after installing torch. OpenCV is optional for core APIs but needed for demo-style image/video visualization workflows.

Route By Task

  • Configs and model zoo: Use sub-skills/configuration-model-zoo/SKILL.md for Yacs YAML configs, LazyConfig Python configs, _BASE_, overrides, LazyCall, instantiate, model-zoo config paths, and checkpoint URLs.
  • Data and datasets: Use sub-skills/data-datasets/SKILL.md for DatasetCatalog, MetadataCatalog, COCO helpers, standard dataset dicts, metadata keys, mappers, augmentations, and train/test data loaders.
  • Training and evaluation: Use sub-skills/training-evaluation/SKILL.md for project-local train/eval driver commands, DefaultTrainer, hooks, launch, checkpointing, evaluators, inference_on_dataset, and solver/LR/batch-size adjustments.
  • Inference and visualization: Use sub-skills/inference-visualization/SKILL.md for DefaultPredictor, direct model inference, Instances, Boxes, masks, model input/output formats, Visualizer, confidence thresholds, CPU overrides, and prediction JSON sanity checks.
  • Deployment and export: Use sub-skills/deployment-export/SKILL.md for TorchScript tracing/scripting, optional Caffe2/ONNX planning, TracingAdapter, scripting_with_instances, model analysis, benchmarking, and safe export command construction.
  • Extensions and projects: Use sub-skills/extension-projects/SKILL.md for registries, custom backbones/ROI heads/meta-architectures, @configurable, custom trainers, and bundled or optional research projects such as PointRend, DeepLab, Panoptic-DeepLab, DensePose, TensorMask, ViTDet, and MViTv2.

Common Decisions

  • Yacs vs LazyConfig: YAML configs use get_cfg(), merge_from_file(), and alternating KEY VALUE overrides. Python configs use LazyConfig.load() and key=value overrides.
  • Weights vs config: Config inspection should not build a model or download weights. Use model-zoo URL helpers for checkpoint URLs, and load weights only when inference/evaluation/export is intentional.
  • Dataset first: Custom training/evaluation needs dataset registration and metadata before cfg.DATASETS.TRAIN/TEST or evaluator logic can work.
  • CPU-only work: Set MODEL.DEVICE cpu for Yacs configs or the matching LazyConfig model device field before constructing predictors/models.
  • Long-running work: Ask before launching training, full evaluation, benchmarks, export runs that load large weights, multi-GPU/multi-machine jobs, or commands that download model/data artifacts.

Bundled Helpers

Source Caveats Captured

  • The source checkout used for this skill had package version 0.6 and a clean git state at the recorded commit in provenance.
  • The source demo CLI was treated as evidence rather than a runtime dependency because its demo.py imports a non-package path in this checkout; use the inference sub-skill helpers and API patterns instead.
  • Caffe2 was not available in the inspection environment, so Caffe2 export guidance is optional and gated behind dependency checks.
我的收藏