2011-02-10 9 views
9

He leído algunas otras publicaciones que sugieren que agregarían compatibilidad con subprocesos múltiples en 3.00. Pero no estoy seguro si se agrega en 3.00 cuando fue lanzado.¿Es tesseract 3.00 de subprocesos múltiples?

¿Aparte de multi-threading, está ejecutando múltiples procesos de tesseract una opción factible para lograr la concurrencia?

Gracias.

+0

posible duplicado de [¿Es Tesseract (un motor de OCR) reentrante?] (Http://stackoverflow.com/questions/4827924/is-tesseractan-ocr-engine-reentrant) –

Respuesta

8

Una cosa que he hecho es invocar GNU Parallel para ejecutar tantas instancias de Tess * como sea posible en un sistema multi-core para varias páginas documentos convertidos en imágenes de una sola página.

Es un programa corto, fácilmente compilado en la mayoría de las distribuciones de Linux (estoy usando OpenSuSE 11.4).

Aquí está la línea de comandos que utilizo:

/usr/local/bin/parallel -j 4 \ 
    /usr/local/bin/tesseract -psm 1 -l eng {} {.} \ 
    ::: /tmp/tmp/*.jpg 

El -j 4 dice paralela a utilizar los cuatro núcleos de CPU que tengo en el servidor.

Si ejecuta esto, y en otro terminal haga una 'parte superior', verá hasta cuatro procesos al mismo tiempo hasta que rebusque en todos los archivos JPG del directorio especificado.

Su carga nunca debe exceder la cantidad de núcleos de CPU en su sistema (si ejecuta Linux).

Aquí está el enlace a Paralelo GNU:

http://www.gnu.org/software/parallel/

2

Yo utilizo parallel, así, en un Centos, de esta manera:

ls | parallel --gnu "tesseract {} {.}" 

que utiliza la opción --gnu como se sugiere desde el stdout log que era:

parallel: Warning: YOU ARE USING --tollef. IF THINGS ARE ACTING WEIRD USE --gnu. 

{} y {.} son marcadores de posición para el paralelo: en este caso le está diciendo a tesseract que use el archivo listado como primer argumento, y el mismo nombre de archivo sin extensión como segundo argumento; todo está bien explicado en páginas man paralelas.

Ahora, si usted tiene - por ejemplo - tres .tif archivos y ejecutar tesseract tres veces, una para cada archivo, resumiendo el tiempo de ejecución, y después de ejecutar el comando anterior con time antes parallel, puede comprobar fácilmente la acelerar.

Cuestiones relacionadas