Skip to content

Enhanced Landslide Detection by Remote Sensing Images Through Data Augmentation and Hybrid Deep Learning Model

Notifications You must be signed in to change notification settings

Codervikash/Enhanced-landslide-Detection

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 

Repository files navigation

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"


📌 README.md for GitHub Repository

# 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

🖼️ Dataset Description

  • 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.


🧱 Model Architecture

🔹 CNN Block (Spatial Feature Extraction)

Layer Parameters
Conv2D 3×3 filters, 32/64/128
Activation ReLU
MaxPooling 2×2
Dropout 0.25

🔹 BiLSTM Block (Contextual/Sequential Modeling)

  • BiLSTM with 128 hidden units
  • Dropout: 0.5
  • Learns both forward and backward dependencies of spatial features

🔹 Dense Layers (Classification)

  • Dense (64), Activation: ReLU
  • Dropout (0.5)
  • Dense (1), Activation: Sigmoid

Final output is a binary class: 1 = Landslide, 0 = Non-Landslide


🔢 Technical Workflow

  1. Data Preprocessing:

    • Resize images to 128×128
    • Normalize pixel values to [0, 1]
    • Augment training dataset to prevent overfitting
  2. Model Training:

    • Optimizer: Adam
    • Loss: Binary Cross-Entropy
    • Batch Size: 32
    • Epochs: 50
  3. Evaluation Metrics:

    • Accuracy
    • Precision
    • Recall
    • F1-Score
  4. Result Visualization:

    • Confusion Matrix
    • ROC Curve
    • Loss vs Accuracy plots

📈 Results

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.


🛠️ Installation

# 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

🚀 Run the Model

🔸 Train from Scratch

python train.py --data_dir ./data/augmented --epochs 50

🔸 Use Jupyter Notebook

jupyter notebook notebooks/landslide_detection.ipynb

📚 Dependencies

  • Python 3.8+
  • TensorFlow or PyTorch (your implementation choice)
  • NumPy
  • OpenCV
  • Scikit-learn
  • Matplotlib
  • Pillow

See requirements.txt for the full list.


🔍 Future Improvements

  • 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

💡 Citation

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},
  
}

🤝 Contributing

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.


🛡️ License

This project is licensed under the MIT License. See the LICENSE file for details.


📬 Contact

For questions or collaborations, please reach out via:


⭐ Star History

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!

About

Enhanced Landslide Detection by Remote Sensing Images Through Data Augmentation and Hybrid Deep Learning Model

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published