A flood detector using effientnet as semantic segmentation model.
Sen1Floods11: a georeferenced dataset to train and test deep learning flood algorithms for Sentinel-1 (Example). This data was generated by Cloud to Street, a Public Benefit Corporation: https://www.cloudtostreet.info/. For questions about this dataset or code please email [email protected].
Paper: Bonafilia, D., Tellman, B., Anderson, T., Issenberg, E. 2020. Sen1Floods11: a georeferenced dataset to train and test deep learning flood algorithms for Sentinel-1. The IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR) Workshops, 2020, pp. 210-211.
It is highly recomomended to run the training scrips inside of python environment, in case the system does not have any use the following procedure (check Virtualenvwrapper Installation for more details).
$ pip install --user virtualenvwrapper virtualenv
Add three lines to your shell startup file (.bashrc, .profile, etc.) to set the location where the virtual environments should live:
export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/Devel
source /usr/local/bin/virtualenvwrapper.sh
After editing it, reload the startup file (e.g., run source ~/.bashrc
) and create a python environment:
$ mkvirtualenv venv_py
$ workon venv_py
Once the python environment was configured, run the following procedure to install all the required packages
(venv_py)$ git clone https://github.com/ahestevenz/flood-detection-segmentation
(venv_py)$ cd flood-detection-segmentation
(venv_py)$ pip install .
The following script will be used to train the model.
(venv_py)$ bn-run-train --help
usage: bn-run-train [-h] [-j JSON_FILE] [-v] [-p output.prof]
Welcome to the Bushfires Detector training script
optional arguments:
-h, --help show this help message and exit
-j JSON_FILE, --json_file JSON_FILE
JSON configuration (default: "/Users/ahestevenz/Desktop/tech-projects/1_code/flood-detection-segmentation/config.json")
-v, --verbose Increase logging output (default: INFO)(can be specified several times)
-p output.prof, --profile output.prof
Run with profiling and store output in given file
Run the above command to start the training (check the data
and artefacts
paths in config.json
first)
(venv_py)$ bn-run-train --json_file config.json
To evaluate the model indicated in config.json
file, run this command:
(venv_py)$ bn-run-test --json_file config.json
Qualitative results using the validation dataset
In the plot below, you can observe quantitative results using a similarity metric between ground truth and prediction masks.
- Add Docker container option to run/train models
- Add release revision for NASA_IIAC_IEEE_GRSS_ESITC_Flood_Data dataset from the NASA Interagency Implementation and Advanced Concepts Team
- Notebook example