Spaces:
Runtime error
Runtime error
# Getting Started with detrex | |
This document provides a brief intro of the usage of builtin command-line tools in detrex. | |
## Inference Demo with Pre-trained Models | |
We've provided [demo](https://github.com/IDEA-Research/detrex/tree/main/demo) as detectron2 for visualizing the customized input images or videos using pretrained weights. | |
For visualizing demos: | |
1. Pick a model and its config file from [projects](https://github.com/IDEA-Research/detrex/tree/main/projects), for example, [dino_swin_large_384_4scale_36ep](https://github.com/IDEA-Research/detrex/blob/main/projects/dino/configs/dino_swin_large_384_4scale_36ep.py). | |
2. Download the pretrained weights from [Model Zoo](https://detrex.readthedocs.io/en/latest/tutorials/Model_Zoo.html) or the [project's page](https://github.com/IDEA-Research/detrex/tree/main/projects/dino#pretrained-models) (take DINO as an example). | |
3. Using the provided [demo.py](https://github.com/IDEA-Research/detrex/blob/main/demo/demo.py) to demo the input images or videos. Run it as: | |
```bash | |
cd detrex/ | |
python demo/demo.py --config-file projects/dino/configs/dino_swin_large_384_4scale_36ep.py \ | |
--input input.jpg \ | |
--output visualized_results.jpg \ | |
--opts train.init_checkpoint="./dino_swin_large_384_4scale_36ep.pth" | |
``` | |
To visualize videos: | |
```bash | |
cd detrex/ | |
python demo/demo.py --config-file projects/dino/configs/dino_swin_large_384_4scale_36ep.py \ | |
--video-input ./demo_video.mp4 \ | |
--output visualize_video_results.mp4 \ | |
--opts train.init_checkpoint="./dino_swin_large_384_4scale_36ep.pth" | |
``` | |
For details of the command line arguments, run `python demo/demo.py -h` or look at its source code to understand its behavior. This demo is modified from [detectron2 demo](https://github.com/facebookresearch/detectron2/tree/main/demo). You can also refer to [detectron2 demo documentation](https://detectron2.readthedocs.io/en/latest/tutorials/getting_started.html#inference-demo-with-pre-trained-models) for more details. | |
## Data Preparation | |
In detrex, we use the builtin coco datasets borrowed from detectron2, which has builtin support for a few datasets. The datasets are assumed to exist in a directory specified by the environment variable `DETECTRON2_DATASETS`. Here we provide the tutorials about the preparation for `MSCOCO` datasets. For more usage of the detectron2 builtin datasets, please refer to the official documentation: [Use Builtin Datasets](https://detectron2.readthedocs.io/en/latest/tutorials/builtin_datasets.html). | |
### Expected dataset structure for [COCO instance](https://cocodataset.org/#download) | |
The dataset structure for `MSCOCO 2017` datasets should be as follows: | |
```bash | |
$DETECTRON2_DATASETS/ | |
coco/ | |
annotations/ | |
instances_{train,val}2017.json | |
person_keypoints_{train,val}2017.json | |
{train,val}2017/ | |
# image files that are mentioned in the corresponding json | |
``` | |
You can set the location for builtin datasets by `export DETECTRON2_DATASETS=/path/to/datasets`. If left unset, the default is `./datasets` relative to the current working directory. | |
## Training & Evaluation in Command Line | |
In detrex, we provides `tools/train_net.py` for launching training & evaluation task. | |
### Training & Evaluation | |
Here we take `dab-detr` as example. To train `dab-detr` using `train_net.py`, first setup the corresponding `MSCOCO 2017` datasets, then run: | |
```bash | |
cd detrex | |
python tools/train_net.py \ | |
--config-file projects/dab_detr/configs/dab_detr_r50_50ep.py | |
``` | |
To train on 8 GPUs, you can set `--num-gpus 8` as follows: | |
```bash | |
cd detrex | |
python tools/train_net.py \ | |
--config-file projects/dab_detr/configs/dab_detr_r50_50ep.py \ | |
--num-gpus 8 | |
``` | |
To evaluate the model performance, use | |
```bash | |
python tools/train_net.py \ | |
--config-file projects/dab_detr/configs/dab_detr_r50_50ep.py \ | |
--eval-only train.init_checkpoint=/path/to/checkpoint | |
``` | |
**Note:** you can directly modify the config in command line like: | |
```bash | |
cd detrex | |
python tools/train_net.py \ | |
--config-file projects/dab_detr/configs/dab_detr_r50_50ep.py \ | |
--num-gpus 8 train.max_iter=30000 | |
``` | |
which will directly overide the `train.max_iter` in config. | |
### Resume Training | |
If the training is interrupted unexpectly, you can set `--resume` in command line which will automatically resume training from `train.output_dir`: | |
```bash | |
python tools/train_net.py \ | |
--config-file projects/dab_detr/configs/dab_detr_r50_50ep.py \ | |
--num-gpus 8 \ | |
--resume | |
``` | |
### Fast Debugging | |
We have set an additional configuration for fast debugging named `train.fast_dev_run=bool`, which is `False` by default. if user enables this configuration, we perform it in a straightforward manner by setting `train.max_iter=20`, `train.eval_period=10`, `train.log_period=1`. | |
To start fast debugging: | |
```bash | |
python tools/train_net.py \ | |
--config-file projects/dab_detr/configs/dab_detr_r50_50ep.py \ | |
--num-gpus 8 \ | |
train.fast_dev_run.enabled=True | |
``` | |