Pose de datos de seguimiento para lanzadores de béisbol
ReadMe.md: una descripción general de los datos y cómo usarlos
Ejemplo_script.r: un script con ejemplos de cómo usar los datos
Los datos se pueden encontrar en el siguiente enlace de Dropbox: https://www.dropbox.com/sh/gxxxnqu9c1v0d6w/aaa8ilsel7yb3_uyyn03_k7vba?dl=0
El archivo principal es Pitcher_Motion_Data.CSV. Este es un archivo CSV de aproximadamente 500 MB.
También hay un archivo CSV complementario que contiene datos de statcast correspondientes a los lanzamientos que se incluyen en este conjunto de datos.
Se tomaron datos para los lanzadores/tipos de lanzamiento que se habían lanzado al menos 5 veces en Tropicana Field en la temporada regular 2021. Se usaron 5 videos de muestra para cada lanzamiento, en cada caso, estos fueron los últimos lanzados por el lanzador particular.
Tropicana Field se usó porque tiene un ángulo de cámara de campo central con el que es fácil trabajar. Solo se incluyen datos limitados debido al volumen de cálculo requerido para medir las posiciones del lanzador.
Cada tono individual se puede identificar de manera única utilizando tres columnas:
La columna "Normalized_frame" contiene la variable de tiempo para el tono, medido en marcos de video (el video es de 60 fps). Esto está a cero en el elevador de la pierna del lanzador y se extiende en las direcciones positivas y negativas.
La detección del lanzador se realizó automáticamente en función de su posición en el marco, la sincronización de los lanzamientos se realizó automáticamente utilizando el elevador de piernas del lanzador. Puede haber casos en los que este proceso falló porque el algoritmo de seguimiento de pose no identificó al lanzador, o alguna parte de la moción del lanzador no se vio en el video destacado. Incluí dos banderas de confiabilidad para mostrar cuándo falló este proceso.
"NO_MISSING_FRAMES" = 1 Cuando el lanzador se puede observar continuamente de NAILTIONISED_FRAME = -20 a +120, de lo contrario puede haber marcos en este período de tiempo donde el lanzador no se detectó y, por lo tanto, falta en el conjunto de datos. "Smooth_com_flag" = 1 Cuando la posición del torso del lanzador no varía en más de 100 píxeles entre cuadros consecutivos, esto elimina los casos en los que se pueden detectar diferentes jugadores como el lanzador. El filtrado por ambas columnas proporciona el conjunto más robusto de datos de movimiento.
Las columnas V1 a V51 describen las posiciones de las partes del cuerpo del lanzador en píxeles. Cada parte del cuerpo se describe con tres columnas, las coordenadas horizontales y verticales son las dos primeras, no estoy seguro de cuál es el tercero, pero lo he dejado en el conjunto de datos. El orden siempre se deja primero y luego a la derecha, moviéndose por el cuerpo
V1-V15 son puntos en la cabeza
V16-V21 son los hombros
V22-V27 son los codos
V28-V33 son las manos
V34-V39 son las caderas
V40-V45 son las rodillas
V46-V51 son los pies
Los componentes verticales son la cantidad de píxeles desde la parte superior de la imagen, por lo que debe tomar (720 - variable) de estos para obtener la posición correcta en la imagen.
También hay otras variables que quedan de la identificación del lanzador, y también una variable que contiene un intento rudimentario de medir la separación de cadera/hombro de estos datos 2D, ¡esta no es una medición confiable!
Gracias a Baseballsavant y MLB por hacer que los aspectos destacados de video sean fácilmente disponibles en línea, lo cual fue esencial para recopilar datos en esta escala.
También gracias a Will McNally por Kapao, toda la detección de pose se realizó utilizando este algoritmo, implementado en Python.
https://github.com/wmcnally/kapao
Este es un tipo de conjunto de datos que no ha estado disponible públicamente antes, espero que se pueda encontrar algún uso.
Si tiene alguna sugerencia, póngase en contacto en Twitter @pitching_bot, o encuentre mi información de contacto en mi sitio web
Cameron Grove - 24/12/21