最近在搞一個人臉識別的功能,使用了微軟的認知服務,一下講一個我遇到的小問題。 首先添加相關相應的NuGet:Microsoft.ProjectOxford.Face 然後構造FaceServiceClient並調用DetectAsync方法識別人臉信息。 構造FaceServiceClient需要一 ...
最近在搞一個人臉識別的功能,使用了微軟的認知服務,一下講一個我遇到的小問題。
首先添加相關相應的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也沒有說明(難道是我沒找到?!)
記錄一下,希望能幫到別人。