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 | |
| ``` | |