.claude/skills/vision/SKILL.md
Dart-Erkennung, Frame-Diff-Pipeline, Tip-Detection, Kalibrierung, Geometrie — aktivieren wenn an src/cv/ gearbeitet wird
npx skillsauth add willneverusegit/dart-vision-claude visionInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
agent_docs/current_state.md — verifizierter Stand (stable vs. sensibel)agent_docs/pitfalls.md → Abschnitt "CV / Frame-Diff-Detektor"agent_docs/priorities.md → offene CV-Prioritiesframe_diff_detector.update() muss aufgerufen werden bevor Motion-Gate rausspringt — SETTLING braucht bewegungsfreie Frames.ValueError aus. Pipeline übergibt bereits CLAHE-enhanced Grayscale.frame_diff_detector.reset() nach Kalibrierungswechsel. reset_turn() deckt das ab wenn pipeline.refresh_remapper() danach reset_turn() triggert.pipeline.start().aruco_calibration_with_fallback() — gecachte Homography bei Marker-Occlusion mit Age-Counter. homography_age in Telemetrie-Stats verfügbar.ground_truth.yaml nutzt bull_inner/bull_outer, Backend nutzt inner_bull/outer_bull. Mapping-Layer in tests/e2e/accuracy.py und test_ground_truth_validation.py übersetzt automatisch.scripts/validate_ground_truth.py prüft YAML-Einträge auf Konsistenz. Vor neuen GT-Annotationen ausführen.ThreadedCamera → DartPipeline
→ MotionDetector (MOG2, Trigger)
→ FrameDiffDetector (Before/After-Diff, State-Machine: IDLE/IN_MOTION/SETTLING)
→ DartImpactDetector (Confirmed-Registry, CooldownManager)
→ aruco_calibration_with_fallback() → Homography (gecacht bei Occlusion)
→ BoardGeometry → point_to_score() (mm-basiert, nicht px!)
Key Components:
| P-Nr | Titel | Status | |------|-------|--------| | P37 | Live-Realtest am Board — Parameter tunen | OFFEN — ohne echte Board-Validierung sind Algo-Änderungen blind | | P11 | E2E Tests mit echten Videoclips | TEILWEISE — GT-Validierung + 32 Tests, Ring-Naming inkonsistent (P69) | | P24 | Kamera-Vergleich und Kontur-Referenzdaten | OFFEN | | P27 | Marker-Kalibrierung auf neue Masse | OFFEN | | P68 | Timestamp-basiertes Detection Matching | ERLEDIGT — Greedy-Matching in test_all_videos.py | | P69 | Ring-Naming-Konsistenz (bull_inner vs inner_bull) | ERLEDIGT — Mapping-Layer in E2E-Helpers |
Erledigte CV-Items (Kurzreferenz): P12 (Area-Range), P19 (Frame-Diff), P20 (Tip-Detection), P21 (Kontur-Robustheit), P25 (Tip vs Centroid), P26 (Schärfemetrik), P38 (3-Stufen-Morphologie), P39 (Video-Replay-Infra verbessert), P40-P43 (Adaptive/Cache/Cooldown/Modular), P47 (Kernel Cache), P49 (Component Tests), P50 (Auto-Exposure), P53 (FrameDiff Integration), P55 (Baseline-Warmup), P57 (Diff-Cache-Bug), P59 (MOG2 Sensitivity), P60 (Homography-Fallback), P61 (Pipeline-Integration), P62 (Homography-Warning UI), P63 (Quick-Wins), P68 (Timestamp Matching), P69 (Ring-Naming)
MITTEL für pipeline.py, diff_detector.py, tip_detection.py — Änderungen wirken sich direkt auf Erkennungsrate aus. HOCH für calibration.py, board_calibration.py — Kalibrierungslogik ist Kernfunktion. Immer: E2E-Replay-Tests laufen lassen nach CV-Änderungen.
development
FastAPI-Endpoints, WebSocket, Frontend-JS/CSS, MJPEG-Stream — aktivieren wenn an src/web/ oder static/ gearbeitet wird
tools
Aktualisiert Fortschrittsdokumentation nach Abschluss einer Aufgabe. Markiert erledigte Prioritaeten und sucht nach neuen Schwachstellen.
data-ai
Zerlegt groessere Aufgaben in unabhaengige Teilaufgaben und dispatcht parallele Agenten
tools
Performance-Monitoring, FPS/Queue-Alerts, Session-Logging, Metriken — aktivieren wenn an src/utils/telemetry.py, logger.py, fps.py gearbeitet wird