首页 > 代码库 > 使用微软认知服务进行人脸识别
使用微软认知服务进行人脸识别
最近在搞一个人脸识别的功能,使用了微软的认知服务,一下讲一个我遇到的小问题。
首先添加相关相应的NuGet:Microsoft.ProjectOxford.Face
然后构造FaceServiceClient并调用DetectAsync方法识别人脸信息。
构造FaceServiceClient需要一个key,之前公司申请好了,过程没什么问题。之后由于使用的是免费的API,调用次数受到限制,打算自己再申请一个账户,过程麻烦的一B,实名制以及上传身份证等,,,
最后当然还是搞定了并拿到了Key,然而神奇的事情发生了,更换了新key后代码不工作了,,,报异常如下:
由于对Azure不懂,以为自己哪里没有设置好,也就没管了,直到今天微软给电话回访,嘿嘿,当然不能放弃解决问题的机会
过程不罗嗦,最后发现我之前使用的是public FaceServiceClient(string subscriptionKey);来构造FaceServiceClient,那么另外一个构造public FaceServiceClient(string subscriptionKey, string apiRoot);跟这个有啥区别呢?
技术支持如此答道:如果不添加https://api.cognitive.azure.cn/face/v1.0 (apiRoot参数)默认访问的是global 版本。
搜嘎,原来是我自己申请的是中国区的认知服务,公司那个key是国际版的,而中国区就需要指定apiRoot参数。。。
可以参考链接:https://docs.azure.cn/zh-cn/articles/intelligence-analytics/aog-cognitive-services-qa-csharp-sdk-key-invalid
然而我想说我开发时没找到这两个重载的区别,F12过去没有注释,官网里找文档和API也没有说明(难道是我没找到?!)
记录一下,希望能帮到别人。
使用微软认知服务进行人脸识别