Tempestmars commited on
Commit
68769c1
·
verified ·
1 Parent(s): 42bc6c3

Upload README.md

Browse files
Files changed (1) hide show
  1. README.md +122 -4
README.md CHANGED
@@ -2,10 +2,128 @@
2
  license: cc-by-nc-sa-4.0
3
  language:
4
  - en
5
- base_model:
6
- - Ultralytics/YOLOv8
7
- pipeline_tag: object-detection
8
  tags:
 
 
9
  - piedflycatcher
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10
  ---
11
- CatchtheCatcher.pt is a detection model for pied flycatcher vocalisations using spectrograms. And piedflycatcher_population-identification.pt is a classification model to identify pied flycatcher songs into one of eight European populations.
 
 
 
 
2
  license: cc-by-nc-sa-4.0
3
  language:
4
  - en
 
 
 
5
  tags:
6
+ - object-detection
7
+ - bioacoustics
8
  - piedflycatcher
9
+ - ornithology
10
+ - spectrogram
11
+ - wildlife-monitoring
12
+ pipeline_tag: object-detection
13
+ ---
14
+
15
+ # CatchtheCatcher
16
+
17
+ **Author:** Quanxiao Liu, Stockholm University
18
+ **License:** CC-BY-NC-SA 4.0
19
+
20
+ ## Overview
21
+
22
+ CatchtheCatcher is a two-model pipeline for automated detection and population-level classification of pied flycatcher (*Ficedula hypoleuca*) vocalisations from field recordings. The pipeline accepts audio recordings as input, converts them to spectrograms, and applies the two models sequentially: first to detect vocalisation events, then to assign each detected song to one of eight European breeding populations.
23
+
24
+ ---
25
+
26
+ ## Models
27
+
28
+ ### 1. `CatchtheCatcher.pt` — Vocalisation Detection
29
+
30
+ A YOLOv8-based object detection model fine-tuned to localise pied flycatcher vocalisation events in spectrogram images.
31
+
32
+ | Property | Detail |
33
+ |---|---|
34
+ | Architecture | YOLOv8 (fine-tuned from [Ultralytics/YOLOv8](https://huggingface.co/Ultralytics/YOLOv8)) |
35
+ | Input | 640 × 640 px spectrogram images (PNG) |
36
+ | Output | Bounding boxes over vocalisation events |
37
+ | Training data | Field recordings from Tovetorp, Sweden |
38
+ | Training epochs | 100 |
39
+
40
+ **Performance (validation set):**
41
+
42
+ | Metric | Value |
43
+ |---|---|
44
+ | mAP50 | 94.0% |
45
+ | Precision | 88.8% |
46
+ | Recall | 88.4% |
47
+
48
+ All losses (box, cls, dfl) converge smoothly by epoch 100 with no signs of overfitting.
49
+
50
+ ---
51
+
52
+ ### 2. `piedflycatcher_population-identification.pt` — Population Classification
53
+
54
+ A classification model that assigns detected pied flycatcher songs to one of eight European breeding populations based on spectrogram features.
55
+
56
+ | Property | Detail |
57
+ |---|---|
58
+ | Architecture | YOLOv8 (fine-tuned from [Ultralytics/YOLOv8](https://huggingface.co/Ultralytics/YOLOv8)) |
59
+ | Input | Spectrogram of a detected song segment (640 × 640 px) |
60
+ | Output | Population label (one of 8 classes) |
61
+ | Training data | 200–500 songs per population (see below) |
62
+
63
+ **Populations:**
64
+
65
+ | # | Population / Site | Country |
66
+ |---|---|---|
67
+ | 1 | Dartmoor | United Kingdom |
68
+ | 2 | De Hoge Veluwe | Netherlands |
69
+ | 3 | Drenthe | Netherlands |
70
+ | 4 | Finland | Finland |
71
+ | 5 | La Hiruela | Spain |
72
+ | 6 | Lund | Sweden |
73
+ | 7 | Tovetorp | Sweden |
74
+ | 8 | Valsain | Spain |
75
+
76
+ **Performance:** Evaluated via confusion matrix on held-out test songs. Confusion matrix available on request.
77
+
78
+ ---
79
+
80
+ ## Intended Use
81
+
82
+ This pipeline is intended for researchers studying pied flycatcher biogeography, population structure, and vocal dialects. It may also be used for passive acoustic monitoring of pied flycatcher breeding populations across Europe.
83
+
84
+ **Not intended for:** Species identification (the detector assumes recordings contain pied flycatcher vocalisations), real-time deployment, or populations outside the eight training sites without validation.
85
+
86
+ ---
87
+
88
+ ## How to Use
89
+
90
+ ```python
91
+ from ultralytics import YOLO
92
+
93
+ # Step 1: detect vocalisations in a spectrogram
94
+ detector = YOLO("CatchtheCatcher.pt")
95
+ results = detector("your_spectrogram.png")
96
+
97
+ # Step 2: classify detected crops into populations
98
+ classifier = YOLO("piedflycatcher_population-identification.pt")
99
+ # Pass cropped detections from step 1 to the classifier
100
+ ```
101
+
102
+ Spectrograms should be generated at 640 × 640 px with the following parameters:
103
+
104
+ ```python
105
+ n_fft = 1024 # STFT window length
106
+ hop_length = 512 # hop length
107
+ window_type = 'hann'
108
+ fmin = 100 # Hz
109
+ fmax = 10000 # Hz
110
+ ```
111
+
112
+ ---
113
+
114
+ ## Citation
115
+
116
+ If you use CatchtheCatcher in your research, please cite:
117
+
118
+ ```
119
+ Liu, Q. (2025). CatchtheCatcher: Detection and population classification model
120
+ for pied flycatcher (Ficedula hypoleuca) vocalisations [Model].
121
+ Stockholm University. Hugging Face.
122
+ https://huggingface.co/Tempestmars/CatchtheCatcher
123
+ ```
124
+
125
  ---
126
+
127
+ ## License
128
+
129
+ This model is released under [CC-BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/). You are free to share and adapt the material for non-commercial purposes, provided appropriate credit is given and derivatives are shared under the same license.