Skip to content

[CVPR2023] This is an official implementation of paper "DETRs with Hybrid Matching".

License

Notifications You must be signed in to change notification settings

HDETR/H-Deformable-DETR

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

H-Deformable-DETR

This is the official implementation of the paper "DETRs with Hybrid Matching".

Authors: Ding Jia, Yuhui Yuan, Haodi He, Xiaopei Wu, Haojun Yu, Weihong Lin, Lei Sun, Chao Zhang, Han Hu

Citing H-Deformable-DETR

If you find H-Deformable-DETR useful in your research, please consider citing:

@article{jia2022detrs,
  title={DETRs with Hybrid Matching},
  author={Jia, Ding and Yuan, Yuhui and He, Haodi and Wu, Xiaopei and Yu, Haojun and Lin, Weihong and Sun, Lei and Zhang, Chao and Hu, Han},
  journal={arXiv preprint arXiv:2207.13080},
  year={2022}
}

Model ZOO

We provide a set of baseline results and trained models available for download:

Name Backbone epochs AP download
Deformable DETR R50 12 43.7 model
Deformable DETR R50 36 46.8 model
Deformable DETR + tricks R50 12 47.0 model
H-Deformable DETR + tricks R50 12 48.7 model
H-Deformable DETR + tricks R50 36 50.0 model
H-Deformable DETR + tricks Swin Large 36 57.4 model

Installation

We test our models under python=3.7.10,pytorch=1.10.1,cuda=10.2. Other versions might be available as well.

  1. Clone this repo
git https://github.com/HDETR/H-Deformable-DETR.git
cd H-Deformable-DETR
  1. Install Pytorch and torchvision

Follow the instruction on https://pytorch.org/get-started/locally/.

# an example:
conda install -c pytorch pytorch torchvision
  1. Install other needed packages
pip install -r requirements.txt
pip install openmim
mim install mmcv-full
pip install mmdet
  1. Compiling CUDA operators
cd models/ops
python setup.py build install
# unit test (should see all checking is True)
python test.py
cd ../..

Data

Please download COCO 2017 dataset and organize them as following:

coco_path/
  ├── train2017/
  ├── val2017/
  └── annotations/
  	├── instances_train2017.json
  	└── instances_val2017.json

Run

To train a model using 8 cards

GPUS_PER_NODE=8 ./tools/run_dist_launch.sh 8 <config path> \
    --coco_path <coco path>

To run a model with the swin transformer backbone, you need to download the backbone from the offical repo frist and specify argument--pretrained_backbone_path.

To eval a model using 8 cards

GPUS_PER_NODE=8 ./tools/run_dist_launch.sh 8 <config path> \
    --coco_path <coco path> --eval --resume <checkpoint path>

Distributed Run

You can refer to Deformable-DETR to enable training on multiple nodes.

Modified files compared to vanilla Deformable DETR

To support swin backbones

  • models/backbone.py
  • models/swin_transformer.py
  • mmcv_custom

To support eval in the training set

  • datasets/coco.py
  • datasets/__init__.py

To support Hybird-branch, tricks and checkpoint

  • main.py
  • engine.py
  • models/deformable_detr.py
  • models/deformable_transformer.py

To support fp16

  • models/ops/modules/ms_deform_attn.py
  • models/ops/functions/ms_deform_attn_func.py

To fix a pytorch version bug

  • util/misc.py

Addictional packages needed

  • wandb: for logging
  • mmdet: for swin backbones
  • mmcv: for swin backbones
  • timm: for swin backbones

About

[CVPR2023] This is an official implementation of paper "DETRs with Hybrid Matching".

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •