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.
58 lines
2.7 KiB
Markdown
58 lines
2.7 KiB
Markdown
# Ä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.
|