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: [vickydubeyiacr@gmail.com]
- 🔗 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!