2020

SB Labs: Calibración de la Cámara

By Hudl Statsbomb | abril 14, 2020
2020

SB Labs: Calibración de la Cámara

Este artículo está escrito por el equipo de CV de StatsBomb. Vamos a abordar los detalles técnicos del algoritmo de calibración de cámara que hemos desarrollado para recoger la ubicación de jugadores directamente a partir de las imágenes de televisión.

Introducción

La calibración de la cámara es una de las etapas fundamentales en numerosas aplicaciones de visión por ordenador dentro del campo del análisis cuantitativo en el deporte. Mediante la determinación de la posición y orientación de la cámara (en adelante, pose de la cámara), es posible localizar de manera precisa la ubicación de jugadores y/o eventos en cualquier instante del partido. Además, aumentar la precisión de dicha calibración implica indirectamente un incremento adicional en la precisión a la hora de calcular métricas avanzadas a partir de los datos recogidos.

Una de las aplicaciones donde la calibración de la cámara juega un papel fundamental es el seguimiento espacio-temporal de los jugadores, también conocido como tracking. Para tratar de resolver este problema, diversas empresas han optado por la utilización de un sistema multi-cámara que permite grabar simultáneamente todas las zonas del campo desde distintas localizaciones. Gracias a la redundancia ofrecida por la disponibilidad de varias cámaras, este enfoque proporciona una gran precisión espacial, pero se ve afectado por varios inconvenientes inherentes al modelo. En primer lugar, el despliegue y mantenimiento de dicho sistema conlleva un coste muy elevado. En segundo lugar, y probablemente más importante, la aplicabilidad de esta solución se ve limitada a estadios donde dicho sistema haya sido instalado, requiriendo por tanto de acuerdos específicos con los clubes o ligas.

Una alternativa más escalable consiste en la recogida de datos directamente a partir de las imágenes de televisión, cuya accesibilidad es mucho mayor. No obstante, desde el punto de vista técnico, la complejidad se incrementa notablemente debido a varios factores. Los operadores de televisión disponen de múltiples cámaras distribuidas en diferentes posiciones, pero la realización sólo ofrece la señal proveniente de una de ellas, produciéndose cambios de cámara a criterio del realizador. Asimismo, las cámaras utilizadas no son cámaras estáticas, sino que varían su posición, orientación y zoom, lo que explica la necesidad de llevar a cabo una calibración para determinar qué parte del terreno de juego estamos observando.

A lo largo del presente documento explicaremos cómo StatsBomb está enfocando el problema de la calibración de la cámara a partir de las imágenes de televisión. Describiremos la metodología que hemos seguido e ilustraremos gráficamente los resultados que hemos obtenido con ella.

Preparación de los datos

Nuestro propósito es automatizar completamente el proceso de calibración de la cámara. Para tal fin, hemos desarrollado un sistema de adquisición de datos que nos permite recopilar imágenes tomadas con distintas poses de cámara acompañadas de la calibración correcta para cada una de ellas. El objetivo es adquirir un espectro de poses de cámara tan amplio como sea posible de manera que podamos entrenar nuestros modelos para automatizar el proceso de calibración. Este proceso se ha desarrollado en las etapas descritas a continuación:

(1). Mechanical Turk

De cara a adquirir los citados datos para entrenar nuestros modelos, hemos creado una plataforma (denominada Mechanical Turk) que permite a nuestro departamento de recogida delinear manualmente las líneas de cal. Habitualmente, la calibración de la cámara se basa en la disposición de puntos emparejados entre las imágenes. Por ejemplo, el punto de penalti o o las esquinas del área podrían ser puntos fácilmente reconocibles. Sin embargo, en función de la orientación de la cámara, es posible que no haya suficientes puntos presentes en la imagen para recuperar la pose de la cámara. Para superar esta limitación, hemos desarrollado un algoritmo que es capaz de calibrar la cámara utilizando todas las formas geométricas a nuestra disposición: puntos, líneas y círculos. De esta manera, nuestra plataforma permite etiquetar manualmente todas las líneas de cal presentes en la imagen.

Figure 1. Ejemplo de cuatro tomas de televisión distintas cubriendo diferentes partes del terreno de juego. La información recogida por nuestro equipo de recogida (líneas, puntos y círculos) se muestra en color rojo. Pueden apreciarse mínimas imprecisiones que serán corregidas en la siguiente etapa de nuestro procesado, garantizando así la mayor precisión en nuestros datos.

(2). Estimación de la homografía a partir de datos manuales

En geometría proyectiva, se define una homografía como una transformación entre dos imágenes de la misma superficie [1]. Asumiendo que las cámaras utilizadas para la retransmisión por televisión se ajustan al modelo de cámara estenopeica, determinar la pose de la cámara es equivalente a obtener la homografía entre el terreno de juego observado en la toma y una plantilla del mismo con las dimensiones correctas. Matemáticamente, la homografía queda descrita por una matriz 3x3:

Afortunadamente, aunque esta matriz consta de 9 componentes, queda completamente caracterizada por 8 grados de libertad, que pueden reducirse incluso más bajo ciertas asunciones. Como ya hemos mencionado antes, se ha desarrollado un algoritmo para determinar la homografía a partir de los datos recogidos durante la etapa de adquisición, haciendo uso así de toda la información geométrica disponible: líneas, puntos y círculos.

Figure 2. Ejemplo de cuatro tomas de televisión distintas cubriendo diferentes partes del terreno de juego. La proyección de la plantilla del campo utilizando la homografía estimada se muestra en rojo. Conviene remarcar que aunque estas imágenes puedan parecer idénticas a las de la Figura 1, las aquí presentadas han sido obtenidas a partir de un postprocesado que es capaz de determinar la posición y orientación de la cámara con respecto al terreno de juego. En cambio, las observadas en la anterior figura muestran simplemente las líneas delineadas por nuestros recolectores. Asimismo, cabe resaltar que las imperfecciones antes mencionadas han sido eliminadas tras esta etapa.

Calibración de la Cámara

A partir de los datos adquiridos, hemos entrenado diversos modelos mediante aprendizaje supervisado. De esta forma se ha automatizado completamente el proceso de calibración de la cámara a partir de una determinada imagen. Nuestros modelos se cimentan sobre la arquitectura ResNet (2), una de las más empleadas en el estado del arte para el reconocimiento de objetos en imágenes. Una vez definida nuestra arquitectura de red, los parámetros que la caracterizan han sido estimados mediante la retropropagación de los gradientes a través del algoritmo de optimización Adam (3).

Figure 4. Ilustración del algoritmo de calibración de cámara desarrollado en StatsBomb. Se muestra en rojo la plantilla del campo proyectada utilizando la pose de cámara estimada a partir de la imagen.

Conclusiones

Hasta ahora nuestro modelo ha sido desplegado únicamente para disparos a puerta. Nos hemos centrado en estas acciones con el objetivo de incrementar la calidad de los datos utilizados en nuestro modelo de goles esperados (xG). Mediante una localización más precisa del rematador y el portero, así como de los defensores y atacantes, podemos afirmar que seguimos disponiendo de los mejores datos del sector. A comienzos de la próxima temporada habremos desarrollado un modelo para calibrar de manera completamente automática la pose de la cámara para cualquier tipo de evento. Cabe destacar que este avance permitiría disponer de datos espaciales para todo tipo de eventos, así como para tracking. Más importante aún, en StatsBomb estamos a disposición de las necesidades de nuestros clientes, ¡así que toda sugerencia o petición será bienvenida!

Referencias

(1) Hartley and Zisserman, “Multiple View Geometry in Computer Vision”, 2003, Cambridge.

(2) He et. al., “Deep residual learning for image recognition”, 2015, arXiv: https://arxiv.org/abs/1512.03385.

(3) Kingma et. al., “Adam: A Method for stochastic optimization”, 2017, arXiv: https://arxiv.org/pdf/1412.6980.pdf.