Team Name: RadarVision
ID: 39446
Web App Repository
Prototype Repository
The Micro-Classify project leverages Micro-Doppler radar signatures to identify and classify small aerial targets like drones and birds. This classification system is essential for surveillance, defence, and airspace management, providing a reliable distinction between human-made and natural objects.
Current radar systems often struggle to differentiate between small aerial targets like drones and birds due to similarities in their radar signatures. Misclassification can lead to operational inefficiencies, such as false alarms or overlooked threats.
- Variability in micro-Doppler signatures across radar bands.
- Imbalanced and limited datasets.
- Achieving real-time, high-accuracy predictions.
The proposed solution leverages a CNN-LSTM architecture with attention mechanisms to extract spatial and temporal features from micro-Doppler radar signals. Data augmentation via ACGANs (Auxiliary Classifier GANs) enhances dataset size and balance, improving classification performance.
- Source: Radio Micro-Doppler signatures
- Size [Datasetsize] with [number] samples
- Classes: Drones, birds and other Ariel targets
- Preprocessing:
- Spectrogram generation
- Noise reduction and normalization
- Challenges:
- Class imbalance resolved using ACGANs.
- Multi-band radar data (L, S, C, X bands) managed through branch-specific tuning.
- Platform: Hosted on AWS EC2.
- Containerization: Docker ensures scalability and reproducibility.
- API Access: Interactive API built using Flask.
- Accuracy: Measures overall classification correctness.
- F1-Score: Balances precision and recall for imbalanced datasets.
- Confusion Matrix: Visualizes classification performance across classes.
- Latency: Evaluates real-time prediction feasibility.
- Accuracy: 99.18%
- F1-Score: 0.99
- Latency: [Insert Time]
- Visualizations:
- ROC curve
- Confusion Matrix
- Research papers on micro-Doppler radar classification.
- TensorFlow and Keras official documentation.
- Flask and Docker documentation.
Frontend: HTML, CSS, JavaScript.
Backend: Flask.
Machine Learning: Python, PyTorch, Scikit-learn, numpy.
Visualization: Matplotlib.
Deployment: Docker, gunicorn, nginx, AWS ec2, Route 53, certbot.
API Testing: Postman API.
Version Control & CI/CD: Git/GitHub.
Micro-Classify/
├── ml_model/ # Machine learning model directory
│ ├── notebooks/ # Jupyter notebooks for experiments and model training
│ ├── src/
│ │ ├── data/ # Data handling scripts
│ │ ├── model/ # Model training, evaluation, and prediction scripts
│ │ ├── utils/ # Utility scripts (data preprocessing, visualization)
│ │ ├── main.py # Main script python file to run the pre-trained model
│ ├── requirements.txt # Python dependencies for ML
│ ├── venv/ # Virtual environment for ML
│ ├── .gitignore # Ignore unnecessary files (e.g., model weights, virtual env)
│ └── README.md # ML model documentation
├── docker-compose.yaml # Docker Compose file (if containerizing)
├── Dockerfile # Dockerfile for backend (if containerizing)
├── .gitignore # Global .gitignore file
├── LICENSE # License file
└── README.md # Main project documentation
Test Loss: 0.0244, Accuracy: 0.9918
Classification Report:
precision recall f1-score support
3_long_blade_rotor 0.99 0.99 0.99 72
3_short_blade_rotor 0.99 0.96 0.98 85
Bird 1.00 1.00 1.00 76
Bird+mini-helicopter 1.00 1.00 1.00 78
drone 1.00 1.00 1.00 85
rc_plane 0.98 1.00 0.99 90
accuracy 0.99 486
macro avg 0.99 0.99 0.99 486
weighted avg 0.99 0.99 0.99 486
Loss Curve
Accuracy Curve
F1 score Curve
-
Fork the repository
-
Create a new branch:
git checkout -b feature
-
Make your changes
-
Add your changes:-
git add <filename>
-
Commit your changes:
git commit -m 'Add new feature'
-
Push to the branch:
git push origin feature
-
Create a new Pull Request