• Stars
    star
    339
  • Rank 124,632 (Top 3 %)
  • Language
    Python
  • License
    Apache License 2.0
  • Created about 3 years ago
  • Updated about 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Focal and Global Knowledge Distillation for Detectors (CVPR 2022)

FGD

CVPR 2022 Paper: Focal and Global Knowledge Distillation for Detectors

Install MMDetection and MS COCO2017

  • Our codes are based on MMDetection. Please follow the installation of MMDetection and make sure you can run it successfully.
  • This repo uses mmdet==2.11.0 and mmcv-full==1.2.4
  • If you want to use higher mmdet version, you may have to change the optimizer in apis/train.py and build_detector in tools/train.py.
  • For mmdet>=2.12.0, if you want to use inheriting strategy, you have to initalize the student with teacher's parameters after model.init_weights().

Higher mmdet and mmcv-full version

Add and Replace the codes

  • Add the configs/. in our codes to the configs/ in mmdetectin's codes.
  • Add the mmdet/distillation/. in our codes to the mmdet/ in mmdetectin's codes.
  • Replace the mmdet/apis/train.py and tools/train.py in mmdetection's codes with mmdet/apis/train.py and tools/train.py in our codes.
  • Add pth_transfer.py to mmdetection's codes.
  • Unzip COCO dataset into data/coco/

Train

#single GPU
python tools/train.py configs/distillers/fgd/fgd_retina_rx101_64x4d_distill_retina_r50_fpn_2x_coco.py

#multi GPU
bash tools/dist_train.sh configs/distillers/fgd/fgd_retina_rx101_64x4d_distill_retina_r50_fpn_2x_coco.py 8

Transfer

# Tansfer the FGD model into mmdet model
python pth_transfer.py --fgd_path $fgd_ckpt --output_path $new_mmdet_ckpt

Test

#single GPU
python tools/test.py configs/retinanet/retinanet_r50_fpn_2x_coco.py $new_mmdet_ckpt --eval bbox

#multi GPU
bash tools/dist_test.sh configs/retinanet/retinanet_r50_fpn_2x_coco.py $new_mmdet_ckpt 8 --eval bbox

Results

Model Backbone Baseline(mAP) +FGD(mAP) config weight code
RetinaNet ResNet-50 37.4 40.7 config baidu wsfw
RetinaNet ResNet-101 38.9 41.7 config
Faster RCNN ResNet-50 38.4 42.0 config baidu dgpf
Faster RCNN ResNet-101 39.8 44.1 config
RepPoints ResNet-50 38.6 42.0 config baidu qx5d
RepPoints ResNet-101 40.5 43.8 config
FCOS ResNet-50 38.5 42.7 config baidu sedt
MaskRCNN ResNet-50 39.2 42.1 config baidu sv8m
GFL ResNet-50 40.2 43.5 config
Model Backbone Baseline(Mask mAP) +FGD(Mask mAP) config weight code
SOLO ResNet-50 33.1 36.0 config
MaskRCNN ResNet-50 35.4 37.8 config baidu sv8m
Student Teacher Baseline(mAP) +FGD(mAP) config weight code
YOLOX-m YOLOX-l 45.9 46.6 config baidu af9g
  1. Please refer branch yolox

Citation

@inproceedings{yang2022focal,
  title={Focal and global knowledge distillation for detectors},
  author={Yang, Zhendong and Li, Zhe and Jiang, Xiaohu and Gong, Yuan and Yuan, Zehuan and Zhao, Danpei and Yuan, Chun},
  booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
  pages={4643--4652},
  year={2022}
}

Acknowledgement

Our code is based on the project MMDetection.

Thanks to the work GCNet and mmetection-distiller.