Tesseract (двигатель OCR) повторно?
-
26-10-2019 - |
Вопрос
Я делаю OCR, используя Tesseract на четырехъядерном процессоре. Для лучшей скорости я хочу читать 4 слова за раз, используя 4 потока. Безопасно ли вызывать tesseract из нескольких потоков одновременно?
Примечание. Каждый поток будет работать над различным, не общепринятым изображением.
Примечание. Охрана замков не в порядке из -за скорости.
Решение
Я не думаю, что Tesseract в настоящее время параллелизируется (см. эта ветка), хотя один из Основные цели для v3.0-сделать его более безопасным..
Тем не менее, вы всегда можете параллелизировать, бегая не одновременный процессы Tesseract. Если вы хотите параллелизировать OCRING одного изображения, вы могли бы разбить его и подавать каждую часть каждой из них не Процессы (в основном MAPREDUCE).
Другие советы
Из Примечания релиза, Tesseract-это (в основном и в той степени, которую вы описываете, необходимую).
Безопасность ниток! Перенесите все критические глобальные и статику членам соответствующего класса. Tesseract теперь безопасен для потока (несколько экземпляров могут использоваться параллельно в нескольких потоках.) За незначительным исключением, что некоторые управляющие параметры все еще являются глобальными и влияют на все потоки.
Я успешно использовал его на нескольких ядрах в течение этого времени (или дольше, от Dev Branch).