Instructions to use synthet/bird-detect-v0 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- ultralytics
How to use synthet/bird-detect-v0 with ultralytics:
from huggingface_hub import hf_hub_download from ultralytics import YOLO # pick the weights file from this repo's "Files and versions" tab weights = hf_hub_download("synthet/bird-detect-v0", "<weights>.pt") model = YOLO(weights) source = 'http://images.cocodataset.org/val2017/000000039769.jpg' model.predict(source=source, save=True) - Notebooks
- Google Colab
- Kaggle
Add bird_detect_v1 (CUB + teacher pseudo-labels); model card documents v0 and v1
Browse files- README.md +91 -61
- bird_detect_v1.pt +3 -0
README.md
CHANGED
|
@@ -1,61 +1,91 @@
|
|
| 1 |
-
---
|
| 2 |
-
license: mit
|
| 3 |
-
tags:
|
| 4 |
-
- ultralytics
|
| 5 |
-
- yolo11
|
| 6 |
-
- object-detection
|
| 7 |
-
- wildlife
|
| 8 |
-
- bird
|
| 9 |
-
library_name: ultralytics
|
| 10 |
-
base_model: ultralytics/yolo11n
|
| 11 |
-
datasets:
|
| 12 |
-
- synthet/image-scoring-model
|
| 13 |
-
---
|
| 14 |
-
|
| 15 |
-
# bird-detect
|
| 16 |
-
|
| 17 |
-
YOLO11n detect
|
| 18 |
-
Companion to [synthet/eye-pose-v0](https://huggingface.co/synthet/eye-pose-v0) for subject localization
|
| 19 |
-
when eye keypoints are not required (species crops, gating, counting).
|
| 20 |
-
|
| 21 |
-
Used with the [image-scoring-model](https://github.com/synthet/image-scoring-model) `eye-quality detect` CLI.
|
| 22 |
-
|
| 23 |
-
|
| 24 |
-
|
| 25 |
-
|
|
| 26 |
-
|
|
| 27 |
-
|
| 28 |
-
|
| 29 |
-
|
| 30 |
-
|
| 31 |
-
-
|
| 32 |
-
|
| 33 |
-
|
| 34 |
-
|
| 35 |
-
|
| 36 |
-
|
| 37 |
-
|
| 38 |
-
|
| 39 |
-
|
| 40 |
-
|
| 41 |
-
|
| 42 |
-
|
| 43 |
-
|
| 44 |
-
|
| 45 |
-
|
| 46 |
-
|
| 47 |
-
|
| 48 |
-
|
| 49 |
-
|
| 50 |
-
|
| 51 |
-
|
| 52 |
-
|
| 53 |
-
|
| 54 |
-
|
| 55 |
-
|
| 56 |
-
|
| 57 |
-
|
| 58 |
-
|
| 59 |
-
|
| 60 |
-
|
| 61 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
license: mit
|
| 3 |
+
tags:
|
| 4 |
+
- ultralytics
|
| 5 |
+
- yolo11
|
| 6 |
+
- object-detection
|
| 7 |
+
- wildlife
|
| 8 |
+
- bird
|
| 9 |
+
library_name: ultralytics
|
| 10 |
+
base_model: ultralytics/yolo11n
|
| 11 |
+
datasets:
|
| 12 |
+
- synthet/image-scoring-model
|
| 13 |
+
---
|
| 14 |
+
|
| 15 |
+
# bird-detect (v0, v1)
|
| 16 |
+
|
| 17 |
+
YOLO11n detect models for bird bounding boxes (single class `bird`).
|
| 18 |
+
Companion to [synthet/eye-pose-v0](https://huggingface.co/synthet/eye-pose-v0) for subject localization
|
| 19 |
+
when eye keypoints are not required (species crops, gating, counting).
|
| 20 |
+
|
| 21 |
+
Used with the [image-scoring-model](https://github.com/synthet/image-scoring-model) `eye-quality detect` CLI.
|
| 22 |
+
|
| 23 |
+
| File | What | Use |
|
| 24 |
+
|---|---|---|
|
| 25 |
+
| `bird_detect_v1.pt` | **v1** (2026-09-27): v0 fine-tuned on CUB plus teacher pseudo-labels from real field photos | Recommended |
|
| 26 |
+
| `bird_detect_v0.pt` | v0: CUB-200-2011 only | Kept for reproducibility |
|
| 27 |
+
|
| 28 |
+
## Class
|
| 29 |
+
|
| 30 |
+
| Index | Name |
|
| 31 |
+
|------:|------|
|
| 32 |
+
| 0 | bird |
|
| 33 |
+
|
| 34 |
+
## v1
|
| 35 |
+
|
| 36 |
+
**Why.** v0 learned from CUB's well-framed, centred birds. On long-lens field frames it missed most small or
|
| 37 |
+
distant birds and had never seen a bird-free frame.
|
| 38 |
+
|
| 39 |
+
**Training.**
|
| 40 |
+
- **Start:** `bird_detect_v0.pt`, fine-tuned 30 epochs (imgsz 640, batch 16, lr0 0.002).
|
| 41 |
+
- **Data:** CUB-200-2011 boxes (10,018 train images) plus **803 teacher-labelled field frames** listed 5× per
|
| 42 |
+
epoch (29% of each epoch):
|
| 43 |
+
- 455 bird boxes and 385 bird-free frames;
|
| 44 |
+
- labelled by the upstream Apache-2.0 **RTMDet-tiny COCO** detector used as a teacher (full frame plus 2×2
|
| 45 |
+
tiles; only COCO `bird` ≥ 0.50 makes a box; anything ambiguous is excluded);
|
| 46 |
+
- thresholds calibrated on an owner-labelled cohort whose folders are excluded from training.
|
| 47 |
+
- **Validation (CUB val + teacher val, final epoch):** mAP50 0.994, mAP50-95 0.878, precision 0.991,
|
| 48 |
+
recall 0.982. Not comparable with v0's CUB-only validation numbers: the set now includes harder field frames.
|
| 49 |
+
|
| 50 |
+
**Field evaluation** (339-frame owner-labelled cohort from a wildlife library, never used in training;
|
| 51 |
+
presence per frame, Wilson 95% intervals):
|
| 52 |
+
|
| 53 |
+
| Frames | v0 | v1 |
|
| 54 |
+
|---|---|---|
|
| 55 |
+
| Birds v0 missed (78 bird frames): recall | 0% (0-5%) | **81% (71-88%)** |
|
| 56 |
+
| Bird-free frames among them (71): false positives | 0% (0-5%) | 7% (3-15%) |
|
| 57 |
+
| Frames v0 detected, with a bird (101): recall | 100% | 98% (93-99%) |
|
| 58 |
+
| Frames v0 detected wrongly (28 bird-free): still fire | 100% | **50% (33-67%)** |
|
| 59 |
+
| Small birds (< 4% of frame, 48): recall | 100% | 100% |
|
| 60 |
+
|
| 61 |
+
## v0 training
|
| 62 |
+
|
| 63 |
+
- **Base:** YOLO11n (`yolo11n.pt`)
|
| 64 |
+
- **Dataset:** CUB-200-2011 boxes via `data/wildlife_bird_det` (~10k train / 1.7k val)
|
| 65 |
+
- **Epochs:** 100 (imgsz 640, batch 16)
|
| 66 |
+
- **Final validation (epoch 100):** Box mAP50 0.994, mAP50-95 0.892, precision 0.993, recall 0.997
|
| 67 |
+
|
| 68 |
+
## Usage
|
| 69 |
+
|
| 70 |
+
```python
|
| 71 |
+
from ultralytics import YOLO
|
| 72 |
+
|
| 73 |
+
model = YOLO("hf://synthet/bird-detect-v0/bird_detect_v1.pt")
|
| 74 |
+
results = model.predict("bird.jpg", imgsz=640)
|
| 75 |
+
```
|
| 76 |
+
|
| 77 |
+
Or with the `eye_quality` package:
|
| 78 |
+
|
| 79 |
+
```bash
|
| 80 |
+
pip install -e "git+https://github.com/synthet/image-scoring-model.git"
|
| 81 |
+
huggingface-cli download synthet/bird-detect-v0 bird_detect_v1.pt --local-dir models/
|
| 82 |
+
python -m eye_quality detect bird.jpg --weights models/bird_detect_v1.pt
|
| 83 |
+
```
|
| 84 |
+
|
| 85 |
+
## Limitations
|
| 86 |
+
|
| 87 |
+
- Single-class bird boxes only; not a multi-species detector.
|
| 88 |
+
- v1's field data comes from one photographer's library (North American birds, long lens); validate on yours.
|
| 89 |
+
- The teacher excludes very small, silhouetted or occluded birds rather than labelling them, so those remain weak.
|
| 90 |
+
- CUB labels are typically one bird per image; crowded frames need care.
|
| 91 |
+
- CUB-200-2011 is a research dataset; check its terms for your use.
|
bird_detect_v1.pt
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:6d09339fb3286c8d10395c29e3b0c14da92d86be5c9d4753c38d4a2ef2e447ba
|
| 3 |
+
size 5445786
|