Condividi tramite


Chiamare l'API Stima

Dopo aver eseguito il training del modello, è possibile testarlo a livello di codice inviando immagini all'endpoint dell'API Stima. In questa guida si apprenderà come chiamare l'API Prediction per assegnare un punteggio a un'immagine. Verranno illustrati i diversi modi in cui è possibile configurare il comportamento di questa API in modo da soddisfare le proprie esigenze.

Nota

Questo documento illustra l'uso della libreria client .NET per C# per inviare un'immagine all'API Stima. Per altre informazioni ed esempi, vedere le informazioni di riferimento sull'API Stima.

Impostazione

Pubblicare l'interazione sottoposta a training

Nel sito Web Visione personalizzata selezionare il progetto e quindi selezionare la scheda Prestazioni.

Per inviare immagini all'API Stima, è prima necessario pubblicare l'iterazione per la stima, operazione che può essere eseguita selezionando Pubblica e specificando un nome per l'iterazione pubblicata. In questo modo il modello è accessibile all'API Prediction dell'Visione personalizzata risorsa di Azure.

Screenshot che mostra la scheda prestazioni, con un rettangolo rosso che circonda il pulsante Pubblica.

Dopo la pubblicazione del modello, l'etichetta Pubblicata viene visualizzata accanto all'iterazione nella barra laterale sinistra e il relativo nome viene visualizzato nella descrizione dell'iterazione.

Screenshot della scheda prestazioni, con un rettangolo rosso che circonda l'etichetta Pubblicata e il nome dell'iterazione pubblicata.

Ottenere l'URL e la chiave di stima

Dopo aver pubblicato il modello, è possibile recuperare le informazioni necessarie selezionando URL di stima. Viene visualizzata una finestra di dialogo con informazioni per l'uso dell'API Stima, inclusi l'URL di stima e la chiave di stima.

Screenshot della scheda prestazioni, con un rettangolo rosso che circonda il pulsante URL stima.

Screenshot della scheda prestazioni con un rettangolo rosso che circonda il valore dell'URL di stima per l'uso di un file di immagine e del valore Prediction-Key.

Inviare dati al servizio

Questa guida presuppone che sia già stato creato un oggetto CustomVisionPredictionClient, denominato predictionClient, con la chiave di previsione di Visione personalizzata e l'URL dell'endpoint. Per istruzioni su come configurare questa funzionalità, seguire una delle istruzioni di avvio rapido.

In questa guida si usa un'immagine locale, quindi scaricare un'immagine da inviare al modello sottoposto a training. Il codice seguente richiede all'utente di specificare un percorso locale e ottiene il bytestream del file in tale percorso.

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

Includere il metodo helper seguente:

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);
}

Il metodo ClassifyImageAsync accetta l'ID progetto e l'immagine archiviata in locale e assegna un punteggio all'immagine rispetto al modello specificato.

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

Determinare come elaborare i dati

Facoltativamente, è possibile configurare il modo in cui il servizio esegue l'operazione di assegnazione dei punteggi scegliendo metodi alternativi. Per informazioni dettagliate, vedere il metodo CustomVisionPredictionClient.

È possibile usare una versione non asincrona del metodo precedente per semplicità, ma potrebbe causare il blocco del programma per una notevole quantità di tempo.

I -WithNoStore metodi richiedono che il servizio non mantenga l'immagine di stima al termine della stima. In genere, il servizio mantiene queste immagini in modo che sia possibile aggiungerle come dati di training per le iterazioni future del modello.

I -WithHttpMessages metodi restituiscono la risposta HTTP non elaborata della chiamata API.

Ottenere risultati dal servizio

Il servizio restituisce risultati sotto forma di oggetto ImagePrediction. La Predictions proprietà contiene un elenco di oggetti PredictionModel , ognuno dei quali rappresenta una stima di un singolo oggetto. Includono il nome dell'etichetta e le coordinate del rettangolo di selezione in cui è stato rilevato l'oggetto nell'immagine. L'app può quindi analizzare questi dati per, ad esempio, visualizzare l'immagine con campi oggetto etichettati su una schermata.

Passaggio successivo

In questa guida si è appreso come inviare immagini al classificatore/rilevatore di immagini personalizzato e ricevere una risposta a livello di codice con C# SDK. Informazioni su come completare gli scenari end-to-end con C# o iniziare a usare un SDK del linguaggio differente.