如何对存储在蔚蓝数据存储区中的图像运行Face-API查询?

时间:2018-07-20 20:48:25

标签: microsoft-cognitive azure-cognitive-services face-api

我有200k图像存储在Azure存储帐户(也从Data Lake Storage帐户链接)的Blob中。我想对所有这些都进行人脸检测,以便可以将它们添加到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')

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

在USQL中,我会做类似的事情:

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

但这并不奇怪,因为上面定义的KEY是Face api服务的关键,而不是我的Azure存储的关键,因此它(我不认为)无法找到数据。

我该怎么做?我不想将我的200k图像一张一张地上传到人脸检测器!

1 个答案:

答案 0 :(得分:1)

您应该可以通过以下方式访问文件:

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

如果无法公开访问Blob,则可以使用Shared Access Signature来授予API对文件的临时访问权限。

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