本代码库基于检测代码库detectron2和蒸馏代码库RepDistiller,完成将蒸馏方法应用在faster-rcnn的代码库。
首先您需要下载教师模型,可参考下载地址,并放置在如下地址:
--Dilation-FasterRCNN
--detectron2
--teacher_models
修改configs中文件的相关参数,将DISTILL.ENABLE设置为True则在您的工作中加入蒸馏
单GPU运行
python tools/train_net.py --config-file configs/COCO-Detection/faster_rcnn_R_50_FPN_1x.yaml --num-gpus 1 SOLVER.IMS_PER_BATCH 2 SOLVER.BASE_LR 0.0025
多GPU运行
python tools/train_net.py --config-file configs/COCO-Detection/faster_rcnn_R_50_FPN_1x.yaml --num-gpus 8
以下是对FasterRCNN进行蒸馏/不进行蒸馏的模型对比:
Backbone | distill or not | teacher model | distill loss | box AP |
---|---|---|---|---|
R50-FPN | No | 38.0 | ||
R50-FPN | Yes | R101-FPN | HintLoss | 40.0 |