¿Qué algoritmos de visión por computadora se utilizan en Protracer para el vuelo de una pelota de golf?

Voy a intentar responder esto, ya que despertó mi interés como ingeniero de visión por computadora y como golfista de fin de semana (que nunca mejora). Esta respuesta se basa únicamente en información publicada públicamente (sitios web, patentes emitidas), por lo que tal vez alguien con un conocimiento más profundo pueda proporcionar más información. Además, nunca he usado ninguno de los dos sistemas, por lo que podría faltar fácilmente otras características basadas en la visión por computadora.

Se mencionaron dos sistemas diferentes en la pregunta (Protracer y TrackMan), y por lo que puedo decir, son dos tecnologías diferentes. Protracer tiene dos sistemas diferentes: el Protracer TV original y la nueva gama Protracer. Ambos parecen ser más interesantes con respecto al procesamiento de imágenes / visión por computadora, ya que su sensor principal es una cámara. Mientras tanto, TrackMan depende en gran medida de los radares para determinar una trayectoria 3D estimada de la pelota de golf. Déjame elaborar …

El nuevo modelo TrackMan combina dos sistemas de radar en una unidad TrackMan para rastrear el vuelo de la pelota de golf (u otros proyectiles en otros deportes) y el palo de golf [1]. También hay una cámara incrustada en el TrackMan que se utiliza para grabar oscilaciones detrás del golfista [2]:

No creo que se use mucha visión por computadora en TrackMan: creo que la cámara se usa principalmente para grabar las imágenes en las que se superpone la trayectoria de vuelo de la pelota. Sin embargo, definitivamente hay algunas transformaciones de coordenadas en curso para proyectar la trayectoria estimada por radar en el marco de la cámara, y una de sus patentes [3] describe la posibilidad de estimar la distancia a un objetivo seleccionado por el usuario midiendo ” extensión angular de un patrón predeterminado del objetivo “que” se puede determinar fácilmente a partir de la imagen mediante técnicas de detección de bordes “. Entonces, si el usuario no conoce la distancia a un objetivo seleccionado en la imagen de la cámara, otra opción es usar un objetivo con un patrón conocido, por ejemplo, un patrón de tablero de ajedrez, para estimar la distancia. Pero, supongo que el caso de uso principal para TrackMan está en el campo de prácticas, donde ya se conoce la distancia a varios objetivos (dentro de lo razonable). Sin embargo, puede haber algunas otras características en el sistema que utilizan la visión por computadora, basadas en la existencia de un “equipo de Visión por Computadora” mencionado en una lista reciente de trabajos [4].

Por el contrario, el sistema de TV Protracer [5] parece depender en gran medida de las técnicas de procesamiento de imágenes / visión por computadora para estimar y dibujar la trayectoria de la pelota en el video grabado por una cámara auxiliar. Su patente [6] muestra una cámara de alta resolución, utilizada como entrada para sus algoritmos, montada en la parte superior de una cámara de televisión de transmisión para que haya una transformación fija y medible (“ajuste de paralaje”) entre las dos cámaras, y para que ellos “tienen esencialmente el mismo campo de visión”.

Esta transformación es una medición de una sola vez, y permite que las posiciones estimadas de la bola en la cámara de alta resolución se dibujen en la ubicación correcta en el marco de la cámara de transmisión de TV. En otra instancia, su algoritmo podría ejecutarse potencialmente en los cuadros que provienen de la cámara de televisión, eliminando la necesidad de una cámara auxiliar de alta resolución. En cualquier caso, su algoritmo de visión por computadora es el mismo en cualquier caso.

El algoritmo Protracer TV se puede dividir en los siguientes pasos (derivados de la lectura de una de sus patentes [6]):

  1. Diferencia inicial de secuencia de fotogramas: dado un conjunto inicial de fotogramas de la cámara de entrada, las imágenes de diferencia se calculan entre fotogramas consecutivos. Luego, a los valores de diferencia por encima de un umbral se les asigna un cierto valor (por ejemplo, blanco) mientras que a las diferencias por debajo de un segundo umbral se les asigna otro valor (por ejemplo, negro). Luego tiene una serie de imágenes binarias donde (con suerte) solo se resaltan los píxeles correspondientes a cosas en movimiento.
  2. Identificación del candidato a la bola: los grupos de píxeles (manchas) que sobresalieron durante la diferenciación de fotogramas se seleccionan a continuación en función de un criterio de tamaño de la bola. Se supone que se conoce la distancia aproximada de la cámara a la pelota de golf / golfista, que se puede adquirir mediante entrada manual o mediante la obtención de una señal de distancia focal de la función de enfoque automático de la segunda cámara (TV) (ya que esa cámara centrarse en el golfista). El tamaño esperado de la pelota en píxeles se puede calcular en función del tamaño estándar de una pelota de golf y la óptica y resolución de la lente de la cámara auxiliar, y se descartan las gotas que no están dentro de un rango de tamaño aceptable.
  3. Selección de la pelota: los candidatos aceptados para la pelota se filtran aún más según un criterio de redondez y solo considerando las regiones de interés en el marco donde se espera que esté presente una pelota. Luego, en una serie de tres cuadros consecutivos, la verdadera bola se identifica esencialmente eliminando trayectorias potenciales poco probables entre los cuadros. Imagine dibujar líneas entre todos los candidatos de pelota en el primer cuadro y todos los candidatos de pelota en el tercer cuadro. Se rechazan las líneas que no tienen un candidato de bola correspondiente en el segundo cuadro (dentro de una pequeña distancia de la línea), así como las líneas que exceden un cierto ángulo desde una línea vertical dibujada hacia el centro del cuadro (ya que no esperamos disparos para ir inmediatamente demasiado lejos de lado). Además, la selección puede requerir que el tamaño de la pelota disminuya en cuadros consecutivos (a medida que se aleja de la cámara) y requerir que la velocidad de la pelota esté dentro de un intervalo aceptable.
  4. Seguimiento: después de seleccionar una bola, se ingresa a la fase de seguimiento. El seguimiento tiene dos etapas: estado inicial y estado estable. Durante el seguimiento inicial, se consideran los tres cuadros anteriores en cada cuadro N, donde las velocidades de los cuadros (N-3) a (N-2) y (N-2) a (N-1) se utilizan para predecir el ubicación de la pelota en el cuadro actual. Cuando se ha rastreado una bola con este esquema hasta un cierto número de cuadros (digamos 10), entonces se habilita el seguimiento de estado estable donde solo se usan los dos cuadros anteriores para estimar la ubicación de la bola en el cuadro siguiente. Esto ayuda a reducir la cantidad de cálculo requerido, ya que durante esta fase supongo que los pasos de diferenciación de trama + identificación del candidato a la pelota + selección de la pelota aún deben ejecutarse.
  5. Fin del seguimiento: el seguimiento finaliza cuando no se encuentra un candidato adecuado para la pelota dentro de una cierta distancia umbral desde la ubicación prevista en el cuadro actual, para un cierto número de cuadros consecutivos (en la patente se mencionan 1-3 cuadros).

Durante el seguimiento, la imagen compuesta creada al superponer la trayectoria de la bola en el marco de la cámara de TV original se usa como salida y es lo que se ve en la TV. La limitación obvia de Protracer TV es que no estima la posición 3D de la pelota, lo que probablemente los llevó a desarrollar Protracer Range. Destinado a la instalación en campos de prácticas, Protracer Range “ofrece datos tales como distancia (transporte y total), velocidad de la pelota, ángulo de lanzamiento, altura, desviación lateral, ángulo de aterrizaje, tiempo de suspensión y distancia al objetivo” para hasta 20 bahías de campo de prácticas separadas [7]

Los sensores y algoritmos para Protracer Range son un poco más difíciles de analizar que Protracer TV, ya que no hay muchos detalles en su sitio web y no he podido encontrar ninguna patente relevante. En su sitio mencionan “Protracer Range utiliza la misma tecnología de seguimiento patentada” que Protracer TV, pero “con sensores y software avanzados …”. Creo que están usando dos cámaras montadas sobre las bahías de impacto a una distancia horizontal (o línea de base) de ~ 30 m entre sí, como se muestra en uno de sus videos promocionales [8]:

Es probable que se use una versión más avanzada del algoritmo de seguimiento desde arriba para rastrear simultáneamente múltiples bolas con una sola cámara, y luego buscar la pista correspondiente en la cámara opuesta para calcular la disparidad estéreo y, por lo tanto, la distancia a la bola. Esto, combinado con una posición horizontal y vertical estimada (basada en el tamaño de la pelota, la óptica y la resolución de la cámara, etc.) con el tiempo proporcionaría una trayectoria 3D completa, a partir de la cual todos los datos enumerados anteriormente se pueden determinar y presentar al usuario. O bien, podría estar completamente equivocado y están usando el radar dentro de los sensores … ¿quién sabe?

Ahora, la verdadera pregunta: ¿alguien tiene $ 19,000 para donar para que pueda comprar un TrackMan y mejorar mi juego?

Referencias

  1. TrackMan: ACERCA DE
  2. Patente TrackMan: Patente US20160048975 – Conjunto que comprende un radar y un elemento de imagen
  3. Patente TrackMan: Patente US8912945 – Método y un aparato para determinar una desviación entre una dirección real de un proyectil lanzado y una dirección predeterminada
  4. TrackMan Careers
  5. TV Protracer
  6. Protracer (Daniel Forsgren, Fundador) Patente: Patente US8077917 – Sistemas y métodos para mejorar imágenes en una grabación de video de un evento deportivo
  7. Gama de Protracer: cómo funciona – Protracer TV
  8. Video de Protracer Range en YouTube: revolucionando el campo de prácticas con Protracer Range

More Interesting

¿Existe un libro que enseñe algoritmos, estructuras de datos y otros conceptos básicos de informática de una manera divertida?

Como resolver esto

¿Qué es un buen libro sobre estructuras de datos y algoritmos en javascript?

Sea X la solución del costo O (n ^ k) para un problema Q en NP-c. ¿Implicaría que existe una solución de costo O (n ^ k) para todos los problemas Q 'en NP-c?

¿Cuál es la forma más fácil / intuitiva de aprender sobre algoritmos y estructuras de datos?

Puedo pensar en algoritmos en varias preguntas, pero cuando realmente escribo un código me enfrento a muchas dificultades. Entonces, siento que soy pobre escribiendo códigos. ¿Cómo puedo mejorar eso?

¿Hay alguna manera / hay algoritmos para dividir los caracteres chinos en radicales?

¿Cómo se copia el contenido de un árbol de búsqueda binario que tiene emparejamientos K, V?

Cómo calcular [matemáticas] a ^ {\ binom {n} {r}} [/ matemáticas] de manera eficiente

¿Cuál es un libro alternativo más fácil de CLRS?

¿Cuáles son los algoritmos importantes que todo desarrollador de software graduado debe saber?

¿Ha habido algún trabajo teórico que delinee qué clase de algoritmos pueden y no pueden mapearse para mapear / reducir?

¿Por qué Google todavía muestra el tiempo de búsqueda en la página de resultados?

¿Cómo comparamos la complejidad del espacio y el tiempo como O (n ^ 2) tiempo versus O (n) espacio y O (n) tiempo?

Cómo implementar prácticamente algoritmos enseñados por Andrew Ng en su curso de aprendizaje automático