Export ONNX
Le modèle entraîné est exporté au format ONNX et exécuté avec ONNX Runtime sur le processeur de la carte.
Projet personnel · Edge AI
Une caméra filme la table, un modèle YOLOv8 Nano reconnaît chaque carte, et un moteur en Python calcule les chances de gagner pour conseiller le joueur : se coucher, suivre ou relancer. Le tout tourne sur une carte BeagleBone, sans ordinateur.
Au poker, la bonne décision se calcule : elle dépend des chances de gagner avec les cartes visibles et de ce qu'il faut miser pour rester dans le coup. Un calcul difficile à faire de tête en quelques secondes. L'objectif : un boîtier qui regarde la table et indique au joueur la décision mathématiquement la plus juste.
Projet personnel mené en 2025, dans le prolongement des cours de vision par ordinateur et d'informatique embarquée de l'ISEN (BeagleBone, FPGA).
De la carte posée sur la table au conseil donné au joueur, en quatre temps.
Une caméra USB placée au-dessus de la table filme les cartes ; OpenCV lit les images directement sur la BeagleBone.
YOLOv8 Nano repère chaque carte dans l'image et donne sa valeur et sa couleur.
Les cartes sont réparties entre la main du joueur et le tableau commun selon leur position dans l'image ; leur nombre donne l'étape du coup : pré-flop, flop, turn ou river.
Le moteur de décision en Python évalue la main, estime la probabilité de gagner et affiche le conseil : se coucher, suivre ou relancer.
Des photos de cartes, annotées avec Roboflow. Chaque boîte entoure un coin de carte, là où sont imprimées la valeur et la couleur : une carte reste reconnaissable même à moitié cachée sous une autre ou tenue en éventail.
Roboflow génère plusieurs variantes de chaque image (rotations, flou, luminosité, contraste) pour que le modèle résiste aux reflets et aux éclairages de table.
YOLOv8 Nano est affiné sur Google Colab, sur GPU, à partir de poids pré-entraînés sur le jeu COCO : le transfer learning permet d'apprendre les 52 classes avec un jeu de données de taille modeste.
Avec environ 3 millions de paramètres, c'est la plus petite version de YOLOv8 : un peu moins précise que les grandes, mais la seule assez légère pour un processeur embarqué.
La mAP sur un jeu de validation séparé mesure la qualité des détections, et la matrice de confusion montre quelles cartes le modèle confond encore.
Le programme suit le Texas Hold'em, la variante la plus répandue : chaque joueur combine ses deux cartes avec les cinq cartes communes, et la meilleure combinaison de cinq cartes l'emporte. Toutes les combinaisons sont classées, de la carte haute à la quinte flush royale.
Les cartes encore inconnues, celles des adversaires et celles à venir, sont tirées au hasard des milliers de fois : la part des parties gagnées donne l'équité de la main. C'est une simulation de Monte-Carlo, assez rapide pour tourner sur la carte.
L'équité est comparée à la cote du pot, c'est-à-dire la part du pot final qu'il faut miser pour suivre. Si la probabilité de gagner dépasse ce prix, suivre rapporte en moyenne sur le long terme (espérance positive) ; si elle le dépasse largement, relancer devient intéressant ; sinon, mieux vaut se coucher.
Le joueur indique la mise à suivre et la taille du pot ; tout le reste vient de la caméra.
Faire tenir un détecteur moderne et un moteur de calcul sur une carte de quelques watts.
Le modèle entraîné est exporté au format ONNX et exécuté avec ONNX Runtime sur le processeur de la carte.
La résolution d'entrée est réduite pour garder un temps de calcul compatible avec un conseil en direct.
Une carte n'est validée qu'après avoir été vue sur plusieurs images de suite, et le calcul n'est relancé que lorsque la table change : un reflet passager ne modifie pas le conseil.
Caméra, modèle et moteur de décision tournent sur la carte, sans ordinateur ni connexion réseau.
Détection des cartes, affinée à partir des poids pré-entraînés sur COCO.
Annotation des images, augmentation et export du jeu de données au format YOLO.
Entraînement du modèle sur GPU.
Capture du flux de la caméra et affichage du conseil.
Inférence du modèle sur le processeur de la carte.
Moteur de règles, évaluation des mains et simulation de Monte-Carlo.
La carte embarquée qui réunit la caméra, le modèle et le programme.