呼叫預測 API

定型模型之後,您可以將影像提交至預測 API 端點,以程式設計方式測試模型。 在本指南中,您將瞭解如何呼叫預測 API 來評分影像。 您將了解設定此 API 行為以符合您需求的不同方式。

注意

本文件示範如何使用適用於 C# 的 .NET 用戶端連結庫,將影像提交至預測 API。 如需詳細資訊和範例,請參閱 預測 API 參考

設定

發佈已定型的反覆專案

從 自訂視覺 網頁中,選取您的項目,然後選取 [效能] 索引標籤。

若要將影像提交至預測 API,您必須先發佈您的反覆專案以進行預測,方法是選取 [發佈 ] 並指定已發佈反復項目的名稱來完成。 這可讓您的模型可供 自訂視覺 Azure 資源的預測 API 存取。

The performance tab is shown, with a red rectangle surrounding the Publish button.

成功發佈模型之後,您會在左側提要字段的反覆專案旁邊看到一個「已發佈」標籤,其名稱會顯示在反覆專案的描述中。

The performance tab is shown, with a red rectangle surrounding the Published label and the name of the published iteration.

取得 URL 和預測金鑰

發佈模型之後,您可以選取 [預測 URL] 來擷取所需的資訊。 這會開啟對話框,其中包含使用預測 API 的資訊,包括 預測 URL預測密鑰

The performance tab is shown with a red rectangle surrounding the Prediction URL button.

The performance tab is shown with a red rectangle surrounding the Prediction URL value for using an image file and the Prediction-Key value.

將數據提交至服務

本指南假設您已使用 自訂視覺 預測密鑰和端點 URL 建構名為 predictionClient的 CustomVisionPredictionClient 物件。 如需如何設定此功能的指示,請遵循其中 一個快速入門

在本指南中,您將使用本機映射,因此請下載您想要提交至已定型模型的映像。 下列程式代碼會提示使用者指定本機路徑,並在該路徑取得檔案的位元組流。

Console.Write("Enter image file path: ");
string imageFilePath = Console.ReadLine();
byte[] byteData = GetImageAsByteArray(imageFilePath);

包含下列協助程式方法:

private static byte[] GetImageAsByteArray(string imageFilePath)
{
    FileStream fileStream = new FileStream(imageFilePath, FileMode.Open, FileAccess.Read);
    BinaryReader binaryReader = new BinaryReader(fileStream);
    return binaryReader.ReadBytes((int)fileStream.Length);
}

ClassifyImageAsync 方法會採用專案標識碼和本機儲存的影像,並將影像評分給指定的模型。

// Make a prediction against the new project
Console.WriteLine("Making a prediction:");
var result = predictionApi.ClassifyImageAsync(project.Id, publishedModelName, byteData);

判斷如何處理數據

您可以選擇性地設定服務如何執行評分作業,方法是選擇替代方法(請參閱 CustomVisionPredictionClient 類別的方法)。

為了簡單起見,您可以使用上述方法的非異步版本,但可能會導致程式鎖定相當長的時間。

-WithNoStore 方法會要求服務在預測完成之後不會保留預測影像。 一般而言,服務會保留這些映像,因此您可以選擇將它們新增為模型未來反覆專案的定型數據。

-WithHttpMessages 方法會傳回 API 呼叫的原始 HTTP 回應。

從服務取得結果

服務會以 ImagePrediction 物件的形式傳回結果。 Predictions 屬性包含 PredictionModel 物件的清單,每個物件都代表單一對象預測。 它們包括標籤的名稱,以及影像中偵測到物件的周框方塊座標。 接著,您的應用程式可以將此資料剖析為 ,例如,在畫面上顯示具有卷標物件字段的影像。

下一步

在本指南中,您已瞭解如何將影像提交至自定義影像分類器/偵測器,並使用 C# SDK 以程式設計方式接收回應。 接下來,瞭解如何使用 C# 完成端對端案例,或開始使用不同的語言 SDK。