HEIC annehmen, und "Vogel ohne Art" nicht als "kein Vogel" melden
ZWEI FEHLER, BEIDE HEUTE ENTSTANDEN, BEIDE BEIM BENUTZEN GEFUNDEN. 1. 🔴 HEIC. Minuten nach dem Ausrollen der Bildpruefung wies die Instanz jedes Foto von Christians iPhone mit 400 ab. Die Pruefung war richtig -- sie kannte nur das Format nicht, das die Haelfte aller Telefone erzeugt. Eine App fuer iOS, die kein HEIC annimmt, nimmt nichts an. pillow-heif in requirements-web.txt, Opener registriert, AVIF gleich mit. Fehlt das Paket, sagt die Meldung das jetzt ausdruecklich -- sonst sucht man den Fehler beim Telefon, und er liegt an einem fehlenden Paket auf dem Server. 2. 🔴 "VOGEL JA, ART NEIN" KAM ALS "KEIN VOGEL" AN. Pipeline.run gibt in drei Faellen kein Ergebnis zurueck: nichts gefunden, Beinahe-Treffer, und -- der interessante -- ein sicher erkannter Vogel, dessen Art keine heimische ist. Die Box unterscheidet die Faelle; die Warteschlange hat sie weggeworfen und 0.0 gemeldet. Folge: Ein Foto mit einem Vogel, den der Detektor mit 93 % gefunden hatte, kam in der App als "Kein Vogel erkannt. Auf dem Foto war nichts zu finden" an. Christian hat daraufhin zugeschnitten, wieder und wieder -- gegen ein Problem, das nie der Zuschnitt war. 🔑 EINE FALSCHE AUSKUNFT IST TEURER ALS GAR KEINE. Sie schickt jemanden mit voller Ueberzeugung in die falsche Richtung. Jetzt traegt mean_bird_score den Wert der Box, und frames_with_bird haengt am Vogel statt an der Art. 7 neue Tests. 235 Web + 131 Detector gruen.
This commit is contained in:
1 parent
dbec78aa7a
commit
f7184d193c
6 files changed
+161
-6
No files matched your search
+7
-1
@@ -560,7 +560,13 @@ def bestimmt_melden(request: HttpRequest, sichtung_id: int) -> JsonResponse:
|
||||
sighting.confidence = float(payload.get("confidence") or 0.0)
|
||||
sighting.mean_bird_score = float(payload.get("mean_bird_score") or 0.0)
|
||||
sighting.votes = payload.get("votes") or {}
|
||||
sighting.frames_with_bird = 1 if species else 0
|
||||
# 🔑 **Ein Vogel ohne Art ist trotzdem ein Vogel.** Hier stand
|
||||
# ``1 if species else 0`` — damit galt ein sicher erkannter Vogel, dessen
|
||||
# Art sich nicht bestimmen ließ (Gegenlicht, Silhouette), als „nichts auf
|
||||
# dem Bild". Die Unterscheidung ist genau die, auf der das ganze Modul
|
||||
# beruht: Artsicherheit 0 heißt „welche Art?", Vogelwert 0 heißt „gar kein
|
||||
# Vogel". Siehe die Begründung bei ``ingest``.
|
||||
sighting.frames_with_bird = 1 if (species or sighting.mean_bird_score > 0) else 0
|
||||
sighting.wartet_auf_bestimmung = False
|
||||
if "crop" in request.FILES:
|
||||
sighting.crop = request.FILES["crop"]
|
||||
|
||||
Reference in new issue
Block a user