Parfois, pendant les jeux blitz sur le plateau, ou en zeitnot, il devient très difficile de les annoter.
J'ai vu plusieurs logiciels / matériels pour aider à écrire la notation, même un qui est approuvé par la FIDE ; ceux-ci nécessitent que vous répétiez les mouvements sur l'appareil. À peine plus rapide que le stylo et le papier, tout aussi sujet aux erreurs, vous risquez de taper le mauvais mouvement et de perdre encore plus de temps.
DGT fabrique une planche qui le fera automatiquement, mais elle ne fonctionnera qu'avec ses pièces, et commence à 400 €, le double de celle des planches de tournoi . Certains projets indépendants sont disponibles tels que l' échiquier usb 101 , ou les robots d'échecs à commande vocale , le séquenceur pas à pas de l'échiquier . De plus, certains projets ouverts sont disponibles qui déplacent même des pièces (ou des pièces gigantesques ).
J'ai des éliminatoires ce soir, et les règles du tournoi dictent des matchs de plus en plus courts jusqu'à ce qu'il y ait un gagnant. J'ai donc pensé à tourner un film de la planche si nous perdions la trace. Mais mon expérience en programmation a commencé et j'ai pensé "qu'il doit y avoir un logiciel qui peut traiter un film et écrire le PGN".
J'ai cherché partout et je n'ai rien trouvé.
- Existe-t-il une telle chose (convertisseur webcam / vidéo en pgn)? Un prototype peut-être?
- Quelqu'un a-t-il tenté un tel exploit et partagé ses recherches?
- Y a-t-il des limites évidentes qui empêchent ce projet de réussir?
- L'achèteriez-vous s'il existait?
la source
Réponses:
Il est clairement intéressant et pertinent d'enregistrer automatiquement des parties d'échecs (les tableaux en direct s'attaquent plus ou moins au même problème). Pour autant que je sache, il n'existe aucun logiciel à cet effet qui existe aujourd'hui. Pour résoudre ce problème, je pense que le cas "simple" devrait être le suivant.
Une recherche rapide sur Google avec la chaîne de recherche
a retourné cet article intéressant
Dans l'ensemble, il devrait être réaliste de mettre en œuvre ce type de logiciel. Pourtant, il pourrait être moins cher pour un humain de faire le même travail (transfert de transfert d'un clip vidéo vers un ordinateur).
la source
En ordre,
1) Pas à ma connaissance
2) Pas à ma connaissance
3) Plusieurs choses rendent ce type de projet non trivial, voire difficile. Pas le moindre ne suit la pièce, la différenciant d'un geste de la main, par exemple. Déterminer également quand l'arrêt du mouvement serait une question intéressante à résoudre pour la vision par ordinateur. Ces types de problèmes ont été résolus dans d'autres situations, mais pas avec une précision de 100%, et certainement pas à des prix qui sont même près d'être compétitifs avec la carte DGT.
Il y a ensuite la question de l'emplacement de la caméra. Directement au-dessus de la tête offrirait la meilleure vue de la planche, ce qui faciliterait la détermination précise du carré. Mais partout où la caméra est placée, il y a une probabilité distincte que sa vue soit obstruée par l'un des joueurs, soit en se penchant au-dessus du tableau, en atteignant l'horloge ou simplement en gesticulant.
4) Sauf si ce n'était vraiment pas cher. Et je ne m'attends pas à ce que ce soit. Mon raisonnement est simple. Au fur et à mesure que les commandes de temps se raccourcissent, la qualité du jeu diminue, au point où ça ne m'intéresse plus
la source
Ce serait une tâche assez complexe. Une première étape raisonnable consiste peut-être à rechercher la reconnaissance de la position FEN à partir d'une seule image - pour laquelle il existe plus de ressources, par exemple:
la source
C'est 2019-12 maintenant et 5 ans après la question d'origine.
Existe-t-il une telle chose (convertisseur webcam / vidéo en pgn)? Un prototype peut-être?
voir
Quelqu'un a-t-il tenté un tel exploit et partagé ses recherches?
Oui - jusqu'à présent, j'ai trouvé quelque 35 documents de recherche et quelque 10 solutions open source et une offre commerciale
2.1 http://wiki.bitplan.com/index.php/PlayChessWithAWebCam/Papers
2.2. http://wiki.bitplan.com/index.php/PlayChessWithAWebCam#Open_Source_Projects
2.3. http://wiki.bitplan.com/index.php/PlayChessWithAWebCam#Commercial
http://wiki.bitplan.com/index.php/PlayChessWithAWebCam est un autre projet visant les objectifs que vous avez définis. Le projet a démarré le 2019-10-15 et en quelques heures j'ai déjà trouvé beaucoup de ressources par exemple cette Question Environ deux mois plus tard j'ai mis à jour ma réponse (voir liens ci-dessus)
Y a-t-il des limites évidentes qui empêchent ce projet de réussir? Je ne peux que répondre de ma propre expérience avec un projet similaire que j'ai réalisé il y a 31 ans, voir http://wiki.bitplan.com/index.php/MagneticSensorChessBoard1987 . A cette époque, j'ai essayé de créer un échiquier qui détecterait les mouvements. J'ai utilisé des aimants dans les pièces en bois et les contacts en roseau. La clé du succès a été d'utiliser un moteur d'échecs qui a créé de nouvelles "règles" pour pouvoir se concentrer uniquement sur les mouvements et ne pas avoir à détecter des pièces individuelles. Comme indiqué dans une réponse ci-dessus, les promotions sur les pièces non reine peuvent être l'une des cas d'utilisation les plus difficiles. La détection du mouvement des pièces via des différences d'images est un problème bien compris.
Des moteurs d'échecs et des interfaces graphiques compatibles UCI sont également disponibles de nos jours. Le problème est donc plus un problème d'intégration de nos jours que de résoudre les problèmes de détail individuels.
Un obstacle majeur est la différence entre un "prototype" et un produit. Voir par exemple http://www.nandanbanerjee.com/files/ICCVR-08AUG12-011%20paper.pdf
un papier qui est encore plus ancien que cette question mais loin d'un produit que l'on peut acheter à un prix raisonnable.
L'achèteriez-vous s'il existait?
Oui. Lorsque j'ai acheté un nouvel échiquier il y a quelques jours, je cherchais un qui pouvait enregistrer des mouvements et il était toujours aux alentours de 500 EUR. En apparence, le coût du matériel sera bien inférieur à 150 EUR ces jours-ci, y compris un échiquier et des pièces décents.
Le logiciel pourrait bien être open source et gratuit (comme dans la bière gratuite) bientôt. Je mettrai à jour cette réponse en conséquence.
la source
J'ai écrit ce logiciel. Il contient une webcam AI pour la reconnaissance des mouvements, connectée à l'interface graphique Arena.
https://www.youtube.com/watch?v=APkoE1UDKj0
la source
J'ai travaillé sur le projet de suivi d'échecs 8x8cam dans le cadre du cours de traitement d'image en 2013 à FING UdelaR.
Puis en 2014, d'autres étudiants ont créé une meilleure version pour Android nommée chesstrack . Sous son site Web, vous pouvez trouver des vidéos et un lien vers le code qu'ils ont utilisé.
J'aimerais voir une application finalisée de cette idée de projet que j'avais depuis des années. Donc, s'il y a des nouvelles à ce sujet, veuillez laisser un commentaire.
Répondre à vos questions pointues:
Existe-t-il une telle chose (convertisseur webcam / vidéo en pgn? Un prototype peut-être?
Outre mon projet 8x8cam et chesstrack , j'ai récemment trouvé un projet nommé ChessCam . Tous ces projets sont Open Source et ne doivent être nommés comme ressource que si vous créez un nouveau projet à partir d'eux.
Quelqu'un a-t-il tenté un tel exploit et partagé ses recherches?
Oui. Vous pouvez le voir sur la réponse à la question précédente.
Y a-t-il des limites évidentes qui empêchent ce projet de réussir?
La partie la plus difficile, je crois, est de faire fonctionner le logiciel, peu importe la façon dont la caméra est placée et indépendamment de l'éclairage. Et aussi pour travailler sur des jeux au rythme rapide et travailler avec les occlusions de la main lorsque le jeu est joué, afin de détecter correctement le mouvement effectué.
L'achèteriez-vous s'il existait?
Définitivement oui.
la source
Je ne répondrai pas à la question, car je ne sais pas s'il existe un logiciel. Je dis juste comment je pense que c'est comme ça, je ne sais pas avec certitude, alors ...
D'accord, vous devez d'abord vous assurer que la vidéo est enregistrée à partir d'un logiciel d'échecs, pas d'un tournoi en direct, juste pour vous faciliter la tâche.
Vous devez convertir le film en images
ffmpeg -i foo.avi -vsync 0 -vf select="eq(pict_type\,PICT_TYPE_I)" -s WxH -f image2 foo-%03d.jpeg
C'était facile, maintenant la partie difficile, vous devez commencer à faire le procession d'images, pour cela, le plus puissant est OpenCV.
Pour cela, il existe plusieurs techniques, je vais vous donner les liens pour que vous puissiez les lire.
C'est compliqué mais plus simple que vous ne le pensez, car il vous suffit de savoir quelle est la position de départ, de parcourir toutes les images et de voir la différence. Jetez un œil aux documents OpenCV, vous trouverez des tonnes de documents sur ce sujet.
Oh au fait, ce que vous demandez est déjà fait, mais sans utiliser de logiciel pour autant que je sache, il y a un vieux projet qui a été codé en Pascal, des caméras placées sur la carte, des robots font du traitement d'image et bougent. De nos jours, de nombreux robots jouent aux échecs.
Vous pourriez acheter un Arduino uno, et sa censure légère, il détectera les pièces blanches et les pièces noires, du codage et jouera aux échecs. :)
la source
Edit: la promotion de quelque chose de différent de queen fera exploser tout. Il sera également très difficile de prendre en charge cela (mon programme pour la partie 2 prend en charge la sous-promotion, mais stocker les informations de la partie 1 uniquement en lisant des pixels est un cauchemar).
Edit2: Je viens de remarquer que vous voulez dire de vrais échecs sur PGN, donc tout cela est inutile et je supprimerai très probablement ma réponse.
Partie 1: stockage des carrés à l'aide de lecteurs de pixels
C'est tout à fait possible, les étapes nécessaires seraient:
["h1-h8", "e4-e5", ...]
juste les carrés initial et final (ordre sans importance )Remarque: à partir d'ici, nous ne pouvons pas vraiment savoir de quel carré était la position initiale / finale, mais il n'y a que 2 posibilités et seulement 1 d'entre elles est légale.
J'ai écrit des macros / bots simples basés sur des pixels pour les jeux de rôle en C #, je peux garantir que ce n'est pas si difficile, étant donné que:
Fondamentalement, il est préférable que le jeu soit joué en ligne et que vous enregistrez directement à partir de l'écran.
Partie 2: exporter cette liste dans PGN
Pour transformer cette liste en un véritable PGN, vous pouvez utiliser un programme que j'ai écrit en JavaScript qui enregistre les mouvements, et l'une des fonctions
moveCaller()
vous passez deux positions de carrés et il recherchefinal_pos
dans les mouvements légaux deinitial_pos
et s'il y a une correspondance, alors il appellemakeMove()
. Nous pouvons donc l'appeler deux foise5 to e4
ete4 to e5
je vous garantis qu'il ignorera l'illégal..zip
index.html
fichier avec ceci:"
.4. copiez la liste des mouvements et ajoutez des en-têtes PGN au-dessus comme
[WhiteElo "2400"]
etc.la source
J'utilise le Monroi Chess Notation Device pour toutes mes parties d'échecs et c'est essentiellement une carte électronique.
la source