Вопрос

Я делаю OCR, используя Tesseract на четырехъядерном процессоре. Для лучшей скорости я хочу читать 4 слова за раз, используя 4 потока. Безопасно ли вызывать tesseract из нескольких потоков одновременно?

Примечание. Каждый поток будет работать над различным, не общепринятым изображением.

Примечание. Охрана замков не в порядке из -за скорости.

Это было полезно?

Решение

Я не думаю, что Tesseract в настоящее время параллелизируется (см. эта ветка), хотя один из Основные цели для v3.0-сделать его более безопасным..

Тем не менее, вы всегда можете параллелизировать, бегая не одновременный процессы Tesseract. Если вы хотите параллелизировать OCRING одного изображения, вы могли бы разбить его и подавать каждую часть каждой из них не Процессы (в основном MAPREDUCE).

Другие советы

Из Примечания релиза, Tesseract-это (в основном и в той степени, которую вы описываете, необходимую).

Безопасность ниток! Перенесите все критические глобальные и статику членам соответствующего класса. Tesseract теперь безопасен для потока (несколько экземпляров могут использоваться параллельно в нескольких потоках.) За незначительным исключением, что некоторые управляющие параметры все еще являются глобальными и влияют на все потоки.

Я успешно использовал его на нескольких ядрах в течение этого времени (или дольше, от Dev Branch).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top