Tahmin API'sini çağırma

Modelinizi eğittikkten sonra, tahmin API'sinin uç noktasına görüntü göndererek program aracılığıyla test edebilirsiniz. Bu kılavuzda, bir görüntüyü puan almak için tahmin API'sini çağırmayı öğreneceksiniz. Bu API'nin davranışını gereksinimlerinizi karşılayacak şekilde yapılandırmanın farklı yollarını öğreneceksiniz.

Not

Bu belgede, Tahmin API'sine görüntü göndermek üzere C# için .NET istemci kitaplığının kullanımı gösterilmektedir. Daha fazla bilgi ve örnek için bkz. Tahmin API'si başvurusu.

Ayarlama

Eğitilen yinelemenizi yayımlama

Özel Görüntü İşleme web sayfasından projenizi ve Performans sekmesini seçin.

Tahmin API'sine görüntü göndermek için önce tahmin için yinelemenizi yayımlamanız gerekir. Bu, Yayımla'yı seçip yayımlanan yineleme için bir ad belirterek yapılabilir. Bu, modelinizi Özel Görüntü İşleme Azure kaynağınızın Tahmin API'sinde erişilebilir hale getirir.

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

Modeliniz başarıyla yayımlandıktan sonra sol taraftaki kenar çubuğunda yinelemenizin yanında bir "Yayımlandı" etiketi gösterilir ve yinelemenin açıklamasında bu etiketin adı görünür.

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

URL ve tahmin anahtarını alma

Modeliniz yayımlandıktan sonra Tahmin URL'sini seçerek gerekli bilgileri alabilirsiniz. Bu işlem, Tahmin URL'si ve Tahmin Anahtarı da dahil olmak üzere Tahmin API'sini kullanmaya yönelik bilgileri içeren bir iletişim kutusu açar.

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.

Hizmete veri gönderme

Bu kılavuzda, Özel Görüntü İşleme tahmin anahtarınız ve uç nokta URL'niz ile adlı predictionClientbir CustomVisionPredictionClient nesnesi oluşturduğunuz varsayılır. Bu özelliği ayarlama yönergeleri için hızlı başlangıçlardan birini izleyin.

Bu kılavuzda yerel bir görüntü kullanacaksınız, bu nedenle eğitilen modelinize göndermek istediğiniz görüntüyü indirin. Aşağıdaki kod, kullanıcıdan yerel bir yol belirtmesini ister ve bu yolda dosyanın bayt akışını alır.

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

Aşağıdaki yardımcı yöntemi ekleyin:

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 yöntemi proje kimliğini ve yerel olarak depolanan görüntüyü alır ve görüntüyü verilen modele göre puanlar.

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

Verilerin nasıl işleneceğini belirleme

İsteğe bağlı olarak alternatif yöntemler seçerek hizmetin puanlama işlemini nasıl yaptığını yapılandırabilirsiniz (bkz. CustomVisionPredictionClient sınıfının yöntemleri).

Kolaylık sağlamak için yukarıdaki yöntemin zaman uyumsuz bir sürümünü kullanabilirsiniz, ancak bu durum programın belirgin bir süre için kilitlenmesine neden olabilir.

-WithNoStore yöntemleri, tahmin tamamlandıktan sonra hizmetin tahmin görüntüsünü tutmaması gerekir. Normalde hizmet bu görüntüleri korur, böylece modelinizin gelecekteki yinelemeleri için bunları eğitim verileri olarak ekleme seçeneğiniz vardır.

-WithHttpMessages yöntemleri API çağrısının ham HTTP yanıtını döndürür.

Hizmetten sonuç alma

Hizmet sonuçları ImagePrediction nesnesi biçiminde döndürür. Predictions özelliği, her biri tek bir nesne tahminini temsil eden PredictionModel nesnelerinin listesini içerir. Bunlar etiketin adını ve nesnenin görüntüde algılandığı sınırlayıcı kutu koordinatlarını içerir. Uygulamanız daha sonra bu verileri ayrıştırarak, örneğin, bir ekranda etiketlenmiş nesne alanları olan görüntüyü görüntüleyebilir.

Sonraki adımlar

Bu kılavuzda, özel görüntü sınıflandırıcınıza/algılayıcınıza görüntü göndermeyi ve C# SDK'sı ile program aracılığıyla yanıt almayı öğrendiniz. Ardından, C# ile uçtan uca senaryoları tamamlamayı veya farklı bir dil SDK'sını kullanmaya başlamayı öğrenin.