Analytics has huge potential in sport. Teams and organisations around the world are using it to look at performance and help players and coaches alike to understand potential. But could it be used to help improve the accuracy of scoring in target sports like darts and archery? I asked Jaimy van Dijk, who has been involved in a challenge on this very question.
What exactly is the challenge, and how did you get involved?
Jos van Dongen asked Rik de Ruiter and me to get involved in a project to score darts using a computer algorithm and a camera. It’s very easy for the human eye to see where a dart has landed, and if you can’t see from a distance, you can always move closer. When we got involved in Jos’ project, the setup involved a very complex connected dartboard but was not having much success. Actually, the fail rate was about 93%; in other words, 93% of darts were not scored correctly! We remodelled, of course. With new data came new challenges; light, shadows and the camera position had to be handled.
Why is it such a challenge for an algorithm to assess the position of a dart if you can do it so easily with the naked eye?
Part of the challenge is a fixed camera position. If you’ve ever watched archery on television, you will know that it is extremely difficult to assess the precise position of the arrow if the camera is watching from a point near the archer. Any shadows from the sun, and the distances involved make it hard to see in detail and pick out the precise point of landing. The same is true in darts. Shadows from overhead lights make it harder to distinguish the divisions on the board clearly, and the metal partitions also confuse things. Obviously, in the real world, you can move closer, but a camera and algorithm don’t have that luxury.
What had already been tried?
We were using what you might call a "classic approach." He was taking pictures and linking them to a connected dartboard. The board effectively acted as a keyboard. The images could then be labelled, and a neural network could be trained to classify new events based on the training data. The biggest problem was that it was hard to identify the precise point of the dart.
What did you do differently?
We went right back to basics and looked at the problem we were trying to solve. A dartboard is actually a very structured, well-defined background. If we could make the camera understand the structure of the board, we could convert the position of a dart to a score. We started by defining the outer boundaries of the dartboard, then the centre. Then we separated the double and triple board segments by drawing a polygon between the two rings. Next, we used colour filters to detect the different segments of the board (red, green, black and white). In other words, we just divided the dartboard into segments and assigned a score to each one. The next step was to identify where the point of the dart had landed.
That sounds like the tricky bit! Isn’t that where the original solution fell down?
We took a picture of the board before the dart was thrown, and then afterwards, and subtracted one from the other. Once we had removed the "noise" using the SAS Viya image processing system, we had a picture of an isolated dart. The camera was set up slightly to the left of the board, so we assumed that the left-hand most pixel was the point of the dart. We could then allocate a score to the dart based on the calibration of the board.
This sounds very simple. Suspiciously simple, in fact.
There’s nothing suspicious about it! Yes, it is very simple image processing, with no machine learning or neural network insight. This may be counterintuitive, but perhaps it has been a useful lesson to us all. We need to remember that not every problem needs a complex machine learning solution. Sometimes more simple options can provide a much better solution to your problem!
What kind of success have you seen with your system?
We have gone from a 93% misclassification rate on Jos’ original neural network solution to around 95% successful classification! In other words, we’ve been able to go from 93% errors to around 5% with the alternative approach. Obviously even 5% is not good enough for high-level sports, so we still have some way to go, but it shows the power and potential of analytics in this area.