首页 > 解决方案 > 如何对存储在 azure 数据存储 blob 中的图像运行 Face-API 查询?

问题描述

我在 Azure 存储帐户(也从 Data Lake Storage 帐户链接)上的 blob 中存储了 200k 图像。我想对所有这些都运行人脸检测,以便可以将它们添加到 LargeFaceList。第一步是运行人脸检测。

以下片段(从教程中复制)适用于在网络图像上进行人脸检测:

import cognitive_face as CF
KEY = 'mykey'
BASE_URL = 'https://eastus.api.cognitive.microsoft.com/face/v1.0/'
CF.Key.set(KEY)
CF.BaseUrl.set(BASE_URL)
CF.face.detect('https://images.fastcompany.net/image/upload/w_596,c_limit,q_auto:best,f_auto,fl_lossy/fc/3068134-inline-i-1-warren-buffet-gave-bill-gates-30-billion-heres-how-its-paying-off.jpg')

我想做的是对存储在我的天蓝色 blob 中的图像运行类似的查询。

在 USQL 中,我会执行以下操作:

"wasb://[blob_name]@[storage_account_name]/FileName.png"

但并不奇怪这不起作用,因为KEY上面定义的关键是人脸api服务,而不是我的天蓝色存储,所以它没有办法(我不认为)找到那个数据。

我怎样才能做到这一点?我不想将我的 200k 图像一张一张地上传到人脸检测器!

标签: microsoft-cognitiveazure-cognitive-servicesface-api

解决方案


您应该能够访问该文件,而不是:

https://[storage_account_name].blob.core.windows.net/[blob_name]/FileName.png

如果无法公开访问 Blob,您可以添加共享访问签名以授予 API 对文件的临时访问权限。

当然,您仍然需要一次调用一个图像的 API,因为没有批处理机制。这也意味着您将受到您账户的费率/配额限制。


推荐阅读