ggjy / DeFeat.pytorch

111 stars 10 forks source link

DeFeat.pytorch Code Base

Implementation of our CVPR2021 paper Distilling Object Detectors via Decoupled Features

Abstract

Knowledge distillation is a widely used paradigm for inheriting information from a complicated teacher network to a compact student network and maintaining the strong performance. Different from image classification, object detectors are much more sophisticated with multiple loss functions in which features that semantic information rely on are tangled. In this paper, we point out that the information of features derived from regions excluding objects are also essential for distilling the student detector, which is usually ignored in existing approaches. In addition, we elucidate that features from different regions should be assigned with different importance during distillation. To this end, we present a novel distillation algorithm via decoupled features (DeFeat) for learning a better student detector. Specifically, two levels of decoupled features will be processed for embedding useful information into the student, i.e., decoupled features from neck and decoupled proposals from classification head. Extensive experiments on various detectors with different backbones show that the proposed DeFeat is able to surpass the state-of-the-art distillation methods for object detection. For example, DeFeat improves ResNet50 based Faster R-CNN from 37.4% to 40.9% mAP, and improves ResNet50 based RetinaNet from 36.5% to 39.7% mAP on COCO benchmark.

Environments

VOC Results

Notes:

Model BN Grad clip Batch Lr schd box AP Model Log
R101 bn None 8x2 0.01 81.70
R101 bn None 8x2 0.02 82.27 GoogleDrive
R101 syncbn max=35 8x2 0.01 81.59
R101 syncbn None 8x2 0.02 81.83
R50 bn max=35 8x2 0.02 80.97
R50 syncbn None 8x2 0.02 80.76
R50 syncbn max=35 8x2 0.01 80.66
R50 bn None 8x2 0.01 80.52 GoogleDrive
R101-50-FGFI-w1 bn max=35 8x2 0.01 81.04 GoogleDrive
R101-50-FGFI-w2 bn max=35 8x2 0.01 81.17 GoogleDrive
R101-50-FGFI-w2 bn max=35 8x2 0.01 82.04 GoogleDrive

Acknowledgement

Our code is based on the open source project MMDetection.