2.3 KiB
2.3 KiB
🐍 Snake Gestures Backup (v4)
🎯 Ziel
Wiederherstellung der funktionierenden Gesterkennung inkl. Faust (fist) und Wave unter realistischen Kinder-Testbedingungen.
🧠 Ausgangslage
- Ursprünglich funktionierte Wave und Fist
- Nach Umstellungen (Spiegelung, Ordnerstruktur, Namensänderungen, debug) – ging nur noch Wave
- Analyse zeigte: die Faust-Geste wurde nicht mehr korrekt klassifiziert trotz erkennbarer Konturen
✅ Bekannte funktionierende Parameter (aus v2)
- ROI korrekt gesetzt (Region of Interest)
- Konturerkennung stabil bei Flächen zwischen
3000 - 7000 - Fehlerquelle: evtl. geänderte Bedingungen für defect count oder ratio
🧪 Klassifikation aus v2:
if defects_count > 4:
return "wave"
elif defects_count <= 1 and 0.8 < ratio < 1.3:
return "fist"
else:
return "unknown"
🔁 Probleme bei v4
- Ratio wird bei Faust dauerhaft mit
1.00angegeben - Kein Fall
0.8 < ratio < 1.3scheint erkannt zu werden - Kamera spiegelverkehrt, ROI ggf. verschoben
✅ Empfehlung zur Wiederherstellung der Fist-Erkennung
1. Klassifikationslogik zurücksetzen:
if defects_count > 4:
gesture = "wave"
elif defects_count <= 1 and 0.8 < ratio < 1.3:
gesture = "fist"
else:
gesture = "unknown"
2. Debug-Logs aktiv halten:
print(f"[debug] Defekte: {defects_count}, Fläche: {area}, Ratio: {ratio:.2f}")
3. Ratio-Kalkulation überprüfen:
x, y, w, h = cv2.boundingRect(contour)
ratio = float(w) / h if h != 0 else 0
🪄 Zusatztipp: Spiegelung
Um Kamera-Richtung wie im Selfie-Modus zu korrigieren:
frame = cv2.flip(frame, 1)
Nicht doppelt spiegeln!
🧊 Fazit
Wir sind nah dran. Die Faust war da. Sie kann wieder zurückkommen. Der Weg führt über sorgfältige Parameterkontrolle.
Wenn nötig: gestures_v2.py als Referenz verwenden und von dort migrieren. Lass die Kinder bauen, nicht verzweifeln.
📁 Backup-Dateien
- gestures_v2.py (Backup liegt vor)
- gestures_v4.py (aktuelle Testversion)
- app.py (v4, in /snake_camera_vision_v2/)
📌 Nächster Schritt: Stabile Faust wiederherstellen, dann eine neue Geste hinzufügen (z.B. Daumen hoch 👍)