• Stars
    star
    175
  • Rank 216,804 (Top 5 %)
  • Language
    Python
  • License
    MIT License
  • Created about 4 years ago
  • Updated about 4 years ago

Reviews

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

Repository Details

[ECCV 2020] PSConv: Squeezing Feature Pyramid into One Compact Poly-Scale Convolutional Layer

Poly-Scale Convolution

Official implementation of our PSConv operator as described in PSConv: Squeezing Feature Pyramid into One Compact Poly-Scale Convolutional Layer (ECCV'20) by Duo Li, Anbang Yao and Qifeng Chen on the MS COCO 2017 benchmark.

We collect multi-scale feature representations in a finer granularity, by tactfully allocating a spectrum of dilation rates in the kernel lattice.

Getting Started

Installation

Following the instructions from INSTALL.md for installation. More detailed guidance can be found from MMDetection.

Download ImageNet pre-trained checkpoints

Fetch pre-trained weights of PS-ResNet-50, PS-ResNet-101 and PS-ResNeXt-101 (32x4d) backbones and put them to your local path. Set the pretrained path of config file and launch the training of detectors.

Training

The default learning rate in config files is for 8 GPUs and 2 img/GPU (batch size = 8*2 = 16). According to the Linear Scaling Rule, you need to set the learning rate proportional to the batch size if you use different GPUs or images per GPU, e.g., lr=0.01 for 4 GPUs * 2 img/gpu and lr=0.08 for 16 GPUs * 4 img/GPU.

# single-gpu training
python tools/train.py ${CONFIG_FILE}

# multi-gpu training
./tools/dist_train.sh ${CONFIG_FILE} ${GPU_NUM} [optional arguments]

Optional arguments are:

  • --validate (strongly recommended): Perform evaluation at every k (default value is 1) epochs during the training.
  • --work_dir ${WORK_DIR}: Override the working directory specified in the config file.
  • --resume_from ${CHECKPOINT_FILE}: Resume from a previous checkpoint file.

Test

# single-gpu testing
python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [--out ${RESULT_FILE}] [--eval ${EVAL_METRICS}] [--show]

# multi-gpu testing
./tools/dist_test.sh ${CONFIG_FILE} ${CHECKPOINT_FILE} ${GPU_NUM} [--out ${RESULT_FILE}] [--eval ${EVAL_METRICS}]

Optional arguments:

  • RESULT_FILE: Filename of the output results in pickle format. If not specified, the results will not be saved to a file.
  • EVAL_METRICS: Items to be evaluated on the results. Allowed values are: proposal_fast, proposal, bbox, segm, keypoints.
  • --show: If specified, detection results will be ploted on the images and shown in a new window. (Only applicable for single GPU testing.)

Model Zoo

Faster R-CNN

Backbone Style Lr schd box AP Download
R-50-FPN pytorch 1x 38.4 model | log
R-101-FPN pytorch 1x 40.9 model | log
X-101-FPN pytorch 1x 41.3 model | log

Mask R-CNN

Backbone Style Lr schd box AP mask AP Download
R-50-FPN pytorch 1x 39.4 35.6 model | log
R-101-FPN pytorch 1x 41.6 37.4 model | log
X-101-FPN pytorch 1x 42.4 38.0 model | log

Cascade R-CNN

Backbone Style Lr schd box AP Download
R-50-FPN pytorch 1x 41.9 model | log
R-101-FPN pytorch 1x 43.8 model | log
X-101-FPN pytorch 1x 44.4 model | log

Cascade Mask R-CNN

Backbone Style Lr schd box AP mask AP Download
R-50-FPN pytorch 1x 42.9 36.9 model | log
R-101-FPN pytorch 1x 44.6 38.4 model | log
X-101-FPN pytorch 1x 45.3 38.9 model | log

Acknowledgement

This implementation is built upon MMDetection. Thanks Kai Chen for releasing this awesome toolbox and his helpful discussions.

Since this project is finished nearly one year ago, we adapt our code from an early commit 713e98b.

Citation

If you find our work useful in your research, please consider citing:

@InProceedings{Li_2020_ECCV,
author = {Li, Duo and Yao, Anbang and Chen, Qifeng},
title = {PSConv: Squeezing Feature Pyramid into One Compact Poly-Scale Convolutional Layer},
booktitle = {The European Conference on Computer Vision (ECCV)},
month = {August},
year = {2020}
}

More Repositories

1

involution

[CVPR 2021] Involution: Inverting the Inherence of Convolution for Visual Recognition, a brand new neural operator
Python
1,307
star
2

mobilenetv2.pytorch

72.8% MobileNetV2 1.0 model on ImageNet and a spectrum of pre-trained MobileNetV2 models
Python
663
star
3

mobilenetv3.pytorch

74.3% MobileNetV3-Large and 67.2% MobileNetV3-Small model on ImageNet
Python
514
star
4

efficientnetv2.pytorch

PyTorch implementation of EfficientNetV2 family
Python
450
star
5

octconv.pytorch

PyTorch implementation of Octave Convolution with pre-trained Oct-ResNet and Oct-MobileNet models
Python
290
star
6

face-attribute-prediction

Face Attribute Prediction on CelebA benchmark with PyTorch Implementation
Python
139
star
7

HBONet

[ICCV 2019] Harmonious Bottleneck on Two Orthogonal Dimensions, surpassing MobileNetV2
Python
103
star
8

ghostnet.pytorch

73.6% GhostNet 1.0x pre-trained model on ImageNet
Python
88
star
9

DHM

[CVPR 2020] Dynamic Hierarchical Mimicking Towards Consistent Optimization Objectives
Python
84
star
10

dgconv.pytorch

PyTorch implementation of Dynamic Grouping Convolution and Groupable ConvNet with pre-trained G-ResNeXt models
Python
69
star
11

regnet.pytorch

PyTorch-style and human-readable RegNet with a spectrum of pre-trained models
Python
68
star
12

lambda.pytorch

PyTorch implementation of Lambda Network and pretrained Lambda-ResNet
Python
54
star
13

SAN

[ECCV 2020] Scale Adaptive Network: Learning to Learn Parameterized Classification Networks for Scalable Input Images
Python
43
star
14

mlp-mixer.pytorch

PyTorch implementation of MLP-Mixer
Python
36
star
15

condconv.pytorch

PyTorch implementation of CondConv and MobileNetV2 model
Python
34
star
16

mobilenext.pytorch

Rethinking Bottleneck Structure for Efficient Mobile Network Design
Python
13
star
17

dot-product-attention

A collection of self-attention modules and pre-trained backbones
Python
13
star
18

mobilenetv4.pytorch

PyTorch implementation of MobileNetV4 family
Python
12
star
19

efficientnet-lite.pytorch

PyTorch implementation of EfficientNet-lite and a spectrum of pre-trained models on ImageNet
Python
10
star
20

deeplearning.ai-CNN

Implementation of course Convolutional Neural Networks created by deeplearning.ai on Coursera
Jupyter Notebook
3
star