这是我在stackoverflow中提出的第一个问题,因此请宽容...
我在使用docker-compose运行的项目中使用tesseract。我不知道如何直接在我的python文件中配置单个处理器核心。我想这样做是因为并行Tesseract时会出现速度慢和过度消耗的情况。
我发现了许多类似的主题,但它们仅涉及如何在命令行上配置OMP_THREAD_LIMIT。
这是在我的python代码中配置tesseract的方式:
__tesseract_config_without_dir = "--psm 3 --oem 1 --dpi 300"
TESSERACT_DATA = os.environ.get(
"TESSDATA_PREFIX", "/usr/share/tesseract-ocr/4.00/tessdata/"
)
__tesseract_config = (
__tesseract_config_without_dir
+ ' --tessdata-dir "{}"'.format(config.TESSERACT_DATA)
)
因此,我想在__tesseract_config中添加类似“OMP_THREAD_LIMIT = 1”的选项,但我不知道如何编写。在tesseract文档中,我们仅找到以下信息:
“环境变量
OMP_THREAD_LIMIT
如果tesseract可执行文件是使用多线程支持构建的,则它将通常使用四个CPU内核进行OCR进程。虽然对于单个镜像来说这可能更快,但是如果主机提供的CPU内核少于四个,或者为许多镜像创建了OCR,则性能会很差。 OMP_THREAD_LIMIT = 1仅使用一个CPU内核。”
太感谢了。
最佳答案
要为Tesseract禁用多线程,我只是在代码的开头添加了
os.environ['OMP_THREAD_LIMIT'] = '1'
关于python - 如何直接在python代码中的tesseract中配置OMP_THREAD_LIMIT以禁用多处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63070716/