【发布时间】:2017-12-16 07:59:16
【问题描述】:
您好,我正在用 Ruby 构建一个程序来为网页上的图像生成 alt 属性。我正在抓取图像的页面,然后将它们的 src(即 URL)发送到 google-cloud-vision 以进行标签检测和其他 Cloud Vision 方法。每张图像大约需要 2-6 秒。我想知道是否有任何方法可以减少响应时间。我首先使用 TinyPNG 来压缩图像。 Cloud Vision 稍微快了一点,但压缩所需的时间超过了改进。如何提高响应时间?我会列出一些想法。
1) 由于我们向 Google Cloud 发送 URL,Google Cloud 需要一些时间才能收到来自 img_src 的响应,然后才能分析图像。发送 base64 编码的图像更快吗?发送(或真正让 Google 接收)图片的最快形式是什么?
cloud_vision = Google::Cloud::Vision.new project: PROJECT_ID
@vision = cloud_vision.image(@file_name)
@vision.labels #or @vision.web, etc.
2) 我当前的标签检测代码。第一个问题:发送 JSON 请求是否比在 Google Cloud 项目上调用 Ruby(标签或 Web)方法更快?如果是这样,我应该限制响应吗?置信度分数低于 0.6 的标签似乎没有多大帮助。这会加快图像记录/处理时间吗?
欢迎就如何加快 Cloud Vision 的响应时间提出任何建议。
【问题讨论】:
-
请对提供的答案留下反馈。它对你有用吗?如果不是,为什么?
-
您最好将图像保存到文件然后发送——ruby Cloud Vision 库有方法。如果您将图像作为 String 对象发送,您会为它消耗 RAM,如果 Net::HTTP 库无论如何都会将有效负载转换为临时文件(如果它足够大),我不会感到惊讶。
标签: ruby google-app-engine web-scraping google-cloud-vision