Приложение C ++ OCR в AWS лямбда - PullRequest
0 голосов
/ 03 апреля 2019

Я изучал стабильную и масштабируемую архитектуру для лямбда-приложений (без серверов) в aws для разработки ocr-приложений.

Я успешно реализовал и протестировал Python-версию модулей opencv и tesseract-ocr в aws lambda..

Я заинтересован в том, чтобы сделать то же самое на языке программирования c ++ в aws lambda, чтобы я мог использовать тессеракт c ++ Tess_Base_API в c ++, а также таким образом, чтобы нам не пришлось преобразовывать мою существующую кодовую базу на основе c ++ в код на python..

После некоторых исследований я обнаружил, что это может быть достигнуто двумя способами:

1) Создание opencv, статическая сборка библиотеки тессерактов (файлы .a) и затем статическая компиляция исходного кода C ++ для созданияисполняемый файл без зависимости динамических библиотек.После этого этот статически сгенерированный исполняемый файл C ++ можно выполнить с помощью модуля подпроцесса в Python в aws lambda.

2) Создать пакет, содержащий динамические библиотеки opencv и tesseract (.so файлы) и запустить исполняемый файл c ++ (указав путь к нимпакет динамической библиотеки с использованием 'LD_LIBRARY_PATH') снова с использованием модуля подпроцесса в Python в aws lambda.

Сначала я попытался построить opencv статически, следуя этой ссылке , но я не добился успеха, так как это былона основе альпийской среды Linux.Я также не могу получить такого рода использование в любом месте, поэтому я запутался, если этот подход будет работать.

Я изучал эту функцию в течение последних нескольких дней, кто-то уже сделал это или имеет какую-либо информацию о том, как это можно сделать в aws lambda?

Спасибо

1 Ответ

0 голосов
/ 23 июня 2019

AWS Lambda Runtime для C ++ поддерживает упаковку вашего приложения и его зависимостей. Единственный улов заключается в том, что зависимости должны быть известны во время соединения (т. Е. Без использования dlopen). Если ваш код использует dlopen, вы должны изменить пакет zip и вручную добавить эту библиотеку.

См. Полный пример здесь https://github.com/awslabs/aws-lambda-cpp/tree/master/examples/s3

...