🐦 EfficientNet-B7 β€” Backyard Feeder Bird Classifier

Custom ONNX-based bird classification model trained on a filtered subset of the NABirds dataset, optimized for backyard bird feeders.

Designed to run on a Raspberry Pi + Hailo-8 setup in real-time as part of the Birdwatcher Project


🧠 Model Details

  • Architecture: EfficientNet-B7
  • Resolution: 600Γ—600
  • Precision: Mixed (AMP)
  • Format: ONNX
  • Classes: 95 backyard species + not_a_bird
  • Validation Accuracy: 93.14% @ Epoch 23
  • Optimized for inference on edge devices (e.g., Raspberry Pi 5 + Hailo-8)

πŸ“ Files

  • efficientnet_b7_backyard_feeder_birds.onnx β€” Trained ONNX model
  • class_labels_v3.txt β€” One class label per line

πŸ› οΈ Intended Use

  • Use Case: Real-time fine-grained classification of birds visiting backyard feeders
  • Hardware: Optimized for Raspberry Pi + Hailo-8 AI accelerator
  • Pipeline: Captures images via YOLOv8 detection, then classifies via this model

🐍 Example Inference Code

import onnxruntime as ort
import numpy as np
from PIL import Image

# Load model
session = ort.InferenceSession("efficientnet_b7_backyard_feeder_birds.onnx")

# Preprocess
img = Image.open("bird.jpg").resize((600, 600))
x = np.array(img).astype(np.float32) / 255.0
x = np.transpose(x, (2, 0, 1))[np.newaxis, :]  # CHW + batch

# Predict
outputs = session.run(None, {"input": x})
pred_idx = np.argmax(outputs[0])

πŸ“Š Training

  • Dataset: Subset of NABirds (filtered for common backyard species)
  • Augmentations: Flip, rotation, brightness
  • Regularization: Dropout, label smoothing
  • Loss: Cross-entropy
  • Optimizer: AdamW
  • Early stopping enabled

πŸ”— Related Repos


πŸ“œ License

GPLv3

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support