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.
34 lines
983 B
Markdown
34 lines
983 B
Markdown
<!--
|
|
Danke. Die Spielregeln stehen in CONTRIBUTING.md — darin auch die
|
|
Rechteeinräumung, ohne die dieses Projekt nicht doppelt lizenziert werden
|
|
kann.
|
|
-->
|
|
|
|
## Was sich ändert
|
|
|
|
## Warum
|
|
|
|
<!--
|
|
Das Interessantere von beidem. Der Code sagt, was passiert; die
|
|
Commit-Nachricht soll sagen, warum es nötig war.
|
|
-->
|
|
|
|
## Geprüft durch
|
|
|
|
- [ ] `./venv/bin/python -m unittest discover tests` (Detector)
|
|
- [ ] `cd web && ../venv/bin/python manage.py test` (Web-App)
|
|
- [ ] Seite im Browser angesehen — bei allem, was die Oberfläche berührt
|
|
- [ ] an echter Hardware ausprobiert — bei allem unter `pi/` oder `esp32cam/`
|
|
|
|
<!--
|
|
Der dritte Punkt steht hier, weil er sich verdient hat: Zwei Fehler in diesem
|
|
Projekt sind durch alle Tests gekommen und erst beim Hinsehen aufgefallen.
|
|
|
|
Neue sichtbare Texte brauchen eine englische Fassung, sonst wird der
|
|
Übersetzungstest rot. Er druckt die fehlende Zeile kopierfertig aus.
|
|
-->
|
|
|
|
## Bezug
|
|
|
|
<!-- "Closes #123", falls es ein Issue schließt -->
|