The codebases are built on top of Detectron2, Sparse R-CNN, and denoising-diffusion-pytorch. Thanks very much.
- Linux or macOS with Python ≥ 3.6
- PyTorch ≥ 1.9.0 and torchvision that matches the PyTorch installation. You can install them together at pytorch.org to make sure of this
- OpenCV is optional and needed by demo and visualization
-
Install Detectron2 following https://github.com/facebookresearch/detectron2/blob/main/INSTALL.md#installation.
-
Prepare datasets
mkdir -p datasets/coco
ln -s /path_to_coco_dataset/annotations datasets/coco/annotations
ln -s /path_to_coco_dataset/train2017 datasets/coco/train2017
ln -s /path_to_coco_dataset/val2017 datasets/coco/val2017
- Prepare pretrain models
DiffDet uses three backbones ResNet-50 The pretrained ResNet-50 model can be downloaded automatically by Detectron2.
mkdir models
cd models
cd ..
- Train DiffDet4SAR
python train_net.py --num-gpus 8 \
--config-file configs/diffdet.coco.res50.yaml
- Evaluate DiffDet4SAR
python train_net.py --num-gpus 8 \
--config-file configs/diffdet.coco.res50.yaml \
--eval-only MODEL.WEIGHTS path/to/model.pth
- Evaluate with arbitrary number (e.g 300) of boxes by setting
MODEL.DiffusionDet.NUM_PROPOSALS 300
. - Evaluate with 4 refinement steps by setting
MODEL.DiffusionDet.SAMPLE_STEP 4
.
python demo.py --config-file configs/diffdet.coco.res50.yaml \
--input image.jpg --opts MODEL.WEIGHTS diffdet_coco_res50.pth
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:
- To run on your webcam, replace
--input files
with--webcam
. - To run on a video, replace
--input files
with--video-input video.mp4
. - To run on cpu, add
MODEL.DEVICE cpu
after--opts
. - To save outputs to a directory (for images) or a file (for webcam or video), use
--output
.