Belote A.I. est une app dédiée au comptage de points à la Belote, mais avec une particularité supplémentaire. Au lieu de mémoriser le nombre de points associés à chaque carte, ce qui dépend de la couleur de l’atout dans ce jeu séculaire, vous pouvez simplement passer les cartes devant la caméra de votre iPhone. La reconnaissance des cartes est quasiment instantanée et l’app se charge de comptabiliser les points en fonction des paramètres saisis au départ. À la fin du processus, un décompte est affiché pour chaque équipe et vous pouvez passer à la manche suivante.
C’est malin, mais c’est plus complexe à réaliser qu’on pourrait le croire. Pierre Boudoin, le lecteur qui a créé cette app nous a envoyé un mail pour expliquer comment il a créé Belote A.I. Sous le capot, c’est CoreML 2, l’outil d’Apple dédié à l’intelligence artificielle et plus particulièrement à l’apprentissage automatique, qui est utilisé. Pierre a créé un modèle capable de reconnaître les 32 cartes utilisées dans la belote1, quel que soit l’éclairage ou l’angle de la carte et du smartphone.
Pour créer ce modèle, il fallait un jeu de données qui alimente l’apprentissage automatique. Dans le cas de la Belote, il s’agit d’un ensemble de photos des 32 cartes, en multipliant les angles et éclairages. Pierre a créé son propre jeu de données. Le processus lui a demandé plusieurs semaines, le temps d’avoir prévu suffisamment de cas pour détecter toutes les cartes avec la fiabilité nécessaire.
Sa machine personnelle, un MacBook Pro de 2013, ne pouvant pas travailler suffisamment rapidement, il a utilisé un service dans le nuage dédié à cette tâche, associé à une puissante carte graphique de Nvidia. Malgré tout, un modèle basé sur 50 000 itérations nécessitait huit heures de travail ; à titre de comparaison, chaque itération demandait deux heures de travail sur son Mac.
Pour garantir de bons résultats, l’app ne fonctionne que sur une carte à la fois. On pourrait croire que c’est une contrainte insupportable, mais elle est si rapide (testée avec un iPhone X) que ce n’est pas gênant. On passe les cartes sous la caméra une à une, une vibration du Taptic Engine se fait sentir à chaque fois que la carte a été reconnue et cela peut aller très vite.
Pierre nous indique que le taux de réussite de l’app est de 95 %. En essayant de détecter plusieurs cartes à la fois, il tombe à 80 % et le risque d’erreur est alors trop grand pour obtenir un résultat fiable en usage réel. Peut-être qu’il pourra améliorer son modèle, mais le problème du poids de l’app se pose vite. CoreML fonctionne entièrement en local et Belote A.I. frôle les 160 Mo dans la première version. Une mise à jour sera proposée rapidement pour diviser ce poids par deux grâce à une optimisation du modèle, nous a toutefois signalé notre lecteur.
Belote A.I. est proposée en français et en anglais, elle est gratuite et financée par des publicités. Dans une future version, un achat in-app permettra de supprimer ces publicités. Core ML 2 étant utilisé, iOS 12 est indispensable pour l’installer.
Pour finir, que les amateurs de Tarot se rassurent, Pierre a d’ores et déjà prévu de créer une app pour compter les points de ce jeu. Avant cela, des variantes régionales de la Belote seront ajoutées à Belote A.I.
-
Pour les néophytes, la Belote se joue sans les cartes 2 à 6 et elles ne seront pas reconnues correctement. ↩︎