likyoo / change_detection.pytorch

Deep learning models for change detection of remote sensing images
MIT License
331 stars 59 forks source link
changedetection models pytorch

Change Detection Models

Python library with Neural Networks for Change Detection based on PyTorch.

model architecture

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

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 | instagram | 466M | | resnext101_32x48d | instagram | 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

🏆 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

If you find this project useful in your research, please consider cite:

@article{li2023new,
      title={A New Learning Paradigm for Foundation Model-based Remote Sensing Change Detection}, 
      author={Li, Kaiyu and Cao, Xiangyong and Meng, Deyu},
      journal={arXiv preprint arXiv:2312.01163},
      year={2023}
}

@ARTICLE{10129139,
  author={Fang, Sheng and Li, Kaiyu and Li, Zhe},
  journal={IEEE Transactions on Geoscience and Remote Sensing}, 
  title={Changer: Feature Interaction is What You Need for Change Detection}, 
  year={2023},
  volume={61},
  number={},
  pages={1-11},
  doi={10.1109/TGRS.2023.3277496}}
@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

:mailbox: Contact

⚡⚡⚡ I am trying to build this project, if you are interested, don't hesitate to join us!

👯👯👯 Contact me at likyoo@sdust.edu.cn or pull a request directly or join our WeChat group.

wechat group

若二维码已失效,可以添加微信likyoo7,添加时请备注姓名/昵称 + 单位/学校 + 变化检测