Getting Started with Detectron2 — detectron2 0.6 documentation (original) (raw)

detectron2

This document provides a brief intro of the usage of builtin command-line tools in detectron2.

For a tutorial that involves actual coding with the API, see our Colab Notebookwhich covers how to run inference with an existing model, and how to train a builtin model on a custom dataset.

Inference Demo with Pre-trained Models

  1. Pick a model and its config file frommodel zoo, for example, mask_rcnn_R_50_FPN_3x.yaml.
  2. We provide demo.py that is able to demo builtin configs. Run it with:

cd demo/ python demo.py --config-file ../configs/COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x.yaml
--input input1.jpg input2.jpg
[--other-options] --opts MODEL.WEIGHTS detectron2://COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x/137849600/model_final_f10217.pkl

The configs are made for training, therefore we need to specify MODEL.WEIGHTS to a model from model zoo for evaluation. This command will run the inference and show visualizations in an OpenCV window.

For details of the command line arguments, see demo.py -h or look at its source code to understand its behavior. Some common arguments are:

Training & Evaluation in Command Line

We provide two scripts in “tools/plain_train_net.py” and “tools/train_net.py”, that are made to train all the configs provided in detectron2. You may want to use it as a reference to write your own training script.

Compared to “train_net.py”, “plain_train_net.py” supports fewer default features. It also includes fewer abstraction, therefore is easier to add custom logic.

To train a model with “train_net.py”, first setup the corresponding datasets followingdatasets/README.md, then run:

cd tools/ ./train_net.py --num-gpus 8
--config-file ../configs/COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_1x.yaml

The configs are made for 8-GPU training. To train on 1 GPU, you may need to change some parameters, e.g.:

./train_net.py
--config-file ../configs/COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_1x.yaml
--num-gpus 1 SOLVER.IMS_PER_BATCH 2 SOLVER.BASE_LR 0.0025

To evaluate a model’s performance, use

./train_net.py
--config-file ../configs/COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_1x.yaml
--eval-only MODEL.WEIGHTS /path/to/checkpoint_file

For more options, see ./train_net.py -h.

Use Detectron2 APIs in Your Code

See our Colab Notebookto learn how to use detectron2 APIs to:

  1. run inference with an existing model
  2. train a builtin model on a custom dataset

See detectron2/projectsfor more ways to build your project on detectron2.