https://github.com/sshuair/torchsat
π₯TorchSat π is an open-source deep learning framework for satellite imagery analysis based on PyTorch.
https://github.com/sshuair/torchsat
classification data-augmentation deep-learning pytorch remote-sensing satellite satellite-imagery semantic-segmentation torchvision
Last synced: 6 months ago
JSON representation
π₯TorchSat π is an open-source deep learning framework for satellite imagery analysis based on PyTorch.
- Host: GitHub
- URL: https://github.com/sshuair/torchsat
- Owner: sshuair
- License: mit
- Created: 2017-09-04T08:36:55.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2020-08-30T14:03:49.000Z (about 5 years ago)
- Last Synced: 2025-03-17T00:28:44.780Z (7 months ago)
- Topics: classification, data-augmentation, deep-learning, pytorch, remote-sensing, satellite, satellite-imagery, semantic-segmentation, torchvision
- Language: Python
- Homepage: https://torchsat.readthedocs.io
- Size: 41.3 MB
- Stars: 396
- Watchers: 19
- Forks: 50
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-atmos - TorchSat - source deep learning framework for satellite imagery analysis based on PyTorch. (Satellite)
README
![]()
--------------------------------------------------------------------------------
TorchSat is an open-source deep learning framework for satellite imagery analysis based on PyTorch.
>This project is still work in progress. If you want to know the latest progress, please check the [develop](https://github.com/sshuair/torchsat/tree/develop) branch.
**Hightlight**
- :wink: Support multi-channels(> 3 channels, e.g. 8 channels) images and TIFF file as input.
- :yum: Convenient data augmentation method for classification, sementic segmentation and object detection.
- :heart_eyes: Lots of models for satellite vision tasks, such as ResNet, DenseNet, UNet, PSPNet, SSD, FasterRCNN ...
- :smiley: Lots of common satellite datasets loader.
- :open_mouth: Training script for common satellite vision tasks.## Install
- source: `python3 setup.py install`## How to use
- [Introduction](https://torchsat.readthedocs.io/en/latest/index.html)
- Image Classification Tutorial: [Docs](https://torchsat.readthedocs.io/en/latest/tutorials/image-classification.html), [Google Colab](https://colab.research.google.com/drive/1RLiz6ugYfR8hWP5vNkLjdyKjr6FY8SEy)
- Semantic Segmentation Tutorial: [Docs](https://torchsat.readthedocs.io/en/latest/tutorials/semantic-segmentation.html)
- Data Augumentation: [Docs](https://torchsat.readthedocs.io/en/latest/tutorials/data-augumentation.html), [Google Colab](https://colab.research.google.com/drive/1M46TXAM-JNV708Wn0OQDDXnD5nK9yUOK)## Features
### Data augmentation
We suppose all the input images, masks and bbox should be NumPy ndarray. The data shape should be **[height, width]** or **[height, width, channels]**.
#### pixel level
Pixel-level transforms only change the input image and will leave any additional targets such as masks, bounding boxes unchanged. It support all channel images. Some transforms only support specific input channles.
| Transform | Image | masks | BBoxes |
| -------------------- | :---: | :---: | :----: |
| ToTensor | β | β | β |
| Normalize | β | β | β |
| ToGray | β | β | β |
| GaussianBlur | β | β | β |
| RandomNoise | β | β | β |
| RandomBrightness | β | β | β |
| RandomContrast | β | β | β |#### spatial-level
Spatial-level transforms will simultaneously change both an input image as well as additional targets such as masks, bounding boxes. It support all channel images.| Transform | Image | masks | BBoxes |
| -------------------- | :---: | :---: | :----: |
| Resize | β | β | β |
| Pad | β | β | β |
| RandomHorizontalFlip | β | β | β |
| RandomVerticalFlip | β | β | β |
| RandomFlip | β | β | β |
| CenterCrop | β | β | β |
| RandomCrop | β | β | β |
| RandomResizedCrop | β | β | β |
| ElasticTransform | β | β | |
| RandomRotation | β | β | β |
| RandomShift | β | β | β |### Models
#### Classification
All models support multi-channels as input (e.g. 8 channels).
- VGG: `vgg11`, `vgg11_bn`, `vgg13`, `vgg13_bn`, `vgg16`, `vgg16_bn`, `vgg19_bn`, `vgg19`
- ResNet: `resnet18`, `resnet34`, `resnet50`, `resnet101`, `resnet152`, `resnext50_32x4d`,`resnext101_32x8d`, `wide_resnet50_2`, `wide_resnet101_2`
- DenseNet: `densenet121`, `densenet169`, `densenet201`
- Inception: `inception_v3`
- MobileNet: `mobilenet_v2`
- EfficientNet: `efficientnet_b0`, `efficientnet_b1`, `efficientnet_b2`, `efficientnet_b3`,`efficientnet_b4`, `efficientnet_b5`, `efficientnet_b6`, `efficientnet_b7`
- ResNeSt: `resnest50`, `resnest101`, `resnest200`, `resnest269`#### Sementic Segmentation
- UNet: `unet`, `unet34`, `unet101`, `unet152` (with resnet as backbone.)### Dataloader
#### Classification
- [SAT-4 and SAT-6 airborne datasets](https:/csc.lsu.edu/~saikat/deepsat/)
- [EuroSat](http:/madm.dfki.de/downloads)
- [PatternNet](https:/sites.google.com/view/zhouwx/dataset)
- [NWPU_redisc45](http://www.escience.cn/people/JunweiHan/NWPU-RESISC45.html#)## Showcase
If you extend this repository or build projects that use it, we'd love to hear from you.## Reference
- [torchvision](https://github.com/pytorch/vision)## Note
- If you are looking for the torchvision-enhance, please checkout the [enhance](https://github.com/sshuair/torchvision-enhance/tree/torchvision-enhance) branch. But it was deprecated.