Home

Awesome

Learning from Noisy Anchors for <br/> One-stage Object Detection

This repo contains the implementation for "Learning from Noisy Anchors for One-stage Object Detection" based on Detectron2.

Installation

See INSTALL.md. The following environment has been tested:

Python 3.7
CUDA 10.1
PyTorch 1.4.0
torchvision 0.5.0

Training and Testing

The config files are located at ./configs/COCO-Detection-NoisyAnchor. See GETTING_STARTED.md and follow the standard procedure to train/test RetinaNet with our method applied.

Before training, please download ImageNet pre-trained models as instructed in GETTING_STARTED.md and put them under ./outputs.

Results on COCO 2017 Val

RetinaNet:

<!-- ./gen_html_table.py --config 'COCO-Detection/retina*50*' 'COCO-Detection/retina*101*' --name R50 R50 R101 --fields lr_sched train_speed inference_speed mem box_AP --> <table><tbody> <!-- START TABLE --> <!-- TABLE HEADER --> <th valign="bottom">Name</th> <th valign="bottom">lr<br/>sched</th> <th valign="bottom">box<br/>AP</th> <th valign="bottom">download</th> <!-- TABLE BODY --> <!-- ROW: retinanet_R_50_FPN_1x baseline --> <tr><td align="left"><a href="configs/COCO-Detection/retinanet_R_50_FPN_1x.yaml">R50-Baseline</a></td> <td align="center">1x</td> <td align="center">36.5</td> <td align="center"><a href="https://dl.fbaipublicfiles.com/detectron2/COCO-Detection/retinanet_R_50_FPN_1x/137593951/model_final_b796dc.pkl">model</a></td> </tr> <!-- ROW: retinanet_R_50_FPN_1x ours--> <tr><td align="left"><a href="configs/COCO-Detection-NoisyAnchor/retinanet_R_50_FPN_1x_noisyanchor.yaml">R50-NoisyAnchor</a></td> <td align="center">1x</td> <td align="center">38.6</td> <td align="center"><a href="https://drive.google.com/file/d/1bLZVxmBbsbuH2Po9TQHgMn-gr24swQJn/view?usp=sharing">model</a></td> </tr> <!-- ROW: retinanet_R_50_FPN_3x --> <tr><td align="left"><a href="configs/COCO-Detection/retinanet_R_50_FPN_3x.yaml">R50-Baseline</a></td> <td align="center">3x</td> <td align="center">37.9</td> <td align="center"><a href="https://dl.fbaipublicfiles.com/detectron2/COCO-Detection/retinanet_R_50_FPN_3x/137849486/model_final_4cafe0.pkl">model</a></td> </tr> <!-- ROW: retinanet_R_50_FPN_3x --> <tr><td align="left"><a href="configs/COCO-Detection-NoisyAnchor/retinanet_R_50_FPN_3x_noisyanchor.yaml">R50-NoisyAnchor</a></td> <td align="center">3x</td> <td align="center">40.2</td> <td align="center"><a href="https://drive.google.com/file/d/1xpKTOGA99J4HefH5rFdwiA9vqkFouLbx/view?usp=sharing">model</a></td> </tr> <!-- ROW: retinanet_R_101_FPN_3x --> <tr><td align="left"><a href="configs/COCO-Detection/retinanet_R_101_FPN_3x.yaml">R101-Baseline</a></td> <td align="center">3x</td> <td align="center">39.9</td> <td align="center"><a href="https://dl.fbaipublicfiles.com/detectron2/COCO-Detection/retinanet_R_101_FPN_3x/138363263/model_final_59f53c.pkl">model</a></td> </tr> <!-- ROW: retinanet_R_101_FPN_3x --> <tr><td align="left"><a href="configs/COCO-Detection-NoisyAnchor/retinanet_R_101_FPN_3x_noisyanchor.yaml">R101-NoisyAnchor</a></td> <td align="center">3x</td> <td align="center">42.0</td> <td align="center"><a href="https://drive.google.com/file/d/1dslIQOWWIW8c6Db0qMXneUhIo_Y0ZpdG/view?usp=sharing">model</a></td> </tr> </tbody></table>

Citation

If you find this project useful for your research, please use the following BibTeX entry:

@inproceedings{li2020learning,
  title={Learning from noisy anchors for one-stage object detection},
  author={Li, Hengduo and Wu, Zuxuan and Zhu, Chen and Xiong, Caiming and Socher, Richard and Davis, Larry S},
  booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
  pages={10588--10597},
  year={2020}
}