With global climate change today, natural disasters like hurricanes and floods are occurring with higher frequency. Apart from affecting life, buildings, and infrastructure, it also leads to roads being damaged, cutting off vital disaster relief responses by volunteers. Since time is of absolute essence during these times, there's a need for a system that can quickly annotate and identify damaged pathways, infrastructure, and roads straight from real-time satellite images and provide alternative routes to volunteers.
What it does
Dis(t)Res is a bleeding-edge AI solution to aiding relief efforts. It uses AI to analyze real-time satellite images and suggests the best possible route "through the rubble".
The general procedure of our API is as follows:
- Extract relief features (such as roads) from pre-disaster satellite image, A
- Extract relief features (such as roads) from post-disaster satellite image, B
- Find difference C by subtracting B from A
- Filter C with ground truth street images to remove prediction noise from the model.
To train the AI model, I made use of public open datasets I found on Open Data on AWS. After experimenting with a range of datasets, I finally settled on two: SpaceNet Satellite Images and the USGS 3DEP LiDAR Dataset.
I chose the Las Vegas Area of Interest (AOI) since this was available in both datasets. Among the Spacenet dataset, I selected the pan-sharpened 3-band RGB geotiffs with 30cm resolution. Data was processed by white-balancing and to make it easier for post-processing, I converted all images to 8-bit format (pixel values between 1 and 255). Data available in the USGS 3DEP LiDAR Dataset, however, was in the form of 3D point clouds, so I made use of a tool that mapped each 3D point cloud to a pixel-wise location, and finally generated two attributes: reflective and elevation intensity. Elevation ranges from approx. 2000–3000ft, and intensity ranges between 0–5000 units. The following shows a histogram of all images for their overall elevation and reflectivity intensity values:
All images are saved in a 16-bit format as opposed to an 8-bit format since LiDAR attribute values can easily cross 255 (the upper limit for 8-bit format).
I experimented with variations of a SOTA CNN model called a U-Net that has seen enormous success in image segmentation. I used ResNet as the backbone encoder. The input to the model is a 512x512x3 RGB satellite image tensor. The output of the model is a 512x512 binary segmentation mask. Pixel values of 1 imply that it is a pixel of a road, while 0 implies not a road.
The model was trained on a Tesla P100 GPU provided by Kaggle.
What's next for Dis(t)Res
I plan on taking this idea further by publishing this API on a wider platform such that it makes it easy for any individual aiding in disaster relief to avoid broken pathways and roads and be able to provide timely support to those affected by the disaster.