Je vais tenter de répondre à cette question, car elle a suscité mon intérêt à la fois en tant qu'ingénieur en vision par ordinateur et en tant que golfeur du dimanche (qui ne s'améliore jamais vraiment). Cette réponse est uniquement basée sur des informations publiées (sites Web, brevets délivrés), donc peut-être que quelqu'un avec des connaissances plus approfondies peut fournir plus de perspicacité. En outre, je n'ai jamais utilisé l'un ou l'autre système, donc je pourrais facilement manquer d'autres fonctionnalités basées sur la vision par ordinateur.
Deux systèmes différents ont été mentionnés dans la question (Protracer et TrackMan), et pour autant que je puisse dire, ce sont deux technologies différentes. Protracer comporte deux systèmes différents : le Protracer TV original et le Protracer Range, plus récent. Tous deux semblent plus intéressants en ce qui concerne la vision par ordinateur/le traitement de l'image car leur capteur principal est une caméra. Pendant ce temps, TrackMan s'appuie fortement sur le(s) radar(s) afin de déterminer une trajectoire 3D estimée de la balle de golf. Laissez-moi développer...
Le dernier modèle TrackMan combine deux systèmes radar dans une unité TrackMan afin de suivre le vol de la balle de golf (ou d'autres projectiles dans d'autres sports) et le club de golf [1]. Il y a également une caméra intégrée dans le TrackMan qui est utilisée pour enregistrer les swings de derrière le golfeur [2]:
Je ne pense pas que la vision par ordinateur soit beaucoup utilisée dans le TrackMan : je crois que la caméra est principalement utilisée pour enregistrer l'imagerie sur laquelle la trajectoire du vol de la balle est superposée. Cependant, il y a certainement des transformations de coordonnées pour projeter la trajectoire estimée par le radar dans le cadre de la caméra, et l'un de leurs brevets [3] décrit la possibilité d'estimer la distance à une cible sélectionnée par l'utilisateur en mesurant "l'étendue angulaire d'un motif prédéterminé de la cible" qui "peut facilement être déterminé à partir de l'image par des techniques de détection des bords". Ainsi, si l'utilisateur ne connaît pas la distance d'une cible sélectionnée dans l'image de la caméra, une autre option consiste à utiliser une cible présentant un motif connu, par exemple un motif en damier, afin d'estimer la distance. Mais, je suppose que le cas principal d'utilisation de TrackMan est sur le terrain de golf, où la distance à diverses cibles est déjà connue (dans la limite du raisonnable). Il pourrait y avoir d'autres fonctionnalités du système qui utilisent la vision par ordinateur cependant, sur la base de l'existence d'une "équipe de vision par ordinateur" mentionnée dans une récente offre d'emploi [4].
A l'inverse, le système Protracer TV [5] semble fortement dépendre des techniques de vision par ordinateur/traitement d'image afin d'estimer et de dessiner la trajectoire de la balle sur une vidéo enregistrée par une caméra auxiliaire. Leur brevet [6] montre une caméra haute résolution, utilisée comme entrée de leurs algorithmes, montée sur une caméra de télévision de façon à ce qu'il y ait une transformation fixe et mesurable ("ajustement de parallaxe") entre les deux caméras, et qu'elles "aient essentiellement le même champ de vision".
Cette transformation est une mesure unique, et permet aux positions estimées de la balle dans la caméra haute résolution d'être dessinées au bon endroit sur l'image de la caméra de télévision. Dans une autre instanciation, leur algorithme pourrait potentiellement être exécuté sur les images provenant de la caméra de télévision, éliminant ainsi le besoin d'une caméra auxiliaire haute résolution. Quoi qu'il en soit, leur algorithme de vision par ordinateur est le même dans les deux cas.
L'algorithme de Protracer TV peut être décomposé en les étapes suivantes (dérivées de la lecture d'un de leurs brevets [6]):
- Différenciation de la séquence de trames initiales : Étant donné un ensemble initial de trames provenant de la caméra d'entrée, des images de différence sont calculées entre les trames consécutives. Ensuite, les valeurs de différence supérieures à un seuil sont affectées d'une certaine valeur (par exemple, blanc) tandis que les différences inférieures à un second seuil sont affectées d'une autre valeur (par exemple, noir). Vous obtenez alors une série d'images binaires où (avec un peu de chance) seuls les pixels correspondant à des choses en mouvement sont mis en évidence.
- Identification des candidats à la balle : Les groupes de pixels (blobs) qui se sont détachés lors de la différenciation des images sont ensuite triés sur le volet en fonction d'un critère de taille de balle. On suppose que la distance approximative entre la caméra et le golfeur/la balle de golf est connue, ce qui peut être acquis soit par saisie manuelle, soit en obtenant un signal de distance focale à partir de la fonction autofocus de la 2e caméra (TV) (puisque cette caméra sera focalisée sur le golfeur). La taille attendue de la balle en pixels peut alors être calculée en fonction de la taille standard d'une balle de golf et de l'optique et de la résolution de l'objectif de la caméra auxiliaire, et les blobs qui ne sont pas dans une plage de taille acceptable sont écartés.
- Sélection de la balle : Les candidats de balle acceptés sont ensuite encore filtrés sur la base d'un critère de rondeur et en ne considérant que les régions d'intérêt dans le cadre où une balle est censée être présente. Ensuite, dans une série de trois images consécutives, la vraie balle est identifiée essentiellement en éliminant les trajectoires potentielles improbables entre les images. Imaginez que vous traciez des lignes entre tous les candidats à la balle dans la première image et tous les candidats à la balle dans la troisième image. Les lignes qui n'ont aucun candidat correspondant dans la deuxième image (à une petite distance de la ligne) sont rejetées, ainsi que les lignes qui dépassent un certain angle par rapport à une ligne verticale tracée au centre de l'image (puisque nous ne nous attendons pas à ce que les tirs aillent immédiatement trop loin sur le côté). En outre, la sélection peut exiger que la taille de la balle diminue dans des images consécutives (à mesure qu'elle s'éloigne de la caméra) et exiger que la vitesse de la balle se situe dans un intervalle acceptable.
- Tracking : Après qu'une balle ait été sélectionnée, on entre dans la phase de suivi. Il y a deux étapes au suivi : initiale et état stable. Pendant le suivi initial, les trois trames précédentes sont considérées à chaque trame N, où les vitesses des trames (N-3) à (N-2) et (N-2) à (N-1) sont utilisées afin de prédire l'emplacement de la balle dans la trame actuelle. Lorsqu'une balle a été suivie avec ce schéma jusqu'à un certain nombre d'images (disons 10), le suivi en régime permanent est activé et seules les deux images précédentes sont utilisées pour estimer la position de la balle dans l'image suivante. Cela permet de réduire la quantité de calcul nécessaire, car pendant cette phase, je suppose que les étapes de différenciation des images + identification des candidats à la balle + sélection de la balle doivent encore être exécutées.
- Fin du suivi : Le suivi se termine lorsqu'aucun candidat de balle approprié n'est trouvé à une certaine distance seuil de l'emplacement prédit dans la trame actuelle, pour un certain nombre de trames consécutives (1-3 trames est mentionné dans le brevet).
Pendant le suivi, l'image composite créée en superposant la trajectoire de la balle sur la trame originale de la caméra TV est utilisée comme sortie et est ce que vous voyez à la télévision. La limite évidente de Protracer TV est qu'il n'estime pas la position 3D de la balle, ce qui les a probablement conduits à développer Protracer Range. Destiné à être installé sur les terrains d'entraînement, Protracer Range " offre des données telles que la distance (portée et totale), la vitesse de la balle, l'angle de lancement, la hauteur, la déviation latérale, l'angle d'atterrissage, le temps d'accrochage et la distance à la cible " pour un maximum de 20 baies de terrain d'entraînement distinctes [7].
Les capteurs et les algorithmes de Protracer Range sont un peu plus difficiles à disséquer que ceux de Protracer TV, car il n'y a pas beaucoup de détails sur leur site Web et je n'ai pas pu trouver de brevets pertinents. Sur leur site, ils mentionnent que "Protracer Range utilise la même technologie de suivi propriétaire" que Protracer TV, mais "avec des capteurs et des logiciels avancés...". Je crois qu'ils utilisent deux caméras montées au-dessus des baies de frappe à une distance horizontale (ou ligne de base) de ~30m l'une de l'autre, comme le montre une de leurs vidéos promotionnelles [8]:
Une version plus avancée de l'algorithme de suivi du dessus est probablement utilisée pour suivre simultanément plusieurs balles avec une seule caméra, puis rechercher la piste correspondante dans la caméra opposée afin de calculer la disparité stéréo et donc la distance à la balle. Ceci, combiné à une estimation de la position horizontale et verticale (basée sur la taille de la balle, l'optique et la résolution de la caméra, etc.) dans le temps, fournirait une trajectoire 3D complète, à partir de laquelle toutes les données énumérées ci-dessus peuvent être déterminées et présentées à l'utilisateur. Ou bien, je pourrais me tromper complètement et ils utilisent un radar à l'intérieur des capteurs... qui sait ?
Maintenant, la vraie question : est-ce que quelqu'un a 19 000 $ à donner pour que je puisse acheter un TrackMan et améliorer mon jeu ?
Références :
- TrackMan : À PROPOS
- Brevet TrackMan : Brevet US20160048975 - Ensemble comprenant un radar et un élément d'imagerie
- TrackMan Patent : Brevet US8912945 - Méthode et appareil pour déterminer une déviation entre une direction réelle d'un projectile lancé et une direction prédéterminée
- TrackMan Careers
- Protracer TV
- Protracer (Daniel Forsgren, Founder) Patent : Brevet US8077917 - Systèmes et méthodes pour améliorer les images dans un enregistrement vidéo d'un événement sportif
- Protracer Range : Comment ça marche - Protracer TV
- Protracer Range : vidéo YouTube : Révolutionner le champ de pratique avec Protracer Range
.