Как мне импортировать модуль opencv в AWS lambda

#python #amazon-web-services #aws-lambda #cv2

#python #amazon-веб-сервисы #aws-lambda #cv2

Вопрос:

Я работаю над проектом, который требует от меня запуска моего кода в облаке AWS, я попробовал несколько руководств и успешно использовал модуль python numpy в AWS lambda, даже я использую windows OS, следуяhttps://serverless.com/blog/serverless-python-packaging

Тем не менее, я хотел бы импортировать opencv, я установил opencv-python-headless с помощью pip install opencv-python-headless . В конце концов, я не смог завершить свою разработку, мне сказали, что «размер распакованного архива должен быть меньше 262144000 байт», это правда, поскольку у меня был мой zip-файл размером более 300000000 байт.

Мой вопрос в том, могу ли я использовать более простой opencv для установки, чтобы у меня был пакет с меньшим, чем определенное количество, размером, мне просто нужно несколько кодов о cv2:

 faceCascade = cv2.CascadeClassifier(cascPath)
image = cv2.imread(imagePath, cv2.IMREAD_GRAYSCALE )

faces = faceCascade.detectMultiScale(
image,
scaleFactor=1.2,
minNeighbors=5,
minSize=(30, 50),
flags = cv2.CASCADE_SCALE_IMAGE
)

for (x, y, w, h) in faces:
cv2.rectangle(image, (x, y), (x w, y h), (0, 255, 0), 2)
......
lastimg = cv2.resize(crop_img, (182, 182))
cv2.imwrite("crop_{}".format(imagePath), lastimg)
  

Или есть какой-либо способ запустить этот код в облаке AWS,
(например, могу ли я загрузить свой модуль opencv в AWS S3 и загрузить его при запуске приведенного выше кода python.

Комментарии:

1. Пожалуйста, отформатируйте коды python с отступом

Ответ №1:

Мой вопрос в том, могу ли я использовать более простой opencv для установки, чтобы я мог иметь пакет с меньшим, чем определенное количество (…).

Для того, чтобы выполнить это, вы должны создать opencv самостоятельно.

Таким образом, вы могли бы задать параметры сборки и создать версию, наиболее подходящую для ваших нужд.

Вот документы с инструкциями и вариантами сборки:https://docs.opencv.org/3.4/d7/d9f/tutorial_linux_install.html

Взгляните на этот пример сборки с той же целью, что и у вас: https://github.com/aeddi/aws-lambda-python-opencv/blob/master/build.sh


Или есть какой-либо способ запустить этот код в облаке AWS, (например, могу ли я загрузить свой модуль opencv в AWS S3 и загрузить его при запуске вышеупомянутого кода python.

К сожалению, насколько мне известно, нет.

Комментарии:

1. Да, это работает, я допустил ошибку опечатки при импорте правильного модуля раньше, но теперь я могу импортировать cv2. Спасибо