自定义视觉预测一个简单的图像:未找到

Custom Vision Predictiong a simple image: not found

我正在尝试获取一个非常简单的 C# 代码片段来预测图像,但出现以下错误(互联网上关于此主题的信息很少):

Microsoft.Azure.CognitiveServices.Vision.CustomVision.Prediction.Models.CustomVisionErrorException HResult=0x80131500 Message=操作返回无效状态代码'NotFound'

var predictionClient = GetPredictionClient();
predictionClient.ClassifyImageUrl(Guid.Parse("5329678e-2a6b-46cf-ac11-fbd19ce89353"), "Iteration2", new ImageUrl("https://storageinfluencer.blob.core.windows.net/social-media-images/1e8bfef3-f070-44b9-9ae4-4b0d8a31316d.jpg"));

CustomVisionPredictionClient GetPredictionClient()
{
    CustomVisionPredictionClient endpoint = new CustomVisionPredictionClient()
    {
        ApiKey = "xxx",
        Endpoint = "https://northeurope.api.cognitive.microsoft.com/customvision/v3.0/Prediction/"
    };

    return endpoint;
}

通过使用fiddler,我离得更近了一点。 EndPoint 应该是 https://northeurope.api.cognitive.microsoft.com,即使 portal 说复制另一个作为终点。但是现在我得到:

{"code":"BadRequest","message":"Invalid project type for operation."}

我在 fiddler 中有以下 POST:

https://northeurope.api.cognitive.microsoft.com/customvision/v3.0/prediction/xx-xx-xx-xx-xx/classify/iterations/Iteration2/url HTTP/1.1

我想我终于找到了你得到这个 404 的原因,多亏了... Intelligent Kiosk 演示是开源的!

看看他们如何在代码中传递端点值,here:

private const string SouthCentralUsEndpoint = "https://southcentralus.api.cognitive.microsoft.com";

可以看到,Endpoint字段是根的值,不是Custom Vision Prediction API

所以改变你的

Endpoint = "https://northeurope.api.cognitive.microsoft.com/customvision/v3.0/Prediction/"

至:

Endpoint = "https://northeurope.api.cognitive.microsoft.com"

而且应该没问题。我用 WestEurope 和我已经拥有的一些 CustomVision 项目进行了测试,它工作正常。