Final

43
Facultad de Ingeniería, Universidad de la Republica

Transcript of Final

Page 1: Final

Facultad de Ingeniería, Universidad de la Republica

Page 2: Final

Cual es el problema a resolver?•Alta competencia del deporte y del futbol moderno.

•Mercado que mueve millones de dólares.

•Exponencial uso de la tecnología.

Surge la necesidad de obtener información objetiva sobre el rendimiento de un

equipo o jugadores.

Page 3: Final

Como se pude lograr?

•La idea es medir y cuantificar eventos.

La técnica utilizada para obtener algunos de estos datos, es utilizar un conjunto de cámaras fijas instaladas en el estadio.

Page 4: Final

Soluciones comerciales existentes

Page 5: Final
Page 6: Final

Objetivos:

•Crear un prototipo software que prueba la viabilidad técnica de una solución en el dominio de interés.

•Generar un conjunto de datos de prueba propio, con el apoyo económico de la Fundación Ricaldoni.

•Obtener una estimación del grado de incertidumbre del resultado obtenido.

Page 7: Final

Procesamiento por cámara

La entrada es el video que

llega de la cámara, la

salida es un conjunto de

datos que describen la

posición y categoría de

cada uno de los objetos

detectados.

Jugadores, goleros, jueces

Page 8: Final
Page 9: Final

Procesamiento unificado

La entrada es el conjunto

de datos de la primera

etapa, la salida es otro

conjunto de datos que

describen la posición y

categoría de los objetos

en un modelo único del

campo de juego.

Page 10: Final
Page 11: Final

Software. Características

•Diseño modular, que hace fuerte uso de los patrones de diseño : Singleton y Strategy

•Cada Modulo resuelve un problema particular y colabora para obtener la solución global.

•Utilizando Singleton, logramos que la única instancia de cada Modulo sea fácilmente accesible y además que tenga bajo acoplamiento.

•Utilizando Strategy, pudimos intercambiar, distintas versiones de un mismo algoritmo durante las pruebas al sistema.

Page 12: Final

Software. Características

•El prototipo se implemento utilizando Matlab R2009b .

•Java jdk1.6.0_12 , IDE Eclipse para la comunicación con la API de VIPER GT.

Page 13: Final

Componentes de la primera etapa

Page 14: Final

Componentes de la segunda etapa

Page 15: Final
Page 16: Final

Conjunto de datos de prueba ISSIA DATASET• 6 cámaras• Calibración, puntos en

el piso• Datos Ground Truth

SCEPTRE DATASET• 8 cámaras• Calibración,

constantes TSAI

Page 17: Final

Datos obtenidos por el grupo PARQUE CENTRAL• 1 cámara

MÉNDEZ PIANA• 4 cámaras

FRANZINI DATASET• 4 cámaras• Calibración, puntos de

la cancha

PROBLEMAS:

• Sombras• Ubicación de las cámaras • Sincronización de las cámaras• Configuración de las cámaras

Page 18: Final

Datos obtenidos por el grupo

18 /11/2010: Partido amistoso Uruguay-Argentina sub 17 , Parque Central

Page 19: Final

126/03/2011: Estadio Luis Franzini

Datos obtenidos por el grupo

Page 20: Final

Generación de datos de Ground Truth con VIPER GT

Page 21: Final
Page 22: Final

Modelado del fondo Método: Mixture of

Gaussians

Distinguir entre puntos estáticos y en movimiento (los valores bajos de energía son utilizados para construir el fondo mientras que los altos se descartan por la probabilidad de pertenecer a objetos móviles).

Page 23: Final
Page 24: Final

Procesamiento multicamaraCada cámara arroja: estimación + incertidumbre sobre la posición y categoría de cada “Target”.

Se busca “combinar” de manera adecuada cada una de las medidas, para incrementar la precisión global del sistema.

El resultado es enviado a un proceso que utiliza la restricción de cantidad de elementos por categoría para condicionar la salida del sistema. (este dato viene de una fuente externa al sistema)

Page 25: Final

Procesamiento multicamaraNuevamente se utiliza el fitro de Kalman, pero ahora en el plano de la cancha.

Tyxyxx ''

Tyxz

Vector de estados, posición y velocidad sobre el plano de la cancha:

Observaciones:

1000

0100

010

001

T

T

Aw

0010

0001wH

Page 26: Final

Procesamiento multicamaraSe construye una matriz de asociación (binaria) para cada cámaras: Targets X Observaciones

10

00

01

10

00

01

10

00

01

10

00

01

1 indica una asociación entre el Target y la observación.

0 no hay asociación.

Se calcula utilizando la mínima distancia de Mahalanobis y el algoritmo del vecino mas cercano

Page 27: Final

Procesamiento multicamara

Pero… nosotros conocemos el numero “correcto” de elementos que el sistema debe retornar.

Hasta aquí, seria la salida de una aplicación típica de seguimiento.

Podemos “condicionar” la salida global para usar esta información. => MAP

Page 28: Final

Procesamiento multicamara

Page 29: Final

Creación y muerte de los targets

Las observaciones que no son asociadas con ningún target activo, son potenciales nuevos targets.

Se utiliza el numero de cámaras esperado que “observan” el nuevo target para decidir y la “antigüedad” en cuadros.

La creación o muerte de Targers , una vez que el sistema llega al numero esperado, es un evento que no debe ocurrir con frecuencia.

Page 30: Final
Page 31: Final

Performance SingleView

A los videos de entrada, los etiquetamos manualmente mediante el ViperGT en sus posiciones y categorías correctas y lo comparamos con el XML salida del sistema utilizando ViperPE. La presentación de resultados se da mediante Presicion & Recall.

Page 32: Final

Precision & Recall

Page 33: Final

Algunos números….

ISSIA DATASET

La “Precision" es de 60/69 es decir un 86 %

esto se podrá interpretar como que de los 69 objetos a testear en el archivo xml de salida del sistema, se pudieron “matchear” o encontrar correspondientes a 60 de ellos con objetos en el archivo de GT.

El “Recall" es de 37/76, es decir que de los 76 objetos test registrados como

verdaderos en el archivo de GT solamente se asignaron 37 de ellos (es decir para 37 de esos objetos test se encontró correspondiente en el archivo xml de salida del sistema).

Page 34: Final

Para que mostrar un resultado intermedio ?

1) Necesidad de investigar como esta evolucionando la performance por cámara al modificar parámetros de diseño.

2) Comparar como afectan los esquemas de clasificación de categorías a los esquemas de localización espacial.

3) Tener una idea mas precisa sobre como mejora la performance final al integrar todas las cámaras, mediante la sencilla comparación de la performance intermedia y la final.

Esto nos demuestra que efectivamente tener varias cámaras distribuidas espacialmente de forma conveniente nos facilita la resolución del problema, pudiendo integrar información proveniente de varias cámaras y ponderando dicha información entre ellas para resolver los principales problemas (falsas detecciones, oclusiones mal resueltas, etc..) y así aumentar la performance final del problema propuesto.

Page 35: Final

Resultados de MultiviewHablar de los resultados de esta etapa es hablar del rendimiento del sistema en general.

La idea es:

Contar el numero de elementos detectados en cada categoría cuadro a cuadro y compararlo con el esperado.

El numero de objetos detectados en un buen indicador del rendimiento del sistema.

Page 36: Final

Resultados de Multiview3000 cuadros del dataset ISSIA

Cuadro1 12,8453Cuadro2 12,8225Abrbitros 2,2460Golero1 0,8977Golero2 1,1140

Page 37: Final

Resultados de MultiviewUn numero levemente superior al esperado en la cantidad de jugadores, se explica porque el sistema tiende a “continuar” los tracks.

Los líneas no son tomados por las cámaras.

En esta secuencia, uno de los arqueros es mal clasificado, dada su similitud con la camiseta de los jugadores de cancha.

Page 38: Final
Page 39: Final

Conclusiones

Se adquirió experiencia y conocimiento en las técnicas utilizadas, hasta llegar a dominarlas y poder integrar las soluciones parciales a la solución global.

El prototipo construido nos permitió probar que una solución al problema es técnicamente factible y realizable.

Creemos que el conocimiento adquirido en el área del problema, los obstáculos y problemas que tuvimos que sortear para llegar a este punto, son en definitiva, el real valor de proyecto

Page 40: Final
Page 41: Final

Que cosas identificamos como futuras mejoras a la solución ?

1) Flujos de datos:

Problema actual:

El principal problema es que el “parser" de los archivos XML no accede secuencialmente a la información, sino que carga en memoria todo el archivo. Esto se traduce en cientos de MB en memoria RAM !!!.

Posible solución:

La primera solución para este problema es sustituir el “parser" que utiliza VIPER por alguno que acceda secuencialmente a la información.

Otra solución mas comprometida, seria eliminar completamente el uso de archivos XML y utilizar una base de datos en la que la primera etapa inserte y la segunda etapa acceda a leer.

Page 42: Final

Que cosas identificamos como futuras mejoras a la solución ?

2) Movimiento de cámara y sombras:

Problema actual:

El principal problema con el movimiento de la cámara es la falsa detección de las líneas del campo de juego.Mientras que las sombras de los jugadores producen una mala segmentación (la sombra también se mueve ! )

Posible solución:

Crear un bloque del sistema que se encargue de la estabilización total del video y que elimine las sombras de los jugadores.

Page 43: Final

Que cosas identificamos como futuras mejoras a la solución ?

3) Otras mejoras identificadas a implementar:

3.1) tracking al balón .

3.2) clasificación de categorías SingleView mas inteligente ( no en todos los frames del video para un mismo objetivo)

3.3) Automatización en el proceso de modelado de fondo (extracción periódica y automática del Background)

3.4) Aspectos de arquitectura global que nos permitan acercarnos aun mas al limite de tiempo real.

Entre otros….