Hereβs a comprehensive and technically detailed README tailored for uploading the implementation of the paper titled:
"Enhanced Landslide Detection by Remote Sensing Images Through Data Augmentation and Hybrid Deep Learning Model"
# Enhanced Landslide Detection using Hybrid CNN-BiLSTM Deep Learning Model
<p align="center">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/d/d6/Landslide_in_Italy.jpg/640px-Landslide_in_Italy.jpg" width="500" />
</p>
## π§ Overview
This project provides a complete implementation of a **Hybrid Deep Learning Model** combining **Convolutional Neural Networks (CNN)** and **Bidirectional Long Short-Term Memory (BiLSTM)** for the **detection of landslide-prone areas** from remote sensing imagery. The approach is inspired by the research article:
> **Enhanced Landslide Detection by Remote Sensing Images Through Data Augmentation and Hybrid Deep Learning Model**
> _Authors: Vikash Ranjan, Pradyut Kumar Biswal_
---
## π Repository Structure
```bash
βββ data/
β βββ raw/ # Original satellite images (Google Earth/Bhuvan)
β βββ augmented/ # Augmented images (rotated, flipped, brightness adjusted)
β
βββ models/
β βββ hybrid_cnn_bilstm.py # Core model architecture
β
βββ notebooks/
β βββ landslide_detection.ipynb # Jupyter notebook for training and evaluation
β
βββ utils/
β βββ preprocessing.py # Data preprocessing and augmentation scripts
β
βββ results/
β βββ metrics_report.json # Precision, Recall, F1-Score, Accuracy
β
βββ requirements.txt
βββ README.md
βββ train.py # Model training entry point
- Sources: Google Earth and ISROβs Bhuvan platform
- Categories:
- Landslide Images
- Non-Landslide Images
- Image Size: All images are resized to
128x128x3
(RGB) - Augmentation Techniques:
- Rotations: 90Β°, 180Β°, 270Β°
- Horizontal & Vertical Flipping
- Brightness Adjustments
π§ͺ Augmentation helps increase generalization and model robustness.
Layer | Parameters |
---|---|
Conv2D | 3Γ3 filters, 32/64/128 |
Activation | ReLU |
MaxPooling | 2Γ2 |
Dropout | 0.25 |
- BiLSTM with 128 hidden units
- Dropout: 0.5
- Learns both forward and backward dependencies of spatial features
- Dense (64), Activation: ReLU
- Dropout (0.5)
- Dense (1), Activation: Sigmoid
Final output is a binary class:
1
= Landslide,0
= Non-Landslide
-
Data Preprocessing:
- Resize images to 128Γ128
- Normalize pixel values to [0, 1]
- Augment training dataset to prevent overfitting
-
Model Training:
- Optimizer: Adam
- Loss: Binary Cross-Entropy
- Batch Size: 32
- Epochs: 50
-
Evaluation Metrics:
- Accuracy
- Precision
- Recall
- F1-Score
-
Result Visualization:
- Confusion Matrix
- ROC Curve
- Loss vs Accuracy plots
Metric | Value |
---|---|
Accuracy | 96.6% |
Precision | 94.6% |
Recall | 96.8% |
F1-Score | 95.6% |
β Outperforms standalone CNN and LSTM models in both precision and recall.
# Clone the repository
git clone https://github.com/yourusername/landslide-detection-hybrid-cnn-bilstm.git
cd landslide-detection-hybrid-cnn-bilstm
# Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
python train.py --data_dir ./data/augmented --epochs 50
jupyter notebook notebooks/landslide_detection.ipynb
- Python 3.8+
- TensorFlow or PyTorch (your implementation choice)
- NumPy
- OpenCV
- Scikit-learn
- Matplotlib
- Pillow
See requirements.txt
for the full list.
- Use of Vision Transformers (ViTs) for improved spatial context
- Integration of geospatial elevation maps
- Semi-supervised learning using pseudo-labeling
- Deployment via Flask/Django API
If you use this work or code, please cite:
@article{ranjan2024enhanced,
title={Enhanced Landslide Detection by Remote Sensing Images Through Data Augmentation and Hybrid Deep Learning Model},
author={Ranjan, Vikash and Biswal, Pradyut Kumar},
}
Pull requests and contributions are welcome! If you'd like to improve the model or add more datasets, feel free to fork and submit a PR.
This project is licensed under the MIT License. See the LICENSE
file for details.
For questions or collaborations, please reach out via:
- π§ Email: [[email protected]]
- π LinkedIn: [https://www.linkedin.com/in/vikash-ranjan-9273bb1a9/]
If you find this repository helpful, donβt forget to give it a β!
---
Would you like me to help you:
- Format and upload this to your GitHub repo?
- Create the corresponding `train.py`, `model.py`, and sample data structure?
- Or set up a GitHub Actions CI workflow?
Let me know what you'd like next!