| --- |
| 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-b4 |
| datasets: |
| - dcskycam/helicopter-classification |
| --- |
| |
| # DCSkyCam Helicopter Binary Classifier |
|
|
| A TensorFlow Lite model that classifies cropped images of sky objects as **helicopter** or **not_helicopter**. |
| |
| 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-B4 (transfer learning via TensorFlow Hub `make_image_classifier` tool) | |
| | Input size | 224 × 224 RGB | |
| | Output | 2 classes: `helicopter`, `not_helicopter` | |
| | Format | TensorFlow Lite (`.tflite`) | |
| | Quantization | Post-training float16 quantization | |
| | File size | ~70 MB | |
| |
| ## Intended Use |
| |
| This model is designed to filter objects detected by the SSD MobileNet object detector in the DCSkyCam pipeline. When a candidate region is identified, this classifier determines whether it contains a helicopter before proceeding to type identification. |
| |
| **Intended for:** Sky monitoring, aviation observation, automated photography systems. |
|
|
| **Not intended for:** Safety-critical applications, weapon systems, or any use that could cause harm. |
|
|
| ## Training Details |
|
|
| - **Base model:** EfficientNet-B4 feature vector |
| - **Training tool:** TensorFlow Hub `make_image_classifier` with transfer learning |
| - **Positive samples:** 3,374 helicopter images |
| - **Negative samples:** 2,755 non-helicopter images (birds, clouds, aircraft, ground objects) |
| - **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 | |
| |-------|-----------|--------|-----| |
| | helicopter | 0.9750 | 1.0000 | 0.9873 | |
| | not_helicopter | 1.0000 | 0.9667 | 0.9831 | |
| | **Macro Avg** | **0.9875** | **0.9833** | **0.9852** | |
| |
| Overall accuracy: **98.6%** |
| |
| ## 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 degrade with significantly different lighting conditions (dusk/dawn/night) |
| - Small or distant helicopters that appear as tiny pixels may not be classified reliably |
| - The model was trained on a relatively small dataset (~6,100 images) |
| |
| ## 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). |
| |
| ## 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-B4) is derived from TensorFlow Hub and subject to its own license terms. |
| |