Skip to content

SIH (Smart India Hackathon) 2024, PS: SIH1606, Micro-Doppler Based Target Classification

License

Notifications You must be signed in to change notification settings

Incharajayaram/Micro-Classify

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Micro-Classify

Team Name: RadarVision
ID: 39446

Web App 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 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: DIAT-mSAT dataset provided by DRDO
  2. Size 6 classes with 4849 samples in total
  3. Classes: Drones, bird, RC Planes, Long Blade Rotor, Short Blade Rotor, Bird + Mini-Helicopter
  4. Preprocessing:
    • Spectrogram generation
    • Noise reduction and normalization
    • Window Slicing, Window Warping and Jittering
  5. Challenges:
    • Class imbalance resolved using ACGANs.
    • High computational resource requirements for real time processing

Deployment

  • Platform: Hosted on AWS EC2.
  • Containerization: Docker ensures scalability and reproducibility.
  • API Access: Interactive API built using Flask.
  • Raspberry PI 5: Built a data pipeline to stream spectrograms and showcase results on raspberry pi 5, by deploying the ml model on it.

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: 12.8 ms

  • Architecture:
    image

  • ROC curve:
    image

  • Confusion Matrix:
    image

References

  • Research papers on micro-Doppler based target classification.
  • Pytorch and Scikit-Learn official 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

Notebook Content

notebook[1].ipynb: contains vgg16, vgg19, custom cnn models architecture, training, metrics.
customCNNWithAtt.ipynb: contains cnn + attention mechanisms, cnn + lstm, cnn + lstm with attention mechanism models architecture, training and metrics.
vgg+attention.ipynb: contains vgg19 + attention mechanisms model architecture, training and metrics.
notebook[5].ipynb: contains architecture diagrams, visualizations, inferences of different models and their confusion matrices.

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

About

SIH (Smart India Hackathon) 2024, PS: SIH1606, Micro-Doppler Based Target Classification

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •