Introduzione ai servizi AI di Azure, parte 2
Classificazione delle immagini tramite Azure AI Vision SDK con C#
Fornitori di servizi su questo argomento
Azure AI Vision è un'intelligenza artificiale che consente ai sistemi software di interpretare input visivi attraverso l'analisi delle immagini. In questo piccolo tutorial vogliamo analizzare il servizio
In Microsoft Azure, il servizio Azure AI Vision fornisce modelli predefiniti per attività visive comuni, tra cui l'analisi delle immagini per suggerire didascalie e tag e il riconoscimento di oggetti e persone comuni. Il Servizio può anche essere utilizzato, tra le altre cose, per rimuovere lo sfondo dalle immagini o generare una miniatura dal contenuto correlato all'immagine.
In questo esempio utilizziamo Visual Studio Code, disponibile da Microsoft Repository GitHub Impara AI-Vision può essere facilmente clonato. Qualsiasi cartella sul computer funge da destinazione. È quindi possibile aprire localmente il repository clonato.
(Immagine: Drill/Microsoft)
Nell'esempio seguente viene completata un'applicazione client parzialmente implementata dal repository sopra menzionato che usa Azure AI Vision SDK per analizzare le immagini. L'SDK può essere utilizzato in C# o Python, noi utilizziamo C#.
(Immagine: Drill/Microsoft)
Innanzitutto, in Visual Studio Code, accediamo alla cartella Labfiles/01-analyze-images nel riquadro Explorer e quindi espandiamo la cartella C-Sharp. Fare clic con il tasto destro sulla cartella “Analisi immagine” per aprirla utilizzando “Apri nel terminale integrato” nel terminale VS Code. Ora installiamo Azure AI Vision SDK per C# con…
DotNET Aggiungi pacchetto Azure.AI.Vision.ImageAnalogy -v 0.15.1-beta.1
(Immagine: Drill/Microsoft)
La cartella contiene il file di configurazione JSON “appsettings.json” per C#. Aggiorniamo i valori di configurazione in esso contenuti con le informazioni sull'endpoint e sulla chiave di autenticazione per la risorsa dei servizi AI di Azure utilizzata e salviamo le modifiche.
(Immagine: Drill/Microsoft)
La cartella contiene anche il file di codice “Program.cs” con l'applicazione demo client. Apriamo il file di codice e cerchiamo il commento “//import namespaces” in alto tra i riferimenti ai namespace esistenti. Qui è necessario aggiungere le seguenti righe di codice per importare gli spazi dei nomi richiesti per usare Azure AI Vision SD. Quindi salviamo il file.
using Azure.AI.Vision.Common;
using Azure.AI.Vision.ImageAnalysis;
(Immagine: Microsoft)
In questo esempio utilizziamo il servizio Azure AI Vision per analizzare le immagini. In Visual Studio Code, espandiamo la cartella Image Analysis e la cartella Images al suo interno contiene tre immagini. È importante verificare se le immagini vengono visualizzate correttamente in VS Code.
Ora è possibile utilizzare l'SDK per connettersi al servizio Vision e analizzare l'immagine. Il file del codice dell'applicazione client (Program.cs) deve garantire che venga fornito il codice per il caricamento delle impostazioni di configurazione tramite la funzione principale. Sotto il commento…
// Authenticate Azure AI Vision client
… Aggiungiamo il seguente frammento di codice:
var cvClient = new VisionServiceOptions(
aiSvcEndpoint,
new AzureKeyCredential(aiSvcKey));
(Immagine: Drill/Microsoft)
È importante notare qui che il codice nella funzione principale sotto il codice appena aggiunto specifica il percorso di un file immagine, quindi lo passa ad altre due funzioni (“AnalyzeImage”) e “BackgroundForeground”, che attualmente non sono completamente implementate Ancora.
All'interno del corpo preparato della funzione AnalyseImage, aggiungiamo il seguente codice sotto il commento “//Seleziona le funzionalità da recuperare”:
Features =
ImageAnalysisFeature.Caption
| ImageAnalysisFeature.DenseCaptions
| ImageAnalysisFeature.Objects
| ImageAnalysisFeature.People
| ImageAnalysisFeature.Text
| ImageAnalysisFeature.Tags
(Immagine: Drill/Microsoft)
Inoltre, all'interno del testo preparato, estendiamo la funzione “AnalyzeImage” sotto il commento “//Get Image Analysis” con il seguente codice:
// Get image analysis
using var imageSource = VisionSource.FromFile(imageFile);
using var analyzer = new ImageAnalyzer(serviceOptions, imageSource, analysisOptions);var result = analyzer.Analyze();
if (result.Reason == ImageAnalysisResultReason.Analyzed) {
// get image captions
if (result.Caption != null) { Console.WriteLine(" Caption:");
Console.WriteLine($" \"{result.Caption.Content}\", Confidence {result.Caption.Confidence:0.0000}");
} //get image dense captions
if (result.DenseCaptions != null) {
Console.WriteLine(" Dense Captions:");
foreach (var caption in result.DenseCaptions) { Console.WriteLine($" \"{caption.Content}\", Confidence
{caption.Confidence:0.0000}");
}
Console.WriteLine($"\n");
} // Get image tags
// Get objects in the image
// Get people in the image
}
else {
var errorDetails = ImageAnalysisErrorDetails.FromResult(result);
Console.WriteLine(" Analysis failed.");
Console.WriteLine($" Error reason : {errorDetails.Reason}");
Console.WriteLine($" Error code : {errorDetails.ErrorCode}");
Console.WriteLine($" Error message: {errorDetails.Message}\n");
(Immagine: Microsoft)
Dopo aver salvato le modifiche, torniamo al terminale integrato della cartella di analisi dell'immagine e inseriamo il seguente comando per eseguire il programma, ad es. Ad esempio con l'argomento “images/street.jpg” da questa cartella:
dotnet run images/street.jpg
La condizione fondamentale è questa È richiesto il runtime di .NET 7 È stato installato. Il risultato dovrebbe assomigliare all'immagine precedente. Come accennato in precedenza, tutte le parti del codice provengono da Microsoft a cui è possibile accedere gratuitamente Scopri il repository della visione AI.
Questo piccolo esempio serve principalmente come incentivo per ulteriori sperimentazioni. Ci sono anche altri esempi di codice nella pagina collegata, ad es. B. Per individuare e identificare singoli oggetti specifici all'interno di un'immagine o identificare le persone nell'immagine.
Nella prossima parte di questa breve serie mostreremo come i programmatori possono utilizzare le funzioni AI per ritagliare automaticamente il primo piano di un'immagine.
(ID:49972506)
“Pensatore incurabile. Appassionato di cibo. Studioso di alcol sottilmente affascinante. Difensore della cultura pop.”
More Stories
Gli utenti Samsung dovrebbero aggiornarsi immediatamente: c’è il rischio di perdere il controllo dello smartphone
Nuovo gioco di carte collezionabili lanciato per Android e iOS
Sicurezza Web: utilizzo della policy di sicurezza dei contenuti contro il cross-site scripting, parte 1