This Project was part of the VR/AR course at my university TU Darmstadt. The aim of the Project was to crate an automatic dart scorer application, where two players can play a game of dart without focusing on the point counting. The application uses OpenCV for the computer vision part and Pyside2 for the GUI.\ We use a calibrated webcam to capture a video stream and process it with OpenCV to extract the darts on the board and keep track of the players.
The complete detection pipline looks something like this:
The overall pipeline is summarized in this flowchart (currently only in German):
You will need:
Place the Markers around the dartboard like in the image below and make sure they are visible. Place the webcam in front of the dartboard approximately 1 meter away and slightly to the right, so it doesn't get in the way with throwing the darts.
Important: You need good lighting to get good results. Only Lighting from directly above the dartboard is bad. Optimal would be a ring light with a diffusor like this:
We had some problems with shaking of the board wich induced noise in the detection. We solved this by 3D printed mounts for the board:
Just clone the repository and run the following command:
pip install -r requirements.txt
First you need to calibrate the camera. This can be done with the Calibration Script. Then you can start main_with_gui.py. The GUI looks like this: