change_detection.pytorch
                                
                                 change_detection.pytorch copied to clipboard
                                
                                    change_detection.pytorch copied to clipboard
                            
                            
                            
                        Deep learning models for change detection of remote sensing images
  Change Detection Models
Python library with Neural Networks for Change Detection based on PyTorch.
 
This project is inspired by segmentation_models.pytorch and built based on it. ๐
๐ฑ How to use
Please refer to local_test.py temporarily.
๐ญ Models
Architectures
- 
[x] Unet [paper] 
- 
[x] Unet++ [paper] 
- 
[x] MAnet [paper] 
- 
[x] Linknet [paper] 
- 
[x] FPN [paper] 
- 
[x] PSPNet [paper] 
- 
[x] PAN [paper] 
- 
[x] DeepLabV3 [paper] 
- 
[x] DeepLabV3+ [paper] 
- 
[x] UPerNet [paper] 
- 
[x] STANet [paper] 
Encoders
The following is a list of supported encoders in the CDP. Select the appropriate family of encoders and click to expand the table and select a specific encoder and its pre-trained weights (encoder_name and encoder_weights parameters).
ResNet
| Encoder | Weights | Params, M | 
|---|---|---|
| resnet18 | imagenet / ssl / swsl | 11M | 
| resnet34 | imagenet | 21M | 
| resnet50 | imagenet / ssl / swsl | 23M | 
| resnet101 | imagenet | 42M | 
| resnet152 | imagenet | 58M | 
ResNeXt
| Encoder | Weights | Params, M | 
|---|---|---|
| resnext50_32x4d | imagenet / ssl / swsl | 22M | 
| resnext101_32x4d | ssl / swsl | 42M | 
| resnext101_32x8d | imagenet / instagram / ssl / swsl | 86M | 
| resnext101_32x16d | instagram / ssl / swsl | 191M | 
| resnext101_32x32d | 466M | |
| resnext101_32x48d | 826M | 
ResNeSt
| Encoder | Weights | Params, M | 
|---|---|---|
| timm-resnest14d | imagenet | 8M | 
| timm-resnest26d | imagenet | 15M | 
| timm-resnest50d | imagenet | 25M | 
| timm-resnest101e | imagenet | 46M | 
| timm-resnest200e | imagenet | 68M | 
| timm-resnest269e | imagenet | 108M | 
| timm-resnest50d_4s2x40d | imagenet | 28M | 
| timm-resnest50d_1s4x24d | imagenet | 23M | 
Res2Ne(X)t
| Encoder | Weights | Params, M | 
|---|---|---|
| timm-res2net50_26w_4s | imagenet | 23M | 
| timm-res2net101_26w_4s | imagenet | 43M | 
| timm-res2net50_26w_6s | imagenet | 35M | 
| timm-res2net50_26w_8s | imagenet | 46M | 
| timm-res2net50_48w_2s | imagenet | 23M | 
| timm-res2net50_14w_8s | imagenet | 23M | 
| timm-res2next50 | imagenet | 22M | 
RegNet(x/y)
| Encoder | Weights | Params, M | 
|---|---|---|
| timm-regnetx_002 | imagenet | 2M | 
| timm-regnetx_004 | imagenet | 4M | 
| timm-regnetx_006 | imagenet | 5M | 
| timm-regnetx_008 | imagenet | 6M | 
| timm-regnetx_016 | imagenet | 8M | 
| timm-regnetx_032 | imagenet | 14M | 
| timm-regnetx_040 | imagenet | 20M | 
| timm-regnetx_064 | imagenet | 24M | 
| timm-regnetx_080 | imagenet | 37M | 
| timm-regnetx_120 | imagenet | 43M | 
| timm-regnetx_160 | imagenet | 52M | 
| timm-regnetx_320 | imagenet | 105M | 
| timm-regnety_002 | imagenet | 2M | 
| timm-regnety_004 | imagenet | 3M | 
| timm-regnety_006 | imagenet | 5M | 
| timm-regnety_008 | imagenet | 5M | 
| timm-regnety_016 | imagenet | 10M | 
| timm-regnety_032 | imagenet | 17M | 
| timm-regnety_040 | imagenet | 19M | 
| timm-regnety_064 | imagenet | 29M | 
| timm-regnety_080 | imagenet | 37M | 
| timm-regnety_120 | imagenet | 49M | 
| timm-regnety_160 | imagenet | 80M | 
| timm-regnety_320 | imagenet | 141M | 
GERNet
| Encoder | Weights | Params, M | 
|---|---|---|
| timm-gernet_s | imagenet | 6M | 
| timm-gernet_m | imagenet | 18M | 
| timm-gernet_l | imagenet | 28M | 
SE-Net
| Encoder | Weights | Params, M | 
|---|---|---|
| senet154 | imagenet | 113M | 
| se_resnet50 | imagenet | 26M | 
| se_resnet101 | imagenet | 47M | 
| se_resnet152 | imagenet | 64M | 
| se_resnext50_32x4d | imagenet | 25M | 
| se_resnext101_32x4d | imagenet | 46M | 
SK-ResNe(X)t
| Encoder | Weights | Params, M | 
|---|---|---|
| timm-skresnet18 | imagenet | 11M | 
| timm-skresnet34 | imagenet | 21M | 
| timm-skresnext50_32x4d | imagenet | 25M | 
DenseNet
| Encoder | Weights | Params, M | 
|---|---|---|
| densenet121 | imagenet | 6M | 
| densenet169 | imagenet | 12M | 
| densenet201 | imagenet | 18M | 
| densenet161 | imagenet | 26M | 
Inception
| Encoder | Weights | Params, M | 
|---|---|---|
| inceptionresnetv2 | imagenet / imagenet+background | 54M | 
| inceptionv4 | imagenet / imagenet+background | 41M | 
| xception | imagenet | 22M | 
EfficientNet
| Encoder | Weights | Params, M | 
|---|---|---|
| efficientnet-b0 | imagenet | 4M | 
| efficientnet-b1 | imagenet | 6M | 
| efficientnet-b2 | imagenet | 7M | 
| efficientnet-b3 | imagenet | 10M | 
| efficientnet-b4 | imagenet | 17M | 
| efficientnet-b5 | imagenet | 28M | 
| efficientnet-b6 | imagenet | 40M | 
| efficientnet-b7 | imagenet | 63M | 
| timm-efficientnet-b0 | imagenet / advprop / noisy-student | 4M | 
| timm-efficientnet-b1 | imagenet / advprop / noisy-student | 6M | 
| timm-efficientnet-b2 | imagenet / advprop / noisy-student | 7M | 
| timm-efficientnet-b3 | imagenet / advprop / noisy-student | 10M | 
| timm-efficientnet-b4 | imagenet / advprop / noisy-student | 17M | 
| timm-efficientnet-b5 | imagenet / advprop / noisy-student | 28M | 
| timm-efficientnet-b6 | imagenet / advprop / noisy-student | 40M | 
| timm-efficientnet-b7 | imagenet / advprop / noisy-student | 63M | 
| timm-efficientnet-b8 | imagenet / advprop | 84M | 
| timm-efficientnet-l2 | noisy-student | 474M | 
| timm-efficientnet-lite0 | imagenet | 4M | 
| timm-efficientnet-lite1 | imagenet | 5M | 
| timm-efficientnet-lite2 | imagenet | 6M | 
| timm-efficientnet-lite3 | imagenet | 8M | 
| timm-efficientnet-lite4 | imagenet | 13M | 
MobileNet
| Encoder | Weights | Params, M | 
|---|---|---|
| mobilenet_v2 | imagenet | 2M | 
| timm-mobilenetv3_large_075 | imagenet | 1.78M | 
| timm-mobilenetv3_large_100 | imagenet | 2.97M | 
| timm-mobilenetv3_large_minimal_100 | imagenet | 1.41M | 
| timm-mobilenetv3_small_075 | imagenet | 0.57M | 
| timm-mobilenetv3_small_100 | imagenet | 0.93M | 
| timm-mobilenetv3_small_minimal_100 | imagenet | 0.43M | 
DPN
| Encoder | Weights | Params, M | 
|---|---|---|
| dpn68 | imagenet | 11M | 
| dpn68b | imagenet+5k | 11M | 
| dpn92 | imagenet+5k | 34M | 
| dpn98 | imagenet | 58M | 
| dpn107 | imagenet+5k | 84M | 
| dpn131 | imagenet | 76M | 
VGG
| Encoder | Weights | Params, M | 
|---|---|---|
| vgg11 | imagenet | 9M | 
| vgg11_bn | imagenet | 9M | 
| vgg13 | imagenet | 9M | 
| vgg13_bn | imagenet | 9M | 
| vgg16 | imagenet | 14M | 
| vgg16_bn | imagenet | 14M | 
| vgg19 | imagenet | 20M | 
| vgg19_bn | imagenet | 20M | 
:truck: Dataset
- [x] LEVIR-CD
- [x] SVCD [google drive | baidu disk (x8gi)]
- [ ] ...
๐ Competitions won with the library
change_detection.pytorch has competitiveness and potential in the change detection competitions.
Here you can find competitions, names of the winners and links to their solutions.
:page_with_curl: Citing
@misc{likyoocdp:2021,
  Author = {Kaiyu Li, Fulin Sun, Xudong Liu},
  Title = {Change Detection Pytorch},
  Year = {2021},
  Publisher = {GitHub},
  Journal = {GitHub repository},
  Howpublished = {\url{https://github.com/likyoo/change_detection.pytorch}}
}
:books: Reference
- qubvel/segmentation_models.pytorch
- albumentations-team/albumentations
- open-mmlab/mmsegmentation
- wenhwu/awesome-remote-sensing-change-detection
:mailbox: Contact
โกโกโก I am trying to build this project, if you are interested, don't hesitate to join us!
๐ฏ๐ฏ๐ฏ Contact me at [email protected] or pull a request directly or join our WeChat group.
