# Civic Sensing 08.03.2024 ## Machine Learning ### Schnittstelle Citizen Science Cedric Spindler
mitwelten.org | FHNW ---- ## Machine Learning: Anwendungen, Ziele _Automatisierung der Klassifikation von Spezies in Audio- und Bildaufnahmen_ - _BirdNET_: Vogelstimmen (Audio) - _Flowers/Pollinators_: Bestäuber-Morphospezies (Bilder) - _BatDetect2_: Fledermausrufe (Audio) Notes: - Für welchen Zweck setzten wir bei Mitwelten Machine Learning ein? - Welche konkreten Anwendungen sind im Einsatz? ---- ## Machine Learning: Stationen
- Welche Schritte sind notwendig, um ein Machine Learning Modell zu trainieren und anzuwenden? - Welche Herausforderungen ergeben sich in den einzelnen Schritten?
Beispiel: Idenitfikation von Fledermausrufen mit BatDetect2
```mermaid graph TD A[Datensammlung] --> B[Datenaufbereitung] B --> C[Modellierung] C --> D[Anwendung] D --> E[Ergebnisse] E -->|Validierung| B ```
Notes: - Welche Schritte sind notwendig, um ein Machine Learning Modell zu trainieren und anzuwenden? - Welche Herausforderungen ergeben sich in den einzelnen Schritten? - Wie können wir die Qualität der Modelle sicherstellen? - Welche Infrastrukturen und Services werden benötigt? - Welche Tools und Anleitungen benötigen die Citizen Scientists? - Wie können wir die Citizen Scientists in die Entwicklung und Anwendung von Machine Learning Modellen einbinden? - Wie können wir die Citizen Scientists in die Validierung der Modelle einbinden? ---- ## Datensammlung - Aufnahmegeräte (_Audiomoth_) im Feld verteilen ("_Deployment_") - Metadaten erfassen (deploy.mitwelten.org)
#### in regelmässigen Abständen - Batterien wechseln / laden (1x pro Woche) - Aufnahmen einsammeln und Speichermedium wechseln - Aufnahmen auf Mitwelten Server laden ----
 ## Deployment Manager

---- ### Deployments für Fledermaus-Aufnahmen  ---- ## Datensammlung: Details | | | | ----------------- | ---------------------------------------- | | Aufnahmezeitraum | morgens (4-7 UTC) und abends (19-23 UTC) | | Aufnahmeintervall | 1 Minute | | Aufnahmedauer | 55 Sekunden | | Sampling-Frequenz | 250 kHz (für Rufe bis 125 kHz) |
### Feldstudie 3 (2023) - 130,033 Aufnahmen (3.3 TiB, ~84.2 Tage) - 188 mit Dauer < 55s, (0.14%) ---- ### Übersicht der Aufnahmen    ---- ## Datenablage  Mitwelten Audio Uploader (Vögel, Insekten und Fledermäuse) ---- ## Datenablage
Uploader Software: - kontrolliert die Aufnahmen (Vollständigkeit, etc.) - legt die Audio Aufnahmen in S3 Storage ab (__Erreichbarkeit__) - speichert die Metadaten in der Mitwelten Datenbank (__Übersicht__)
- __Metadaten__: - S3 Speicher-URL - Prüfsumme - Zeitstempel - Deployment - Dauer - Seriennummer des Aufnahmegeräts - Dateiformat - Sample Rate - Bitrate - Kanäle - Batteriestand - Temperatur - Aufnahmepegel - Filter-Einstellungen - Aufnahme-Ende-Status
---  ## Machine-Learning: Anwendung ### BatDetect2 - Verarbeitung der Audio-Aufnahmen zu Spektrogrammen - ML-Model Architektur: CNN mit Encoder, Self-Attention-Layer und Decoder, implementiert in _PyTorch_  [macaodha/batdetect2](https://github.com/macaodha/batdetect2/) ---- ### BatDetect2: Datasets Trainiert auf fünf Datasets | Dataset | n Spezies | n Aufnahmen | n Labels | avg Dauer | | --------- | --------- | ----------- | -------- | --------- | | UK | 17 | 2,809 | 34,635 | 1.04 s | | iBats | - | 4,225 | - | 0.384 s | | Yucatan | 17 | 1,193 | 10,020 | 1s | | Australia | 14 | - | 5,896 | - | | Brazil | - | 320 | 9,999 | 10s | ---- ### BatDetect2: Ausgabe Labels für Echoortungsrufe - Anfangs- und Endzeitpunkt - untere und obere Grenze des Frequenzbereichs - Rufart (Echoortungsruf, Sozialruf, etc.) - Spezies mit Wahrscheinlichkeit ---- ---- ## Ansicht der Ausgaben BatDetect2-GUI [live-demo](https://bats.mitwelten.org/annotate/?file_name=3337-4698/2023-09-18/18/3337-4698_2023-09-18T18-12-00Z.wav.json&dataset_id=7652736fe33b1086fdad10a3596ba0ff) ---
## Ablage der Ausgaben Predictions von BatDetect2 werden in der Mitwelten Datenbank abgelegt 13,733,516 Predictions für 17 Spezies | Node | N | M c. | STD c. | |---|---|---|---| | 4597-8048 | 10,679,964 | 0.491 | 0.155 | | 3337-4698 | 1,240,642 | 0.480 | 0.165 | | 1360-7344 | 810,603 | 0.459 | 0.168 |
```mermaid erDiagram RESULT }o--|| TASK : "" RESULT }o--|| FILE : "" TASK }o--|| CONFIG : "" TASK }o--|| FILE : "" %%FILE { %% int file_id pk %% text object_name %% text sha256 %% timestamptz time %% int deployment_id fk %% float duration %% text serial_number %% text format %% int file_size %% int sample_rate %% int bit_depth %% int channels %% float battery %% float temperature %% text gain %% text filter %% text source %% text rec_end_status %%} %%CONFIG { %% int config_id pk %% jsonb config %% text comment %% timestamptz created_at %% timestamptz updated_at %%} %%TASK { %% int task_id pk %% int file_id fk %% int config_id fk %% int state %% timestamptz scheduled_on %% timestamptz pickup_on %% timestamptz end_on %%} RESULT { text class text event int individual float class_prob float det_prob float start_time float end_time float high_freq float low_freq } ```
---- | Spezies | N | M c. | STD c. | |---|---|---|---| |Pipistrellus pipistrellus|8,120,154|0.516|0.137| |Pipistrellus nathusii|1,225,616|0.499|0.188| |Myotis daubentonii|819,759|0.310|0.105| |Pipistrellus pygmaeus|270,740|0.473|0.152| |Barbastellus barbastellus|85,806|0.282|0.107| |Myotis brandtii|55,256|0.221|0.067| |Nyctalus leisleri|41,359|0.269|0.129| |Eptesicus serotinus|30,923|0.275|0.113| |Nyctalus noctula|15,019|0.302|0.122| |Plecotus auritus|4,867|0.242|0.100| |Myotis nattereri|4,267|0.194|0.067| |Myotis mystacinus|3,065|0.168|0.052| |Plecotus austriacus|1,671|0.149|0.057| |Myotis alcathoe|836|0.220|0.075| |Rhinolophus ferrumequinum|343|0.349|0.063| |Myotis bechsteinii|226|0.149|0.057| |Rhinolophus hipposideros|57|0.329|0.026| Notes: - Deployment ID: 715 - Node ID: 4597-8048 - Deployment Period: 27.03.2023 - 29.09.2023 - Description (Location): AM_BirsBat ----
## ML - Pipeline - Datenbank (Metadaten, Tasks und Resultate) - S3 Storage (Audio Aufnahmen) - ML VM mit GPU (BatDetect2, Mitwelten Task Runner, ETL) - Validierung (BatDetect2 GUI)
```mermaid graph TD M[Metadaten-Eintrag] -->|erhält| T[ML-Task] T -->|schedule| R[Task-Runner] R --> W[TensorFlow Worker] A[Audio Aufnahme] -->|download| W W -->|predict and upload| P[Resultat-Eintrag] P --> V[Validierung] ```
--- ## Validierung - Label Studio Plugin für Spektrogramm-Annotation ist in Entwicklung - Citizen Scientists und Experten können die Vorhersagen von BatDetect2 validieren
## Training - Mit Label GUI kann ein neues Datenset erstellt werden - Dast BatDetect2 Modell kann mit neuen Daten trainiert werden --- ## Herausforderungen - Pflege und Wartung der Infrastruktur im Feld - Datenqualität (Kontinuität, Vollständigkeit, Aufnahmequalität, etc.) - Skalierbare Infrastruktur (Speicher, Rechenleistung, Netzwerk) - Validierung der Resultate - Erneutes Training des Modells - Weiterverarbeitung der Resultate (z.B. _Design-Interventionen_, Visualisierung) Notes: Welche Herausforderungen ergeben sich in den einzelnen Schritten? ---- ## Diskussion - Wie kann die Datenqualität gewährleistet werden? - Wie können wir die Qualität der Modelle sicherstellen und verbessern? - Welche Infrastrukturen und Services werden von wem zur Verfügung gestellt und unterhalten? - Wie können wir die Citizen Scientists in die Validierung und Entwicklung der Modelle einbinden? - Wie zugänglich sind unsere Werkzeuge und Konzepte für Citizen Scientists? Notes: - Auf welche weiteren Auswertungen der CitSci Datensätze sollten wir fokussieren? - Wie kann die Datenqualität gewährleistet werden? - Welche Tools und Anleitungen benötigt CitSci? - Welche Infrastrukturen und Services müssen institutionell zur Verfügung gestellt und unterhalten werden? - Wie könnte ein Folgeprojekt von Mitwelten aussehen?