zhu-xlab / SSL4EO-S12

SSL4EO-S12: a large-scale dataset for self-supervised learning in Earth observation
Apache License 2.0
179 stars 17 forks source link

Reproducing the segmentation results (DFC2020) #19

Closed RyanAmaudruz closed 9 months ago

RyanAmaudruz commented 9 months ago

Hi, I would be interesting in trying to reproduce the results you obtained for the land cover segmentation tasks. I saw that you link two repos (DeepAI4EO/RSI-Segmentation and DeepAI4EO/Dataset4EO) in your .md file. Would it be possible to get some pointers on how one might use both repos to reproduce your results? Many thanks

wangyi111 commented 9 months ago

Hi! Sorry for the late reply. RSI-Segmentation is based on openmmlab's mmsegmentation while Datase4EO provides some convenient remote sensing dataset classes with pytorch datapipe.

If you are familiar with mmsegmentation, the core change can be started from checking this config file. We added multispectral support of data loader, and added the DFC dataset (adjusted from Dataset4EO in the current RSI-Segmentation version). All others follow mmsegmentation workflow.

Specifically, you can clone RSI-Segmentation, install it according to the guideline, and run

# for a single GPU
python tools/train.py ${CONFIG_FILE} [optional arguments]
# for multiple GPUs
sh tools/dist_train.sh ${CONFIG_FILE} ${GPU_NUM} [optional arguments]

The config file for DFC2020 is RSI-Segmentation/configs/deeplabv3plus/deeplabv3plus_r50-d8_256x256_40k_dfc2020_ssl4eo.py. Also, refer to RSI-Segmentation/tools/convert_datasets/dfc2020.py for dataset preparation after downloading the dataset from IEEE dataport.

The whole implementation codes are not very straightforward to digest if you're not familiar with mmseg, but you can check the RSI-Segmentation / mmsegmentation documentations for details.

RyanAmaudruz commented 9 months ago

Great, thank you so much with the detailed response. I have busy on other commitments for the past 2 weeks, so sorry for the late reply.