Vogelalbum 1.0.0
Eine Kamera am Vogelhaus, ein Rechner der erkennt wer da war — und eine Sammlung, die sich von allein fuellt. Zwei neuronale Netze: eines findet den Vogel im Bild, eines bestimmt die Art. 148 heimische Arten, auf Deutschland eingeschraenkt und neu normiert — ohne diese Einschraenkung wird aus einer Kohlmeise eine nordamerikanische Schwesterart. Daraus entsteht ein Sammelalbum: nummerierte Seiten, gefundene Arten in Farbe, fehlende als Schatten, dazu Erstfang, Punkte, Stufen und 15 Abzeichen. Laeuft vollstaendig auf eigener Hardware. Kein Cloud-Dienst, kein Konto, keine Telemetrie; die Bilder verlassen das eigene Netz nicht. Zwei getrennt deploybare Teile: die Sammlung als Django-Anwendung, die Erkennung als eigener Dienst. Der Erkennungs-Dienst fragt selbst an und braucht deshalb weder eine erreichbare Adresse noch einen offenen Port — er laeuft hinter einem gewoehnlichen Router. Dabei: Firmware fuer Raspberry Pi und ESP32-S3, Anbindung an Home Assistant ueber MQTT, Oberflaeche auf Deutsch und Englisch, Einstellungen je Kamera aus dem Browser, und ein Weg fuer Fotos von unterwegs. AGPL-3.0.
This commit is contained in:
commit
c11fe9ab04
189 files changed
+29806
No files matched your search
@@ -0,0 +1,57 @@
|
||||
# Änderungen
|
||||
|
||||
Format in Anlehnung an [Keep a Changelog](https://keepachangelog.com/de/1.1.0/),
|
||||
Versionen nach [SemVer](https://semver.org/lang/de/).
|
||||
|
||||
## 1.0.0 — 2026-10-18
|
||||
|
||||
Erste Veröffentlichung.
|
||||
|
||||
### Dabei
|
||||
|
||||
- **Arterkennung** aus einem Kamerastrom: ein Netz findet den Vogel im Bild,
|
||||
ein zweites bestimmt die Art. Katalog mit 148 heimischen Arten, auf
|
||||
Deutschland eingeschränkt und neu normiert — ohne diese Einschränkung wird
|
||||
aus einer Kohlmeise eine nordamerikanische Schwesterart.
|
||||
- **Sammlung** im Stil eines Klebebildchen-Albums: nummerierte Seiten,
|
||||
gefundene Arten in Farbe, fehlende als Schatten. Erstfang, Punkte, Stufen
|
||||
und 15 Abzeichen.
|
||||
- **Läuft auf eigener Hardware.** Kein Cloud-Dienst, kein Konto, keine
|
||||
Telemetrie. Die Bilder verlassen das eigene Netz nicht.
|
||||
- **Zwei Teile, getrennt deploybar:** die Sammlung als Django-Anwendung, die
|
||||
Erkennung als eigener Dienst. Der Erkennungs-Dienst **fragt selbst an** und
|
||||
braucht deshalb weder eine erreichbare Adresse noch einen offenen Port.
|
||||
- **Kameras:** alles, was MJPEG oder Einzelbilder über HTTP liefert. Fertige
|
||||
Firmware für Raspberry Pi (`pi/`) und ESP32-S3 (`esp32cam/`) liegt bei,
|
||||
beide mit `/status` für die Diagnose, ohne den Bildstrom anzufassen.
|
||||
- **Fotos von unterwegs:** Bilder lassen sich hochladen und werden von
|
||||
derselben Erkennung bestimmt wie die der Kamera.
|
||||
- **Home Assistant** über MQTT mit Autodiscovery.
|
||||
- **Zweisprachig**, Deutsch und Englisch. Quelltext und Kommentare sind
|
||||
deutsch.
|
||||
- **Einstellungen je Kamera** aus der Oberfläche — Schwellwerte, Lebensräume,
|
||||
Artenliste. Der Erkennungs-Dienst holt sie sich im Betrieb ab und übernimmt
|
||||
sie, ohne das Modell neu zu laden.
|
||||
- **Fehlalarme**: ein Mindestwert je Besuch verwirft Spiegelungen und
|
||||
Bewegungen ohne Vogel, bevor daraus eine Sichtung wird.
|
||||
|
||||
### Sicherheit
|
||||
|
||||
- Je Kamera ein eigener Token (als SHA-256 gespeichert), damit ein
|
||||
kompromittierter Standort einzeln stillgelegt werden kann.
|
||||
- Getrennte Token für Schreiben und Lesen.
|
||||
- Hochgeladene Bilder werden **neu geschrieben statt nur geprüft**: Nur die
|
||||
Pixel überleben, Metadaten fallen dabei weg. Das betrifft vor allem den Ort
|
||||
in EXIF-Daten von Handyfotos.
|
||||
- Im Betrieb: Cookies nur über HTTPS, HSTS, `nosniff` auf den Medien.
|
||||
|
||||
### Bekannte Grenzen
|
||||
|
||||
- Acht heimische Arten kennt das Modell nicht und ordnet sie Verwandten zu:
|
||||
Sumpf-, Weiden- und Haubenmeise, Gartenbaumläufer, Kleinspecht,
|
||||
Bluthänfling, Kernbeißer, Waldkauz.
|
||||
- Der Vogel braucht **5 bis 8 % der Bildfläche**, sonst findet ihn die
|
||||
Erkennung nicht. Das ist eine Frage des Bildwinkels, nicht der Auflösung —
|
||||
näher montieren hilft, mehr Megapixel nicht.
|
||||
- Der unterste Bildrand ist eine tote Zone. Die Landefläche gehört in die
|
||||
untere Bildmitte, nicht an die Kante.
|
||||
Reference in new issue
Block a user