Model / README.md
Bhavi23's picture
Update README.md
914013b verified

A newer version of the Streamlit SDK is available: 1.55.0

Upgrade
metadata
title: Satellite Classification Dashboard
emoji: ๐Ÿ›ฐ๏ธ
colorFrom: blue
colorTo: purple
sdk: streamlit
sdk_version: 1.47.0
app_file: app.py
pinned: false
preload_from_hub:
  - Bhavi23/Custom_CNN/best_multimodal_model.keras
  - Bhavi23/MobilenetV2/multi_input_model_v1.keras
  - Bhavi23/EfficientNet_B0/efficientnet_model.keras
  - Bhavi23/DenseNet/densenet_model.keras

๐Ÿ›ฐ๏ธ Satellite Classification Dashboard

A comprehensive deep learning application for classifying satellite images using multiple state-of-the-art neural network models. This interactive dashboard allows you to compare different models, analyze their performance, and classify satellite images in real-time.

๐ŸŒŸ Features

๐Ÿ  Dashboard Overview

  • Interactive web interface built with Streamlit
  • Multi-page navigation system
  • Real-time image classification
  • Comprehensive model comparison
  • Performance analytics and visualizations

๐Ÿค– Multiple Model Support

  • Custom CNN: Tailored architecture for satellite imagery (95.2% accuracy)
  • MobileNetV2: Lightweight model optimized for speed (92.8% accuracy, 18ms inference)
  • EfficientNetB0: Best accuracy-efficiency balance (96.4% accuracy)
  • DenseNet121: Complex pattern recognition capabilities (94.7% accuracy)

๐ŸŽฏ Classification Categories

The system can classify 11 different types of satellites and space objects:

  • AcrimSat
  • Aquarius
  • Aura
  • Calipso
  • Cloudsat
  • CubeSat
  • Debris
  • Jason
  • Sentinel-6
  • TRMM
  • Terra

๐Ÿš€ Quick Start

Try the Live Demo

Visit the Hugging Face Space to use the application directly in your browser.

Local Installation

  1. Clone the repository
git clone https://github.com/YOUR_USERNAME/satellite-classification-dashboard.git
cd satellite-classification-dashboard
  1. Install dependencies
pip install -r requirements.txt
  1. Run the application
streamlit run app.py
  1. Open your browser and navigate to http://localhost:7860

๐Ÿ“ฆ Dependencies

  • streamlit==1.47.0
  • tensorflow-cpu==2.15.0
  • numpy==1.26.4
  • pandas==2.2.2
  • plotly==5.22.0
  • Pillow==10.4.0
  • requests==2.32.3
  • protobuf<4.0.0

๐ŸŽฎ How to Use

1. Home Page

  • Overview of the system capabilities
  • Class distribution visualization
  • Quick navigation to other features

2. Model Comparison

  • Side-by-side performance metrics
  • Interactive charts comparing accuracy, speed, and model size
  • Model selection recommendations

3. Image Classification

  • Upload satellite images (PNG, JPG, JPEG)
  • Select one or multiple models for prediction
  • View confidence scores and detailed probabilities
  • Get model recommendations based on performance

4. Performance Analytics

  • Detailed performance breakdowns
  • Efficiency metrics analysis
  • Comprehensive model comparison tables

5. About Models

  • Technical specifications for each model
  • Strengths and use cases
  • Model architecture details

๐Ÿ“Š Model Performance

Model Accuracy Precision Recall F1-Score Inference Time Model Size
EfficientNetB0 96.4% 96.1% 96.2% 96.1% 35ms 20.1MB
Custom CNN 95.2% 94.8% 95.1% 94.9% 45ms 25.3MB
DenseNet121 94.7% 94.2% 94.5% 94.3% 52ms 32.8MB
MobileNetV2 92.8% 92.1% 92.5% 92.3% 18ms 8.7MB

๐ŸŽฏ Model Selection Guide

  • ๐Ÿ† Best Overall Accuracy: EfficientNetB0 (96.4%)
  • โšก Fastest Inference: MobileNetV2 (18ms)
  • ๐Ÿ’พ Most Lightweight: MobileNetV2 (8.7MB)
  • ๐ŸŽฏ Best Balance: EfficientNetB0 (High accuracy + efficiency)
  • ๐Ÿ“ฑ Mobile/Edge Deployment: MobileNetV2
  • ๐Ÿ”ฌ Research/High Accuracy: EfficientNetB0 or DenseNet121

๐Ÿ—๏ธ Architecture

Model Sources

All models are hosted on Hugging Face Model Hub:

  • Custom CNN: Bhavi23/Custom_CNN
  • MobileNetV2: Bhavi23/MobilenetV2
  • EfficientNetB0: Bhavi23/EfficientNet_B0
  • DenseNet121: Bhavi23/DenseNet

Data Pipeline

  • Image Upload: Supports PNG, JPG, JPEG formats
  • Preprocessing: Resize to 224x224, normalize to [0,1]
  • Model Inference: Multi-model prediction with timing
  • Post-processing: Confidence scoring and recommendations

๐Ÿ”ง Technical Details

Input Requirements

  • Image Format: PNG, JPG, JPEG
  • Input Size: 224x224x3 (RGB)
  • Preprocessing: Automatic resizing and normalization

Output Format

  • Class Prediction: One of 11 satellite categories
  • Confidence Score: Percentage confidence (0-100%)
  • Inference Time: Milliseconds for prediction
  • Probability Distribution: Full softmax output for all classes

๐Ÿ“ˆ Performance Optimization

  • Model Caching: Models are cached using @st.cache_resource
  • Lazy Loading: Models loaded only when needed
  • Efficient Preprocessing: Optimized image pipeline
  • Memory Management: Automatic cleanup of model objects

๐Ÿšข Deployment

Hugging Face Spaces

The application is deployed on Hugging Face Spaces using:

  • Runtime: Python 3.9
  • Framework: Streamlit
  • Resources: CPU-optimized for inference

Docker Deployment

FROM python:3.9-slim

WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

COPY . .
EXPOSE 7860

CMD ["streamlit", "run", "app.py", "--server.port=7860", "--server.address=0.0.0.0"]

๐Ÿค Contributing

We welcome contributions! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit changes (git commit -m 'Add amazing feature')
  4. Push to branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Development Setup

# Clone your fork
git clone https://github.com/YOUR_USERNAME/satellite-classification-dashboard.git

# Create virtual environment
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install development dependencies
pip install -r requirements.txt

# Run in development mode
streamlit run app.py --logger.level=debug

๐Ÿ“„ License

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

๐Ÿ™ Acknowledgments

  • Dataset: Spark 2021 dataset used for training
  • Frameworks: TensorFlow, Streamlit, Plotly
  • Models: Pre-trained architectures from TensorFlow/Keras
  • Hosting: Hugging Face Spaces for deployment

๐Ÿ“ž Support

๐Ÿ”ฎ Future Enhancements

  • Real-time Video Classification
  • Batch Processing for multiple images
  • Model Fine-tuning Interface
  • Custom Model Upload
  • Export Predictions (CSV/JSON)
  • API Endpoint for programmatic access
  • Mobile App version
  • Advanced Visualization with satellite orbit data

๐Ÿ“Š Usage Statistics

Track your application usage:

  • Classifications Performed: Real-time counter
  • Popular Models: Usage analytics
  • Performance Metrics: Response time tracking

Built with โค๏ธ using Streamlit and TensorFlow

For more information, visit our Hugging Face Space