【问题标题】:create pipeline for image processing为图像处理创建管道
【发布时间】:2018-03-24 23:06:32
【问题描述】:

我正在处理一些非常简单的图像处理步骤。 步骤如下:

  1. 从 aws s3 下载特定 ID 的图像
  2. 将图像从 gif 或其他格式重新格式化为 jpg
  3. 检查图片大小
  4. 如果可能,调整图像大小(只是在考虑:上采样/下采样图像 - 尚不确定该步骤是否即将到来)
  5. 对图像进行分类并更新数据库信息
  6. 获取下一个 id 并重复 1。

如果我必须快速实现它而不考虑我只会为每个步骤编写一个带有子函数的简单 python 脚本(如果出现问题,则抛出异常 - 有些步骤很高兴像 (4.) 其他步骤像 (5 .) 是必要的)。

我听说了 luigi 和流水线,想知道这是否是一个用例。

使用 luigi 之类的东西或其他东西有什么好处 - 对于我尝试处理的问题是否有最佳实践?

现在给你一些数字,我有大约 20GB 的数据和超过 100k 的图像。每天有大约 10k+ 图像需要处理。

非常感谢!

【问题讨论】:

    标签: image-processing pipeline luigi


    【解决方案1】:

    如果您计划使用 EC2 实例,那么使用工作流编排框架(例如 luigi 和流水线)是有意义的。

    但是,您可以在 AWS 中使用更好的方法,使用 Lambda 和 Step Functions。在这里,您可以在每个步骤中设计带有图像转换逻辑的事件驱动工作流,而步骤函数通过可视化来管理状态机,这具有固有的可扩展性。

    您可以按如下方式设计事件驱动流。

    将图像上传到 S3 -> 触发步骤函数工作流-> 写回 S3

    【讨论】:

    • 实际上我的主要应用程序是在 Digital Ocean 上,我使用 S3 进行图像托管。我也在想像 Lambda 这样的东西是否会成为一个用例。但我不熟悉它。是否可以在 Lambda 中使用 tensorflow 和我自己的 python 脚本和包之类的东西?如果我必须关心成本,这是个好主意吗?对于 Digital Ocean,我每月支付 5 美元,我想每张图片我需要大约几秒钟。
    • 您可以将 Lambda 与您自己的 python 包一起使用来进行图像处理。事实上,还有用于创建图像缩略图的预建模板。与数字海洋中的模型相比,成本模型不同,您将在几秒钟内为 Lambda 执行时间付费,因此与成本随使用量增加的前期成本相比,运营支出成本更高。在这里,如果脚本和步骤很少,您只能使用 Lambda。对于复杂的工作流程,我更喜欢使用 Lambda 的步进函数,其中步进转换会产生额外费用。
    • 感谢您的帮助。会看一下 lambda,但仍然不能 100% 确定要走哪条路。
    猜你喜欢
    • 1970-01-01
    • 2021-01-18
    • 1970-01-01
    • 2020-09-10
    • 1970-01-01
    • 2020-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多