Semantic Segmentation of remotely sensed images for post disaster assessment
├── README.md
│
├── training <- training codes
│ ├── main.py
│ ├── helper.py
│ └── MRA_Model.py
├── testing <- Testing codes
│ ├── main.py
│ ├── helper.py
│ └── MRA_Model.py
│
├── utils
│ └── metrics.py
│ ├── Augment_Data.py <- Main data augmentation file
│ ├── cap_aug.py <- File for cut paste augmentation
│
├── requirements.txt <- The requirements file for reproducing the analysis environment,
│ generated with `pip freeze > requirements.txt`
├── saved_models
│ ├── checkpoint
│ ├── model_latest.ckpt.data-00000-of-00001
│ ├── model_latest.ckpt.index
│ └── model_latest.ckpt.meta
|── dataset
│ ├── Images
│ ├── Labels
│ ├── Labels_json
│ └── Labels_Generate.py
└── data
├── vgg
│ ├── variables
│ ├── make_dataset.py <- Script to generate data
└── ....
This repository is team VB210282's submission to the IITB Techfest Vision Beyond Limits(VBL) Competition.
Segmentation of remotely sensed images lies at the intersection of the domains of remote sensing and computer vision. It is used to systematically extract information from data collected by various airborne and space-borne sensors, resulting in a simpler representation. This method is used in various applications which include change detection, land cover and land use classification, resource exploration, the study of natural hazards, and mapping. In this work, we will focus on the study of natural hazards, i.e., building a multi-class semantic segmentation model that categories the given post-disaster (earthquakes in particular) imagery based on damage.
The model is trained on the Xview2 building damage assessment dataset as provided by the IIT-B VBL team.
For the given task we propose to go with the traditional U-Net architecture composed with an MRA (Multi-Resolution Analysis ) framework. The U-Net architecture is a simple encoder-decoder fully convolutional pipeline consisting of contracting (encoder) and expanding/extracting (decoder) paths. The MRA framework is interspersed into the U-Net Architecture in such a way that it pre-processes the inputs to the network at several stages to increase the contextual overview of the network as the same data on multiple scales is available for feature extraction and learning.
The intuition behind using multi-resolution analysis is that images contain features at different scales important for segmentation, therefore, a multi-resolution analysis (MRA) approach is useful for their extraction since this decomposition allows us to even segment structures of various dimensions and structures with ease.
Categorical cross-entropy was used as the loss function
Please Download the Xview2 Earthquake disaster Dataset and save the Images and Labels_json in dataset. Create the groundtruth masks from the json file using Labels_Generate.py and save the labels in folder Labels.
- Install the virtualenv tool
- Create env
python -m venv <env-name>
- Activate env
source <env-name>/bin/activate
-
pip install -r requirements.txt
- Loading data
( Download data.zip from the here and extract in home folder ) - Saved Models
To test the model download saved_models.zip from here and extract in home folder - Installing wavetf
cd wavetf pip3 install .
cd testing
python --input "<path to image>" main.py
meanIOU: 88.17%
meanDice: 92.55%
pixelAccuracy: 89.9%
Precision: 90.27%
Recall: 92.98%
Distributed under the GNU License. See LICENSE.txt
for more information.