Тессеракт (двигатель OCR) реентерабельный? - PullRequest
7 голосов
/ 28 января 2011

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

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

Ответы [ 2 ]

6 голосов
/ 03 мая 2013

Начиная с примечаний к выпуску , Tesseract является (в основном и в той степени, в которой вы описываете нуждающимся) поточно-ориентированным с 3.01 (21 октября 2011 г.)

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

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

3 голосов
/ 31 января 2011

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

Однако вы всегда можете распараллелить, запустив n одновременных процессов тессеракта.Если вы хотите распараллелить распознавание одного изображения, вам нужно разделить его и передать каждую часть каждому из этих n процессов (в основном, mapreduce).

...