DCSkyCam Helicopter Type Classifier
A TensorFlow Lite model that classifies cropped images of helicopters into specific helicopter types.
This model is part of the DCSkyCam project - an AI-enabled sky monitoring system built on Raspberry Pi that automatically detected and identified helicopters in its field of view.
Model Overview
| Property | Value |
|---|---|
| Architecture | EfficientNet V2 (transfer learning via TensorFlow Hub make_image_classifier tool) |
| Input size | 480 × 480 RGB |
| Output | 10 classes (see labels below) |
| Format | TensorFlow Lite (.tflite) |
| Quantization | Post-training float16 quantization |
| File size | ~211 MB |
Classes
| Index | Label | Description | Training Samples |
|---|---|---|---|
| 0 | AS350 | Eurocopter AS350 | 1,348 |
| 1 | AW139 | Leonardo AW139 | 41 |
| 2 | B412 | Bell 412 | 487 |
| 3 | EC35 | Eurocopter EC135 / H135 | 31 |
| 4 | H60 | Sikorsky UH-60 Black Hawk / SH-60 Seahawk | 1,060 |
| 5 | MH65 | Coast Guard MH/HH-65 Dolphin | 771 |
| 6 | UH1N | Bell UH-1N Huey | 2,761 |
| 7 | Unknown | Unidentified helicopter type | 136 |
| 8 | VH3D | Presidential transport version of the Sikorsky SH-3 Sea King | 161 |
| 9 | VH92 | Presidential transport version of the Sikorsky S-92 Helibus | 346 |
Intended Use
This model identifies the specific type of helicopter after it has been confirmed as a helicopter by the binary classifier. It was used in the DCSkyCam pipeline for aviation observation and data collection.
Intended for: Aviation observation, helicopter type identification, automated photography systems.
Not intended for: Safety-critical applications, weapon systems, or any use that could cause harm.
Training dataset
- dcskycam/helicopter-classification
- Note: A small number of additional copyrighted images (<100) were used for training but are also excluded from the dataset published to HF for licensing reasons.
Performance
| Class | Precision | Recall | F1 |
|---|---|---|---|
| AS350 | 0.8750 | 1.0000 | 0.9333 |
| B412 | 1.0000 | 1.0000 | 1.0000 |
| H60 | 1.0000 | 1.0000 | 1.0000 |
| MH65 | 1.0000 | 1.0000 | 1.0000 |
| UH1N | 1.0000 | 1.0000 | 1.0000 |
| Unknown | 1.0000 | 0.8333 | 0.9091 |
| VH3D | 1.0000 | 1.0000 | 1.0000 |
| VH92 | 1.0000 | 1.0000 | 1.0000 |
| Macro Avg | 0.9844 | 0.9792 | 0.9803 |
Overall accuracy: 97.4%
Note: AW139 and EC35 have no test samples in the evaluation set.
Limitations & Biases
- Trained on images captured from a fixed camera position with Raspberry Pi HQ Camera and wide-angle lens. Model output will likely drop on other image sources.
- Performance may vary with significantly different lighting conditions (dusk/dawn/night)
- Small or distant helicopters that appear as tiny pixels may not be classified reliably
- The "Unknown" class captures all helicopter types not explicitly represented in the training data (e.g., S76, Bell 206)
Usage
This model was intended to be used with the TensorFlow Lite (TFLite) runtimes and Python 3.11. TFLite has been deprecated. As the DCSkycam project has concluded, there will not be a migration to the newer LiteRT interpreter.
The repository includes an inference.py file with a sample implementation that has been tested on desktop (OSX) and a Raspberry Pi 5 device (Trixie 64-bit).
Per-Class Confidence Thresholds
The DCSkyCam production system used per-class confidence thresholds to reduce false positives:
| Class | Threshold |
|---|---|
| AS350 | 0.89 |
| AW139 | 0.90 |
| B412 | 0.80 |
| EC35 | 0.90 |
| H60 | 0.89 |
| MH65 | 0.80 |
| UH1N | 0.89 |
| VH3D | 0.90 |
| VH92 | 0.90 |
Citation
If you use this model in your research, please cite the DCSkyCam project:
@misc{dcskycam2024,
title = {DCSkyCam: AI-Enabled Sky Monitoring System},
author = {DCSkyCam Contributors},
year = {2024},
url = {https://github.com/dcskycam}
}
License
This project is licensed under the Apache License 2.0 — see LICENSE for details. The base model (EfficientNet V2) is derived from Google's EfficientNet and subject to its own license terms.
- Downloads last month
- 8