This repository showcases a deep learning-based solution for landslide prediction using Convolutional Neural Networks (CNN). By analyzing satellite imagery and incorporating various environmental features, this model predicts the likelihood of landslides, enabling more effective disaster management and early warning systems.
The dataset consists of 3,799 labeled images with associated masks, which are used for training and evaluation. Each image represents a satellite view of a region, and its corresponding mask indicates areas at risk of landslides. The dataset includes the following:
- Image Shape: (128, 128, 14) β The images consist of 14 channels, capturing multiple environmental variables.
- Mask Shape: (128, 128, 1) β Each mask is a binary image with 1 channel, representing areas with potential landslide risks.
- Channel 1: Blue
- Channel 2: Green
- Channel 3: Red
- Channel 7: Near Infrared (NIR)
- Channel 13: Elevation
- Channel 14: Slope
We calculated the Normalized Vegetation Index (NDVI) using the formula:
[ \text{NDVI} = \frac{\text{NIR} - \text{Red}}{\text{NIR} + \text{Red}} ]
This helps to assess the vegetation health of the region, an important factor for landslide prediction. Additionally, we normalized the slope and elevation data to improve model performance.
For model training, we utilized the following 6-channel dataset:
- Normalized Red
- Normalized Green
- Normalized Blue
- NDVI
- Normalized Slope
- Normalized Elevation
The shape of the training data is: (128, 128, 6).
We employed Convolutional Neural Networks (CNNs) for this task, which are known for their ability to extract spatial hierarchies of features from image data. The model was trained using the selected channels, and extensive experimentation with hyperparameters and architecture optimization was performed.
Here is an image depicting the model training process:
Initially, we observed underfitting, where the model performed poorly on both the training and validation sets. This is expected when the model is too simple or lacks sufficient capacity.
Through hyperparameter optimization and fine-tuning, the model's performance improved significantly. The next image shows the results after these adjustments:
After extensive fine-tuning, the best-performing model achieved an F1-Score of 89%, indicating a strong balance between precision and recall. This model demonstrated the highest accuracy and reliability.
The confusion matrix below illustrates the model's predictive performance on the test set. It shows how effectively the model distinguishes between landslide and non-landslide areas:
The selection of an optimal threshold for classification plays a crucial role in balancing false positives and false negatives. After evaluating different thresholds, the following thresholds were tested:
The 50% threshold was selected for final classification, which provided an optimal balance between sensitivity and specificity.
After applying the 50% threshold, the model predicted areas at risk of landslides on the labeled dataset, as shown in the following image:
The trained model was then applied to unlabeled data to predict regions at risk of landslides:
This project demonstrates the powerful application of Convolutional Neural Networks (CNNs) for landslide prediction. By leveraging satellite imagery and environmental data, we built a robust model that achieved 89% F1-Score through careful data preprocessing, hyperparameter optimization, and model fine-tuning.
- Hyperparameter Tuning: Extensive experiments were conducted to fine-tune the model, resulting in improved performance.
- Feature Engineering: NDVI and normalization of slope and elevation significantly contributed to the model's predictive power.
- Threshold Selection: The optimal threshold was selected at 50% to balance false positives and false negatives, ensuring reliable predictions.
- Python
- TensorFlow / Keras
- OpenCV
- NumPy
- Matplotlib
- Expand the dataset to include more diverse environmental factors, such as rainfall and soil type.
- Incorporate temporal data to improve prediction accuracy over time.
- Explore the use of Deep Learning architectures like U-Net for better segmentation-based predictions.
For more details on the code implementation and model training, please explore the repository and feel free to contribute or reach out with questions.