Convolutional neural networks for computer vision
This repo is used to research convolutional networks for task of computer vision. For this purpose, the repo contains (re)implementations of various classification and segmentation models and scripts for training/evaluating/converting.
The following frameworks are used:
For each supported framework, there is a PIP-package containing pure models without auxiliary scripts. List of packages:
- gluoncv2 for Gluon,
- pytorchcv for PyTorch,
- chainercv2 for Chainer,
- kerascv for Keras,
- tensorflowcv for TensorFlow.
Currently, models are mostly implemented on Gluon and then ported to other frameworks. Some models are pretrained on ImageNet-1K, CIFAR-10/100, SVHN, CUB-200-2011, Pascal VOC2012, ADE20K, Cityscapes, and COCO datasets. All pretrained weights are loaded automatically during use. See examples of such automatic loading of weights in the corresponding sections of the documentation dedicated to a particular package:
Installation
To use training/evaluating scripts as well as all models, you need to clone the repository and install dependencies:
git clone git@github.com:osmr/imgclsmob.git
pip install -r requirements.txt
Table of implemented classification models
Some remarks:
Repo
is an author repository, if it exists.A
,B
,C
,D
, andE
means the implementation of a model for ImageNet-1K, CIFAR-10, CIFAR-100, SVHN, and CUB-200-2011, respectively.A+
,B+
,C+
,D+
, andE+
means having a pre-trained model for corresponding datasets.
Model | Gluon | PyTorch | Chainer | Keras | TF | Paper | Repo | Year |
---|---|---|---|---|---|---|---|---|
AlexNet | A+ | A+ | A+ | A+ | A+ | link | link | 2012 |
ZFNet | A+ | A+ | A+ | A+ | A+ | link | - | 2013 |
VGG | A+ | A+ | A+ | A+ | A+ | link | - | 2014 |
BN-VGG | A+ | A+ | A+ | A+ | A+ | link | - | 2015 |
BN-Inception | A+ | A+ | A+ | - | - | link | - | 2015 |
ResNet | A+B+C+D+E+ | A+B+C+D+E+ | A+B+C+D+E+ | A+ | A+ | link | link | 2015 |
PreResNet | A+B+C+D+ | A+B+C+D+ | A+B+C+D+ | A+ | A+ | link | link | 2016 |
ResNeXt | A+B+C+D+ | A+B+C+D+ | A+B+C+D+ | A+ | A+ | link | link | 2016 |
SENet | A+ | A+ | A+ | A+ | A+ | link | link | 2017 |
SE-ResNet | A+B+C+D+E+ | A+B+C+D+E+ | A+B+C+D+E+ | A+ | A+ | link | link | 2017 |
SE-PreResNet | A+B+C+D+ | A+B+C+D+ | A+B+C+D+ | A+ | A+ | link | link | 2017 |
SE-ResNeXt | A+ | A+ | A+ | A+ | A+ | link | link | 2017 |
IBN-ResNet | A+ | A+ | - | - | - | link | link | 2018 |
IBN-ResNeXt | A+ | A+ | - | - | - | link | link | 2018 |
IBN-DenseNet | A+ | A+ | - | - | - | link | link | 2018 |
AirNet | A+ | A+ | A+ | - | - | link | link | 2018 |
AirNeXt | A+ | A+ | A+ | - | - | link | link | 2018 |
BAM-ResNet | A+ | A+ | A+ | - | - | link | link | 2018 |
CBAM-ResNet | A+ | A+ | A+ | - | - | link | link | 2018 |
ResAttNet | A | A | A | - | - | link | link | 2017 |
SKNet | A | A | A | - | - | link | link | 2019 |
DIA-ResNet | AB+C+D+ | AB+C+D+ | AB+C+D+ | - | - | link | link | 2019 |
DIA-PreResNet | AB+C+D+ | AB+C+D+ | AB+C+D+ | - | - | link | link | 2019 |
PyramidNet | A+B+C+D+ | A+B+C+D+ | A+B+C+D+ | - | - | link | link | 2016 |
DiracNetV2 | A+ | A+ | A+ | - | - | link | link | 2017 |
ShaResNet | A | A | A | - | - | link | link | 2017 |
CRU-Net | A+ | - | - | - | - | link | link | 2018 |
DenseNet | A+B+C+D+ | A+B+C+D+ | A+B+C+D+ | A+ | A+ | link | link | 2016 |
CondenseNet | A+ | A+ | A+ | - | - | link | link | 2017 |
SparseNet | A | A | A | - | - | link | link | 2018 |
PeleeNet | A+ | A+ | A+ | - | - | link | link | 2018 |
Oct-ResNet | ABCD | A | A | - | - | link | - | 2019 |
Res2Net | A | - | - | - | - | link | - | 2019 |
WRN | A+B+C+D+ | A+B+C+D+ | A+B+C+D+ | - | - | link | link | 2016 |
WRN-1bit | B+C+D+ | B+C+D+ | B+C+D+ | - | - | link | link | 2018 |
DRN-C | A+ | A+ | A+ | - | - | link | link | 2017 |
DRN-D | A+ | A+ | A+ | - | - | link | link | 2017 |
DPN | A+ | A+ | A+ | - | - | link | link | 2017 |
DarkNet Ref | A+ | A+ | A+ | A+ | A+ | link | link | - |
DarkNet Tiny | A+ | A+ | A+ | A+ | A+ | link | link | - |
DarkNet-19 | A | A | A | A | A | link | link | - |
DarkNet-53 | A+ | A+ | A+ | A+ | A+ | link | link | 2018 |
ChannelNet | A | A | A | - | A | link | link | 2018 |
iSQRT-COV-ResNet | A | A | - | - | - | link | link | 2017 |
RevNet | - | A | - | - | - | link | link | 2017 |
i-RevNet | A+ | A+ | A+ | - | - | link | link | 2018 |
BagNet | A+ | A+ | A+ | - | - | link | link | 2019 |
DLA | A+ | A+ | A+ | - | - | link | link | 2017 |
MSDNet | A | AB | - | - | - | link | link | 2017 |
FishNet | A+ | A+ | A+ | - | - | link | link | 2018 |
ESPNetv2 | A+ | A+ | A+ | - | - | link | link | 2018 |
X-DenseNet | AB+C+D+ | AB+C+D+ | AB+C+D+ | - | - | link | link | 2017 |
SqueezeNet | A+ | A+ | A+ | A+ | A+ | link | link | 2016 |
SqueezeResNet | A+ | A+ | A+ | A+ | A+ | link | - | 2016 |
SqueezeNext | A+ | A+ | A+ | A+ | A+ | link | link | 2018 |
ShuffleNet | A+ | A+ | A+ | A+ | A+ | link | - | 2017 |
ShuffleNetV2 | A+ | A+ | A+ | A+ | A+ | link | - | 2018 |
MENet | A+ | A+ | A+ | A+ | A+ | link | link | 2018 |
MobileNet | A+E+ | A+E+ | A+E+ | A+ | A+ | link | link | 2017 |
FD-MobileNet | A+ | A+ | A+ | A+ | A+ | link | link | 2018 |
MobileNetV2 | A+ | A+ | A+ | A+ | A+ | link | link | 2018 |
MobileNetV3 | A+ | A+ | A+ | A+ | A | link | link | 2019 |
IGCV3 | A+ | A+ | A+ | A+ | A+ | link | link | 2018 |
MnasNet | A+ | A+ | A+ | A+ | A+ | link | - | 2018 |
DARTS | A+ | A+ | A+ | - | - | link | link | 2018 |
ProxylessNAS | A+E+ | A+E+ | A+E+ | - | - | link | link | 2018 |
FBNet-C | A+ | A+ | A+ | - | - | link | - | 2018 |
Xception | A+ | A+ | A+ | - | - | link | link | 2016 |
InceptionV3 | A+ | A+ | A+ | - | - | link | link | 2015 |
InceptionV4 | A+ | A+ | A+ | - | - | link | link | 2016 |
InceptionResNetV2 | A+ | A+ | A+ | - | - | link | link | 2016 |
PolyNet | A+ | A+ | A+ | - | - | link | link | 2016 |
NASNet-Large | A+ | A+ | A+ | - | - | link | link | 2017 |
NASNet-Mobile | A+ | A+ | A+ | - | - | link | link | 2017 |
PNASNet-Large | A+ | A+ | A+ | - | - | link | link | 2017 |
SPNASNet | A+ | A+ | A+ | - | - | link | link | 2019 |
EfficientNet | A+ | A+ | A+ | A+ | - | link | link | 2019 |
MixNet | A+ | A+ | A+ | - | - | link | link | 2019 |
NIN | B+C+D+ | B+C+D+ | B+C+D+ | - | - | link | link | 2013 |
RoR-3 | B+C+D+ | B+C+D+ | B+C+D+ | - | - | link | - | 2016 |
RiR | B+C+D+ | B+C+D+ | B+C+D+ | - | - | link | - | 2016 |
ResDrop-ResNet | BCD | BCD | BCD | - | - | link | link | 2016 |
Shake-Shake-ResNet | B+C+D+ | B+C+D+ | B+C+D+ | - | - | link | link | 2017 |
ShakeDrop-ResNet | BCD | BCD | BCD | - | - | link | - | 2018 |
FractalNet | BC | BC | - | - | - | link | link | 2016 |
NTS-Net | E+ | E+ | E+ | - | - | link | link | 2018 |
Table of implemented segmentation models
Some remarks:
A
corresponds to Pascal VOC2012.B
corresponds to Pascal ADE20K.C
corresponds to Pascal Cityscapes.D
corresponds to Pascal COCO.
Model | Gluon | PyTorch | Chainer | Keras | TensorFlow | Paper | Repo | Year |
---|---|---|---|---|---|---|---|---|
PSPNet | A+B+C+D+ | A+B+C+D+ | A+B+C+D+ | - | - | link | - | 2016 |
DeepLabv3 | A+B+CD+ | A+B+CD+ | A+B+CD+ | - | - | link | - | 2017 |
FCN-8s(d) | A+B+CD+ | A+B+CD+ | A+B+CD+ | - | - | link | - | 2014 |