--- 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)