Dieses Projekt war Teil des VR/AR-Kurses an meiner Universität TU Darmstadt. Das Ziel des Projekts bestand darin, eine automatische Dart-Scorer-Anwendung zu entwickeln, mit der zwei Spieler eine Partie Dart spielen können, ohne sich auf das Punktezählen zu konzentrieren. Die Anwendung verwendet OpenCV für den Computer-Vision-Teil und Pyside2 für die GUI.
Wir verwenden eine kalibrierte Webcam, um einen Videostream aufzunehmen und ihn mit OpenCV zu verarbeiten, um die Darts auf dem Brett zu extrahieren und den Überblick über die Spieler zu behalten.
Die vollständige Erkennungspipeline sieht in etwa so aus:
Die gesamte Pipeline ist in diesem Flussdiagramm zusammengefasst:
Sie benötigen:
Platzieren Sie die Markierungen wie im Bild unten rund um die Dartscheibe und stellen Sie sicher, dass sie sichtbar sind. Platzieren Sie die Webcam etwa 1 Meter entfernt und leicht rechts vor der Dartscheibe, damit sie beim Werfen der Darts nicht im Weg ist.
Wichtig: Um gute Ergebnisse zu erzielen, benötigen Sie eine gute Beleuchtung. Lediglich die Beleuchtung direkt über der Dartscheibe ist schlecht. Optimal wäre ein Ringlicht mit einem Diffusor wie diesem:
Wir hatten einige Probleme mit dem Wackeln der Platine, was zu Störungen bei der Erkennung führte. Wir haben dieses Problem durch 3D-gedruckte Halterungen für die Platine gelöst:
Klonen Sie einfach das Repository und führen Sie den folgenden Befehl aus:
pip install -r requirements.txt
Zuerst müssen Sie die Kamera kalibrieren. Dies kann mit dem Kalibrierungsskript erfolgen. Dann können Sie main_with_gui.py starten. Die GUI sieht so aus: