如何在 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.
遗憾的是,我不知道。
我正在从事的项目需要我 运行 我的代码在 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.
遗憾的是,我不知道。