vincular vinculado una texto que insertar etiquetas etiqueta cuadro control contiene celda ocr tesseract hocr

ocr - vinculado - ¿Cómo segmento un documento usando Tesseract y luego saco los cuadros y las etiquetas delimitadores resultantes?



que contiene una etiqueta en excel (5)

Éxito. Muchas gracias a la gente del Laboratorio de Investigación de Reconocimiento de Patrones y Análisis de Imagen (PRImA) por producir herramientas para manejar esto. Puede obtenerlos gratuitamente en su website o github .

A continuación le doy la solución completa para una Mac con 10.10 y que utiliza el administrador de paquetes homebrew . Yo uso el wine para ejecutar Windows ejecutables.

Visión general

  1. Descargar herramientas: Tesseract OCR a página (TPT) y visor de páginas (PVT)
  2. Use el TPT para ejecutar tesseract en su documento y convierta el xml de HOCR en un xml de PAGE
  3. Utilice el PVT para ver la imagen original con la información de PAGE xml superpuesta

Código

brew install wine # takes a little while >10m brew install gs # only for generating a tif example. Not required, you can use Preview brew install wget # only for downloading example paper. Not required, you can do so manually! cd ~/Downloads wget -O paper.pdf "http://www.prima.cse.salford.ac.uk/www/assets/papers/ICDAR2013_Antonacopoulos_HNLA2013.pdf" # This command can be ommitted and you can do the conversion to tiff with Preview gs / -o paper-%d.tif / -sDEVICE=tiff24nc / -r300x300 / paper.pdf cd ~/Downloads # ttptool is the location you downloaded the Tesseract to PAGE tool to ttptool="/Users/Me/Project/tools/TesseractToPAGE 1.3" # sudo chmod 777 "$ttptool/bin/PRImA_Tesseract-1-3-78.exe" touch "$ttptool/log.txt" wine "$ttptool/bin/PRImA_Tesseract-1-3-78.exe" / -inp-img "$dl/Downloads/paper-3.tif" / -out-xml "$dl/Downloads/paper-3-tool.xml" / -rec-mode layout>>log.txt # pvtool is the location you downloaded the PAGE Viewer tool to pvtool="/Users/Me/Project/tools/PAGEViewerMacOS_1.1/JPageViewer 1.1 (Mac OS, 64 bit)" cd "$pvtool" dl=~ java -XstartOnFirstThread -jar JPageViewer.jar "$dl/Downloads/paper-3-tool.xml" "$dl/Downloads/paper-3.tif"

Resultados

Documento con superposiciones (rollover para ver texto y tipo) Solo superposiciones (use los botones GUI para alternar)

Apéndice

Puede ejecutar tesseract usted mismo y usar otra herramienta para convertir su salida al formato PAGE. No pude hacer que esto funcionara, pero estoy seguro de que estarás bien.

# Note that the pvtool does take as input HOCR xml but it ignores the region type brew install tesseract --devel # installs v 3.03 at time of writing tesseract ~/Downloads/paper-3.tif ~/Downloads/paper-3 hocr mv paper-3.hocr paper-3.xml # The page viewer will only open XML files java -XstartOnFirstThread -jar JPageViewer.jar "$dl/Downloads/paper-3.xml"

En este punto, debe utilizar la herramienta Java PAGE Converter para convertir el xml de HOCR en un xml de PAGE. Debería ir un poco algo como esto:

pctool="/Users/Me/Project/tools/JPageConverter 1.0" java -jar "$pctool/PageConverter.jar" -source-xml paper-3.xml -target-xml paper-3-hocrconvert.xml -convert-to LATEST

Desafortunadamente, seguí recibiendo punteros nulos.

Could not convert to target XML schema format. java.lang.NullPointerException at org.primaresearch.dla.page.converter.PageConverter.run(PageConverter.java:126) at org.primaresearch.dla.page.converter.PageConverter.main(PageConverter.java:65) Could not save target PAGE XML file: paper-3-hocrconvert.xml java.lang.NullPointerException at org.primaresearch.dla.page.io.xml.XmlInputOutput.writePage(XmlInputOutput.java:144) at org.primaresearch.dla.page.converter.PageConverter.run(PageConverter.java:135) at org.primaresearch.dla.page.converter.PageConverter.main(PageConverter.java:65)

Estoy intentando que Tesseract genere un archivo con cuadros de delimitación etiquetados que resultan de la segmentación de la página (pre OCR). Sé que debe ser capaz de hacer esto ''listo para usar'' debido a los resultados mostrados en las competiciones ICDAR donde los participantes tenían que segmentar y varios documentos (documento académico aquí ). Aquí hay un ejemplo de ese documento que ilustra lo que quiero crear:

He construido la última versión de tesseract usando brew, brew install tesseract --HEAD , y he estado intentando editar archivos de configuración ubicados en /usr/local/Cellar/tesseract/HEAD/share/tessdata/configs/ para generar cuadros etiquetados. La salida recibida usando hocr como la configuración, es decir

tesseract infile.tiff outfile_stem -l eng -psm 1 hocr

da un cuadro delimitador para todo y tiene algunas etiquetas en class etiquetas de class por ejemplo,

<p class=''ocr_par'' dir=''ltr'' id=''par_5_82'' title="bbox 2194 4490 3842 4589"> <span class=''ocr_line'' id=''line_5_142'' ...

Pero no puedo visualizar esto. ¿Existe una herramienta estándar para visualizar archivos hOCR o es la facilidad para crear un archivo de salida con cuadros de límites integrados en Tesseract?

Los detalles de la versión actual de la cabeza:

tesseract 3.04.00 leptonica-1.71 libjpeg 8d : libpng 1.6.16 : libtiff 4.0.3 : zlib 1.2.5

Editar

Realmente estoy buscando lograr esto usando la herramienta de línea de comandos (como en los ejemplos anteriores). @nguyenq me ha señalado la referencia a la API , desafortunadamente no tengo experiencia en c ++. Si la única solución es utilizar la API, ¿puede proporcionar un ejemplo rápido de python?


Con Tesseract 4.0.0, un comando como tesseract source/dir/myimage.tiff target/directory/basefilename hocr creará un archivo basefilename.hocr con cuadros de límite de bloques, párrafos, líneas y palabras para el OCR '' texto ed. Incluso el comando sin la configuración hocr crea un archivo de texto con nuevas líneas entre el texto a nivel de bloque, pero el formato hocr es más explícito.

Más opciones de configuración aquí: https://github.com/tesseract-ocr/tesseract/tree/master/tessdata/configs


La forma más sencilla de tener un archivo HOCR con el nivel de carácter individual es usar la bifurcación de Tesseract 3.05 de nickjwhite: https://github.com/nickjwhite/tesseract/tree/hocrcharboxes

Compile y descargue archivos de tessdata siguiendo la wiki de Tesseract. Una vez realizada la comprobación de instalación, utilizar:

tesseract {image file} -c tessedit_create_hocr=1 -c hocr_char_boxes=1 {output name}

y tadam!


Puede usar su API para obtener los cuadros delimitadores en varios niveles (carácter / palabra / línea / para) - vea el Ejemplo de API . Tienes que dibujar las etiquetas tú mismo.


Atajo

También es posible abrir archivos HOCR directamente con la herramienta PageViewer. La extensión del archivo tiene que ser .xml, sin embargo.