Comment construire un système de suivi de balle pour le cricket

Contenu

Vue d'ensemble

  • Apprenez à construire votre propre système de suivi des balles de cricket à l'aide de la vision par ordinateur et de Python
  • Comprendre différentes approches pour suivre des objets en mouvement rapide dans une vidéo de sport.
  • Nous aborderons également les différents cas d'utilisation d'un système de suivi de balle..

introduction

Le système de révision des décisions (DRS) c'est assez omniprésent dans le sport du cricket de nos jours. Les équipes commencent à s'appuyer fortement sur le DRS pour outrepasser les décisions strictes des arbitres et cela, assez souvent, vous pouvez changer le match en votre faveur.

Ce concept de suivi de la balle, partie du DRS, est maintenant un spectacle familial pour les fans de cricket:

cricket_ball_tracking-6223641

Cela m'a fait réfléchir: Pourrais-je construire mon propre système de suivi de balles en utilisant mes connaissances en l'apprentissage en profondeur et Python?

Je suis un grand fan de cricket et je suis constamment à la recherche de différents cas d'utilisation où je peux appliquer des algorithmes d'apprentissage automatique ou d'apprentissage en profondeur.. L'idée de construire un système de suivi de balle m'est venue lorsque je travaillais sur mon précédent projet axé sur la génération d'informations à partir des données de retour de cricket..

Les équipes de cricket et les franchises utilisent également cette idée de suivi de balle pour comprendre les points faibles des joueurs adverses.. Dans quelle position un frappeur particulier est-il vulnérable ?? Où le melon jette-t-il constamment la mort?

Les systèmes de suivi de balle aident les équipes à analyser et à comprendre ces questions. Voici un exemple du récent match de cricket:

  • Les quilleurs néo-zélandais ont poursuivi une stratégie contre Virat Kohli lors de la précédente tournée de l'Inde à la Nouvelle-Zélande. Les premiers ballons affrontés par Virat étaient dans sa zone faible. Cela le mettait mal à l'aise et il perdait régulièrement sa fenêtre tôt.

hawk-eye-system-5974405

Dans cet article, nous allons passer en revue les différents aspects d'un système de suivi de balle, puis en créer un en Python en utilisant l'exemple de cricket. Cela promet d'être une expérience d'apprentissage unique!!

Noter: Si vous êtes complètement nouveau dans le monde de l'apprentissage en profondeur et de la vision par ordinateur, Je vous suggère de consulter les ressources suivantes:

Table des matières

  1. Qu'est-ce qu'un système de suivi de balle?
  2. Cas d'utilisation du système de suivi de balle dans le sport
  3. Différentes approches du système de suivi de balle
  4. Mise en œuvre: développez votre premier système de suivi de balle pour Cricket en utilisant Python

Qu'est-ce qu'un système de suivi de balle?

Faisons rapidement connaissance avec deux termes populaires en vision par ordinateur avant une discussion sur le système de suivi de balle.: détection d'objets et suivi d'objets.

Détection d'objets est l'un des concepts les plus fascinants de la vision par ordinateur. Il a un rôle puissant dans différents domaines tels que la défense, l'espace, sports et autres domaines. Ici, J'ai répertorié quelques cas d'utilisation intéressants de la détection d'objets dans la défense et l'espace:

  • Pointeur de cible automatique
  • Entraînement robots dans des simulations de mots réels pour récupérer des personnes dans des environnements physiques dangereux
  • Détection de débris spatiaux

Mais, Qu'est-ce que la détection d'objets?

Classification des images + Emplacement = Détection d'objet

La détection d'objet est la tâche d'identifier un objet et son emplacement dans une image. La détection d'objets est similaire à un problème de classification d'images, mais avec une tâche supplémentaire (identifier également l'emplacement d'un objet), un concept connu sous le nom d'emplacement.

selection_170-3752583

Comme vous pouvez le voir ici, l'emplacement de l'objet est représenté par une boîte rectangulaire qui est populairement connue sous le nom de boîte englobante.. Bounding Box représente les coordonnées de l'objet dans une image. Mais attendez, En quoi la détection d'objets est-elle différente du suivi d'objets ?? Répondons à cette question maintenant.

Suivi d'objets c'est un cas particulier de détection d'objet. S'applique uniquement aux données vidéo. Sur le suivi d'objet, l'objet et son emplacement sont identifiés dans chaque image d'une vidéo.

La détection d'objet appliquée à chaque image d'une vidéo devient un problème de suivi d'objet.

Rappelez-vous que la détection d'objet est pour une image, tandis que le suivi d'objet est pour la séquence d'images en mouvement rapide. Les deux problèmes impliquent la même tâche, mais les termes sont utilisés de manière interchangeable selon le type de données avec lesquelles vous travaillez.

Ensuite, Comment cela s'applique-t-il au suivi de balle?

Ball Tracking System est l'un des cas d'utilisation les plus intéressants pour la détection et le suivi d'objets dans le sport. Un système de suivi de balle est utilisé pour trouver la trajectoire de la balle dans une vidéo de sport. Hawk-eye est le système de suivi de balle le plus avancé utilisé dans différents sports comme le cricket, tennis et football pour identifier la trajectoire de la balle à partir de caméras performantes.

Nous pouvons développer un système similaire en utilisant les concepts de vision par ordinateur identifiant la balle et son emplacement dans chaque image d'une vidéo.. Voici une démo de ce que nous allons créer dans cet article:

Impressionnant, vérité?

Cas d'utilisation du système de suivi de balle dans le sport

Le système de suivi de balle, comme je suis sûr que vous l'aurez déjà compris, est un concept puissant qui transcende les industries. Dans cette section, je vais montrer quelques cas d'utilisation populaires du suivi de balle dans le sport.


Cas d'utilisation 1: Prise de décision critique

Nous en avons déjà parlé et je suis sûr que la plupart d'entre vous connaissent le hawk-eye dans le cricket..

La trajectoire du ballon aide à prendre des décisions critiques pendant le jeu. Par exemple, au cricket, pendant la jambe avant le guichet (de FPN), la trajectoire de la balle aide à décider si la balle est entrée ou sortie des souches. Il comprend également des informations indiquant si la balle frappe les tourillons ou non..

de la même manière, au tennis, pendant les services ou un jeu, le système de suivi de balle permet de savoir si la balle a été lancée dans ou hors des lignes autorisées sur le terrain:

capture d

Cas d'utilisation 2: identifier les zones fortes et faibles d'un frappeur

Chaque équipe a un ensemble de joueurs gagnants. Choisir son terrain le plus tôt possible est crucial pour que toute équipe gagne des matchs. Avec l'aide de la technologie de suivi de balle, nous pouvons analyser les vidéos brutes et générer des cartes thermiques.

A partir de ces cartes thermiques, nous pouvons facilement identifier la zone forte et faible d'un frappeur. Cela aiderait l'équipe à développer une stratégie contre tous les joueurs avant un match.:

Pouvez-vous penser à d'autres cas d'utilisation d'un système de suivi de balle dans le sport ?? Laissez-moi savoir dans la section commentaire ci-dessous!!

Différentes approches des systèmes de suivi de balle

Il existe différents algorithmes de suivi, ainsi que des modèles préalablement formés pour suivre l'objet dans une vidéo. Mais, il y a certains défis avec eux lorsqu'il s'agit de suivre une balle de cricket en mouvement rapide.

Ce sont les quelques défis que nous devons connaître avant de suivre une balle en mouvement rapide dans une vidéo de cricket.

  • La balle de cricket se déplace à une vitesse très élevée d'environ 130-150 km / h. À cause de, le ballon continue son chemin.
  • Les objets en forme de balle au sol peuvent être difficiles à classer. Par exemple, les pointes de 30 les mètres sur le terrain vus d'en haut ressemblent presque à une balle.

capture d

Donc, dans cet article, je vais me concentrer sur 2 approches simples pour suivre un ballon en mouvement rapide dans une vidéo de sport:

  • Fenêtre coulissante
  • Segmentation par couleur

Discutons-en en détail maintenant..

Méthode 1: fenêtre coulissante

L'un des moyens les plus simples pourrait être de diviser l'image en plus petits patchs, disons des grilles de 3 * 3 O 5 * 5, puis classer chaque patch dans l'un des 2 cours, si un patch contient une balle ou non. Cette approche est connue sous le nom d'approche de la fenêtre glissante., puisqu'on glisse la fenêtre d'un patch dans chaque partie d'une image.

N'oubliez pas que la formation de grille peut également se chevaucher. Tout dépend de la façon dont vous voulez formuler le problème.

Ensuite, un exemple est montré montrant les grilles qui ne se chevauchent pas:

1-7-9418169

Cette méthode est vraiment simple et efficace. Mais c'est un processus qui prend du temps, car il considère plusieurs patchs de l'image. Un autre inconvénient de l'approche de la fenêtre coulissante est qu'elle est coûteuse, puisqu'il considère chaque patch d'une image.

Ensuite, ensuite, Je vais discuter de l'approche alternative à la fenêtre coulissante.

Se concentrer 2: segmentation des couleurs

Au lieu de considérer chaque patch, on peut réduire les patchs pour les classer selon la couleur de la balle. Comment connaissons-nous la couleur de la balle, nous pouvons facilement différencier les patchs qui ont une couleur similaire à la balle du reste des patchs.

diagramme-sans-titre-1-1-9974604

Cela se traduit par moins de correctifs à trier. Ce processus de combinaison de parties similaires d'une image par la couleur est connu sous le nom de segmentation des couleurs.

Mise en œuvre: développez votre premier système de suivi de balle pour Cricket en Python

Le temps de coder! Développons un système de suivi de balle simple qui suit la balle sur le terrain à l'aide de Python. Téléchargez les fichiers de données nécessaires à partir de ici.

Premier, lisons un fichier vidéo et enregistrons les images dans un dossier:

Cadres de lecture:

Comme notre objectif est de suivre le ballon sur le terrain, nous devons extraire les images qui contiennent le pitch. Ici, J'utilise le concept de détection de scène pour accomplir la tâche:

Production:

scène-5047494

La valeur aberrante dans le graphique indique le numéro d'image pendant lequel la scène change. Donc, définir le seuil pour obtenir les images avant un changement de scène:

À présent, nous avons obtenu les trames qui contiennent un ton. Ensuite, nous allons mettre en œuvre une approche de segmentation dont nous avons parlé plus tôt dans cet article. Passons maintenant en revue toutes les étapes de l'approche à cadre unique.

Nous allons lire le cadre et appliquer un flou gaussien pour supprimer le bruit dans une image:

Production:

capture d

Comment connais-tu la couleur de la balle, nous pouvons facilement segmenter des objets blancs dans une image. Ici, 200 agit comme un seuil. Toute valeur de pixel inférieure à celle-ci 200 sera marqué comme 0 et ci-dessus 200 sera marqué comme 255.

Production:

capture d

Comme vous pouvez le voir ici, les objets blancs sont segmentés. Le blanc indique les objets blancs et le noir indique toutes les autres couleurs. Et c'est ça! Nous avons séparé les objets blancs des autres.

À présent, on va retrouver les contours des objets segmentés dans une image:

Dessinez les contours sur l'image originale:

Production:

capture d
Ensuite, extraire des patchs d'une image à l'aide de contours:

Il est temps de construire un classificateur d'images pour identifier le patch contenant la balle.

Lire et préparer l'ensemble de données:

Diviser l'ensemble de données en apprentissage et validation:

Construire un modèle de base pour identifier le patch contenant la balle:

Évaluer le modèle sur les données de validation:

Répétez les étapes similaires pour chaque image d'une vidéo, puis notez:

Jetez un œil aux cadres contenant la balle avec l'emplacement:

capture d

Ensuite, nous allons dessiner le cadre de délimitation autour des cadres contenant la balle et l'enregistrer dans le dossier:

Transformons les images en vidéo maintenant:

Production:

À quel point cela est cool? Félicitations pour la construction de votre propre système de suivi de balles de cricket !!

Remarques finales

C'est tout pour aujourd'hui! Cela nous amène à la fin du didacticiel de suivi des balles de cricket.. Notez qu'un modèle de base est créé pour les tâches de classification d'images. Mais il reste encore beaucoup marge pour améliorer notre modèle. Et aussi, il y a peu d'hyperparamètres dans cette approche, comme la taille du filtre gaussien et la valeur seuil à ajuster en fonction du type de vidéo.

Que pensez-vous du système que nous construisons? Partagez vos idées et commentaires dans la section commentaires ci-dessous et parlons-en..

Abonnez-vous à notre newsletter

Nous ne vous enverrons pas de courrier SPAM. Nous le détestons autant que vous.

Haut-parleur de données