OCRh

Estándar abierto para textos OCR

hOCR es un estándar abierto de representación de datos para texto formateado obtenido a partir del reconocimiento óptico de caracteres (OCR). La definición codifica texto, estilo, información de diseño, métricas de confianza de reconocimiento y otra información utilizando lenguaje de marcado extensible (XML) en forma de lenguaje de marcado de hipertexto (HTML) o XHTML . [1]

Software

El siguiente software de OCR puede generar el resultado del reconocimiento como archivo hOCR:

Ejemplo

El siguiente ejemplo es un extracto de un archivo hOCR:

... < p  class = "ocr_par"  lang = "deu"  title = "bbox930" >  < span  class = "ocr_line"  title = "bbox 348 797 1482 838; baseline -0.009 -6" >  < span  class = "ocrx_word"  title = "bbox 348 805 402 832; x_wconf 93" > El </ span >  < span  class = "ocrx_word"  title = "bbox 421 804 697 832; x_wconf 90" > Resumen de la lección < / span >  < span  class = "ocrx_word"  title = "bbox 717 803 755 831; x_wconf 96" > es </ span >  < span  class = "ocrx_word"  title = "bbox 773 803 802 831; x_wconf 96" > en </ span >  < abarca  clase = "ocrx_word"  title = "bbox 821 803 917 830; x_wconf 96" > ihrem </ span >  < span  class = "ocrx_word"  title = "bbox 935 799 1180 838; x_wconf 95" > ursprünglichen </ span >  < span  class = "ocrx_word"  title = "bbox 1199 797 1343 832; x_wconf 95" > Umfange </ span >  < span  class = "ocrx_word"  title = "bbox 1362 805 1399 823; x_wconf 95" > zu </ span >  < span  class = "ocrx_word"  title = "bbox 1417 x_wconf 96 " > versión- </span> </span>  ...

El texto reconocido se almacena en nodos de texto normales del archivo HTML. La distribución en líneas y palabras independientes se proporciona mediante las etiquetas span que lo rodean . Además, se utilizan las entidades HTML habituales, por ejemplo, la etiqueta p para un párrafo. Se proporciona información adicional en las propiedades, como:

  • diferentes elementos de diseño como "ocr_par", "ocr_line", "ocrx_word"
  • Información geométrica de cada elemento con un cuadro delimitador "bbox"
  • información del idioma "lang"
  • Algunos valores de confianza "x_wconf"

caja b

General

El diseño del objeto de cuadro delimitador u objeto bbox es gramatical.

  • nombre-propiedad = "bbox"
  • valor-propiedad = uint uint uint uint

Ejemplo

caja b 0 0 100 200

El bbox (abreviatura de «cuadro delimitador») de un elemento es un cuadro rectangular alrededor de este elemento, que está definido por la esquina superior izquierda (x0, y0) y la esquina inferior derecha (x1, y1).

Los valores se refieren a la esquina superior izquierda de la imagen del documento y se miden en píxeles.

El orden de los valores es x0 y0 x1 y1 = "izquierda arriba derecha abajo"

Uso

Utilice x_bboxes a continuación para los cuadros delimitadores de caracteres.

No utilice bbox a menos que el cuadro delimitador del componente de diseño sea, de hecho, rectangular; algunos componentes de diseño no rectangulares pueden tener cuadros delimitadores rectangulares si la no rectangularidad es causada por elementos flotantes alrededor de los cuales fluye el texto.

< span  class = "ocr_line"  id = "line_1"  title = "bbox 10 20 160 30" ></ span >

El cuadro delimitador bbox de esta línea se muestra en azul y está delimitado por la esquina superior izquierda (10, 20) y la esquina inferior derecha (160, 30). Todas las coordenadas se miden con referencia a la esquina superior izquierda de la imagen del documento, cuyo borde se dibuja en negro. [3]

Archivos PDF que permiten realizar búsquedas

El formato hOCR se utiliza con mayor frecuencia para crear archivos PDF que permitan realizar búsquedas o como metadatos extraídos del archivo PDF. Para crear archivos PDF que permitan realizar búsquedas, podemos utilizar una imagen escaneada del documento y un archivo .hocr de la imagen en particular. Para lograrlo, podemos utilizar las siguientes herramientas de código abierto.

herramientas hocr

Fuente: [4]

hocr-tools es una biblioteca de código abierto escrita en Python. Tiene una utilidad de línea de comandos adjunta en los scripts llamada hocr-pdf que nos permite convertir archivos hocr estándar en un archivo PDF con capacidad de búsqueda. También vale la pena señalar que la versión para trabajar con archivos hocr en RTL o en escrituras no latinas como el árabe , por el momento, necesitamos usar el repositorio de GitHub .

hocr-pdf

Podemos utilizar la utilidad hocr-pdf utilizando la siguiente sintaxis básica.

hocr-pdf—guardar archivo final.pdf carpeta_imágenes_y_hocr

La carpeta_images_and_hocr debe contener los respectivos archivos de formato .jpg y .hocr con sus extensiones de archivo cambiadas.

Problemas conocidos

Algunos de los problemas conocidos del script hocr-pdf en la instalación de PyPI son los siguientes.

  • No está actualizado con el repositorio de GitHub.
  • hocr-pdf está dañado en la línea 134 debido a que decodebytes() quedó obsoleto después de Python 3.1 [5]

Soluciones conocidas

Compila hocr-tools usando el último repositorio de GitHub.

hocr2pdf

hocr2pdf [6] es otra biblioteca que admite la conversión de archivos hocr. Está escrita en C++ y es compatible con otras bibliotecas. También admite idiomas UTF-8, pero es posible que se requiera depuración adicional y navegación por algunos registros de conversaciones de Google para lograrlo.

Según las páginas de manual de Ubuntu ,

ExactImage es una biblioteca de procesamiento de imágenes rápida en C++. A diferencia de muchos otros marcos de bibliotecas, permite trabajar en varios espacios de color y profundidades de bits de forma nativa, lo que genera bajos requisitos de memoria y de cálculo. hocr2pdf crea archivos PDF con buen diseño y capacidad de búsqueda a partir de la entrada hOCR ( HTML anotado ) obtenida de un sistema de OCR .

Intentos de conversión de hOCR a PDF

Además de las bibliotecas estables y comentadas a continuación, ha habido muchas contribuciones al formato hOCR a lo largo de los años con el apoyo de muchos de los primeros usuarios de este formato. Puede obtener acceso a la incrustación de texto en una imagen con hOCR y convertirlo en un archivo PDF usando Python 2 con este script de 12 años de antigüedad a partir de 2021. Este script también se puede actualizar y hacer funcional convirtiendo ese código fuente de Python 2 al contexto compatible con Python 3.

- HOCRConverter de jbrinley (Documentación [7] )

Convertidor HOCR

HOCRConverter es un script escrito en Python 2.x que se puede utilizar para convertir un archivo hOCR con un archivo de imagen específico a un archivo PDF con capacidad de búsqueda. Puede consultar la documentación en el enlace anterior.

desde  HocrConverter  importar  HocrConverterhocr  =  HocrConverter ( " myHocrFile.html " ) # esto se puede hacer cambiando .hocr a .html  y viceversa hocr.to_text ( "output.txt" ) hocr.to_pdf ( " myImageFile.png" , " output.pdf" ) 

Problemas conocidos

  • No ha sido probado.
  • No es compatible de forma nativa con Python 3.x

Véase también

  • ALTO (XML) : otro formato de representación de datos OCR

Referencias

  1. ^ Breuel, T. (1 de septiembre de 2007). "El microformato hOCR para el flujo de trabajo y los resultados de OCR" (PDF) . Novena Conferencia Internacional sobre Análisis y Reconocimiento de Documentos (ICDAR 2007) Vol. 2. Vol. 2. págs. 1063–1067. doi :10.1109/ICDAR.2007.4377078. ISBN 978-0-7695-2822-9.S2CID 7565957  .
  2. ^ "Documentación de Ghostscript". ghostscript.com . Consultado el 1 de marzo de 2024 .
  3. ^ "hOCR - Flujo de trabajo y salida de OCR integrados en HTML". kba.cloud . Consultado el 18 de diciembre de 2021 .Dominio públicoEste artículo incorpora texto de esta fuente, que se encuentra en el dominio público .
  4. ^ ocropus, ocropus (12 de diciembre de 2021). "hocr-tools". Github .
  5. ^ Ahmad, Muneeb (12 de diciembre de 2021). "decodebytes() está obsoleto en hocr-pdf, use decodestring()". GitHub . Consultado el 12 de diciembre de 2021 . /home/muneeb/.local/bin/hocr-pdf:134: DeprecationWarning: decodestring() es un alias obsoleto desde Python 3.1, use decodebytes() uncompressed = bytearray(zlib.decompress(base64.decodestring(font)))
  6. ^ "Página de manual de Ubuntu: Hocr2pdf - Conversor de hOCR a PDF del kit de herramientas ExactImage".
  7. ^ Brinley, Jonathan (2 de abril de 2009). "Convertir hOCR a PDF". x+3 . Archivado desde el original el 6 de febrero de 2021 . Consultado el 12 de diciembre de 2021 .
  • La especificación hOCR para la profundidad sobre hOCR.
  • Especificación de la versión actual (1.2 a febrero de 2021)
  • hocr-tools: herramientas para manipular y evaluar el formato hOCR en GitHub
  • ocr-fileformat: software que valida y transforma varios formatos de archivos OCR, incluido hOCR en GitHub
Obtenido de "https://es.wikipedia.org/w/index.php?title=HOCR&oldid=1227020028"