我有20万个图像存储在Azure存储帐户(也从Data Lake存储帐户链接(的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')
我想做的是对存储在我的azure blob中的图像运行类似的查询。
在USQL中,我会做一些类似的事情:
"wasb://[blob_name]@[storage_account_name]/FileName.png"
但这并不奇怪,因为上面定义的KEY
是faceapi服务的关键,而不是我的azure存储,所以它没有办法(我不认为(找到这些数据。
我该怎么做?我不想把我的20万张照片一张一张地上传到人脸检测器!
您应该能够以以下方式访问该文件:
https://[storage_account_name].blob.core.windows.net/[blob_name]/FileName.png
如果无法公开访问blob,则可以附加共享访问签名,以授予API对该文件的临时访问权限。
当然,您仍然需要一次调用一个API映像,因为没有批处理机制。这也意味着您将受到您帐户的费率/配额限制。