Artículos del Blog

Artículos del Blog

Artículos del Blog

Análisis de Video Basado en Datos: Crea tus propios patrones con visualizaciones

3 feb 2022


El análisis de video basado en datos (DDVA) te permite codificar y telestrar un partido de manera programática. Puedes detectar momentos relevantes del juego, crear un evento cada vez que ocurre uno de ellos e incluso telestrarlos/anotarlos, todo simplemente ejecutando un script/análisis sobre los datos de tu partido.

Si bien DDVA no reemplaza el análisis de video tradicional, es una excelente manera para que los departamentos de análisis de datos transfieran sus hallazgos de una tabla al video. ¡De esta manera, puedes encontrarte con los entrenadores y el personal de análisis de video justo donde suelen trabajar!

Play de Metrica Sports es la única plataforma que te permite hacer esto.

DDVA con Play

Tradicionalmente, en el análisis de video, "codificarías" un partido. Defines Códigos, cada uno de los cuales representa un cierto concepto táctico o acción que es relevante, y luego miras el juego y cada vez que uno de esos Códigos ocurre en el juego, creas un evento.

En Play por Metrica Sports, un Patrón es similar a un Codigo en el sentido de que representa un cierto concepto táctico o acción que podría ocurrir durante el juego en el que un analista de video o entrenador está interesado. Sin embargo, hay dos diferencias principales con un Código tradicional:

  1. Se definen programáticamente a través de un lenguaje de programación (sin codificación manual)

  2. Pueden incluir anotaciones creadas de manera programática.

  3. Pueden incluir visualizaciones 2D creadas de manera programática (campo auxiliar).


Por ejemplo, supongamos que una de las cosas que un entrenador/analista quiere revisar después de cada juego son los pases al área realizados por su propio equipo. Con la codificación normal, esto tomaría una cantidad considerable de tiempo después de cada juego. Usando Patrones, puedes crear un script que recorra los datos después de cada partido y encuentre todos los pases al área y cree un evento para cada uno de ellos. No solo eso, también puedes programáticamente (desde el mismo script) añadir, en el momento del pase, una pausa y una anotación con flecha indicando el inicio y el final del pase, para que el contenido sea más fácil de digerir/más didáctico. Finalmente, también puedes agregar una visualización 2D en el campo auxiliar para clasificar rápidamente los pases de interés.

passes_into_the_box.gif

O supongamos que un entrenador quiere observar todos los momentos en que su equipo está demasiado estirado (más de 35 m) mientras defiende. Es imposible hacer esto correctamente a simple vista. Sin embargo, usando un Patrón (podemos llamar a esto los patrones de Equipo Estirado) no solo puedes detectar programáticamente todos los momentos en un juego que ocurre, sino que también puedes agregar visualizaciones de largo de equipo para ver la longitud real del equipo.

team_stretched.gif

Lo interesante de hacer DDVA con Play, es que puedes definir estos patrones y qué anotaciones/visualizaciones deberían ir en cada evento simplemente desde un archivo json (el "archivo de patrones") con un formato específico. Por ejemplo, para definir un evento del patrón de Equipo Estirado, especificarías lo siguiente en el archivo de patrones:

image.png

Vamos a ver los detalles de este archivo y el formato más abajo, pero por ahora puedes ver que hay algunos valores (start_time, end_time) que se relacionan con el momento del juego en el que este evento tiene lugar, y también hay una sección donde se definen las visualizaciones.

Esa es la potencia de Play para DDVA. Puedes acceder a todas las visualizaciones disponibles en Play y crear eventos telestrados simplemente definiéndolos en un archivo que luego importas a la plataforma.

¿Cómo puedes hacer esto?

El proceso de crear tus propios Patrones y verlos en Play tal como se muestra arriba consta de tres pasos:

  1. Detectar los eventos relevantes

  2. Crear el Archivo de Patrones

  3. Introducir ese archivo en Play


Detectando los eventos

Este paso trata de detectar los momentos del juego en los que ocurre una cierta instancia de un Patrón (un Evento). Este se compone de dos elementos:

  1. Definir los patrones

  2. Escribir el código


Definir los patrones

De la misma manera en que defines qué es un Código en el análisis de video estándar, primero debes definir cuáles son los conceptos tácticos o acciones que definirán un patrón. Hemos visto dos hasta ahora:

  • Un pase al área

  • El equipo estirado más de 35 metros mientras defiende.


Estos son solo 2 ejemplos muy simples, pero las opciones son ilimitadas. En los ejemplos anteriores no tenemos etiquetas/subcategorías, pero también hay soporte en Play para eso. Siempre que los datos que tengas disponibles tengan la información que necesitas, puedes definir un patrón alrededor de ello. Veremos algunos ejemplos de patrones más adelante.

Fuentes de datos

Puedes ejecutar análisis que identifiquen eventos de patrones en los que estés interesado basándote en cualquier dato que tengas disponible (esto significa identificar la hora de inicio y fin de los eventos, así como sus coordenadas si corresponde). También puedes agregar visualizaciones basadas en datos que no son de jugadores (por ejemplo, una flecha, una pausa, un área resaltada en el campo, etc.)

Sin embargo, si también deseas agregar visualizaciones basadas en jugadores programáticamente (enfoque, rastro futuro, etc.), o etiquetas de jugadores y equipos, necesitas usar datos de seguimiento que provengan del Proyecto de Video en la Nube. Estos datos de seguimiento podrían provenir de 3 fuentes:

  1. Podría formar parte de los datos de Elite que proporcionamos (datos de seguimiento proporcionados por nosotros)

  2. Podría provenir de la integración de datos de terceros en el Proyecto de Video (Tracab, Estadísticas, etc.)

  3. Podrían ser los Datos de Seguimiento Automatizado que se procesan para cada video subido.


Esto se debe a que, por ejemplo, para poner un enfoque en un jugador, necesitas indicar la identificación del jugador y eso debe provenir de los datos disponibles en el Proyecto de Video (ver sección a continuación sobre IDs de Jugadores y Equipos).

Puedes combinar estos datos de seguimiento con cualquier dato de eventos que desees, como nuestros eventos Elite, o Statsbomb, etc. para poder procesar patrones más complejos.

Escribir el código

Una vez que has definido qué constituye un patrón, el siguiente paso es codificar los scripts o el traje de análisis para identificarlos en los datos, y luego crear el Archivo de Patrones (ver más adelante). Más adelante sugeriremos algunas bibliotecas que puedes usar, pero es importante notar aquí que realmente no hay requisitos sobre el lenguaje de programación que necesitas usar para hacer esto.

Lo único que importa es que la salida del proceso (el Archivo de Patrones) cumpla con los requisitos de formato, pero dado que el archivo en sí es un archivo json, puedes llegar allí usando cualquier lenguaje que desees (python, R, Matlab, etc.).

Archivo de Patrones

Para poder definir Patrones con sus Eventos correspondientes con Anotaciones, necesitas importar al Proyecto de Video un archivo de patrones. Este archivo es un archivo .json con un formato específico.

Documentación

Todos los detalles sobre el formato del Archivo de Patrones se pueden encontrar aquí. Allí puedes encontrar cómo definir un nuevo Patrón en el archivo, cómo definir etiquetas y grupos de etiquetas, los diferentes tipos de visualizaciones que puedes usar y los parámetros que tienen, etc.

Demostración

Aquí hay un archivo de patrones de ejemplo que define un patrón y 3 eventos que pertenecen a él, cada uno con una visualización diferente.

Para probar la carga de este archivo exacto en Play necesitas:

  1. Incorporar el Juego de Muestra 3 en tu base de datos (ver más abajo)

  2. Cambiar donde dice ORGPREFIX por el prefijo de tu organización. Puedes encontrar ese prefijo en la sección de configuración en la nube. Mira el video demo a las 4m 30s para más detalles.


Códigos de equipo y jugador

Si bien los códigos para los patrones, etiquetas y grupos de etiquetas pueden ser lo que desees (es decir, definidos por el usuario), los códigos de jugador y equipo deben ser los mismos que los de los archivos de datos del Proyecto de Video. Una vez que tienes un juego procesado en la Nube (ya sea un juego Elite con datos que proporcionamos, un juego que tiene datos de un tercero sincronizados o Datos de Seguimiento Automatizado), necesitas descargar los datos en formato EPTS de la nube y verificar los IDs de equipo y jugador en ese archivo (o también puedes generar una base de datos o usarlos desde una base de datos siempre que sean los mismos que en los archivos de datos).

Ideas de patrones

  • Cierto número de jugadores en el área donde puedes resaltar jugadores con un anillo o enfoque.

  • Laterales en el tercer tercio de ataque donde puedes mostrar su trayectoria futura una vez cruzan el umbral.

  • Cruces hacia atrás, donde puedes resaltar al receptor (o receptor destinado) y una flecha indicando el pase.

  • Calcular las mejores opciones de pase y resaltar las tres mejores opciones con color en los anillos indicando su clasificación.

  • Identificar carreras profundas realizadas o no realizadas donde pausas el video y destacas el área que fue o podría haberse aprovechado.


Introducir ese archivo en Play

Una vez que hayas creado un archivo de patrones, puedes importarlo a Play a través de Metrica Cloud. Para hacerlo, necesitas seleccionar el Proyecto de Video al que deseas cargar un archivo y cargarlo en la sección de más opciones (tres puntos a la izquierda del Proyecto de Video). Recibirás una notificación que te informará si la carga fue exitosa o no.

Una vez que el archivo esté cargado, puedes ir a Play y descargar el Proyecto de Video desde el Gestor de Bases de Datos. Si ya lo hiciste, puedes:

  1. Seleccionar el Proyecto de Video en el gestor de Video, y luego en más opciones de Eventos del Patrón seleccionar Reintentar descarga.

  2. Cerrar y abrir la aplicación nuevamente y recibirás una notificación informándote que hay un nuevo archivo, y puedes hacer clic directamente allí para descargarlo.


Si ya habías cargado un archivo antes y deseas cargar uno nuevo, ve a la Nube, elimina el archivo cargado anteriormente y realiza cualquiera de los dos pasos descritos anteriormente.

Juego de Muestra 3

Tenemos un conjunto de datos de muestra para un juego disponible para que puedas probarlo tú mismo con un juego de prueba!

Para acceder a él necesitas hacer dos cosas:

  1. Sigue las instrucciones en este tutorial, usa la clave SAMPLEGAME3 para agregar el Proyecto de Video a tu base de datos.

  2. Ve aquí para descargar los datos de seguimiento y eventos de ese juego.


API de Metrica Sports

También hay una API de Metrica Sports disponible que te permite crear Proyectos de Video, subir videos, ejecutar detección de jugadores y de campo, sincronizar datos de terceros, descargar los datos y subir archivos de patrones todo a través de la API sin necesidad de interacción con la interfaz de usuario de Nube. Esto es realmente poderoso una vez que se ha establecido un conjunto de patrones o análisis. ¡Te permite crear flujos de trabajo completamente automatizados! La API es una función de Elite. Si estás interesado en usarla, avísanos!

Herramientas

Si bien no hay ningún requisito en absoluto sobre el lenguaje de programación que puedes usar para crear el archivo de patrones, si programas en python, hay dos bibliotecas de código abierto que te recomendamos revisar.

Kloppy

Kloppy es un paquete de Python que proporciona (de)serializadores para datos de seguimiento y eventos de fútbol, modelos de datos estandarizados, filtros y transformadores diseñados para facilitar el trabajo con diferentes datos de seguimiento y eventos como un paseo por el parque. Su objetivo es ser el bloque fundamental para cargar, filtrar y transformar datos de seguimiento y eventos.

Cada proveedor de datos de fútbol usa su propio formato único para describir el curso de un juego. Por lo tanto, el software escrito para analizar estos datos debe adaptarse a un proveedor específico y no puede usarse sin modificaciones para analizar datos de otros proveedores. Kloppy es un paquete de Python que aborda los desafíos planteados por la variedad de formatos de datos y tiene como objetivo ser el bloque de construcción fundamental para procesar datos de seguimiento y eventos de fútbol. Proporciona (de)serializadores, modelos de datos estandarizados, filtros y transformadores que hacen que trabajar con datos de seguimiento y eventos de diferentes proveedores sea un paseo.

Con Kloppy puedes cargar en un formato estándar cualquier dato descargado de un Proyecto de Video, así como cargar desde cualquier otro proveedor. Esto puede ahorrar días de trabajo en el desarrollo de tus propios analizadores para archivos de diferentes compañías. Lo recomendamos altamente.

Puedes encontrar la documentación de Kloppy aquí.

Codeball

Codeball es una biblioteca de código abierto desarrollada por nosotros para facilitar el análisis de video basado en datos con Play. Tiene tres módulos principales:

  1. Patrones: Un módulo de patrones, que tiene diferentes patrones que pueden ejecutarse en los datos, como compacidad del equipo, calidad de los pases, construcción, cambios defensivos, espacios creados, mostrar pases entre nodos principales en la red de pases, expectativa de gol de cada disparo, etc. Todos los patrones inspirados en lo que sabemos de los clubes y la comunidad.

  2. Métodos tácticos: funciones para usar en la creación de patrones, por ejemplo, contar jugadores en un área identificada por líneas tácticas, distancia entre jugadores, calcular largo del equipo, etc., etc.

  3. Métodos de visualización: para hacerlo súper fácil de agregar visualizaciones a los eventos para que puedan subirse y visualizarse en play.

La idea es que esta biblioteca pueda ayudarte a escribir tu propio patrón aprovechando los métodos de análisis táctico (por ejemplo, formas fáciles de obtener todos los pases completados al área, los momentos de estiramiento de un equipo, o simplemente obtener los jugadores de campo de un equipo) y agregar fácilmente anotaciones a los eventos para que puedan exportarse en un formato de archivo de patrones compatible con Play.

A diferencia de Kloppy, though, Codeball es todavía más un trabajo en progreso que una biblioteca madura. Si bien planeamos expandirnos en patrones y métodos tácticos, actualmente hay solo 3 patrones y un puñado de métodos tácticos. Sin embargo, los métodos auxiliares para las visualizaciones están completos.

Dejando de lado esa advertencia, si lo encuentras interesante o útil, ¡te animamos a probarlo! Si lo haces, no dudes en compartirnos tu experiencia, qué otras cosas te gustaría ver, etc. Además, es un proyecto de código abierto, así que también puedes preguntar sobre cómo contribuir a él :).

Puedes consultar la documentación de Codeball aquí.

También puedes ver aquí un video tutorial sobre cómo usar el Juego de Muestra 3 con Codeball para probar todo por ti mismo.

Resumen

  • El Análisis de Video Basado en Datos consiste en crear programáticamente eventos telestrados basados en conceptos tácticos o acciones que son relevantes para el equipo. Es como "codificar" el juego con un software de codificación (Angles, Sportscode, etc.) y luego telestrar los eventos todo en uno, y todo a partir de un conjunto de scripts o un traje de análisis.

  • DDVA no reemplaza el análisis de video tradicional, sino que lo complementa. Es la manera perfecta para que los departamentos de análisis de datos transmitan su mensaje al entrenador y al cuerpo técnico. Encuéntralos justo donde ya trabajan.

  • Play es el único software en el mercado que permite hacer eso: traducir tus resultados de análisis de datos en eventos telestrados. Puedes hacer eso importando un archivo de patrones, que no es otra cosa que un archivo json con un formato específico.

  • Puedes llegar a ese archivo usando cualquier lenguaje de programación que prefieras, pero si trabajas en python recomendamos en gran medida Kloppy para cargar y estructurar los datos, y también podemos sugerir revisar Codeball aunque todavía esté en progreso.


Sobre Metrica Sports:

Metrica Sports fue fundada en 2014 por el CEO Ruben Saavedra, el CTO Bruno Dagnino y el CMO Enzo Angilletta. Metrica utiliza inteligencia artificial para llevar conocimientos y mejoras de rendimiento a clubes, academias y atletas de todo el mundo. La visión de los fundadores es ofrecer soluciones de análisis de video y datos de vanguardia a cada entrenador, analista y jugador en el mundo.

Análisis de Rendimiento

Descubre el Poder de Metrica Sports

Descubre nuestra última innovación, ofreciendo capacidades incomparables para elevar tu análisis.

Análisis de Rendimiento

Descubre el Poder de Metrica Sports

Descubre nuestra última innovación, ofreciendo capacidades incomparables para elevar tu análisis.

Análisis de Rendimiento

Descubre el Poder de Metrica Sports

Descubre nuestra última innovación, ofreciendo capacidades incomparables para elevar tu análisis.