ChessPdfBrowser

L'application ChessPdfBrowser a été créée pour combler un manque de fonctionnalité pour les joueurs d'échecs:

la conversion des jeux d'échecs dans les livres PDF en un format standard.pgn qui peut être utilisé par n'importe quelle application d'échecs fiable.

Il a unepersonnel chesspdfbrowsersite web

Désignation

Avec l'application, vous serez en mesure de:

  • Extraire des jeux de livres PDF.
  • Naviguez à travers les variantes du jeu.
  • Extraire des diagrammes de plusieurs pages.
  • Identify positions (image ->FEN).
  • Trabajar con el formato estndar de partidas.pgn
  • Travailler avec le format.richPgn, qui a été enrichi pour inclure des informations pour l'interaction PDF.
  • Interaction entre le PDF et le tableau de bord
  • Se connecter avec les moteurs UCI (tels que Stockfish)
  • Jouer à des jeux chronométrés

Caractéristiques générales:

  • Multi-langue
  • Zoom multi-résolution configurable
  • Mode sombre
  • liNouvelle version de notification
  • Manuel d'utilisation

Description du code

Application programmée en Java, avec des bibliothèques organisées en modules.


L'extraction des jeux, sa fonction la plus remarquable, est basée sur un analyseur qui combine un analyseur lexical avec un analyseur syntaxique

La version initiale de cet analyseur a permis l'extraction de jeux en notation algébrique dans plusieurs langues.

À partir de la version v1.26, l'extraction des jeux en utilisant la notation algébrique des pièces est autorisée.

Cette nouvelle fonction a été développée en améliorant l'analyseur de jeu existant pour inclure un calque qui traduit les images des pièces en leurs initiales correspondantes.

Un traducteur image-vers-initiales a été implémenté en utilisant l'algorithme de voisin le plus proche avec K 1

Le traducteur choisit l'option la plus proche en fonction d'une mesure d'erreur parmi les exemples étiquetés qu'il a définis.


Une autre caractéristique intéressante introduite dans la version 1.20 est la reconnaissance de position. L'application tente de déterminer la chaîne FEN de la position en analysant une image de l'échiquier.

Cette fonctionnalité est basée sur les théories d'un article de l'IEEE que j'ai acheté pour référence:

  • Il vise à déterminer les positions des cases sur l'échiquier en détectant leurs côtés.
  • En cas de succès, l'application parcourt tous les carrés et essaie de reconnaître les pièces de chaque carré. L'application essaiera d'identifier la pièce avec l'algorithme le plus proche si un carré est vide.
  • Si tous les carrés sont identifiés avec succès, on suppose que le tableau est également identifié avec succès.
  • Si l'utilisateur ne peut pas identifier tous les carrés, l'application lui montrera le tableau avec les carrés reconnus et lui demandera de le compléter pour plus d'exemples afin d'identifier le tableau entièrement.

Lorsque les jeux sont extraits d'un PDF, le lecteur de plateau est auto-entraîné à l'aide d'images de positions connues, ce qui l'aide à apprendre à identifier les carrés avec des pièces.


La version 1.20 introduit une nouvelle fonctionnalité qui extrait les données du jeu meta, y compris les noms des joueurs, les classements ELO, les dates et les emplacements.

Cette fonctionnalité utilise un système d'expressions régulières qui s'adapte à divers formats de données meta que j'ai rencontrés lors des tests.


Une autre fonctionnalité intéressante ajoutée dans la v1.20 est la possibilité de se connecter à des moteurs de type UCI, tels que Stockfish.

J'ai développé un configurateur de moteur générique pour cette fonctionnalité. Il lit la configuration du moteur lors de la connexion et génère un formulaire permettant aux utilisateurs de modifier les options du moteur.


Dans la version v1.26, le support a été ajouté pour extraire des jeux en notation algébrique à partir de figures.


Depuis la version 1.30, l'application inclut un nouveau binaire qui vous permet de créer un PDF à partir d'un fichier.pgn, avec deux options: une application d'interface graphique, ou une option d'application de ligne de commande, pour automatiser le processus.


La version v1.33 ajoute la prise en charge des fichiers PDF numérisés.

Windows

ChessPdfBrowser v1.0 (2016)

Télécharger

ChessPdfBrowser v1.1 (2019)

Télécharger

ChessPdfBrowser v1.11 (2019)

Télécharger

ChessPdfBrowser v1.20 (2020-2023)

Regarder vdeo
Télécharger

ChessPdfBrowser v1.26 (2023-2024)

Regarder vdeo
Télécharger

ChessPdfBrowser v1.27 (2024)

Regarder vdeo
Télécharger

ChessPdfBrowser v1.30 (2025)

Regarder vdeo
Télécharger

ChessPdfBrowser v1.33 (2025)

Regarder vdeo
Télécharger

ChessPdfBrowser v1.36 (2026)

Télécharger

Versions

image

Le Chess PDF Browser est une application programmée en Java qui vous permet de parcourir les livres d'échecs au format PDF.

Il permet également de travailler avec des fichiers de jeu au format.pgn.

Voir un échiquier où vous pouvez naviguer à travers différents jeux.

Vous permet d'ouvrir des livres d'échecs PDF et d'extraire des jeux à enregistrer au format.pgn.

Vous permet d'éditer les variantes des jeux stockés en mémoire, qu'elles soient lues à partir de.pgn, extraites d'un PDF, ou créées directement en déplaçant les pièces sur le plateau.

Il y a unemanuel complet qui détaille le fonctionnement de l'application.

image

Plusieurs bugs ont été corrigés, et de nouvelles fonctionnalités ont été ajoutées dans la dernière version de l'application :

  • Nouvel extracteur de jeu expérimental.
  • Mark se déplace comme des nouveautés. (Nouvelleté).
  • Le support linguistique en russe a été ajouté.

Il y a uneguide complet qui explique le fonctionnement de l'application.

image

Les guides de l'utilisateur ont été mis à jour avec la nouvelle version de l'application.

Il y a uneguide complet qui explique le fonctionnement de l'application.

image

Avec la dernière version de l'application, de nombreuses nouvelles fonctionnalités ont été ajoutées:

  • L'extracteur de ligne expérimental a été remplacé par un nouvel extracteur qui prend maintenant en compte les crochets et les crochets.
  • Le système a maintenant la capacité d'extraire des données de jeu, y compris les noms des joueurs et les classements ELO.
  • La capacité de voir les mouvements dans un jeu en notation algébrique.
  • Un OCR a été mis en place pour reconnaître les positions de plateau et les ajouter aux jeux qui ne partent pas de la position de départ standard.
  • Maintenant, vous pouvez jouer à des jeux contre une autre personne ou un moteur ou jouer deux moteurs l'un contre l'autre.

  • Connectivité améliorée aux moteurs UCI :
    • Modifiez les paramètres du moteur, par exemple, en diminuant le niveau pour jouer contre un niveau inférieur au maximum.
    • Analyse des positions.
    • Analyse complète du jeu.
    • Vous pouvez utiliser un moteur en tant que joueur dans un jeu.
  • Mode sombre

Il y a uneguide complet qui explique le fonctionnement de l'application.

image

La nouvelle version de l'application peut maintenant extraire des mouvements de jeu à partir de PDF en utilisant la notation algébrique de figurines.

Quoi de neuf dans cette version :

  • Le logiciel permet d'extraire des jeux en notation algébrique figurine, notant les mouvements des pièces.
  • Reconnaissance améliorée de la position de la carte à l'aide de la reconnaissance optique de caractères (OCR).
  • Certains bugs ont été corrigés.

Il y a uneguide complet qui explique le fonctionnement de l'application.


Vous pouvez voir une vidéo de la nouvelle fonctionnalité Vidéo de démonstration

image

The new version includes improvements in position detection (image ->FEN)

image

La nouvelle version inclut un nouveau binaire qui vous permet de créer des PDF à partir de Pgns.

Dans ce lien, vous pouvez trouver un vidéo de démonstration de la nouvelle fonctionnalité

image

La nouvelle version ajoute la possibilité de travailler avec des PDF numérisés


Lorsque j'ai implémenté le code pour gérer les PDF, l'option était d'utiliser pdfbox pour travailler avec les détails PDF.

Mais je n'ai pas aimé l'idée de la logique métier utilisant explicitement cette dépendance, alors j'ai décidé de créer une interface PDF qui offrait la fonctionnalité, et de programmer une implémentation qui utilisait la bibliothèque pdfbox.


L'inconvénient était que pour les PDF numérisés purs (sans que personne n'ait ajouté le texte), la bibliothèque ne pouvait pas retourner le texte associé aux pages numérisées.

Par conséquent, l'application ne pouvait pas offrir la fonctionnalité d'extraire des entrées à partir de fichiers PDF numérisés.


Cette nouvelle version vous permet maintenant d'essayer d'extraire des entrées à partir de fichiers PDF numérisés.

Cela a été rendu possible par la programmation d'une nouvelle implémentation de l'interface PDFs, qui tente d'offrir des fonctionnalités raisonnablement similaires à celles des PDFs "normaux" avec l'implémentation pdfbox existante.

Cette nouvelle bibliothèque utilise pdfbox en interne pour obtenir les images des pages scannées, et, pour chaque page, invoque un OCR externe situé dans le cloud.

Étant donné que travailler de cette façon en temps réel serait extrêmement lent (invoquer l'OCR pour chaque page prend entre 3 et 10 secondes), la bibliothèque n'invoque l'OCR qu'une seule fois pour chaque page.

Une fois que l'OCR a été invoqué, le résultat est enregistré dans le système de fichiers, et les fois suivantes l'application en a besoin, il est récupéré à partir de là.


Le résultat est que la nouvelle bibliothèque est équivalente et interchangeable avec la bibliothèque pdfbox pure, offrant des fonctionnalités équivalentes pour les PDF "normaux" et les PDF numérisés.

Bien que l'inconvénient soit que la reconnaissance de texte offerte par l'OCR n'est pas aussi parfaite que le texte extrait de PDF "normaux".


Pour extraire des jeux, l'application proposait déjà un mécanisme qui vous permet de choisir de changer "l" en "1" et "S" en "5".

Pour les PDF numérisés, de nouvelles traductions ont également été ajoutées (en changeant "" en "f") et ces traductions sont corrigées, sans intervention de l'utilisateur.

Ces transformations de caractères améliorent grandement l'extraction des mouvements.

Le résultat de l'extraction des jeux n'est pas parfait, mais il est possible d'extraire quelques séquences de mouvements, et en éditant les jeux et avec un peu de patience, les jeux sectionnés peuvent être réassemblés.


Sur ce lien, vous pouvez trouver un vidéo de démonstration de la nouvelle fonctionnalité

image

Cette version de l'application a été créée dans le but d'améliorer l'application pour extraire les meilleurs résultats possibles des jeux d'échecs dans le monde.Chess PDF partagé par la Communauté de Madrid


La première tentative d'extraction de ces jeux a été quelque peu désastreuse, car le PDF avait des fonctionnalités qui n'étaient pas prises en compte dans l'application:

  • Le PDF contient des jeux dont les mouvements ne distinguent pas explicitement les captures (i.e, les captures apparaissent sans le "x". Par exemple: "ed4" au lieu de "exd4").
  • Il y a aussi une fonctionnalité dans les diagrammes de fin de partie, où le style des figures semble être suffisamment différent du reste du PDF, ce qui a fait que l'application ne s'entraîne pas automatiquement. ou même manuellement, puisque j'essayais d'inclure tous les exemples étiquetés dans le même modèle.
  • Les mises en page avec diagrammes n'ont été détectées correctement par aucun des détecteurs de mise en page disponibles dans l'application.

Avec ces problèmes à l'esprit, j'ai essayé de trouver une solution:

  • Maintenant, l'application accepte les symboles de capture explicites, mais ne s'appuie pas sur eux aveuglément. Elle permet également l'absence de ces symboles, et c'est lors de la détermination des carrés d'origine et de destination du mouvement qu'il est finalisé si un mouvement est une capture ou non, en l'écrivant de manière appropriée dans le fichier.pgn enregistré.
  • L'option de gérer plus de détails des modèles de reconnaissance de position a également été ajoutée, vous permettant de choisir un modèle spécifique ou d'en créer un nouveau pour entraîner manuellement le reconnaîtur avec une position où la reconnaissance a échoué.
  • De plus, il est maintenant possible de supprimer des modèles ou d'en configurer plus de détails à l'aide d'une nouvelle fenêtre de gestion.
  • Deux nouveaux types de détecteurs de disposition ont été ajoutés, créés spécifiquement pour l'extraction de diagramme.

En déboguant l'extraction des jeux à partir du PDF, j'ai trouvé quelques bogues qui avaient été introduits à un moment donné avec les dernières modifications apportées à l'application.

(Désolé, l'application n'a pas de tests unitaires, et il n'est pas facile de détecter quand une fonctionnalité qui fonctionnait auparavant est cassée)


Les bugs corrigés sont liés à la détection de position (la reconnaissance automatique de position était cassée).

Un problème lié à la détection de (N) Nouveautés a également été corrigé, ainsi que plusieurs autres problèmes pour améliorer la fonctionnalité de certaines autres fonctionnalités.

En outre, on a tenté d'améliorer l'identification des images avec des positions d'échecs pour les détecteurs de tracés qui n'étaient ni de type CROISSANCE ni ROC, en assimilant l'identification de la position de l'image à celle de ces deux détecteurs de tracé.


Mon avis est que cette dernière version est la version la plus raffinée de l'application à ce jour.

Vidéos

Descargas