Condividi tramite


Chiamare l'API Stima

Dopo avere eseguito il training del modello, è possibile testarlo a livello di codice inviando le immagini all'endpoint dell'API di previsione. In questa guida si apprenderà come chiamare l'API Stima 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

Dalla pagina Web di Visione personalizzata selezionare il progetto e quindi selezionare la scheda Performance (Prestazioni).

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

La scheda Prestazioni viene visualizzata con un rettangolo rosso intorno al pulsante Pubblica.

Dopo aver pubblicato correttamente il modello, verrà visualizzata un'etichetta "Pubblicata" accanto all'iterazione nella barra laterale sinistra e il suo nome sarà visualizzato nella descrizione dell'iterazione.

Viene visualizzata la 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. Verrà aperta una finestra di dialogo con informazioni per l'uso dell'API Stima, inclusi l'URL di stima e la chiave di previsione.

La scheda Prestazioni viene visualizzata con un rettangolo rosso intorno al pulsante dell'URL di previsione.

La scheda prestazioni viene visualizzata con un rettangolo rosso che circonda il valore dell'URL di previsione per l'uso di un file di immagine e il valore della chiave di previsione.

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 userà un'immagine locale, per cui scaricare un'immagine che si desidera 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 (vedere i metodi della classe CustomVisionPredictionClient).

È possibile usare una versione non asincrona del metodo precedente per semplicità; tuttavia, può causare il blocco del programma per un periodo di tempo significativo.

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

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

Ottenere risultati dal servizio

Il servizio restituisce risultati sotto forma di oggetto ImagePrediction. La proprietà Previsioni 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.

Passaggi successivi

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.