呼叫預測 API
定型模型後,您可以將影像提交至預測 API 端點,藉此以程式設計方式測試它。 在本指南中,您將了解如何呼叫預測 API 來為影像評分。 您將了解可設定此 API 行為的不同方式來符合您的需求。
注意
本文件將示範如何使用適用於 C# 的 .NET 用戶端程式庫,將影像提交至預測 API。 如需詳細資訊和範例,請參閱預測 API 參考。
設定
發佈您已定型的反覆項目
從自訂視覺網頁 \(英文\) 選取您的專案,然後選取 [效能] 索引標籤。
若要將影像提交至預測 API,您必須先發佈反覆項目以進行預測,您可以選取 [發佈] 並指定已發佈反覆項目的名稱來完成。 這會讓您的模型可供您自訂視覺 Azure 資源的預測 API 存取。
成功發佈模型之後,您會看到左側資訊看板中的反覆項目旁出現「已發佈」標籤,且其名稱會出現在反覆項目的描述中。
取得 URL 和預測金鑰
一旦您的模型發佈之後,您就可以選取 [預測 URL] 來擷取所需的資訊。 這會開啟一個對話方塊,其中包含使用預測 API 的資訊,包括預測 URL 和預測金鑰。
提交資料至服務
本指南假設您已使用自訂視覺預測金鑰和端點 URL 來建構名為 predictionClient
的 CustomVisionPredictionClient 物件。 如需如何設定這項功能的指示,請遵循其中一個快速入門。
在本指南中,您將使用本機影像,因此請下載您想要提交至定型模型的影像。 下列程式碼會提示使用者指定本機路徑,並在該路徑取得檔案的 bytestream。
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 物件的形式傳回結果。 [預測] 屬性包含 PredictionModel 物件的清單,每個物件都代表單一物件預測。 其包含標籤的名稱,以及在影像中偵測到物件的週框方塊座標。 例如,您的應用程式可以剖析此資料,以在螢幕上顯示具有標籤物件欄位的影像。
下一步
在本指南中,您已了解如何將影像提交至自訂影像分類器/偵測器,並使用 C# SDK 以程式設計方式接收回應。 接下來,了解如何使用 C# 完成端對端案例,或開始使用不同的語言 SDK。