ChessPdfBrowser

Die ChessPdfBrowser Anwendung wurde erstellt, um eine Funktionslücke für Schachspieler zu beheben:

die Konvertierung von Schachspielen in PDF-Büchern in ein Standardformat.pagn, das von jeder zuverlässigen Schachanwendung genutzt werden kann.

Es hat einepersönlich chesspdfbrowserWebsite

Warenbezeichnung

Mit der Anwendung können Sie:

  • Spiele aus PDF-Büchern extrahieren.
  • Navigieren Sie durch die Spielvarianten.
  • Diagramme von mehreren Seiten extrahieren.
  • Identify positions (image ->FEN).
  • Trabajar con el formato estándar de partidas.pagn
  • Arbeiten mit dem.richPgn-Format, das um Informationen für PDF-Interaktion bereichert wurde.
  • Interaktion zwischen PDF und Dashboard
  • Verbindung mit UCI-Motoren (wie Stockfish)
  • Zeitgesteuerte Spiele spielen

Allgemeine Merkmale:

  • Mehrsprachig
  • Konfigurierbarer Mehrauflösungszoom
  • Option Dunkler Modus
  • Bedienungsanleitung

Code-Beschreibung

Anwendung in Java programmiert, mit Bibliotheken in Modulen organisiert.


Die Extraktion von Spielen, seine herausragende Funktion, basiert auf einem Parser, der einen lexikalischen Analysator mit einem syntaktischen Analysator kombiniert

Die erste Version dieses Parsers ermöglichte die Extraktion von Spielen in algebraischer Notation über mehrere Sprachen hinweg

Ab Version v1.26 ist das Extrahieren von Spielen mit algebraischer Notation der Stücke zulässig.

Diese neue Funktion wurde entwickelt, indem der vorhandene Spielparser um eine Ebene erweitert wurde, die Stückbilder in ihre entsprechenden Initialen übersetzt.

Ein image-to-itials Übersetzer wurde mit dem nächsten Nachbaralgorithmus mit K = 1 implementiert.

Der Übersetzer wählt aus den beschrifteten Beispielen, die er gesetzt hat, die nächste Option, die auf einer Fehlermaßnahme basiert.


Ein weiteres interessantes Feature, das in Version 1.20 eingeführt wird, ist die Positionserkennung. Die Anwendung versucht, den FEN-String der Position zu bestimmen, indem sie ein Bild des Schachbretts analysiert.

Diese Funktionalität basiert auf Theorien aus einem IEEE-Artikel, den ich zur Referenz gekauft habe:

  • Es zielt darauf ab, die Positionen der Quadrate auf dem Schachbrett zu bestimmen, indem sie ihre Seiten erkennen.
  • Wenn die App erfolgreich ist, durchquert sie alle Quadrate und versucht, die Stücke in jedem Quadrat zu erkennen. Die App wird versuchen, das Stück mit dem nächsten Nachbaralgorithmus zu identifizieren, wenn ein Quadrat leer ist.
  • Wenn alle Quadrate erfolgreich identifiziert werden, wird davon ausgegangen, dass das Board auch erfolgreich identifiziert wird.
  • Wenn der Benutzer nicht alle Quadrate identifizieren kann, zeigt die Anwendung ihnen das Board mit den erkannten Quadraten und bittet um weitere Beispiele, um das Board vollständig zu identifizieren.

Wenn die Spiele aus einem PDF extrahiert werden, wird der Board-Reader mit Bildern bekannter Positionen selbst trainiert, die ihm helfen, Quadrate mit Stücken zu identifizieren.


Version 1.20 führt ein neues Feature ein, das Spieldaten meta extrahiert, einschließlich Spielernamen, ELO-Ratings, Daten und Orte.

Diese Funktion nutzt ein System von regulären Ausdrücken, die verschiedene metaDatenformate aufnehmen, die ich während des Testens gefunden habe.


Ein weiteres interessantes Feature in v1.20 ist die Möglichkeit, sich mit UCI-ähnlichen Motoren wie Stockfish zu verbinden.

Für diese Funktion habe ich einen generischen Motorkonfigurator entwickelt. Er liest die Motorkonfiguration nach dem Anschluss ab und generiert eine Form für die Benutzer, um die Motoroptionen zu ändern.


In der Version v1.26 wurde Unterstützung für das Extrahieren von Spielen in algebraischen Notation aus Zahlen hinzugefügt.


Seit Version 1.30 enthält die Anwendung eine neue Binärdatei, mit der Sie ein PDF aus einer.pgn-Datei mit zwei Optionen erstellen können: eine grafische Benutzeroberflächenanwendung oder eine Befehlszeilenanwendungsoption, um den Prozess zu automatisieren.


Version v1.33 unterstützt das Arbeiten mit gescannten PDFs.

Fenster

ChessPdfBrowser v1.0 (2016)

Herunterladen

ChessPdfBrowser v1.1 (2019)

Herunterladen

ChessPdfBrowser v1.11 (2019)

Herunterladen

ChessPdfBrowser v1.20 (2020-2023)

Uhr vídeo
Herunterladen

ChessPdfBrowser v1.26 (2023-2024)

Uhr vídeo
Herunterladen

ChessPdfBrowser v1.27 (2024)

Uhr vídeo
Herunterladen

ChessPdfBrowser v1.30 (2025)

Uhr vídeo
Herunterladen

ChessPdfBrowser v1.33 (2025)

Uhr vídeo
Herunterladen

ChessPdfBrowser v1.36 (2026)

Herunterladen

Fassungen

image

Die Chess PDF Browser ist eine in Java programmierte Anwendung, mit der Sie Schachbücher im PDF-Format durchsuchen können.

Es ermöglicht auch das Arbeiten mit Spieldateien im.pagn-Format.

Sehen Sie ein Schachbrett, wo Sie durch verschiedene Spiele blättern können.

Ermöglicht es Ihnen, PDF-Schachbücher zu öffnen und Spiele zu extrahieren, um im.pagn-Format zu speichern.

Ermöglicht es Ihnen, die Varianten der im Speicher gespeicherten Spiele zu bearbeiten, egal ob sie aus.pagn gelesen, aus einem PDF extrahiert oder direkt durch Verschieben der Stücke auf das Board erstellt werden.

Es gibt eineUmfangreiches Handbuch Das zeigt, wie die Anwendung funktioniert.

image

Mehrere Fehler wurden behoben, und neue Funktionen wurden in der neuesten Version der Anwendung hinzugefügt:

  • Neuer experimenteller Spiel-Extraktor.
  • Mark bewegt sich als Neuheiten. (Novelty).
  • Sprachunterstützung auf Russisch wurde hinzugefügt.

Es gibt eineUmfassender Leitfaden das erklärt, wie die Anwendung funktioniert.

image

Die Benutzerhandbuche wurden mit der neuen Version der Anwendung aktualisiert.

Es gibt eineUmfassender Leitfaden das erklärt, wie die Anwendung funktioniert.

image

Mit der neuesten Version der Anwendung wurden zahlreiche neue Features hinzugefügt:

  • Der Versuchslinien-Extraktor wurde durch einen neuen Extraktor ersetzt, der nun Klammern und eckige Klammern berücksichtigt.
  • Das System hat jetzt die Fähigkeit, Spieldaten zu extrahieren, einschließlich Spielernamen und ELO-Rankings.
  • Die Fähigkeit, die Bewegungen in einem Spiel in algebraischer Notation zu sehen.
  • Ein OCR wurde implementiert, um Board-Positionen zu erkennen und sie zu Spielen hinzuzufügen, die nicht von der Standard-Startposition starten.
  • Jetzt können Sie Spiele gegen eine andere Person oder einen Motor spielen oder zwei Motoren gegeneinander spielen.

  • Verbesserte Anbindung an UCI-Triebwerke:
    • Ändern Sie beispielsweise die Motoreinstellungen, indem Sie den Level reduzieren, um gegen einen niedrigeren Level als das Maximum zu spielen.
    • Analyse der Positionen.
    • Vollständige Spielanalyse.
    • Sie können eine Engine als Spieler in einem Spiel verwenden.
  • Option Dunkler Modus

Es gibt eineUmfassender Leitfaden das erklärt, wie die Anwendung funktioniert.

image

Die neue Version der Anwendung kann nun Spielbewegungen aus PDFs mit figurine algebraische Notation extrahieren.

Was ist neu in dieser Version:

  • Die Software ermöglicht das Extrahieren von Spielen in figurine algebraische Notation, Notation der Bewegungen der Stücke.
  • Verbesserte Positionserkennung des Boards mittels optischer Zeichenerkennung (OCR).
  • Einige Fehler wurden behoben.

Es gibt eineUmfassender Leitfaden das erklärt, wie die Anwendung funktioniert.


Sie können ein Video der neuen Funktion sehen Demo-Video

image

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

image

Die neue Version enthält eine neue Binärdatei, mit der Sie PDFs von Pgns erstellen können.

In diesem Link finden Sie eine Demo-Video der neuen Funktionalität

image

Die neue Version fügt die Option ein, mit gescannten PDFs zu arbeiten


Als ich den Code implementiert habe, um PDFs zu bearbeiten, war die Option, PDFbox zu verwenden, um mit den PDF-Details zu arbeiten.

Aber ich mochte die Idee der Geschäftslogik nicht explizit mit dieser Abhängigkeit, also entschied ich mich, eine PDF-Schnittstelle zu erstellen, die die Funktionalität bot, und eine Implementierung zu programmieren, die die pdfbox-Bibliothek nutzte


Der Nachteil war, dass für reine gescannte PDFs (ohne dass jemand den Text hinzugefügt hat) die Bibliothek den mit den gescannten Seiten verknüpften Text nicht zurückgeben konnte.

Daher konnte die Anwendung nicht die Funktionalität bieten, Einträge aus gescannten PDFs zu extrahieren.


Mit dieser neuen Version können Sie nun versuchen, Einträge aus gescannten PDFs zu extrahieren.

Möglich wurde dies durch die Programmierung einer neuen Implementierung der PDFs-Schnittstelle, die versucht, mit der bestehenden pdfbox-Implementierung die Funktionalität einigermaßen ähnlich wie bei "normalen" PDFs anzubieten.

Diese neue Bibliothek verwendet intern pdfbox, um die Bilder der gescannten Seiten zu erhalten, und ruft für jede Seite einen externen OCR in der Cloud auf.

Da die Arbeit so in Echtzeit extrem langsam wäre (das Aufrufen des OCR für jede Seite dauert zwischen 3 und 10 Sekunden), ruft die Bibliothek den OCR nur einmal für jede Seite auf.

Sobald das OCR aufgerufen wurde, wird das Ergebnis auf dem Dateisystem gespeichert, und spätere Zeiten, in denen die Anwendung es benötigt, wird es von dort abgerufen.


Das Ergebnis ist, dass die neue Bibliothek äquivalent und austauschbar mit der reinen pdfbox-Bibliothek ist und eine gleichwertige Funktionalität für "normale" PDFs und gescannte PDFs bietet.

Obwohl der Nachteil ist, dass die vom OCR angebotene Texterkennung nicht so perfekt ist wie der aus "normalen" PDFs extrahierte Text.


Für das Extrahieren von Spielen bot die Anwendung bereits einen Mechanismus an, mit dem Sie "l"s auf "1"s und "S"s auf "5"s ändern können.

Für gescannte PDFs wurden auch einige neue Übersetzungen hinzugefügt (Änderung von "£"s auf "f"), und diese Übersetzungen werden ohne Benutzerintervention korrigiert.

Diese Charaktertransformationen verbessern die Extraktion von Bewegungen erheblich.

Das Ergebnis der Extraktion von Spielen ist nicht perfekt, aber es ist möglich, einige Sequenzen von Zügen zu extrahieren, und durch die Bearbeitung der Spiele und mit etwas Geduld, können die unterteilten Spiele wieder zusammengebaut werden.


Unter diesem Link finden Sie eine Demo-Video der neuen Funktionalität

image

Diese Version der Anwendung wurde mit dem Ziel erstellt, die Anwendung zu verbessern, um die bestmöglichen Ergebnisse aus den Schachspielen in derChess PDF geteilt durch die Gemeinschaft von Madrid


Der erste Versuch, diese Spiele zu extrahieren, war etwas katastrophal, da das PDF Funktionen hatte, die in der Anwendung nicht berücksichtigt wurden:

  • Im PDF gibt es Spiele, deren Bewegungen nicht explizit Captures unterscheiden (i.e., Captures erscheinen ohne das "x". Zum Beispiel: "ed4" statt "exd4").
  • Es gibt auch ein Feature in den Endspiel-Diagrammen, wo der Stil der Figuren zu sein scheint ausreichend anders als der Rest des PDF, was dazu führte, dass die Anwendung nicht selbst trainieren. oder sogar manuell, da ich versuchte, alle beschrifteten Beispiele in das gleiche Modell.
  • Seitenlayouts mit Diagrammen wurden von keinem der in der Anwendung verfügbaren Layout-Detektoren korrekt erkannt.

Mit diesen Problemen im Hinterkopf habe ich versucht, eine Lösung zu finden:

  • Jetzt akzeptiert die Anwendung explizite Capture-Symbole, verlässt sich aber nicht blind auf sie. Sie ermöglicht auch das Fehlen dieser Symbole, und es ist bei der Bestimmung der Ursprungs- und Zielquadrate der Bewegung, dass es abgeschlossen wird, ob ein Umzug eine Capture ist oder nicht, es entsprechend in die gespeicherte.pagn-Datei schreiben.
  • Die Option, weitere Details der Positionserkennungsmodelle zu verwalten, wurde ebenfalls hinzugefügt, so dass Sie einen bestimmten auswählen oder einen neuen erstellen können, um den Erkenner manuell mit einer Position zu trainieren, in der die Erkennung fehlgeschlagen ist.
  • Darüber hinaus ist es jetzt möglich, Modelle zu löschen oder mehr Details von ihnen mit einem neuen Fenster für die Verwaltung zu konfigurieren.
  • Es wurden zwei neue Arten von Layoutdetektoren hinzugefügt, die speziell für die Diagrammextraktion erstellt wurden.

Beim Debuggen der Extraktion von Spielen aus dem PDF fand ich einige Fehler, die irgendwann mit den neuesten Änderungen an der Anwendung eingeführt worden waren.

(Tut mir leid, die Anwendung hat keine Unit-Tests, und es ist nicht einfach zu erkennen, wenn ein Feature, das zuvor gearbeitet wird gebrochen)


Die behobenen Fehler beziehen sich auf die Positionserkennung (die automatische Positionserkennung war kaputt).

Ein Problem im Zusammenhang mit der Erkennung von (N) Neuheiten wurde ebenfalls behoben, zusammen mit mehreren anderen Problemen, um die Funktionalität einiger anderer Funktionen zu verbessern.

Außerdem wurde versucht, die Identifikation von Bildern mit Schachpositionen für Detektoren von Layouts, die weder GROWTH noch OCR-Typ waren, zu verbessern und die Identifikation der Bildposition mit der dieser beiden Layoutdetektoren zu vergleichen.


Meine Meinung ist, dass diese neueste Version die bisher raffinierteste Version der Anwendung ist.

Videos

Descargas