PanCollection based on UDL (https://github.com/XiaoXiao-Woo/UDL)
Project description
PanCollection
"PanCollection" for Remote Sensing Pansharpening
This repository is the official PyTorch implementation of “基于卷积神经网络的遥感图像全色锐化进展综述及相关数据集发布” (paper, homepage).
- Release the PanCollection of the pan-sharpening training-test dataset of related satellites (such as WorldView-3, QuickBird, GaoFen2, WorldView-2 satellites);
- Release the Python code based on the unified Pytorch framework , which is convenient for later scholars;
- Release a unified Pansharpening traditional-deep learning method (including MATLAB test software package), which is convenient for later scholars to conduct fair tests.
See the repo for more detailed descriptions.
Features
Requirements
- Python3.7+, Pytorch>=1.6.0
- NVIDIA GPU + CUDA
- Run
python setup.py develop
Note: Our project is based on MMCV, but you needn't to install it currently.
Quick Start
Step0. set your Python environment.
Then,
python setup.py develop
or
pip install -i pancollection https://pypi.org/simple
Step1.
-
Download datasets (WorldView-3, QuickBird, GaoFen2, WorldView2) from the homepage. Put it with the following format.
-
Verify the dataset path in
PanCollection/UDL/Basis/option.py
, or you can print the output ofrun_pansharpening.py
, then set cfg.data_dir to your dataset path.
|-$ROOT/Datasets
├── pansharpening
│ ├── training_data
│ │ ├── train_wv3.h5
│ │ ├── ...
│ ├── validation_data
│ │ │ ├── valid_wv3.h5
│ │ │ ├── ...
│ ├── test_data
│ │ ├── WV3
│ │ │ ├── test_wv3_multiExm.h5
│ │ │ ├── ...
Step2. Open PanCollection/UDL/pansharpening
, run the following code:
python run_pansharpening.py
step3. How to train/validate the code.
-
A training example:
run_pansharpening.py
where arch='BDPN', and configs/option_bdpn.py has:
cfg.eval = False,
cfg.workflow = [('train', 50), ('val', 1)], cfg.dataset = {'train': 'wv3', 'val': 'wv3_multiExm.h5'}
-
A test example:
run_test_pansharpening.py
cfg.eval = True or cfg.workflow = [('val', 1)]
Step4. How to customize the code.
One model is divided into three parts:
-
Record hyperparameter configurations in folder of
PanCollection/UDL/pansharpening/configs/option_<modelName>.py
. For example, you can load pretrained model by setting model_path = "your_model_path" or cfg.resume_from = "your_model_path". -
Set model, loss, optimizer, scheduler in folder of
PanCollection/UDL/pansharpening/models/<modelName>_main.py
. -
Write a new model in folder of
PanCollection/UDL/pansharpening/models/<modelName>/model_<modelName>.py
.
Note that when you add a new model into PanCollection, you need to update PanCollection/UDL/pansharpening/models/__init__.py
and add option_.py.
Others
- if you want to add customized datasets, you need to update:
PanCollection/UDL/AutoDL/__init__.py.
PanCollection/UDL/pansharpening/common/psdata.py.
- if you want to add customized tasks, you need to update:
1.Put model_<newModelName> and <newModelName>_main in PanCollection/UDL/<taskName>/models.
2.Create a new folder of PanCollection/UDL/<taskName>/configs to put option_<newModelName>.
3.Update PanCollection/UDL/AutoDL/__init__.
4.Add a class in PanCollection/UDL/Basis/python_sub_class.py, like this:
class PanSharpeningModel(ModelDispatcher, name='pansharpening'):
- if you want to add customized training settings, such as saving model, recording logs, and so on. you need to update:
PanCollection/UDL/mmcv/mmcv/runner/hooks
Note that: Don't put model/dataset/task-related files into the folder of AutoDL.
- if you want to know more details of runner about how to train/test in
PanCollection/UDL/AutoDL/trainer.py
, please see PanCollection/UDL/mmcv/mmcv/runner/epoch_based_runner.py
Contribution
We appreciate all contributions to improving PanCollection. Looking forward to your contribution to PanCollection.
Citation
Please cite this project if you use datasets or the toolbox in your research.
@misc{PanCollection,
author = {Xiao Wu, Liang-Jian Deng and Ran Ran},
title = {"PanCollection" for Remote Sensing Pansharpening},
url = {https://github.com/XiaoXiao-Woo/PanCollection/},
year = {2022},
}
Acknowledgement
- MMCV: OpenMMLab foundational library for computer vision.
License & Copyright
This project is open sourced under GNU General Public License v3.0.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for pancollection-0.3.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e10ba65575b5c53c08cee2875ad1ce5405c3be067790710222ddf4e931e03734 |
|
MD5 | dca5f55bb8975b9189e247b4bdb673eb |
|
BLAKE2b-256 | b680ec38d7b4286c6b6626a40817ca91332820af38e90769866eb7703ff12b8a |