Stellen Sie die Verfolgung von Daten für Baseball -Pitcher an
Readme.md - eine kurze Übersicht über die Daten und die Verwendung
Beispiel_Script.R - Ein Skript mit Beispielen für die Verwendung der Daten
Die Daten finden Sie unter dem folgenden Dropbox -Link: https://www.dropbox.com/sh/gxxxnqu9c1v0d6w/aaa8ilsel7YB3_UYN03_K7VBA?dl=0
Die Hauptdatei ist Pitcher_Motion_Data.csv. Dies ist eine CSV -Datei von etwa 500 MB.
Es gibt auch eine begleitende CSV -Datei, die Statastdaten enthält, die den in diesem Datensatz enthaltenen Tonhöhen entsprechen.
Es wurden Daten für Pitcher/Pitch -Typen verwendet, die in der regulären Saison 2021 mindestens fünfmal in Tropicana Field geworfen worden waren. 5 Beispielvideos wurden für jede Tonhöhe verwendet, jeweils wurden diese zuletzt vom jeweiligen Pitcher geworfen.
Tropicana Field wurde verwendet, weil es einen Kamera -Winkel im Mittelfeld hat, mit dem man sich leicht bearbeiten kann. Aufgrund des zur Messung der Pitcherpositionen erforderlichen Berechnungsvolumen sind nur begrenzte Daten enthalten.
Jede einzelne Tonhöhe kann durch Verwendung von drei Spalten eindeutig identifiziert werden:
Die Spalte "NormaliseD_Frame" enthält die Zeitvariable für die in Videorahmen gemessene Zeitvariable (das Video beträgt 60 fps). Dies wird am Beinlift des Krugs auf Null gesetzt und erstreckt sich sowohl in positiven als auch in negativen Richtungen.
Die Erkennung des Pitcher wurde automatisch auf der Grundlage ihrer Position im Rahmen durchgeführt. Die Synchronisation der Tonhöhen wurde automatisch unter Verwendung des Beinlifts des Pitcher durchgeführt. Es kann Fälle geben, in denen dieser Prozess fehlgeschlagen ist, da der Pose -Tracking -Algorithmus den Pitcher nicht identifiziert hat oder ein Teil der Bewegung des Pitcher im Highlight -Video nicht zu sehen war. Ich habe zwei Zuverlässigkeitsflags aufgenommen, die angezeigt werden, wenn dieser Vorgang fehlgeschlagen ist.
"No_missing_frames" = 1 Wenn der Pitcher kontinuierlich von Normalized_Frame = -20 bis +120 beobachtet werden kann, kann es in diesem Zeitraum, in dem der Pitcher nicht erkannt wurde, Frames geben, und daher fehlt daher im Datensatz. "Smooth_com_flag" = 1 Wenn die Torso -Position des Pitcher nicht um mehr als 100 Pixel zwischen aufeinanderfolgenden Rahmen variiert, beseitigt dies Fälle, in denen verschiedene Spieler als Pitcher erkannt werden können. Die Filterung durch diese beiden Spalten ergibt den robustesten Satz von Bewegungsdaten.
Die Spalten V1 bis V51 beschreiben die Positionen der Körperteile des Krugs in Pixeln. Jeder Körperteil wird durch drei Spalten beschrieben, die horizontalen und vertikalen Koordinaten sind die ersten beiden. Ich bin mir nicht sicher, was der dritte ist, aber ich habe ihn im Datensatz gelassen. Die Reihenfolge ist immer zuerst zuerst dann dann rechts und bewegt sich entlang des Körpers nach unten
V1-V15 sind Punkte auf dem Kopf
V16-V21 sind die Schultern
V22-V27 sind die Ellbogen
V28-V33 sind die Hände
V34-V39 sind die Hüften
V40-V45 sind die Knie
V46-V51 sind die Füße
Die vertikalen Komponenten sind die Anzahl der Pixel von der Oberseite des Bildes. Sie müssen daher (720 - Variable) davon einnehmen, um die richtige Position auf dem Bild zu erhalten.
Es gibt auch einige andere Variablen, die aus der Pitcher -Identifizierung übrig bleiben, und auch eine Variable, die einen rudimentären Versuch enthält, die HIP/Schulter -Trennung von diesen 2D -Daten zu messen. Dies ist keine zuverlässige Messung!
Dank Baseballsavant und MLB für die Erstellung von Video -Highlights online, was für die Erfassung von Daten in dieser Skala wichtig war.
Auch dank Will McNally für Kapao wurde alle Pose -Erkennung mit diesem Algorithmus durchgeführt, der in Python implementiert wurde.
https://github.com/wmcnally/kapao
Dies ist eine Art von Datensatz, der zuvor noch nicht öffentlich verfügbar war. Ich hoffe, dass eine gewisse Verwendung dafür zu finden ist.
Wenn Sie Vorschläge haben, wenden Sie sich auf Twitter @pitching_bot oder finden Sie meine Kontaktinformationen auf meiner Website
Cameron Grove - 24/12/21