scorelens-dd5
Feingetunte Variante von dart-sense (Basismodell, Lizenz CC BY-NC 4.0) für FreeDarts/ScoreLens.
Training auf Kaggle (T4-GPU, Gratis-Kontingent), Datensatz DeepDarts D1+D2 (CC BY 4.0) plus synthetische Schrägsichten und vermehrte harte Fälle, D2 (seitliche Kamera) doppelt gewichtet.
⚖️ Gleichauf mit dd4, nicht besser. Gezielt auf die Schwächen von dd4 trainiert (eng stehende Spitzen, drei Darts, Randtreffer): dort gewinnt dd5 (Recall bei Spitzen unter 24 px 89,0 % statt 87,5 %), zahlt aber mit mehr Fehlalarmen und weniger Recall auf echter Seitensicht. In der App bleibt dd4.
Trainingsdaten
| Datensatz | data4 = data3 + 3.059 harte Fälle (3 Darts, Spitzenabstand < 0,06, Randtreffer) mit je 2 Extra-Schrägsichten und Kopie |
| Bildgröße | 800px |
| Trainingsbilder | 27.041 |
| Validierungsbilder | 1.440 (615 echte + synthetische Schrägsichten) |
| Epochen | 50 |
| Lernrate | 0,0005, Cosinus-Abklingen |
| Freeze | kein Freeze (volles Finetuning) |
Metriken (Validierung data4)
| Metrik | Baseline (dart-sense) | dd5 (feingetunt) |
|---|---|---|
| mAP50 | 0,9663 | 0,9910 |
| mAP50-95 | 0,6110 | 0,8981 |
| Precision | 0,9832 | 0,9958 |
| Recall | 0,9349 | 0,9908 |
| Tip Recall @10px | 0,9232 | 0,9611 |
| Tip Precision @10px | 0,9722 | 0,9722 |
| Tip Recall @10px (nur D2, seitlich) | 0,9036 | 0,9460 |
| Tip Precision @10px (nur D2, seitlich) | 0,9638 | 0,9738 |
Vergleich mit dd4 auf den 615 echten Validierungsbildern
| Metrik | dd4 | dd5 |
|---|---|---|
| Tip Recall @10px | 0,966 | 0,966 |
| Tip Precision @10px | 0,973 | 0,972 |
| Tip Recall @10px (D2) | 0,953 | 0,945 |
| Tip Precision @10px (D2) | 0,983 | 0,974 |
| mAP50-95 | 0,903 | 0,908 |
| Falsche Spitzen (1.441 Bilder inkl. Schrägsichten) | 79 | 96 |
| Recall Spitzen enger als 24 px | 0,875 | 0,890 |
Harter Benchmark: Schrägsicht + Verderbung kombiniert
Dieselben 615 echten DeepDarts-Val-Bilder, aber jedes einzelne mit starker Schrägsicht (45–60°) und
Realitäts-Verderbung (dunkel, unscharf, verrauscht, JPEG, Schatten) zugleich — kein leichter Fall bleibt übrig.
Aufbau in tools/finetune/bench_hard.py, gemessen auf Modal (T4). Fairer Vergleich über alle Läufe hinweg,
weil identisch für jedes Modell gebaut.
| Kriterium | Wert |
|---|---|
| Spitzen gefunden / richtig @10px (conf 0,3) | 72.7 % / 63.5 % |
| dito @5px | 68.3 % / 59.7 % |
| Board erkannt (alle 4 Kalibrierpunkte) | 89.8 % |
| Wurf komplett richtig gezählt (Kalibrier-Schwelle 0,6) | 62.3 % |
| Darts im richtigen Feld | 74.0 % |
| Enge Spitzen (unter 24 px auseinander) | 57.6 % Recall |
| Drei Darts im Bild | 69.8 % Recall |
| Übersehene Darts / Fehlalarme (von 615 Bildern) | 114 / 100 |
Fremde Fotos (300 unveränderte Bilder aus dem Roboflow-Datensatz dartsync/darts-bjj98-minfw, keines davon im Training gesehen): Wurf richtig gezählt 91.7 %, Darts im Feld 95.5 %, enge Spitzen 90.0 % Recall, 12 übersehene Darts.
Dateien
best.pt— Checkpoint (Ultralytics-Format)results.csv— Trainingsverlauf je Epochemetrics.json— Baseline- vs. Ergebnis-Vergleich (Rohdaten für obige Tabelle)