Pregunta

¿Es posible limitar el conjunto de caracteres que Tesseract está buscando ( por ejemplo, buscar sólo las letras AZ)? Eso mejoraría en gran medida mis resultados.

¿Fue útil?

Solución

Crear un archivo de configuración (por ejemplo "letras") en tessdata / configuraciones de directorio - por lo general /usr/share/tesseract/tessdata/configs
o
/usr/share/tesseract-ocr/tessdata/configs

Y añadir esta línea en el fichero de configuración:

tessedit_char_whitelist abcdefghijklmnopqrstuvwxyz  

... o tal vez [a-z] funciona .. No sé :-)
A continuación, llame Tesseract similar a esto:

tesseract input.tif output nobatch letters  

Esto limitará Tesseract a reconocer sólo los caracteres buscados

Otros consejos

Para utilizar la lista blanca en un archivo de configuración o utilizar el modificador de línea de comandos -c tessedit_char_whitelist=..., en la nueva versión 4.0, tendrá que configurar el modo de motor de OCR a la "Tesseract original solamente". Esto se debe a que el nuevo modo "Redes Neuronales LSTM" no respeta la configuración de la lista blanca. Ejemplo de adecuada de línea de comandos para la versión 4.0:

  

Tesseract archivo_entrada output_file --oem 0 -c   tessedit_char_whitelist = abc123

ACTUALIZACIÓN: En las nuevas versiones (4.0) hay archivo eng.traineddata corrupto instalado por defecto con Windows y algunos instaladores de Linux. solución temporal es reemplazar el archivo tessdata\eng.traineddata con uno de la versión más antigua. Este archivo debe ser de aproximadamente 30 MB. De lo contrario obtendrá un error: "Tesseract no podía cargar todos los idiomas!" o similar.

Además del archivo de configuración, es la bandera -c:

tesseract stdin stdout -c tessedit_char_whitelist=abcdefghijklmnopqrstuvwxyz -psm 6

Simplemente añadiendo esto para cualquier persona que utilice Tesseract en Android. En su función de readOCR donde se establece el idioma, etc. añada la línea siguiente:

tesseract.setVariable("tessedit_char_whitelist","ABCDEFGHIJKLMNOPQRSTUVWXYZ");

También puede hacer que su Lista Negra caracteres para excluir.

En Tesseract versión 4.00, esto no puede ser hecho. Sólo se puede afinar su modelo o el uso de expresiones regulares para eliminar caracteres adicionales de la predicción.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top