LarsG21 / Darts_Project

This Project is used for automatic dart scoring using computer vision/
41 stars 6 forks source link
camera-calibration computer-vision darts-scoring gui opencv pyside2

Dart Master

Description

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.

Demo Video

Link to demo video

How it works

The complete detection pipline looks something like this:

The overall pipeline is summarized in this flowchart (currently only in German):

Setup

Hardware

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.

Marker Positions

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:

Software

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:

Short Instructions