Как многопоточность влияет на работу тессеракта на AWS lambda? - PullRequest
0 голосов
/ 11 ноября 2019

Что я делаю:

Компиляция tesseract из исходного кода с использованием docker и развертывание его как лямбда-слоя. Он используется другой лямбдой.

Вопрос

Согласно тессеракт-вики многопоточность должна быть отключена для массового производства:

Сборка по умолчаниюсоздает исполняемый файл Tesseract, который отлично подходит для обработки отдельных изображений. Затем Tesseract использует 4 ядра ЦП, чтобы получить результат распознавания как можно быстрее.

Для массового производства с сотнями или тысячами изображений это по умолчанию плохо, так как многопоточное выполнение имеет очень большие издержки. Лучше запускать однопоточные экземпляры Tesseract, чтобы каждое доступное ядро ​​ЦП обрабатывало свой образ.

cd tesseract
./autogen.sh
mkdir -p bin/release
cd bin/release
../../configure --disable-openmp --disable-shared 'CXXFLAGS=-g -O2 -fno-math-errno -Wall -Wextra -Wpedantic'
# Build tesseract and training tools. Run `make` if you don't need the training tools.
make training
cd ../..

Поскольку Serverless автоматически создает новые экземпляры для обработки нагрузки, следует отключить многопоточность дляпроизводство

...