首页 > 解决方案 > 在 XamarinForms 中使用 VisionServiceClient 的各种错误

问题描述

我正在尝试创建一个简单的 Xamarin 表单应用程序,该应用程序允许用户浏览或拍照,并让 Azure 认知服务使用自定义视觉模型标记照片。

我无法让客户端成功验证或根据 VisionServiceClient 生成的异常中的错误消息找到资源。我错过了什么吗?VisionServiceClient 的参数使用的正确值是什么?

所有键都已从下图中删除,它们已被填充。

VS2017 中抛出的异常:

System.Private.CoreLib.dll 中的“Microsoft.ProjectOxford.Vision.ClientException”

调用 VisionServiceClient:

private const string endpoint = @"https://eastus2.api.cognitive.microsoft.com/vision/prediction/v1.0";
private const string key = "";

VisionServiceClient visionClient = new VisionServiceClient(key, endpoint);
VisualFeature[] features = { VisualFeature.Tags, VisualFeature.Categories, VisualFeature.Description };
try
{
     AnalysisResult temp = await visionClient.AnalyzeImageAsync(imageStream,                    
     features.ToList(), null);

     return temp;
}
catch(Exception ex)
{
     return null;
}

VS异常错误:

visionClient.AnalyzeImageAsync() 抛出的异常

Azure 认知服务门户:

认知服务概述

认知服务密钥

自定义视觉门户:

自定义视觉门户设置页面

项目预测 URL 弹出窗口

标签: xamarinxamarin.formsazure-cognitive-servicesmicrosoft-custom-vision

解决方案


看起来您混淆了计算机视觉和自定义视觉 API。您正在尝试使用后者的 API 密钥为前者使用客户端 SDK。

对于 .NET 语言,您需要Microsoft.Azure.CognitiveServices.Vision.CustomVision.Prediction NuGet 包。

您的代码最终将如下所示:

ICustomVisionPredictionClient client = new CustomVisionPredictionClient()
{
    ApiKey = PredictionKey,
    Endpoint = "https://southcentralus.api.cognitive.microsoft.com"
};
ImagePrediction prediction = await client.PredictImageAsync(ProjectId, stream, IterationId);

推荐阅读