Game Log Event Labeling Technical Challenge

Table of Contents

1 Goal of the Technical Challenge

Label an SSL game log file for specific event types (with associated metadata). Being able to detect important game events can be useful for the decision making algorithms of the robots. Additionally, in future years, being able to automatically label events with associated metadata may lead to more explainable auto-ref decisions and potentially auto commentary on a game.

2 Event Types

There are two event types: instantaneous and durations. Instantaneous events have a label associated with a specific time in the log. Duration events have a label associated with a range of time in the log.

2.1 Dribbling

Detect when dribbling is occuring. This is an instantaneous event. Dribbling is defined as one robot is touching the ball with the dribbler. The decision is based on the same criteria used in the excessive dribbling rule.

The following table summarizes the metadata associated with this event.

Field Description
IsDribbling? Is a robot dribbling in this frame?
Robot ID Which robot is dribbling
Robot Team Which team is dribbling

2.2 Ball Possession

Detect which robot/team is in control of the ball (if any). This is an instantaneous event.

The following table summarizes the metadata associated with this event.

Field Description
State One of the following values: yellow-posses, blue-posses, none
Robot ID Which robot is in possession (ignored if loose state is chosen)

The state refers to who is in control of the ball. Either yellow, blue or no team (none). The none state applies both when the ball is free on the field, and when the ball is under contention from opposing team robots.

2.3 Passing

Detect pass attempts. This is a duration event. The duration lasts from when the ball leaves the passer and ends when the pass either reaches the receiver or fails (out of bounds, intercepted, deflected).

Field Description
Start Time When did the pass start
End Time When did the pass end
Successful? Did the pass reach a receiver on the same team?
Passer ID Which robot was the one who passed the ball
Passer Team Which team is passing
Receiver ID Which robot was the intended recipient

2.4 Goal Shots

Detect attempts at scoring a goal. This is a duration event. The duration lasts from when the ball leaves the shooter and ends when the ball either enters the goal, or is stopped/deflected by a robot.

Field Description
Start Time When did the shot start
End Time When did the shot end
Successful? Did the shot enter the goal?
Shooter ID Which robot took the shot?
Shooter Team Which team did the shooter belong to

3 Procedure

During the competition, two of the game logs. These game logs will be pre-processed by the tools described in the software section below. Participants will receive a copy of the pre-processed game logs. A ground truth label file for these logs will be created by the TC. The TC will attempt to use game logs from games where none of the participants in this challenge played. This is to prevent an advantage for teams that may have saved additional information in their own log files. However, as this cannot be guaranteed, we will require all participants to label 2 different game logs, so at most a participant in this challenge will have competed in a single game log.

Participants will produce their own set of labels for this game log using the provided pre-processed data files. Teams will submit their log files to the TC for scoring. The submitted label files will be scored using the released scoring program. Participants will be ranked by score, with higher scores being better.

Participants can use any approach that is automated to label the data. In other words, you must label the data with an algorithm that does not require human interaction. You cannot hand-label the data, you cannot ask for human assistance, and you cannot correct the labels produced by your software.

You may use any algorithm for labeling (rule-based, deep learning, etc.). You can also use a non-causal labeling algorithm (i.e. your labeling can look at future events to help label the current event). Non-causal labeling may be useful in ambiguous situations.

The participants should label all frames with the appropriate instantaneous event types and metadata. To ease scoring, the number of duration events in the ground truth data will be provided to the participants before they produce their labels. This is to avoid having to do sequence alignment of the ground truth and participant label files.

3.1 File Formats and Utilities

Figure 1 below shows a flow-chart of the various utilities and file formats used in this challenge. The colors of the boxes indicate who is responsible for running the utility/producing the file. Clicking on this image will open a PDF with clickable links to documentation for the different file formats and software utilities.

file_format_flowchart.png

Figure 1: File Formats and Utilities. See for PDF version with clickable links: clickable PDF version

See also: 5 and 6

4 Scoring

Scoring differs by event type.

4.1 Instantaneous Event Scoring

Each instantaneous event has a state label (e.g. dribbling or not). For each frame that matches the ground truth labels, +1 point. For each matching piece of metadata +0.5 points.

4.2 Duration Event Scoring

Duration events main score will be calculated using the Intersection over Union (IoU) of the start and end times. The IoU is equal to the area of overlap over the area of the union.

\begin{equation} IoU = \frac{\text{area of overlap}}{\text{area of union}} \end{equation}

The IoU is guaranteed to be \(\le 1\). All IoU will be added up. Additionally, each correct piece of metadata for an event will add +0.5 points to the score.

4.3 Final Score

Each category will be ranked individually in order to make each label category equally important for an overall win. Depending on the ranking in that category, each participant will get an amount of overall points. The amount of points is equal to \(\text{number of participants} - \text{placement}\). So that first place has the most points, and last place has the least. For example, with 7 participants first place would get 6 points, second place 5, etc.

Each of the category points will then be totaled to determine an overall winner. This way each event type accuracy is equally important, as they all contribute to the final score evenly.

5 Software Tooling

All software tooling is located in a separate repo: https://github.com/RoboCup-SSL/ssl-rust-tools

Below is an overview of the different parts, but refer to the repository for more details on usage and file formats.

5.1 Label Preprocessing

We have provided a simple tool that will process an SSL game log file. This will strip unnecessary messages as well as group messages into discrete frames that can be labeled.

5.2 Labeler

We have provided a simple UI for creating label files. This can be used to manually label training data for your algorithms. This will also be the tool used by the TC to produce the ground truth labels.

5.3 Scoring Program

We have provided a scoring tool. It will take in two different label files, one ground truth and one to be scored, and produce a score for each category described above.

6 File Format

There are two formats: a data file format and a label file format.

The data file is produced by the log preprocessor tool. The label file is the list of labels for each of the frames in the data file. Both use protobuf files and are designed to support fast random access.

Please refer to the software repo for more information: https://github.com/RoboCup-SSL/ssl-rust-tools

Created: 2019-06-26 Wed 08:04

Validate