Skip to content
 
 

Latest commit

 

History

162 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Vanguard Defense Internship Project

Military Aircraft Detection & Classification with YOLO

Computer vision research and model development for detecting and classifying military aircraft from imagery, completed as a multi-week defense AI internship project.

Python Ultralytics PyTorch Jupyter


Overview

This repository documents a five-week computer vision project focused on military aircraft recognition. The work progresses from surveying defense-relevant datasets and preparing training data to fine-tuning YOLO-based object-detection models and experimenting with a separate aircraft-classification pipeline.

The project began with broad research into overhead imagery, ISR, RF/waveform, SAR, and radar datasets. It then narrowed to the Military Aircraft Detection Dataset, where aircraft imagery and annotations were prepared for YOLO training.

By the end of the project, the team had:

  • Researched and documented multiple aerospace, ISR, RF, SAR, and radar datasets.
  • Prepared YOLO-compatible aircraft datasets and train/validation splits.
  • Built an initial detector around nine U.S. military aircraft classes.
  • Fine-tuned YOLO models and experimented with hyperparameter tuning.
  • Identified and corrected an early bounding-box labeling problem.
  • Expanded detection training from a small aircraft subset to 80+ aircraft types using the dataset's original annotations.
  • Explored a separate large-scale aircraft classification workflow.
  • Produced trained weights, notebooks, preprocessing utilities, reports, and training-result visualizations.

Project Pipeline

Dataset Research
      ↓
Dataset Selection
      ↓
Download + Cleaning
      ↓
Annotation Conversion
      ↓
Train / Validation Split
      ↓
YOLO Fine-Tuning
      ↓
Hyperparameter Experiments
      ↓
Detection Evaluation
      ↓
Expanded 80+ Class Training
      ↓
Aircraft Classification Experiments

Development Timeline

Week 1 · Dataset Research

The first phase explored data sources relevant to defense-oriented computer vision and sensing.

Areas investigated included:

  • Drone / overhead / ISR imagery
  • Military aircraft imagery
  • Optical satellite imagery
  • SAR imagery
  • RF signal and waveform datasets
  • Automotive and scene radar datasets

Examples documented in the repository include UAVDT, VisDrone, DOTA, Noisy Drone RF, TorchSig, RadioML, BigEarthNet, MAR20, HRSID, RADIATE, RadarScenes, and the Military Aircraft Detection Dataset.

See week 1/.

Week 2 · Aircraft Data Exploration

Aircraft imagery and annotation samples were collected and inspected for classes including the F-15, F-16, and F/A-18. The repository contains example image sets and both standard and oriented bounding-box label formats used during the exploration stage.

See week 2/.

Week 3 · Data Preparation

The team prepared a YOLO-ready dataset by organizing aircraft images, generating labels, and creating the train/validation split required for training.

The initial target set contained nine U.S. military aircraft:

Class Aircraft
0 F-15
1 F-16
2 F/A-18
3 F-22
4 F-35
5 B-1
6 B-2
7 C-17
8 C-130

Roughly 9,000 images were prepared during this stage.

See week 3/Preparing_the_Data_Week3.ipynb.

Week 4 · YOLO Fine-Tuning

Each team member ran individual fine-tuning experiments using the Week 3 dataset. The work included:

  • Pretrained YOLO model initialization
  • Dataset configuration
  • Hyperparameter tuning
  • Training and validation
  • Model comparison and documentation

The team reported approximately 95% average accuracy during the initial experiments. However, the early dataset-generation method labeled the entire cropped image as the aircraft bounding box. This inflated the usefulness of the early result for true localization, and the issue was explicitly identified for correction.

My individual notebook includes an experiment focused on F-15, F-16, and F/A-18 imagery.

See week 4/Tanuj Ranjith/.

Week 5 · Full Detection + Classification

The final detection phase switched to the dataset's existing annotations instead of treating the full image as the bounding box. CSV annotations were converted into YOLO-compatible text labels, and the model was trained on the full dataset with 80+ aircraft types.

Training was performed in multiple stages, beginning with 20 epochs and continuing for another 20 epochs after the model was still improving.

The final week also contains a separate aircraft-classification experiment and preprocessing utilities written in both Python and Go.

See:


Results

The Week 5 detection directory contains the final training notebooks, model weights, and Ultralytics training plots.

YOLO training results

Model artifacts currently included in the repository:


Repository Structure

vanguard-defense-internship-project/
├── week 1/
│   ├── README.md
│   ├── datasets.csv
│   └── datasets/
│       ├── dataset configuration files
│       └── conversion / generation scripts
│
├── week 2/
│   ├── F15/
│   ├── F16/
│   └── F18/
│       ├── images
│       └── labels
│
├── week 3/
│   ├── README.md
│   └── Preparing_the_Data_Week3.ipynb
│
├── week 4/
│   ├── README.md
│   ├── Tanuj Ranjith/
│   ├── Faisal Durbaa/
│   └── philip/
│
├── week 5/
│   └── detection/
│       ├── YOLOv8_Fine_Tuning_*.ipynb
│       ├── best.pt
│       └── results.png
│
└── week5/
    ├── classfication/
    │   ├── cls-large-model-training.ipynb
    │   └── example outputs
    └── scripts/
        ├── Go preprocessing utilities
        └── Python helpers

Tech Stack

Technology Use
Python Dataset preparation, training, preprocessing, experimentation
Ultralytics YOLO Object detection and model fine-tuning
PyTorch Deep-learning backend
Jupyter / Colab Interactive experimentation and training notebooks
Kaggle / KaggleHub Dataset acquisition
split-folders Train/validation dataset splitting
YAML YOLO dataset configuration
Go High-speed preprocessing and dataset utility scripts

Quick Start

1. Clone the repository

git clone https://github.com/tanujranjith/vanguard-defense-internship-project.git
cd vanguard-defense-internship-project

2. Create a Python environment

python -m venv .venv

Activate it, then install the main project dependencies:

pip install ultralytics torch torchvision kagglehub split-folders pandas pyyaml jupyter

3. Explore the notebooks

jupyter notebook

The project was developed experimentally across multiple weeks, so paths inside older notebooks may need to be updated for your local machine or Colab environment.

4. Run inference with a trained detector

from ultralytics import YOLO

model = YOLO("week 5/detection/best.pt")
results = model("path/to/aircraft-image.jpg")
results[0].show()

Key Engineering Lessons

Annotation quality matters more than headline accuracy

The Week 4 experiment exposed an important failure mode: because cropped images were automatically labeled with boxes covering the entire frame, a model could obtain a strong metric without learning precise aircraft localization. The later workflow corrected this by using the dataset's original bounding-box annotations.

Detection and classification solve different problems

The project evolved into two related tasks:

  • Detection: locate aircraft in an image and identify their type.
  • Classification: classify an already isolated aircraft image into a type.

Keeping these pipelines separate makes evaluation more meaningful and allows each model to be optimized for its own task.

Scaling classes changes the problem

Moving from a small set of visually distinct U.S. aircraft to more than 80 aircraft types substantially increases class similarity, imbalance, and fine-grained recognition difficulty. The Week 5 work reflects that shift from a proof of concept toward a broader recognition system.


Limitations

  • The repository is an internship/research project rather than a production inference service.
  • Dataset downloads are large and are not fully stored in the repository.
  • Some notebooks contain environment-specific paths from Windows or Google Colab.
  • Early Week 3/4 labels used full-image bounding boxes and should not be treated as high-quality localization ground truth.
  • The repository currently does not include a single pinned dependency file or reproducible end-to-end training command.

Authors

Project work includes contributions from:

  • Tanuj Ranjith
  • Faisal Durbaa
  • Philip

Developed as part of the Vanguard Defense internship project.


From dataset research to fine-grained military aircraft recognition.

About

Defense AI internship project exploring military aircraft detection and classification using YOLO, computer vision, dataset engineering, annotation conversion, hyperparameter tuning, and model fine-tuning. Progressed from defense dataset research to training detection and classification models across 80+ aircraft types.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages