Je suis Anthony Cioppa, professeur à l'Université de Liège (Belgique) et joueur Pokémon de longue date. Je viens vous présenter un projet que notre équipe de recherche vient de rendre public après plus d'un an de développement : TCG-AR, un outil de réalité augmentée gratuit et open source pour les streams du JCC Pokémon.
Le principe : le système détecte chaque carte posée sur le tapis, l'identifie parmi les 20360 cartes du JCC, et superpose en temps réel le sprite animé du Pokémon correspondant directement sur la carte, dans le flux vidéo. Aucune puce, aucun tapis capteur, aucun matériel spécifique : une ou plusieurs webcams et un PC équipé d'une carte graphique suffisent.
Démonstration en partie réelle : https://youtu.be/Gn59g8xKbtk
Origine du projet
L'idée nous vient de la vidéo de SuperZouloux publiée en 2022, dans laquelle des monstres Yu-Gi-Oh apparaissaient en 3D au-dessus des cartes pendant une partie. Son système reposait toutefois sur des puces insérées dans chaque carte et un tapis capteur, ce qui le rend difficile à généraliser : il faudrait équiper individuellement toutes les cartes de tous les joueurs.
Nous avons donc pris le problème sous un autre angle : la reconnaissance des cartes repose entièrement sur la vision par ordinateur, sans aucune instrumentation physique.
Fonctionnement
Le pipeline s'articule en trois étapes exécutées en temps réel :
1. Détection de chaque carte sur la table, quelle que soit son orientation, y compris en cas de chevauchement ;
2. Correction de l'orientation de la carte ;
3. Identification par comparaison avec une base de référence.
Un avantage notable de cette approche : à la sortie d'une nouvelle extension, aucun réentraînement des modèles n'est nécessaire. L'ajout des images des nouvelles cartes à la base de référence suffit pour qu'elles soient reconnues.
Le système gère par ailleurs plusieurs caméras simultanément. La reconnaissance s'effectue sur la vue zénithale, puis les résultats sont projetés sur les autres angles (plans latéraux, vue des joueurs). Le calibrage s'effectue une seule fois en début de session, en cliquant sur les quatre coins du plateau dans chaque vue.
Habillage broadcast
Au-delà des sprites, TCG-AR intègre un habillage complet destiné aux streams commentés :
- Sélection du deck de chaque joueur avant le match, via un moteur de recherche couvrant l'ensemble de la base de cartes ;
- Panneau latéral affichant en direct le Pokémon actif, le banc, les PV, les états spéciaux et les attaques de chaque joueur ;
- Sortie directe vers OBS, sans modification du setup existant.
Démonstration de l'interface : https://youtu.be/s2vnQ3FTKEw
Performances
Nous avons évalué le système sur des parties réelles, sous différents éclairages et configurations de plateau. Face à la base complète des 20360 cartes, le taux d'identification correcte est d'environ 85 %. En conditions d'utilisation réelles, chaque joueur ayant enregistré son deck avant le match, le système ne départage qu'une soixantaine de cartes et la précision atteint 96 %. Le traitement tient trois flux caméra HD à 30 images par seconde sur une seule carte graphique grand public.
Installation
L'ensemble du projet (code, modèles entraînés, jeu de données d'évaluation) est disponible gratuitement sous licence open-source (GPL-3.0) :
- Code et instructions d'installation : https://github.com/ULiege-VIULab/tcg-ar
- Article scientifique : https://arxiv.org/abs/2607.02090
Prérequis : Windows 10/11, carte graphique NVIDIA, une ou plusieurs webcams, OBS.
Limites actuelles
- Le calibrage suppose des caméras fixes ; déplacer une caméra en cours de partie nécessite de recalibrer ;
- Une carte masquée (par une main, par exemple) disparaît de l'overlay jusqu'à ce qu'elle redevienne visible ;
- Les sprites sont actuellement en 2D. Le passage à des modèles 3D est envisagé pour une version future.
Précisions
TCG-AR est un projet de recherche universitaire mené au VIULab de l'Université de Liège, sans affiliation avec The Pokémon Company, Nintendo ou Game Freak, et sans vocation commerciale. Les images des cartes sont récupérées à la volée depuis l'API Pokémon TCG (pokemontcg.io).
Si vous testez l'outil sur un stream ou lors d'un tournoi local, vos retours nous intéressent. Je répondrai volontiers aux questions dans ce fil ou sur mes réseaux.
Anthony Cioppa, pour l'équipe TCG-AR (Antoine Verdonck, Maxim Henry, Marc Van Droogenbroeck, Raphaël La Rocca)
Université de Liège, VIULab

