Awesome
We have forked from BasicSR
For the original README document from BasicSR, refer to README.md.txt.
Our changes
We have updated model tunings for high-resolution satellite data and modified the architecture to allow for a 10x super resolution transformation (in additional to 2x and 4x). We also added a simple water classification based on adaptive thresholding.
These new changes are authored by Ethan D. Kyzivat and Ekaterina Lezine.
Our paper is now published in the Canadian Journal of Remote Sensing.
Lezine, E. M. D., Kyzivat, E. D., & Smith, L. C. (2021). Super-Resolution Surface Water Mapping on the Canadian Shield Using Planet CubeSat Images and a Generative Adversarial Network. Canadian Journal of Remote Sensing, 47(2), 261–275. https://doi.org/10.1080/07038992.2021.1924646
Image import and preprocessing workflow
- Download images to Scenes folder
- plot_hists_serial.py > saves histogram for each scene
- Compute_mean_hist.py > averages these histograms
- extract_subimgs_single.py > Divides satellite scenes into subsets
- rand_shuf.sh > Randomly creates training and validation partitions
- generate_mod_LR_bic_parallel.py > Upscales and downscales subsets via a number of methods
Dependencies and Installation
- Python 3 (Recommend to use Anaconda)
- PyTorch >= 1.0
- NVIDIA GPU + CUDA
- Python packages:
pip install numpy opencv-python lmdb pyyaml
- TensorBoard:
- PyTorch >= 1.1:
pip install tb-nightly future
- PyTorch == 1.0:
pip install tensorboardX
- PyTorch >= 1.1:
Datasets
TBD
Get Started
Please see wiki for the basic usage, i.e., training and testing.