Mi versión de cómo se desarrolló la aplicación que ayudó a Alemania a ganar el mundial.

No Comments
Hoy en mi cabecita han estado resonando las palabras: aplicación y fúltbol. La primera es porque andamos en el ajetreo de las startups y la segunda es porque Bolivar se despidió de la copa libertadores recientemente (ya lo decía yo Azkargorta... en Argentina tenían que cubrir el arco, eso era todo, con un empate y el resultado hubiese sido muy distinto... era muy dificil meter goles sin EL goleador).

En esto recordé algo que leí cuando terminó el mundial: Alemania utilizó Big Data para ganar el mundial de Brasil. Sap AG hizo realidad lo que podría haber sido mi sueño, el juntar dos de mis pasiones: el fútbol y los algoritmos. Así que el post del día de hoy va dedicado a esas dos cosas que tanto disfruto.

Qué hace Match insights?

Redusers indica lo siguiente: "Match insights analiza los datos en video desde las propias cámaras del campo de juego y captura miles de puntos de datos por segundo, como la posición y velocidad de los jugadores. Tras procesar esos datos, los entrenadores son capaces de obtener métricas de rendimiento de sus jugadores y enviarles indicaciones a sus smartphones o tablets."

Haciendo un análisis del anterior párrafo según texto y contexto:

"Analiza los datos en video desde las propias cámaras del campo de juego"


La imagen de la izquierda representa un partido de fútbol entre los celestes y los rojos. La imagen no tiene mucho detalle ni menos la cantidad completa de jugadores, pero sirve como representación.
La primera forma para analizar el movimiento de los jugadores que se me ocurrió fué la vista superior, pero tiene los siguientes inconvenientes: 

- Tener la cámara grabando desde el cielo todo el tiempo podría ser muy peligroso (para la cámara) por los balonazos a los que estaría expuesto. Podríamos hacer que la cámara los esquive pero en eso se movería la imagen y perdemos valiosos segundos de información.

- Desde esta vista se verían puntos negros y rubios tal vez... No muy fáciles de reconocer después de un cabezaso o cuando hacen un tiro penal. Esta vista, no es factible.


La siguiente imagen es otra representación del esquema anterior pero con una cámara situada detrás del portero del equipo rojo. Con un programa que detecta objetos a través de los tonos de los pixeles, el programa nos diría que en esta imagen existen tres objetos, que serían sólo tres jugadores del equipo rojo. En el mejor de los casos el programa detectaría los pixeles azules y asumiría que hay también tres jugadores celestes, pero esa información seguiría siendo errónea. Nos llevaríamos una impresión similar si situamos la cámara en las bancas en donde se encuentran los jugadores.


Otra opción sería colocarla en la parte sur de la tribuna. Como estas ubicaciones son elevadas, tendríamos aproximadamente la imagen de la izquierda. Pero qué sucede? Siempre está el aficionado que se para y salta de la emoción con un golazo, o la persona que te pide permiso para pasar, o el confeti que cae, la persona que empuja sin querer. En resumen: el movimiento de la cámara y/o unos cuantos segundos perdidos. Si usáramos el programa que detecta objetos a partir del reconocimiento de los tonos de los pixeles, tendríamos 7 jugadores y no 8, puesto que el mediocampista celeste estaría cubierto por uno rojo. Tal vez aquí no se nota mucho la complejidad del reconocimiento de objetos, pero cuando hay un penal... todos los jugadores se abarrotan hacia el arco y hasta para mí es dificil reconocer quien es quien.

Y con esto, pongamos en donde pongamos la cámara correríamos muy probablemente con los mismos problemas u otros que no consideré.

Solución? Video mashup.

Ejemplo: Automatic mashup generation from multiple-camera concert recordings
Un video mashup es la integración de varias grabaciones de video, con un objetivo: en el caso de Match insights: el tener la información más completa, del movimiento de los jugadores.

Si tuviésemos 360 cámaras colocadas alrededor de la cancha, equidistantes y al mismo nivel, podríamos tener aquella imagen épica de cuando Neo (matrix) lucha contra los guardianes? del otro mundo. (Aquí un video para tener una idea.)



Si una cámara es bloqueada por un asistente durante unos segundos, basta con las otras cámaras para interpolar y tener la información completa. El software que ayuda a reconocer patrones a través de pixeles y que, hasta donde recuerdo, tiene un motor de aprendizaje es OpenCV .

"y captura miles de puntos de datos por segundo, como la posición y velocidad de los jugadores."

Mi cámara digital capta hasta 16 Megapixeles (16 millones de pixeles), a mi parecer creo que los miles de puntos de datos se quedaron cortos con respecto a la grabación de un video :P. Con la información obtenida en el anterior punto podríamos analizar a cada jugador como un objeto, hacer aproximaciones de la distancia recorrida en intérvalos de tiempo y con eso medir su velocidad. Cada jugador sería analizado como un objeto, independientemente de su nombre. Una vez terminado el partido, teniendo las grabaciones y las posiciones iniciales de los jugadores, y habiendo procesado las grabaciones; se podría indicar que el objeto X en realidad era James Rodriguez, por así decirlo.

¿Dónde está la parte complicada entonces?

No poseemos los permisos para poner las 360 cámaras en las posiciones ideales ni menos tal cantidad de cámaras :P Pero sí tenemos las cámaras de las televisoras que pagaron por la transmisión, pero también tendríamos "desventajas" similares a usar nuestras propias cámaras: Cuando meten un gol algunas cámaras dejan de enfocar el partido para enfocar la emoción del goleador y de la hinchada, pero eso no significa que TODAS las cámaras enfoquen esto, otras continúan grabando. Ante tal situación una o dos cámaras de aficionado no vendrían mal, sin embargo la parte dura estaría en calcular los algoritmos necesarios para integrar estas imágenes.

Lo del envío de la información a las tablets y dispositivos se los dejo a su imaginación (Creo que en el peor caso podríamos enviar esta información por correo electrónico jajaja). Espero esto haya despertado un poco su imaginación y curiosidad, vale aclarar que esto es desde mi punto de vista y podría estar muy lejos de la realidad (aunque lo dudo). 

Saludos :) 
RizelTane

0 comentarios

Publicar un comentario en la entrada