Files
Crumb-Core-v.1/docs/crumbforest/# 🐍 Snake Gestures Backup (v4).md

2.3 KiB
Raw Blame History

🐍 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.00 angegeben
  • Kein Fall 0.8 < ratio < 1.3 scheint 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 👍)