Front page of the blog-papers

Prior to my upcoming on-stage appearance at the Hudl Performance Insights conference, I should get some chat about a different data provider out of the way.

I've been diving into the publicly-available data that SkillCorner released to support the Analytics Cup, most specifically the two games of body pose data. Or, I started. Then I hit some roadbumps, so now I'm rectify that with a format I'm calling 'blog-papers'.

Every data source always has its quirks, and with broadcast-derived body pose data it's no surprise that it has its fair share too. The annoying thing is that it's a data format I'd barely worked with before, and some things I'd be interested in investigating with it are things where the data is less reliable.

For example, I started off wanting to look at tackle technique. But, rendering the data, players didn't seem to touch the ball, and duels sometimes turned players into strange demonic creatures whose limbs moved in quite un-human ways.

I've published four 'blog-papers', on: basic camera coverage of the data; smoothness checks on the tracking and body pose data; the extent that pose data becomes noisier when players are close together; and basic checks on ball-to-player gaps around events. As part of this, the GitHub repository for the blog-papers contains the code, which draws from a separate repository of code to do basic downloading and formatting of the data.

This is all mainly for my own sake, in that all this is done in spare time and I'm likely to forget whether or not, like, knee joints need extra processing before embarking on an analysis project. But I suspect that others out there might benefit from this information or code too, and this is, I guess, the kind of work I would wish existed if I hadn't done it myself.

The tl;dr of it all is basically:

  • although SkillCorner extrapolate off-camera tracking data, pose data is unsurprisingly only for on-camera players
  • tracking data seems pre-smoothed, but pose data looks like it needs further processing (depending on your uses)
  • pose data does indeed seem to get noisier when players are in close engagement with each other, and when moving at speed, but a couple of pretty simple techniques seem to help
  • there's some kind of consistent measurement gap between the ball and player pose data
  • pose data seems noisier at a player's extremities, which isn't surprising but may be a bit of a limitation on, e.g., ball striking analysis

I found this mini-/pre-project quite interesting, although inevitably it was more work than I planned it to be up-front. Although AI did a lot of work (Claude Code is a shoe-in for next year's Ballon d'Or imo), I really tried to review things as much as a nominally hobby project allows for. I hope I found the right balance. Part of finding the right balance is the project: what does efficient but reliable work in this modern age look like.

If you find this useful, or if (sigh) you spot any errors, please let me know. Particularly the latter.

'Til next time.

MORE ABOUT ME