Skip to content

Latest commit

 

History

History
188 lines (124 loc) · 5.99 KB

README.md

File metadata and controls

188 lines (124 loc) · 5.99 KB

Micro-Classify

Team Name: RadarVision
ID: 39446

Web App Repository

Prototype Repository

Introduction

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.

Problem Statement

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.

The primary challenges include:

  1. Variability in micro-Doppler signatures across radar bands.
  2. Imbalanced and limited datasets.
  3. Achieving real-time, high-accuracy predictions.

Solution Overview

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.

Dataset

  1. Source: Radio Micro-Doppler signatures
  2. Size [Datasetsize] with [number] samples
  3. Classes: Drones, birds and other Ariel targets
  4. Preprocessing:
    • Spectrogram generation
    • Noise reduction and normalization
  5. Challenges:
    • Class imbalance resolved using ACGANs.
    • Multi-band radar data (L, S, C, X bands) managed through branch-specific tuning.

Deployment

  • Platform: Hosted on AWS EC2.
  • Containerization: Docker ensures scalability and reproducibility.
  • API Access: Interactive API built using Flask.

Evaluation Metrics

  • 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.

Results

  • Accuracy: 99.18%
  • F1-Score: 0.99
  • Latency: [Insert Time]
  • Visualizations:
  • ROC curve
  • Confusion Matrix

References

  • Research papers on micro-Doppler radar classification.
  • TensorFlow and Keras official documentation.
  • Flask and Docker documentation.

Contributors

Inchara J

Shravya H Jain

Diptangshu Bej

Anand Raut

Likith Manjunatha

Chethan A C

Tech Stack

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.

Project Structure

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

Model Metrics

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

Graphs

Loss Curve
image
Accuracy Curve
image
F1 score Curve
image

Web App

image

Contributing

  1. Fork the repository

  2. Create a new branch:

    git checkout -b feature
  3. Make your changes

  4. Add your changes:-

    git add <filename>
  5. Commit your changes:

    git commit -m 'Add new feature'
  6. Push to the branch:

    git push origin feature
  7. Create a new Pull Request