Inspiration
When a natural disaster strikes, the time to react is limited. It is critical to get a quick damage assessment so that efforts can be focused on regions with higher damage. This project is a step towards building deep learning capabilities in quick detection of whether a region was affected by any natural disaster. If it was, the system tries to detect the type of disaster afflicting the region.
What it does
The system has three main capabilities right now.
Detecting whether an area has been hit by a disaster.
The user can simply upload an image and choose the deep learning model and the model will detect whether the area was hit by a disaster.
If the user already knows what kind of disaster has hit the region, she can choose a more specialized model based on the type of disaster.
She can upload the image, choose the model and also choose the type of disaster that she expects the region to have been hit with. The model trained specifically on that disaster will then inform her whether the area has been hit by that specific disaster. We are supporting 7 types of disasters viz.
- fire
- bushfire
- wildfire
- volcano
- flood
- tornado
- tsunami
- If the user has a satellite image of a region which has been hit by a disaster, but she is not sure, which type, there is provision to upload the image and the model will tell her what was the probable disaster that struck that region.
How we built it
We obtained satellite image datasets from different regions before and after they were hit by disasters. The data was labelled with disaster type and whether it was a pre disaster or post disaster image. Using this data, multiple neural network models like the vgg, squeezenet, resnet and densenet were retrained.
The data was divided into pre and post disaster data and neural nets were re trained just to detect whether any given satellite image has been hit by a natural disaster.
The second step involved creating a set of models for each type of disaster. The data was segregated into pre and post disaster images for
- fire
- bushfire
- wildfire
- volcano
- flood
- tornado
- tsunami
Models were re trained for each disaster type.
The third step involved creating models that could detect the type of natural disaster from the image of the affected area. This step involved taking only the post disaster images and dividing them based on disaster types. The models were then trained on this data.
Finally the functionality was made available online so that users could upload a satellite image to find out if it was hit by a disaster and also find out the type of disaster affecting the area.
Challenges we ran into
There was an imbalance in the type of disaster that was being represented.
- fire: 1756 files
- bushfire: 3690 files
- wildfire: 3738 files
- volcano: 582 files
- flooding: 1238 files
- tornado: 1438 files
- tsunami: 296 files
The imbalance in the dataset was dealt with by applying data augmentation methods (https://youtu.be/2iwZ4zBfWqM).
Accomplishments that we're proud of
The models achieved an average accuracy of 95% and above.
What we learned
- Processing satellite image data
- Extracting general features from different disaster types
Source Code
How to test the product
Use the images from this link, just download them and drag and drop the images to the app running here. Refer to the video in case you face any issues.
What's next for Disaster analysis on Satellite Images
- Add more data and train models based on disaster type as well as region. Since different regions have different outcomes for the same disaster types. This will help generalize the system even more.
Built With
- python
- streamlit

Log in or sign up for Devpost to join the conversation.