Computer Vision – Updated July 10, 2022

Original PostUpdate #1

Time for a quick recap of everything we’ve been working on and the progress we’ve made thus far!!

Player Tracking

So to start, step 1 was just to be able to detect and track all the players on the court. Not quite as simple as it sounds, as you can see from the extra people detected and the constant switching of player tracks/boxes.

top down view of player positioning

Then second step was converting those player positions into a top down view that would provide a standardized way to interpret the data. As you can see, super jittery with the locations since the size and shape of the bounding boxes fluctuates often.

Pose estimation

While Andrew was playing around with player tracking, he looked at some pose estimation stuff as well. Pose data gets really interesting when we start talking about sport science, technical training, and injury prevention. This isn’t where we’re focused right now, but a super cool rabbit hole none the less.

ball tracking

After the player component, we moved into ball tracking. The two video clips are the same, but the second has much more training data included. As you can see from the first video, the model has a bunch of false positives, seeing the ball in a bunch of random locations. The second clip is much cleaner and certainly more promising.

Player ID

The next step is identifying who is who out there. This allows for much richer analysis, otherwise we just have 12 dots running around out there. This is a big piece of the puzzle, as without it can’t attribute the data to who is actually on the court. We are still solving the libero question, but shouldn’t be too tricky.

player track smoothing

One small tweak we made was to smooth out the player movements to accomodate for the jitteriness of the bounding boxes as people ran around. This will help stabilize player positions in the data and honestly just looks better when represented visually.

skill Identification

Finally, in the last week or two, we have begun to detect and identify specific skills. This is the last big piece of the puzzle that we hope to solve.

With the combination of Player Tracking, Ball Tracking, Player ID, and Skill ID – we think we have something pretty cool over here that will allow us to dive into some really cool analysis.

Touch Identification

Recent progress on identifying the touch. You’ll see the ball marked with the red dot – then the model attaches a green circle when it thinks there’s a touch. Not 100%, but not too shabby at all.

There is still cleanup to be done – adding more training data will naturally improve all the models and help us be more consistent in identification and tracking. But we’re pretty happy that each of our big rocks has been ‘proof of concept…ed’ and now it’s more about improvement and cleanup than it is about building from the ground up.

update – July 10, 2022

Couple videos here of the full set of tech we currently have running. Combines player, ball, and touch detection and honestly looks pretty sweet to see it all together like this.

Full transparency is the goal here – we are still working through the player ID swap issues, cleaning up touch detection, etc…but it’s of course all part of the process