Ce projet faisait partie du cours VR/AR de mon université TU Darmstadt. Le but du projet était de créer une application de comptage de fléchettes automatique, dans laquelle deux joueurs peuvent jouer à une partie de fléchettes sans se concentrer sur le comptage des points. L'application utilise OpenCV pour la partie vision par ordinateur et Pyside2 pour l'interface graphique.
Nous utilisons une webcam calibrée pour capturer un flux vidéo et le traiter avec OpenCV pour extraire les fléchettes sur le plateau et suivre les joueurs.
Le pipeline de détection complet ressemble à ceci :
Le pipeline global est résumé dans cet organigramme (actuellement uniquement en allemand) :
Vous aurez besoin de :
Placez les marqueurs autour de la cible comme dans l'image ci-dessous et assurez-vous qu'ils sont visibles. Placez la webcam devant le jeu de fléchettes à environ 1 mètre et légèrement vers la droite, afin qu'elle ne gêne pas le lancement des fléchettes.
Important : Vous avez besoin d’un bon éclairage pour obtenir de bons résultats. Seul l’éclairage directement au-dessus du jeu de fléchettes est mauvais. L'idéal serait une lampe annulaire avec un diffuseur comme celui-ci :
Nous avons eu quelques problèmes de secousses de la planche qui provoquaient du bruit lors de la détection. Nous avons résolu ce problème en imprimant des supports imprimés en 3D pour la carte :
Clonez simplement le référentiel et exécutez la commande suivante :
pip install -r requirements.txt
Vous devez d’abord calibrer la caméra. Cela peut être fait avec le script d'étalonnage. Ensuite, vous pouvez démarrer main_with_gui.py. L'interface graphique ressemble à ceci :