tztztztztz / eql.detectron2

The official implementation of Equalization Loss for Long-Tailed Object Recognition (CVPR 2020) based on Detectron2. https://arxiv.org/abs/2003.05176
Apache License 2.0
202 stars 17 forks source link

Equalization Loss for Long-Tailed Object Recognition

Jingru Tan, Changbao Wang, Buyu Li, Quanquan Li, Wanli Ouyang, Changqing Yin, Junjie Yan

:warning: We recommend to use the EQLv2 repository (code) which is based on mmdetection. It also includes EQL and other algorithms, such as cRT (classifier-retraining), BAGS (BalanceGroup Softmax).

[arXiv] [BibTeX]


In this repository, we release code for Equalization Loss (EQL) in Detectron2. EQL protects the learning for rare categories from being at a disadvantage during the network parameter updating under the long-tailed situation. ## Installation Install Detectron 2 following [INSTALL.md](https://github.com/facebookresearch/detectron2/blob/master/INSTALL.md). You are ready to go! ## LVIS Dataset Following the instruction of [README.md](https://github.com/facebookresearch/detectron2/blob/master/datasets/README.md) to set up the lvis dataset. ## Training To train a model with 8 GPUs run: ```bash cd /path/to/detectron2/projects/EQL python train_net.py --config-file configs/eql_mask_rcnn_R_50_FPN_1x.yaml --num-gpus 8 ``` ## Evaluation Model evaluation can be done similarly: ```bash cd /path/to/detectron2/projects/EQL python train_net.py --config-file configs/eql_mask_rcnn_R_50_FPN_1x.yaml --eval-only MODEL.WEIGHTS /path/to/model_checkpoint ``` # Pretrained Models ## Instance Segmentation on LVIS
Backbone Method AP AP.r AP.c AP.f AP.bbox download
R50-FPN MaskRCNN 21.2 3.2 21.1 28.7 20.8 model | metrics
R50-FPN MaskRCNN-EQL 24.0 9.4 25.2 28.4 23.6 model | metrics
R50-FPN MaskRCNN-EQL-Resampling 26.1 17.2 27.3 28.2 25.4 model | metrics
R101-FPN MaskRCNN 22.8 4.3 22.7 30.2 22.3 model | metrics
R101-FPN MaskRCNN-EQL 25.9 10.0 27.9 29.8 25.9 model | metrics
R101-FPN MaskRCNN-EQL-Resampling 27.4 17.3 29.0 29.4 27.1 model | metrics
The AP in this repository is higher than that of the origin paper. Because all those models use: - Scale jitter - Class-specific mask head - Better ImageNet pretrain models (of caffe rather than pytorch) Note that the final results of these configs have large variance across different runs. ## Citing EQL If you use EQL, please use the following BibTeX entry. ```BibTeX @InProceedings{tan2020eql, title={Equalization Loss for Long-Tailed Object Recognition}, author={Jingru Tan, Changbao Wang, Buyu Li, Quanquan Li, Wanli Ouyang, Changqing Yin, Junjie Yan}, journal={ArXiv:2003.05176}, year={2020} } ```