如何在 AWS lambda 上导入 opencv 模块

How do I import the opencv module on AWS lambda

我正在从事的项目需要我 运行 我的代码在 AWS 云上, 我已经尝试了一些教程,并且我在 AWS lambda 上成功地使用了 python numpy 模块,即使我正在使用 window OS,如下 https://serverless.com/blog/serverless-python-packaging/

不过,我想导入opencv,我安装了opencv-python-headless bypip install opencv-python-headless。毕竟,我无法完成我的开发,有人告诉我 "unzipped size must be smaller than 262144000 bytes",这是真的,因为我的 .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 云上的这些代码, (例如,我可以在 AWS S3 上上传我的 opencv 模块,并在 运行 上面 python 代码时下载它。

My question is can I have the more simple opencv for installing, so I can have the package with smaller than the certain amount (...).

为了完成这个,你应该自己构建 opencv。

这样您就可以设置构建选项并创建最适合您需要的版本。

以下是包含说明和构建选项的文档: https://docs.opencv.org/3.4/d7/d9f/tutorial_linux_install.html

看看这个构建示例,与您的 objective 相同: https://github.com/aeddi/aws-lambda-python-opencv/blob/master/build.sh


OR is there any method to run these code on AWS cloud, (for example, can I upload my opencv module on AWS S3, and download it when running the above python code.

遗憾的是,我不知道。