A newer version of the Streamlit SDK is available:
1.55.0
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
- Clone the repository
git clone https://github.com/YOUR_USERNAME/satellite-classification-dashboard.git
cd satellite-classification-dashboard
- Install dependencies
pip install -r requirements.txt
- Run the application
streamlit run app.py
- 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:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit changes (
git commit -m 'Add amazing feature') - Push to branch (
git push origin feature/amazing-feature) - 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
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Email: bhavithrass@gmail.com
๐ฎ 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