ChessPdfBrowser

La aplicación ChessPdfBrowser nace para intentar cubrir un hueco de funcionalidad para los ajedrecistas:

la extracción de las partidas contenidas en libros de ajedrez en PDF a un formato de partidas de ajedrez estándar (.pgn) que se puede abrir con cualquier aplicación de ajedrez que se precie.

Tiene un sitio web chesspdfbrowser propio

Descripción

Con la aplicación podrás:

  • Extraer las partidas de libros en PDF.
  • Navegar por las variantes de las partidas.
  • Extraer los diagramas de un rango de páginas.
  • Reconocer posiciones (imagen -> FEN).
  • Trabajar con el formato estándar de partidas .pgn
  • Trabajar con formato .richPgn (enriquecido para añadir información para la interacción con el PDF)
  • Interacción entre el PDF y el tablero
  • Conectar con motores tipo UCI (como Stockfish)
  • Jugar partidas con tiempo

Características generales:

  • Multi-idioma
  • Multi-resolución (zoom configurable)
  • Opción de modo oscuro
  • Notificación de nueva versión
  • Manual de usuario

Descripción del código

Aplicación programada en Java, cuyas librerías están organizadas en módulos.


La extracción de partidas, su función más destacada, se basa en un parser que es una combinación de analizador léxico con un analizador sintáctico

La primera versión de este parser, permitía extraer partidas en notación algebraica en varios idiomas

A partir de la versión v1.26 también se permite la extracción de partidas en notación algebraica de figuras

Esta nueva función se programó basándose en el parser de partidas ya existente, pero añadiéndole una capa que tradujera las imágenes de las figuras a sus correspondientes iniciales, para así poder aplicar el parser de partidas existente

El traductor de imágenes a las iniciales de las figuras, se ha implementado usando el algoritmo de vecino más cercano, con K = 1

Es decir, que toma de entre los ejemplos etiquetados que tiene configurados, el más cercano en base a una medida de error.


Otra función interesante es la de reconocimiento de posiciones (añadida en la v1.20). De una imagen de un tablero, la aplicación trata de obtener la cadena FEN de la posición.

Esa función está programada haciendo uso de la teoría de un artículo de IEEE que compré para esto:

  • Con una detección de bordes, se trata de obtener la ubicación de las casillas del tablero.
  • Si hubo éxito se recorren todas las casillas, y se trata de reconocer la figura que hay en cada una de ellas o si está vacía, con el algoritmo de vecino más cercano.
  • Si hubo éxito reoconociendo todas las casillas, entonces se supone que hubo éxito reconociendo el tablero.
  • Si no hubo éxito reconociendo todas las casillas, se le muestra al usuario el tablero con las casillas reconocidas, y se le pide que lo complete, para tener más ejemplos que permitan reconocer completamente el tablero.

El reconocedor de tableros, se autoentrena cuando se extraen las partidas de un PDF, ya que hay imágenes de posiciones que sí que son conocidas, y con ellas se autoentrena para obtener ejemplos de casillas con piezas


Una función también interesante que se añadió en la v1.20, es la de extracción de metadatos de las partidas (nombres de los jugadores, ELOs, fecha, lugar, ...).

Esta función se basa en un sistema de expresiones regulares que contemplan muchos formatos de metadatos con los que me había encontrado durante las pruebas.


Y otra función que puede ser interesante también añadida en la v1.20, es la opción de conectar con motores tipo UCI (como Stockfish).

Para esta función se programó un configurador genérico de motores, que leía la configuración del motor durante la conexión y creaba un formulario para que el usuario pudiera cambiar las opciones del motor.

Pantallas

ChessPdfBrowser v1.0 (2016)

Descargar

ChessPdfBrowser v1.1 (2019)

Descargar

ChessPdfBrowser v1.11 (2019)

Descargar

ChessPdfBrowser v1.20 (2020-2023)

Ver vídeo
Descargar

ChessPdfBrowser v1.26 (2023-2024)

Ver vídeo
Descargar

ChessPdfBrowser v1.27 (2024)

Ver vídeo
Descargar

Versiones

image

La Chess PDF Browser es una aplicación programada en Java que permite navegar por libros de ajedrez en formato PDF.

También permite trabajar con archivos de partidas en formato .pgn

Muestra un tablero de ajedrez donde se puede navegar por las partidas.

Permite abrir libros de ajedrez en PDF y extraer sus partidas, para poder guardarlas en formato .pgn

Permite editar las variantes de las partidas que tiene en memoria (leidas de .pgn, extraídas de un PDF o bien creadas directamente moviendo las piezas del tablero).

Existe un amplio manual donde se explica el funcionamiento de la aplicación.

image

Con la nueva versión de la aplicación, se han corregido varios errores, y se han añadido varias características:

  • Nuevo extractor de partidas experimental.
  • Se permite marcar movimientos como novedades (Novelty).
  • Se añade soporte para el idioma ruso.

Existe un amplio manual donde se explica el funcionamiento de la aplicación.

image

Con la nueva versión de la aplicación, se han actualizado los manuales de usuario.

Existe un amplio manual donde se explica el funcionamiento de la aplicación.

image

Con la nueva versión de la aplicación, se han añadido varias características:

  • Se substituye el extractor de partidas experimental por uno nuevo que tienen en cuenta los paréntesis y corchetes.
  • Se ha habilitado un mecanismo para extraer los datos de las partidas (nombres de los jugadores, ELOs, etc.)
  • Se añade la posibilidad de ver las partidas en notación algebraica de figuras.
  • Se añade un ocr para tratar de reconocer las posiciones de los tableros y añadirlas a las partidas que no partan de la posición inicial estándar.
  • Ahora se pueden jugar partidas contra otra persona o contra un motor, o poner a jugar a dos motores entre sí.

  • Se facilita la conexión con motores tipo UCI:
    • Se permite modificar la configuración de los motores (por ejemplo para disminuir el nivel, para jugar contra un nivel inferior al máximo)
    • Análisis de posiciones.
    • Análisis de partidas completas.
    • Se puede usar un motor como jugador de una partida.
  • Opción de modo oscuro

Existe un amplio manual donde se explica el funcionamiento de la aplicación.

image

La nueva versión de la aplicación aparece con la necesidad de extraer las partidas de PDFs en notación algebraica de figuras.

Lo que es nuevo en esta versión:

  • Ofrece una implementación de la extracción de partidas en notación algebraica de figuras.
  • Mejora el reconocimiento de posiciones de las imágenes con tableros (OCR)
  • Se corrigen algunos bugs.

Existe un amplio manual donde se explica el funcionamiento de la aplicación.


Puedes ver un vídeo de la nueva funcionalidad Vídeo de demostración

image

La nueva versión aporta mejoras en la detección de posiciones (imagen -> FEN)

Vídeos

Descargas