Skip to content

Demo on how to compute soccer ball possession automatically using AI.

License

Notifications You must be signed in to change notification settings

tryolabs/soccer-video-analytics

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

58 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Soccer Video Analytics

This repository contains the companion code of the blog post Automatically measuring soccer ball possession with AI and video analytics by Tryolabs.

For further information on the implementation, please check out the post.

How to install

To install the necessary dependencies we use Poetry. After you have it installed, follow these instructions:

  1. Clone this repository:

    git clone git@github.com:tryolabs/soccer-video-analytics.git
  2. Install the dependencies:

    poetry install
  3. Optionally, download the ball.pt file from the GitHub release. Please note that this is just a toy model that overfits to a few videos, not a robust ball detection model.

How to run

First, make sure to initialize your environment using poetry shell.

To run one of the applications (possession computation and passes counter) you need to use flags in the console.

These flags are defined in the following table:

Argument Description Default value
application Set it to possession to run the possession counter or passes if you like to run the passes counter None, but mandatory
path-to-the-model Path to the soccer ball model weights (pt format) /models/ball.pt
path-to-the-video Path to the input video /videos/soccer_possession.mp4

The following command shows you how to run this project.

python run.py --<application> --model <path-to-the-model> --video <path-to-the-video>

Warning: You have to run this command on the root of the project folder.

Here is an example on how to run the command:

python run.py --possession --model models/ball.pt --video videos/soccer_possession.mp4

An mp4 video will be generated after the execution. The name is the same as the input video with the suffix _out added.