File size: 7,244 Bytes
914013b 47354f8 daa6b5a 47354f8 6474302 914013b 74e1a32 914013b 74e1a32 6474302 914013b 6474302 914013b 74e1a32 914013b 74e1a32 914013b 74e1a32 914013b 74e1a32 914013b 74e1a32 914013b 74e1a32 914013b 74e1a32 6474302 74e1a32 67b1e08 74e1a32 67b1e08 914013b 74e1a32 91df5aa 914013b 74e1a32 914013b 6474302 914013b 74e1a32 914013b 1f06a2a 6474302 74e1a32 914013b | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 | ---
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) |