Frage

Ich mache OCR mit Tesseract auf einem Quad-Core-Prozessor. Für eine bessere Geschwindigkeit möchte ich 4 Wörter gleichzeitig mit 4 Threads lesen. Ist es sicher, Tesseract gleichzeitig von mehreren Threads aufzurufen?

Hinweis: Jeder Thread arbeitet auf einem anderen, nicht stammenden Bild.

Hinweis: Das Schutz mit Schlössern ist wegen Geschwindigkeit nicht in Ordnung.

War es hilfreich?

Lösung

Ich glaube nicht, dass Tesseract derzeit parallelisierbar ist (siehe Dieser Thread), obwohl einer der Hauptziele für V3.0 ist es, es zu fadensicherer zu machen.

Sie könnten jedoch immer parallel durch Laufen parallelisieren n gleichzeitig Prozesse von Tesseract. Wenn Sie die Ocring eines einzelnen Bildes parallelisieren möchten, liegt es an Ihnen, es aufzuteilen und jeden Teil zu jedem dieser zu füttern n Prozesse (im Grunde ein MapReduce).

Andere Tipps

Aus Die Versionsnotizen, Tesseract ist (meistens und in dem Maße, den Sie benötigen) Faden-safe ab 3.01 (21. Oktober 2011).

Thread-Safety! Verlegte alle kritischen Global und Statik an Mitglieder der entsprechenden Klasse. Tesseract ist jetzt mit Thread-Safe (mehrere Instanzen können parallel in mehreren Threads verwendet werden), mit der geringfügigen Ausnahme, dass einige Steuerparameter immer noch global sind und alle Threads beeinflussen.

Ich habe es so lange (oder länger von Dev Branch) erfolgreich in mehreren Kernen verwendet.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top