我有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图像一张一张地上传到人脸检测器!
答案 0 :(得分:1)
您应该可以通过以下方式访问文件:
https://[storage_account_name].blob.core.windows.net/[blob_name]/FileName.png
如果无法公开访问Blob,则可以使用Shared Access Signature来授予API对文件的临时访问权限。
由于没有批处理机制,您当然仍然需要一次调用API一个图像。这也意味着您将受到帐户的费率/配额限制。