| --- |
| pipeline_tag: image-classification |
| library_name: tensorflow |
| tags: |
| - object-detection |
| - helicopter |
| - tflite |
| - transfer-learning |
| - efficientnet |
| - efficientnet-v2 |
| - image-classification |
| license: apache-2.0 |
| base_model: google/efficientnet-v2 |
| datasets: |
| - dcskycam/helicopter-classification |
| --- |
| |
| # 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](https://github.com/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](https://huggingface.co/dcskycam/heli-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](https://huggingface.co/datasets/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: |
|
|
| ```bibtex |
| @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](https://www.apache.org/licenses/LICENSE-2.0) for details. The base model (EfficientNet V2) is derived from Google's EfficientNet and subject to its own license terms. |
|
|