ChessPdfBrowser

L'applicazione ChessPdfBrowser è stata creata per affrontare un gap di funzionalità per i giocatori di scacchi:

la conversione dei giochi di scacchi in libri PDF in un formato standard.pgn che può essere utilizzato da qualsiasi applicazione scacchistica affidabile.

Ha unpersonale chesspdfbrowsersito web

Descrizione

Con l'applicazione sarete in grado di:

  • Estrarre giochi da libri PDF.
  • Naviga attraverso le varianti di gioco.
  • Estrarre diagrammi da più pagine.
  • Identify positions (image ->FEN).
  • Trabajar con el formato estndar de partidas.pgn
  • Lavorare con il formato.richPgn, che è stato arricchito per includere informazioni per l'interazione PDF.
  • Interazione tra PDF e dashboard
  • Collegamento con motori UCI (come Stockfish)
  • Gioca giochi a tempo

Caratteristiche generali:

  • Multilingua
  • Zoom multi-risoluzione configurabile
  • Opzione modalità scura
  • liNotifica nuova versione
  • Manuale utente

Descrizione del codice

Applicazione programmata in Java, con librerie organizzate in moduli.


L'estrazione dei giochi, la sua funzione più eccezionale, si basa su un parser che combina un analizzatore lessicale con un analizzatore sintattico.

La versione iniziale di questo parser ha permesso l'estrazione di giochi in notazione algebrica in più lingue.

A partire dalla versione v1.26, l'estrazione di giochi utilizzando la notazione algebrica dei pezzi è consentita

Questa nuova funzione è stata sviluppata migliorando il parser di gioco esistente per includere un livello che traduce le immagini pezzo nelle loro iniziali corrispondenti.

Un traduttore image-to-initials è stato implementato utilizzando l'algoritmo vicino più vicino con K 1

Il traduttore sceglie l'opzione più vicina in base a una misura di errore dagli esempi etichettati che ha impostato.


Un'altra caratteristica interessante introdotta nella versione 1.20 è il riconoscimento della posizione. L'applicazione tenta di determinare la stringa FEN della posizione analizzando un'immagine della scacchiera.

Questa funzionalità si basa sulle teorie di un articolo IEEE che ho acquistato per riferimento:

  • Mira a determinare le posizioni delle piazze sulla scacchiera rilevando i loro lati.
  • In caso di successo, l'app attraversa tutti i quadrati e cerca di riconoscere i pezzi in ogni quadrato. L'app cercherà di identificare il pezzo con l'algoritmo del vicino più vicino se un quadrato è vuoto.
  • Se tutti i quadrati sono identificati con successo, si presume che anche la scheda sia identificata con successo.
  • Se l'utente non è in grado di identificare tutti i quadrati, l'applicazione mostrerà loro la scheda con i quadrati riconosciuti e chiesto di completarlo per ulteriori esempi per identificare completamente la scheda.

Quando i giochi vengono estratti da un PDF, il lettore di schede è auto-addestrato utilizzando immagini di posizioni note, che aiutano a imparare a identificare i quadrati con i pezzi.


La versione 1.20 introduce una nuova funzionalità che estrae i dati del gioco meta, inclusi i nomi dei giocatori, le valutazioni ELO, le date e le posizioni.

Questa funzione utilizza un sistema di espressioni regolari che ospita vari meta formati di dati che ho incontrato durante il test.


Un'altra caratteristica interessante aggiunta in v1.20 è la possibilità di connettersi a motori simili a UCI, come Stockfish.

Ho sviluppato un configuratore generico del motore per questa funzione. Legge la configurazione del motore al momento della connessione e genera un modulo per gli utenti per modificare le opzioni del motore.


Nella versione v1.26, è stato aggiunto il supporto per l'estrazione di giochi in notazione algebrica da figure.


Dalla versione 1.30, l'applicazione include un nuovo binario che consente di creare un PDF da un file.pgn, con due opzioni: un'applicazione di interfaccia grafica o un'opzione di applicazione a riga di comando per automatizzare il processo.


La versione v1.33 aggiunge il supporto per lavorare con i PDF scansionati.

Finestre

ChessPdfBrowser v1.0 (2016)

Scarica

ChessPdfBrowser v1.1 (2019)

Scarica

ChessPdfBrowser v1.11 (2019)

Scarica

ChessPdfBrowser v1.20 (2020-2023)

Guarda vdeo
Scarica

ChessPdfBrowser v1.26 (2023-2024)

Guarda vdeo
Scarica

ChessPdfBrowser v1.27 (2024)

Guarda vdeo
Scarica

ChessPdfBrowser v1.30 (2025)

Guarda vdeo
Scarica

ChessPdfBrowser v1.33 (2025)

Guarda vdeo
Scarica

ChessPdfBrowser v1.36 (2026)

Scarica

Versioni

image

Il Chess PDF Browser è un'applicazione programmata in Java che consente di sfogliare i libri di scacchi in formato PDF.

Consente inoltre di lavorare con i file di gioco in formato.pgn.

Visualizza una scacchiera dove è possibile sfogliare diversi giochi.

Consente di aprire libri di scacchi PDF ed estrarre i giochi da salvare in formato.pgn.

Consente di modificare le varianti dei giochi memorizzati in memoria, siano esse lette da.pgn, estratte da un PDF o create direttamente spostando i pezzi sulla scheda.

C'è unManuale completo che descrive in dettaglio come funziona l'applicazione.

image

Sono stati corretti diversi bug e sono state aggiunte nuove funzionalità nell'ultima versione dell'applicazione:

  • Nuovo estrattore di gioco sperimentale.
  • Marco si muove come novità. (Novità).
  • È stato aggiunto il supporto linguistico in russo.

C'è unGuida completa Questo spiega come funziona l’applicazione.

image

Le guide utente sono state aggiornate con la nuova versione dell'applicazione.

C'è unGuida completa Questo spiega come funziona l’applicazione.

image

Con l'ultima versione dell'applicazione, sono state aggiunte numerose nuove funzionalità:

  • L'estrattore sperimentale è stato sostituito da un nuovo estrattore che ora tiene conto delle parentesi e delle parentesi quadre.
  • Il sistema ha ora la capacità di estrarre i dati di gioco, inclusi i nomi dei giocatori e le classifiche ELO.
  • La capacità di visualizzare le mosse in un gioco in notazione algebrica.
  • È stato implementato un OCR per riconoscere le posizioni di bordo e aggiungerle a giochi che non partono dalla posizione di partenza standard.
  • Ora puoi giocare contro un'altra persona o un motore o giocare due motori l'uno contro l'altro.

  • Maggiore connettività ai motori UCI:
    • Modificare le impostazioni del motore, ad esempio, diminuendo il livello per giocare contro un livello inferiore al massimo.
    • Analisi delle posizioni.
    • Analisi completa del gioco.
    • È possibile utilizzare un motore come giocatore in un gioco.
  • Opzione modalità scura

C'è unGuida completa Questo spiega come funziona l’applicazione.

image

La nuova versione dell'applicazione può ora estrarre le mosse di gioco dai PDF utilizzando la notazione algebrica delle figurine.

Cosa c'è di nuovo in questa versione:

  • Il software consente di estrarre i giochi in notazione algebrica figurina, notando i movimenti dei pezzi.
  • Riconoscimento avanzato della posizione della scheda utilizzando il riconoscimento ottico dei caratteri (OCR).
  • Alcuni bug sono stati corretti.

C'è unGuida completa Questo spiega come funziona l’applicazione.


Puoi vedere un video della nuova funzione Demo video

image

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

image

La nuova versione include un nuovo binario che consente di creare PDF da Pgns.

In questo link puoi trovare un video demo della nuova funzionalità

image

La nuova versione aggiunge l'opzione per lavorare con i PDF scansionati


Quando ho implementato il codice per gestire i PDF, l'opzione era quella di utilizzare pdfbox per lavorare con i dettagli PDF.

Ma non mi piaceva l'idea della logica aziendale che utilizzava esplicitamente quella dipendenza, quindi ho deciso di creare un'interfaccia PDF che offriva la funzionalità e programmare un'implementazione che utilizzasse la libreria pdfbox.


Lo svantaggio era che per i PDF scansionati puri (senza che nessuno abbia aggiunto il testo), la libreria non poteva restituire il testo associato alle pagine scansionate.

Pertanto, l'applicazione non poteva offrire la funzionalità per estrarre le voci dai PDF scansionati.


Questa nuova versione consente ora di provare a estrarre le voci dai PDF scansionati.

Ciò è stato reso possibile dalla programmazione di una nuova implementazione dell'interfaccia PDF, che tenta di offrire funzionalità ragionevolmente simili a quella dei PDF "normali" con l'implementazione pdfbox esistente.

Questa nuova libreria utilizza internamente pdfbox per ottenere le immagini delle pagine scansionate e, per ogni pagina, richiama un OCR esterno situato nel cloud.

Dal momento che lavorare in questo modo in tempo reale sarebbe estremamente lento (invocare l'OCR per ogni pagina richiede tra 3 e 10 secondi), la libreria invoca l'OCR solo una volta per ogni pagina.

Una volta che l'OCR è stato invocato, il risultato viene salvato nel file system e le volte successive che l'applicazione ne ha bisogno, viene recuperato da lì.


Il risultato è che la nuova libreria è equivalente e intercambiabile con la libreria pdfbox pura, offrendo funzionalità equivalenti per PDF "normali" e PDF scansionati.

Anche se lo svantaggio è che il riconoscimento del testo offerto dall'OCR non è perfetto come il testo estratto da PDF "normali".


Per l'estrazione di giochi, l'applicazione già offerto un meccanismo che consente di scegliere di cambiare "l"s a "1"s e "S" a "5".

Per i PDF scansionati, sono state aggiunte anche alcune nuove traduzioni (cambiando ""s a "f") e queste traduzioni sono fisse, senza l'intervento dell'utente.

Queste trasformazioni caratteriali migliorano notevolmente l'estrazione dei movimenti.

Il risultato di estrarre i giochi non è perfetto, ma è possibile estrarre alcune sequenze di mosse, e modificando i giochi e con un po 'di pazienza, i giochi sezionati possono essere riassemblati.


A questo link puoi trovare un video demo della nuova funzionalità

image

Questa versione dell'applicazione è stata creata con l'obiettivo di migliorare l'applicazione per estrarre i migliori risultati possibili dalle partite di scacchi nelChess PDF condiviso dalla Comunità di Madrid


Il primo tentativo di estrarre questi giochi è stato in qualche modo disastroso, in quanto il PDF aveva caratteristiche che non erano state prese in considerazione nell'applicazione:

  • Il PDF ha giochi le cui mosse non distinguono esplicitamente le catture (i.e., le catture appaiono senza la "x". Ad esempio: "ed4" invece di "exd4").
  • C'è anche una caratteristica nei diagrammi di fine gioco, in cui lo stile delle figure sembra essere sufficientemente diverso dal resto del PDF, che ha causato l'applicazione non riesce ad allenarsi automaticamente. o anche manualmente, dal momento che stavo cercando di includere tutti gli esempi etichettati nello stesso modello.
  • I layout di pagina con diagrammi non sono stati rilevati correttamente da nessuno dei rilevatori di layout disponibili nell'applicazione.

Con questi problemi in mente, ho cercato di trovare una soluzione:

  • Ora l'applicazione accetta simboli di cattura espliciti, ma non si basa su di essi ciecamente. Permette anche l'assenza di questi simboli, ed è durante la determinazione dell'origine e della destinazione quadrati del movimento che è finalizzato se una mossa è una cattura o meno, scrivendo in modo appropriato al file salvato.pgn.
  • È stata aggiunta anche la possibilità di gestire più dettagli dei modelli di riconoscimento di posizione, consentendo di scegliere uno specifico o crearne uno nuovo per addestrare manualmente il riconosciutore con una posizione in cui il riconoscimento non è riuscito.
  • Inoltre, è ora possibile eliminare i modelli o configurarne più dettagli utilizzando una nuova finestra per la loro gestione.
  • Sono stati aggiunti due nuovi tipi di rilevatori di layout, creati appositamente per l'estrazione di diagrammi.

Durante il debug dell'estrazione dei giochi dal PDF, ho trovato alcuni bug che erano stati introdotti a un certo punto con le ultime modifiche apportate all'applicazione.

(Mi dispiace, l'applicazione non ha test unitari e non è facile rilevare quando una funzione che ha funzionato in precedenza è rotta)


I bug corretti sono legati al rilevamento della posizione (il riconoscimento automatico della posizione si era rotto).

È stato anche risolto un problema relativo al rilevamento di (N) Novelle, insieme a molti altri problemi per migliorare la funzionalità di alcune altre funzionalità.

Inoltre, è stato fatto un tentativo per migliorare l'identificazione delle immagini con posizioni a scacchi per i rilevatori di layout che non erano né GROWTH né OCR, equiparando l'identificazione della posizione dell'immagine con quella di quei due rilevatori di layout.


La mia opinione è che quest'ultima versione è la versione più raffinata dell'applicazione fino ad oggi.

Video

Descargas