| | --- |
| | 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 |
| | ```bash |
| | git clone https://github.com/YOUR_USERNAME/satellite-classification-dashboard.git |
| | cd satellite-classification-dashboard |
| | ``` |
| |
|
| | 2. Install dependencies |
| | ```bash |
| | pip install -r requirements.txt |
| | ``` |
| |
|
| | 3. Run the application |
| | ```bash |
| | streamlit run app.py |
| | ``` |
| |
|
| | 4. 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 |
| | ```dockerfile |
| | 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 |
| | ```bash |
| | # 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](https://huggingface.co/spaces/Bhavi23/satellite-classification-dashboard) |