Überblick
- Lernen Sie, Ihr eigenes Cricketball-Tracking-System mit Computer Vision und Python zu bauen
- Verstehen Sie verschiedene Ansätze zur Verfolgung sich schnell bewegender Objekte in einem Sportvideo.
- Wir werden auch die verschiedenen Anwendungsfälle eines Balltracking-Systems besprechen..
Einführung
Das Entscheidungsüberprüfungssystem (DRS) es ist heutzutage im Cricketsport ziemlich allgegenwärtig. Die Teams verlassen sich stark auf den DRS, um strenge Schiedsrichterentscheidungen außer Kraft zu setzen, und das, ziemlich oft, Sie können das Spiel zu Ihren Gunsten ändern.
Dieses Konzept der Ballverfolgung, Teil des DRS, ist jetzt eine Familienshow für Cricket-Fans:
Das hat mich zum Nachdenken gebracht: Könnte ich mein eigenes Ballverfolgungssystem unter Verwendung meines Wissens über tiefes LernenTiefes Lernen, Eine Teildisziplin der Künstlichen Intelligenz, verlässt sich auf künstliche neuronale Netze, um große Datenmengen zu analysieren und zu verarbeiten. Diese Technik ermöglicht es Maschinen, Muster zu lernen und komplexe Aufgaben auszuführen, wie Spracherkennung und Computer Vision. Seine Fähigkeit, sich kontinuierlich zu verbessern, wenn mehr Daten zur Verfügung gestellt werden, macht es zu einem wichtigen Werkzeug in verschiedenen Branchen, von Gesundheit... und Python?
Ich bin ein großer Cricket-Fan und suche ständig nach verschiedenen Anwendungsfällen, in denen ich maschinelles Lernen oder Deep-Learning-Algorithmen anwenden kann.. Die Idee, ein Balltracking-System zu bauen, kam mir, als ich an meinem vorherigen Projekt arbeitete, das sich darauf konzentrierte, Erkenntnisse aus Cricket-Feedback-Daten zu gewinnen..
Cricket-Teams und Franchises nutzen diese Idee des Balltracking auch, um Schwachstellen bei gegnerischen Spielern zu verstehen.. In welcher Position ist ein bestimmter Hitter verwundbar?? Wo wirft der Bowler ständig den Tod hin??
Balltracking-Systeme helfen Teams, diese Fragen zu analysieren und zu verstehen. Hier ist ein solches Beispiel aus dem letzten Cricket-Match:
- Neuseeländische Bowler verfolgten auf der vorherigen Tour von Indien nach Neuseeland eine Strategie gegen Virat Kohli. Die ersten Bälle, mit denen Virat konfrontiert wurde, waren in seiner schwachen Zone. Das war ihm unangenehm und er verlor regelmäßig früh sein Fenster.
In diesem Artikel, Wir werden die verschiedenen Aspekte eines Balltracking-Systems durchgehen und dann eines in Python anhand des Cricket-Beispiels erstellen. Dies verspricht eine einzigartige Lernerfahrung zu werden!!
Notiz: Wenn Sie völlig neu in der Welt von Deep Learning und Computer Vision sind, Ich schlage vor, dass Sie sich die folgenden Ressourcen ansehen:
Inhaltsverzeichnis
- Was ist ein Balltracking-System?
- Anwendungsfälle für Balltracking-Systeme im Sport
- Verschiedene Ansätze für das Balltracking-System
- Implementierung: Entwickeln Sie Ihr erstes Balltracking-System für Cricket mit Python
Was ist ein Balltracking-System?
Machen wir uns schnell mit zwei populären Begriffen in der Computer Vision vertraut, bevor wir das Balltracking-System diskutieren.: Objekterkennung und Objektverfolgung.
Objekterkennung ist eines der faszinierendsten Konzepte der Computer Vision. Es spielt eine wichtige Rolle in verschiedenen Bereichen wie der Verteidigung, Raum, Sport und andere Bereiche. Hier, Ich habe einige interessante Anwendungsfälle der Objekterkennung in Verteidigung und Raumfahrt aufgelistet:
- Automatischer Zielzeiger
- AusbildungTraining ist ein systematischer Prozess zur Verbesserung der Fähigkeiten, körperliche Kenntnisse oder Fähigkeiten. Es wird in verschiedenen Bereichen angewendet, wie Sport, Aus- und Weiterbildung. Zu einem effektiven Trainingsprogramm gehört auch die Zielplanung, Regelmäßiges Üben und Bewerten der Fortschritte. Anpassung an individuelle Bedürfnisse und Motivation sind Schlüsselfaktoren, um in jeder Disziplin erfolgreiche und nachhaltige Ergebnisse zu erzielen.... Roboter in realistischen Simulationswelten entwickeln, um Menschen in gefährlichen physischen Umgebungen zu retten
- Erkennung von Weltraummüll
Aber, Was ist Objekterkennung??
Bildklassifizierung + Standort = Objekterkennung
Objekterkennung ist die Aufgabe, ein Objekt und seine Position in einem Bild zu identifizieren. Die Objekterkennung ähnelt einem Bildklassifizierungsproblem, aber mit einer zusätzlichen Aufgabe (auch den Standort eines Objekts identifizieren), ein Konzept, das als Standort bekannt ist.

Wie Sie hier sehen können, die Position des Objekts wird durch eine rechteckige Box dargestellt, die im Volksmund als Bounding Box bekannt ist.. Bounding Box repräsentiert die Koordinaten des Objekts in einem Bild. Aber warte, Wie unterscheidet sich die Objekterkennung von der Objektverfolgung?? Beantworten wir diese Frage jetzt.
Objektverfolgung es ist ein Sonderfall der Objekterkennung. Gilt nur für Videodaten. Auf Objektverfolgung, das Objekt und seine Position werden in jedem Frame eines Videos identifiziert.
Die auf jeden Frame eines Videos angewendete Objekterkennung wird zu einem Objektverfolgungsproblem.
Denken Sie daran, dass die Objekterkennung für ein Bild gedacht ist, während die Objektverfolgung für die Abfolge von sich schnell bewegenden Bildern ist. Beide Probleme beinhalten die gleiche Aufgabe, Die Begriffe werden jedoch je nach Art der Daten, mit denen Sie arbeiten, austauschbar verwendet.
Dann, Wie trifft das auf die Ballverfolgung zu??
Ball Tracking System ist einer der interessantesten Anwendungsfälle für die Objekterkennung und -verfolgung im Sport. Ein Ball-Tracking-System wird verwendet, um die Flugbahn des Balls in einem Sportvideo zu finden. Hawk-Eye ist das fortschrittlichste Balltracking-System, das in verschiedenen Sportarten wie Cricket verwendet wird, Tennis und Fußball, um die Flugbahn des Balls mit Hochleistungskameras zu erkennen.
Wir können ein ähnliches System entwickeln, indem wir die Konzepte der Computer Vision verwenden, um den Ball und seine Position in jedem Frame eines Videos zu identifizieren.. Hier ist eine Demo von dem, was wir in diesem Artikel erstellen werden:
Beeindruckend, Wahrheit?
Anwendungsfälle für Balltracking-Systeme im Sport
Das Balltracking-System, wie ihr sicher schon gemerkt habt, ist ein leistungsstarkes, branchenübergreifendes Konzept. In diesem Abschnitt, Ich zeige einige beliebte Anwendungsfälle von Balltracking im Sport.
Anwendungsfall 1: Kritische Entscheidungen
Wir haben bereits darüber gesprochen und ich bin sicher, die meisten von Ihnen werden mit Hawk-Eye im Cricket vertraut sein..
Die Flugbahn des Balls hilft, kritische Entscheidungen während des Spiels zu treffen. Zum Beispiel, im Kricket, während der Etappe vor dem Wicket (der LBW), die Flugbahn des Balls hilft zu entscheiden, ob der Ball in die Stümpfe geworfen oder aus ihnen heraus geworfen wurde. Es enthält auch Informationen darüber, ob der Ball die Zapfen trifft oder nicht..
Ähnlich, im Tennis, während des Aufschlags oder eines Spiels, Das Balltracking-System hilft zu wissen, ob der Ball in oder aus den erlaubten Linien auf dem Platz geworfen wurde:

Anwendungsfall 2: Identifizieren der starken und schwachen Zonen eines Hitters
Jedes Team hat eine Reihe von Spielern, die das Spiel gewinnen. Die frühestmögliche Auswahl Ihres Geländes ist für jedes Team entscheidend, um Spiele zu gewinnen. Mit Hilfe der Balltracking-Technologie, Wir können die Rohvideos analysieren und Heatmaps erstellen.
Von diesen Heatmaps, Wir können die starke und die schwache Zone eines Hitters leicht identifizieren. Dies würde dem Team helfen, vor einem Spiel eine Strategie gegen alle Spieler zu entwickeln.:
Können Sie sich andere Anwendungsfälle für ein Balltracking-System im Sport vorstellen?? Lass es mich im Kommentarbereich unten wissen!!
Verschiedene Ansätze für Balltracking-Systeme
Es gibt verschiedene Tracking-Algorithmen, sowie zuvor trainierte Modelle, um das Objekt in einem Video zu verfolgen. Aber, Es gibt bestimmte Herausforderungen mit ihnen, wenn es darum geht, einen sich schnell bewegenden Cricketball zu verfolgen.
Dies sind die wenigen Herausforderungen, die wir kennen müssen, bevor wir einen sich schnell bewegenden Ball in einem Cricket-Video verfolgen.
- Der Cricketball bewegt sich mit einer sehr hohen Geschwindigkeit von ca. 130-150 km / h. Aus diesem Grund, der Ball macht sich auf den Weg.
- Ballähnliche Objekte auf dem Boden können schwer zu klassifizieren sein. Zum Beispiel, die Punkte von 30 Meter auf dem Spielfeld sehen von oben betrachtet fast wie ein Ball aus.

Deswegen, In diesem Artikel, Ich konzentriere mich auf 2 einfache Ansätze zur Verfolgung eines sich schnell bewegenden Balls in einem Sportvideo:
- Schiebefenster
- SegmentierungDie Segmentierung ist eine wichtige Marketingtechnik, bei der ein breiter Markt in kleinere, homogenere Gruppen unterteilt wird. Diese Praxis ermöglicht es Unternehmen, ihre Strategien und Botschaften an die spezifischen Merkmale jedes Segments anzupassen, So verbessern Sie die Effektivität Ihrer Kampagnen. Das Targeting kann auf demografischen Kriterien basieren, psychografisch, geografisch oder verhaltensbezogen, Erleichterung einer relevanteren und persönlicheren Kommunikation mit der Zielgruppe.... nach Farbe
Lassen Sie uns sie jetzt im Detail besprechen..
Methode 1: Schiebefenster
Eine der einfachsten Möglichkeiten könnte darin bestehen, das Bild in kleinere Felder zu unterteilen, sagen wir Gitter von 3 * 3 Ö 5 * 5, und klassifizieren Sie dann jeden Patch in einen von 2 Lektionen, ob ein Patch einen Ball enthält oder nicht. Dieser Ansatz ist als Gleitfensteransatz bekannt., da wir das Fenster eines Patches in jeden Teil eines Bildes verschieben.
Denken Sie daran, dass sich die Gitterbildung auch überlappen kann. Es hängt alles davon ab, wie Sie das Problem formulieren möchten.
Dann, ein Beispiel wird gezeigt, das die Gitter zeigt, die sich nicht überlappen:

Diese Methode ist wirklich einfach und effektiv. Aber es ist ein Prozess, der Zeit braucht, da es mehrere Patches des Bildes berücksichtigt. Ein weiterer Nachteil des Schiebefensteransatzes ist, dass er teuer ist, da es jeden Patch eines Bildes berücksichtigt.
Dann, dann, Ich werde den alternativen Ansatz zum Schiebefenster diskutieren.
Fokus 2: Farbsegmentierung
Anstatt jeden Patch zu berücksichtigen, Wir können die Patches reduzieren, um sie nach der Farbe des Balls zu klassifizieren. Woher kennen wir die Farbe des Balls, Wir können die Patches, die eine ähnliche Farbe wie der Ball haben, leicht vom Rest der Patches unterscheiden.

Dies führt dazu, dass weniger Patches sortiert werden müssen. Dieser Vorgang des Kombinierens ähnlicher Teile eines Bildes durch Farbe ist bekannt als Farbsegmentierung.
Implementierung: Entwickle dein erstes Balltracking-System für Cricket in Python
Zeit zu codieren! Lassen Sie uns ein einfaches Balltracking-System entwickeln, das den Ball auf dem Spielfeld mit Python verfolgt. Laden Sie die erforderlichen Datendateien herunter von hier.
Zuerst, Lass uns eine Videodatei lesen und die Frames in einem Ordner speichern:
Leserahmen:
Unser Ziel ist es, den Ball auf dem Spielfeld zu verfolgen, wir müssen die Frames extrahieren, die die Tonhöhe enthalten. Hier, Ich verwende das Konzept der Szenenerkennung, um die Aufgabe zu erfüllen:
Produktion:
Der Ausreißer in der Grafik zeigt die Bildnummer an, während der sich die Szene ändert. Deswegen, Legen Sie den Schwellenwert fest, um die Frames vor einem Szenenwechsel zu erhalten:
Jetzt, wir haben die Frames erhalten, die einen Ton enthalten. Dann, Wir werden einen Segmentierungsansatz implementieren, den wir zuvor in diesem Artikel besprochen haben. Lassen Sie uns jetzt alle Schritte des Single-Frame-Ansatzes durchgehen.
Wir werden den Rahmen lesen und die Gaußsche Unschärfe anwenden, um das Rauschen in einem Bild zu entfernen:
Produktion:

Woher weißt du die Farbe des Balls?, wir können weiße Objekte in einem Bild leicht segmentieren. Hier, 200 fungiert als Schwelle. Jeder Pixelwert darunter 200 wird markiert als 0 und darüber 200 wird markiert als 255.
Produktion:

Wie Sie hier sehen können, weiße Objekte werden segmentiert. Weiß steht für weiße Objekte und Schwarz für alle anderen Farben. Und das ist! Wir haben die weißen Objekte von den anderen getrennt.
Jetzt, wir finden die Konturen von segmentierten Objekten in einem Bild:
Zeichnen Sie die Umrisse auf das Originalbild:
Produktion:

Dann, Extrahieren von Patches aus einem Bild mithilfe von Umrissen:
Es ist an der Zeit, einen Bildklassifikator zu erstellen, um den Patch zu identifizieren, der den Ball enthält.
Lesen und bereiten Sie den Datensatz vor:
Teilen Sie den Datensatz in Training und Validierung auf:
Erstellen Sie ein Basislinienmodell, um den Patch zu identifizieren, der den Ball enthält:
Bewerten Sie das Modell anhand der Validierungsdaten:
Wiederholen Sie die ähnlichen Schritte für jeden Frame in einem Video, gefolgt von der Bewertung:
Sehen Sie sich die Frames mit dem Ball zusammen mit der Position an:
Dann, Wir werden die Bounding Box um die Frames mit dem Ball zeichnen und sie zurück in den Ordner speichern:
Lass uns die Frames jetzt wieder in ein Video verwandeln:
Produktion:
Wie cool ist das? Herzlichen Glückwunsch zum Bau Ihres eigenen Cricketball-Tracking-Systems!!
Abschließende Anmerkungen
Ist alles für heute! Dies bringt uns zum Ende des Cricketball-Tracking-Tutorials.. Beachten Sie, dass für Bildklassifizierungsaufgaben ein Basismodell erstellt wird. Aber es gibt noch viel RandMargin ist ein Begriff, der in einer Vielzahl von Zusammenhängen verwendet wird, wie z.B. Buchhaltung, Wirtschaft und Druck. In der Buchhaltung, bezieht sich auf die Differenz zwischen Umsatz und Kosten, die es ermöglicht, die Rentabilität eines Unternehmens zu bewerten. Im Bereich Publishing, Der Rand ist der Leerraum um den Text auf einer Seite, Das macht es gut lesbar und sorgt für eine ästhetische Darstellung. Die korrekte Verwaltung ist unerlässlich.. um unser Modell zu verbessern. Und auch, es gibt wenige Hyperparameter in diesem Ansatz, wie die Größe des Gauß-Filters und der Schwellenwert, der je nach Videotyp angepasst werden muss.
Was halten Sie von dem System, das wir bauen?? Teilen Sie Ihre Ideen und Kommentare im Kommentarbereich unten mit und lassen Sie uns reden..






