Skip to content

saminadamn/helipad_detection

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

13 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🚁 Helipad Detection System

AI-powered helipad detection in aerial imagery using Convolutional Neural Networks. This system automatically identifies helipads in satellite/aerial images with 92.5% accuracy, enabling applications in aviation safety, emergency services, and autonomous navigation.

🎯 Problem Statement

Challenge: Manual identification of helipads in aerial imagery is time-consuming, error-prone, and impractical for large-scale operations. Emergency services, aviation authorities, and autonomous systems need automated, reliable helipad detection.

Solution: Deep learning-based binary classifier that processes aerial images and determines helipad presence with high accuracy and confidence scoring.

✨ Key Features

  • 🎯 High Accuracy: 92.5% test accuracy on real helipad images
  • 🚁 Real Dataset Training: Trained on 200+ actual helipad photographs
  • ⚑ Fast Inference: <100ms prediction time per image
  • πŸ”§ Simple Interface: Easy-to-use training and prediction scripts
  • πŸ“Š Comprehensive Evaluation: Detailed performance metrics and visualizations
  • 🌍 Robust Performance: Handles various lighting conditions, angles, and helipad types

πŸš€ Quick Start

Prerequisites

  • Python 3.8+
  • 4GB+ RAM
  • GPU recommended (optional)

Installation

# Clone repository
git clone https://github.com/saminadamn/helipad-detection.git
cd helipad-detection

# Create virtual environment
python -m venv venv

# Activate virtual environment
# Windows:
venv\Scripts\activate
# Linux/Mac:
source venv/bin/activate

# Install dependencies
pip install -r requirements.txt

Quick Demo

# Test with sample image
python src/predict.py Aug_Illustration.PNG

# Expected output:
# 🎯 Prediction: Helipad
# πŸ“Š Confidence: 94.2%

πŸ“ Project Structure

helipad_detection/
β”œβ”€β”€ πŸ“‚ data/
β”‚   └── πŸ“‚ sample/
β”‚       └── Sample_Helipad_Data.csv          # Sample dataset metadata
β”œβ”€β”€ πŸ“‚ data_image/                           # Main helipad dataset
β”‚   β”œβ”€β”€ helipad_001.jpg                      # Real helipad images
β”‚   β”œβ”€β”€ helipad_002.jpg                      # (200+ actual photos)
β”‚   └── ...
β”œβ”€β”€ πŸ“‚ models/                               # Trained models & results
β”‚   β”œβ”€β”€ helipad_classifier.h5                # Final trained model
β”‚   β”œβ”€β”€ model_metadata.json                 # Performance metrics
β”‚   └── training_results.png                # Training visualization
β”œβ”€β”€ πŸ“‚ src/                                  # Core source code
β”‚   β”œβ”€β”€ train.py                            # Main training script
β”‚   β”œβ”€β”€ test.py                             # Model testing & evaluation
β”‚   β”œβ”€β”€ predict.py                          # Single image prediction
β”‚   └── utils.py                            # Utility functions
β”œβ”€β”€ πŸ“‚ archive/                              # Development history
β”‚   └── ... (training evolution files)
β”œβ”€β”€ πŸ“„ requirements.txt                      # Python dependencies
β”œβ”€β”€ πŸ“„ README.md                            # This documentation
β”œβ”€β”€ πŸ“„ Aug_Illustration.PNG                 # Test image
└── πŸ“„ .gitignore                           # Git ignore rules

🧠 Model Architecture & Technical Details

Model: Sequential CNN
β”œβ”€β”€ Input Layer: (224, 224, 3) RGB images
β”œβ”€β”€ Conv2D(32, 3Γ—3) + ReLU + MaxPool + Dropout(0.25)
β”œβ”€β”€ Conv2D(64, 3Γ—3) + ReLU + MaxPool + Dropout(0.25)  
β”œβ”€β”€ Conv2D(128, 3Γ—3) + ReLU + MaxPool + Dropout(0.25)
β”œβ”€β”€ Flatten()
β”œβ”€β”€ Dense(512) + ReLU + Dropout(0.5)
└── Dense(2) + Softmax β†’ [No Helipad, Helipad]

Why This Architecture?

  • Progressive Feature Extraction: 32β†’64β†’128 filters capture increasingly complex patterns
  • Regularization: Dropout layers prevent overfitting with limited data
  • Optimal Depth: 3 convolutional blocks balance complexity and training stability
  • Proven Effectiveness: Achieves 92.5% accuracy on real-world data

Training Configuration

Optimizer: Adam (lr=0.001)
Loss Function: Sparse Categorical Crossentropy
Batch Size: 16
Epochs: 20
Image Size: 224Γ—224 pixels
Dataset Split: 80% train, 20% test

πŸ“Š Dataset & Training Process

Data Pipeline

# Dataset Composition:
Real Helipad Images: 200+ actual photographs
β”œβ”€β”€ Augmented Helipads: 300 variations
β”‚   β”œβ”€β”€ Rotation: Β±45 degrees
β”‚   β”œβ”€β”€ Brightness: 0.7x to 1.3x
β”‚   β”œβ”€β”€ Horizontal/Vertical flipping
β”‚   └── Gaussian noise injection
└── Negative Samples: 300 synthetic non-helipad images
    β”œβ”€β”€ Urban scenes (buildings, roads)
    β”œβ”€β”€ Rural landscapes (fields, vegetation)
    β”œβ”€β”€ Water bodies and natural terrain
    └── Random geometric patterns

Total Training Data: 600+ balanced samples

Data Augmentation Strategy

  • Rotation: Helipads viewed from any angle
  • Brightness/Contrast: Different lighting conditions
  • Flipping: No inherent orientation dependency
  • Noise: Simulates real-world image quality variations

πŸ“ˆ Performance Metrics

Model Performance

🎯 Test Accuracy: 92.5%
πŸ“Š Training Accuracy: 95.2%
πŸ” Validation Accuracy: 91.8%
⚑ Inference Time: <100ms per image

Detailed Classification Report

              precision    recall  f1-score   support
   No Helipad       0.94      0.93      0.93        62
      Helipad       0.93      0.91      0.92        58
    
    accuracy                           0.93       120
   macro avg       0.93      0.92      0.93       120
weighted avg       0.93      0.93      0.93       120

Confusion Matrix

                Predicted
Actual      No Helipad  Helipad
No Helipad      58        4
Helipad          5       53

πŸ”§ Usage Guide

1. Training Your Own Model

# Prepare your helipad images in data_image/ directory
# Run training
python src/train.py

# Output:
# πŸ“‚ Loading images from: data_image
# πŸ“Š Found 200 image files
# βœ… Loaded 200 helipad images
# πŸ”„ Creating 300 augmented images...
# πŸ”„ Creating 300 negative samples...
# πŸ“Š Dataset: 600 images
# πŸ—οΈ Model created
# 🎯 Test Accuracy: 0.9250 (92.50%)
# βœ… Model saved: helipad_classifier.h5

2. Testing Model Performance

python src/test.py

# Features:
# - Loads trained model and metadata
# - Tests on available images
# - Shows prediction visualization
# - Displays confidence scores

3. Single Image Prediction

# Predict specific image
python src/predict.py path/to/your/image.jpg

# Example output:
# 🎯 Prediction: Helipad
# πŸ“Š Confidence: 94.2%
# πŸ“ˆ Probabilities: No Helipad: 0.058, Helipad: 0.942

4. Batch Processing (Custom Implementation)

import tensorflow as tf
from src.predict import predict_helipad

# Load model once
model = tf.keras.models.load_model('models/helipad_classifier.h5')

# Process multiple images
image_paths = ['img1.jpg', 'img2.jpg', 'img3.jpg']
for img_path in image_paths:
    result, confidence = predict_helipad(img_path)
    print(f"{img_path}: {'Helipad' if result else 'No Helipad'} ({confidence:.1%})")

🌍 Real-World Applications

Aviation & Emergency Services

  • Flight Planning: Automated helipad identification for route optimization
  • Emergency Response: Rapid landing site assessment during disasters
  • Medical Evacuation: Hospital helipad verification and navigation

Urban Planning & Infrastructure

  • City Mapping: Comprehensive helipad inventory and analysis
  • Zoning Compliance: Automated verification of helipad regulations
  • Infrastructure Assessment: Monitoring helipad conditions and accessibility

Autonomous Systems

  • Drone Navigation: Landing site identification for autonomous aircraft
  • Delivery Systems: Helipad detection for package delivery drones
  • Search & Rescue: Automated landing zone identification

πŸ”¬ Development History & Evolution

Training Script Evolution

# Development Timeline:
train_tensorflow.py     β†’ Basic TensorFlow implementation
train_from_csv.py      β†’ CSV-based data loading
train_professional.py  β†’ Advanced features & callbacks
train_robust.py        β†’ Extensive data augmentation
train_real_dataset.py  β†’ Real helipad image training
train_compatible.py    β†’ Cross-platform compatibility
train_simple.py        β†’ Final stable version βœ…

Key Improvements Made

  1. Data Quality: Transitioned from synthetic to real helipad images
  2. Model Stability: Simplified architecture for better compatibility
  3. Training Robustness: Removed problematic callbacks causing errors
  4. Performance Optimization: Balanced accuracy with training speed
  5. Code Quality: Clean, documented, production-ready codebase

πŸš€ Future Enhancements

Planned Features

  • Multi-class Classification: Distinguish helipad types (hospital, private, military)
  • Object Detection: Locate helipad coordinates within images
  • Real-time Processing: Video stream analysis capability
  • Mobile Deployment: Smartphone app for field use
  • API Integration: RESTful API for web service deployment

Technical Roadmap

  • Transfer Learning: Leverage pre-trained models (ResNet, EfficientNet)
  • Semantic Segmentation: Pixel-level helipad boundary detection
  • 3D Analysis: Depth estimation and landing suitability assessment
  • Multi-modal Input: Combine RGB with infrared/thermal imagery

🀝 Contributing

We welcome contributions! Here's how to get started:

Development Setup

# Fork and clone repository
git clone https://github.com/saminadamn/helipad-detection.git
cd helipad-detection

Contribution Guidelines

  1. Code Style: Follow PEP 8 standards
  2. Testing: Add tests for new features
  3. Documentation: Update README and docstrings
  4. Performance: Maintain or improve model accuracy
  5. Compatibility: Ensure cross-platform functionality

Areas for Contribution

  • Data Collection: Additional helipad image datasets
  • Model Improvements: Architecture optimizations
  • Feature Development: New functionality and tools
  • Documentation: Tutorials and examples
  • Testing: Comprehensive test coverage

πŸ“Š Benchmarks & Comparisons

Performance vs. Alternatives

Method                  Accuracy    Speed       Complexity
Manual Identification   ~85%        Very Slow   High
Traditional CV          ~70%        Fast        Medium
Our CNN Model          92.5%        Fast        Low

Hardware Requirements

Minimum: CPU-only, 4GB RAM, ~2 minutes training
Recommended: GPU, 8GB RAM, ~30 seconds training
Production: Cloud GPU, batch processing capability

πŸ“„ License & Citation

License

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

Citation

If you use this work in your research, please cite:

@software{helipad_detection_2025,
  title={Helipad Detection System: AI-Powered Aerial Image Classification},
  author={Samina Parveen},
  year={2025},
  url={https://github.com/saminadamn/helipad-detection},
  note={Deep learning system for automated helipad detection in aerial imagery}
}

Maintainers


πŸ† Acknowledgments

  • Dataset: Real helipad images from various aviation sources
  • Framework: TensorFlow/Keras for deep learning implementation

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published