1. Panoramica
L'API Google Cloud Vision consente agli sviluppatori di integrare facilmente funzionalità di rilevamento visivo nelle applicazioni, tra cui etichettatura delle immagini, rilevamento di volti e punti di riferimento, riconoscimento ottico dei caratteri (OCR) e tagging dei contenuti espliciti.
In questo codelab ti concentrerai sull'utilizzo dell'API Vision con C#. Imparerai a eseguire il rilevamento del testo, dei punti di riferimento e dei volti.
Cosa imparerai a fare
- Come utilizzare Cloud Shell
- Come abilitare l'API Google Cloud Vision
- Come autenticare le richieste API
- Come installare la libreria client dell'API Vision per C#
- Come eseguire il rilevamento etichette
- Come eseguire il rilevamento del testo
- Come eseguire il rilevamento di punti di riferimento
- Come eseguire il rilevamento facciale
Che cosa ti serve
Sondaggio
Come utilizzerai questo tutorial?
Come valuteresti la tua esperienza con C#?
Come valuti la tua esperienza di utilizzo dei servizi Google Cloud Platform?
2. Configurazione e requisiti
Configurazione dell'ambiente autonomo
- Accedi alla console Google Cloud e crea un nuovo progetto o riutilizzane uno esistente. Se non hai ancora un account Gmail o Google Workspace, devi crearne uno.



- Il nome del progetto è il nome visualizzato per i partecipanti a questo progetto. È una stringa di caratteri non utilizzata dalle API di Google. Puoi sempre aggiornarlo.
- L'ID progetto è univoco in tutti i progetti Google Cloud ed è immutabile (non può essere modificato dopo l'impostazione). La console Cloud genera automaticamente una stringa univoca, di solito non ti interessa di cosa si tratta. Nella maggior parte dei codelab, dovrai fare riferimento all'ID progetto (in genere identificato come
PROJECT_ID). Se l'ID generato non ti piace, puoi generarne un altro casuale. In alternativa, puoi provare a crearne uno e vedere se è disponibile. Non può essere modificato dopo questo passaggio e rimane per tutta la durata del progetto. - Per tua informazione, esiste un terzo valore, un numero di progetto, utilizzato da alcune API. Scopri di più su tutti e tre questi valori nella documentazione.
- Successivamente, devi abilitare la fatturazione in Cloud Console per utilizzare le risorse/API Cloud. Completare questo codelab non costa molto, se non nulla. Per arrestare le risorse ed evitare addebiti oltre a quelli previsti in questo tutorial, puoi eliminare le risorse che hai creato o il progetto. I nuovi utenti di Google Cloud possono beneficiare del programma prova senza costi di 300$.
Avvia Cloud Shell
Sebbene Google Cloud possa essere gestito da remoto dal tuo laptop, in questo codelab utilizzerai Google Cloud Shell, un ambiente a riga di comando in esecuzione nel cloud.
Attiva Cloud Shell
- Nella console Cloud, fai clic su Attiva Cloud Shell
.

Se è la prima volta che avvii Cloud Shell, viene visualizzata una schermata intermedia che ne descrive le funzionalità. Se è stata visualizzata una schermata intermedia, fai clic su Continua.

Bastano pochi istanti per eseguire il provisioning e connettersi a Cloud Shell.

Questa macchina virtuale è caricata con tutti gli strumenti di sviluppo necessari. Offre una home directory permanente da 5 GB e viene eseguita in Google Cloud, migliorando notevolmente le prestazioni e l'autenticazione della rete. Gran parte del lavoro per questo codelab, se non tutto, può essere svolto con un browser.
Una volta eseguita la connessione a Cloud Shell, dovresti vedere che il tuo account è autenticato e il progetto è impostato sul tuo ID progetto.
- Esegui questo comando in Cloud Shell per verificare che l'account sia autenticato:
gcloud auth list
Output comando
Credentialed Accounts
ACTIVE ACCOUNT
* <my_account>@<my_domain.com>
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- Esegui questo comando in Cloud Shell per verificare che il comando gcloud conosca il tuo progetto:
gcloud config list project
Output comando
[core] project = <PROJECT_ID>
In caso contrario, puoi impostarlo con questo comando:
gcloud config set project <PROJECT_ID>
Output comando
Updated property [core/project].
3. Abilita l'API Vision
Prima di poter iniziare a utilizzare l'API Vision, devi abilitarla. Utilizzando Cloud Shell, puoi abilitare l'API utilizzando il seguente comando:
gcloud services enable vision.googleapis.com
4. Installa la libreria client dell'API Google Cloud Vision per C#
Innanzitutto, crea una semplice applicazione console C# che utilizzerai per eseguire gli esempi dell'API Vision:
dotnet new console -n VisionApiDemo
Dovresti vedere l'applicazione creata e le dipendenze risolte:
The template "Console Application" was created successfully.
Processing post-creation actions...
...
Restore succeeded.
A questo punto, vai alla cartella VisionApiDemo:
cd VisionApiDemo/
e aggiungi il pacchetto NuGet Google.Cloud.Vision.V1 al progetto:
dotnet add package Google.Cloud.Vision.V1
info : Adding PackageReference for package 'Google.Cloud.Vision.V1' into project '/home/atameldev/VisionApiDemo/VisionApiDemo.csproj'.
log : Restoring packages for /home/atameldev/VisionApiDemo/VisionApiDemo.csproj...
...
info : PackageReference for package 'Google.Cloud.Vision.V1' version '1.2.0' added to file '/home/atameldev/VisionApiDemo/VisionApiDemo.csproj'.
Ora puoi utilizzare l'API Vision.
5. Eseguire il rilevamento etichette
Una delle funzionalità di base dell'API Vision è l'identificazione di oggetti o entità in un'immagine, nota come annotazione di etichette. Il rilevamento etichette identifica oggetti generici, località, attività, specie animali, prodotti e altro ancora. L'API Vision prende un'immagine di input e restituisce le etichette più probabili che si applicano a quell'immagine. Restituisce le etichette con la corrispondenza migliore insieme a un punteggio di confidenza di una corrispondenza con l'immagine.
In questo esempio, eseguirai il rilevamento etichette su un'immagine di una scena di strada a Shanghai. Apri l'editor di codice dalla parte in alto a destra di Cloud Shell:

Vai al file Program.cs all'interno della cartella VisionApiDemo e sostituisci il codice con il seguente:
using Google.Cloud.Vision.V1;
using System;
namespace VisionApiDemo
{
class Program
{
static void Main(string[] args)
{
var client = ImageAnnotatorClient.Create();
var image = Image.FromUri("gs://cloud-samples-data/vision/using_curl/shanghai.jpeg");
var labels = client.DetectLabels(image);
Console.WriteLine("Labels (and confidence score):");
Console.WriteLine(new String('=', 30));
foreach (var label in labels)
{
Console.WriteLine($"{label.Description} ({(int)(label.Score * 100)}%)");
}
}
}
}
Prenditi un minuto o due per studiare il codice e vedere come viene utilizzata la libreria C# dell'API Vision per eseguire il rilevamento delle etichette.
Torna a Cloud Shell ed esegui l'app:
dotnet run
Dovresti vedere l'output seguente:
Labels (and confidence score):
==============================
Wheel (97%)
Tire (97%)
Photograph (94%)
Bicycle (94%)
Motor vehicle (89%)
Infrastructure (89%)
Vehicle (86%)
Mode of transport (84%)
Bicycle wheel (83%)
Asphalt (81%)
Riepilogo
In questo passaggio, hai potuto eseguire il rilevamento delle etichette su un'immagine di una scena di strada in Cina e visualizzare le etichette più probabili associate a quell'immagine. Scopri di più sul rilevamento delle etichette.
6. Eseguire il rilevamento del testo
La funzionalità di rilevamento del testo dell'API Vision esegue il riconoscimento ottico dei caratteri. Rileva ed estrae il testo all'interno di un'immagine con il supporto di una vasta gamma di lingue. Inoltre, è disponibile l'identificazione automatica della lingua.
In questo esempio, eseguirai il rilevamento del testo su un'immagine di una schermata di aggiornamento del software di sistema.
Vai al file Program.cs all'interno della cartella VisionApiDemo e sostituisci il codice con il seguente:
using Google.Cloud.Vision.V1;
using System;
namespace VisionApiDemo
{
class Program
{
static void Main(string[] args)
{
var client = ImageAnnotatorClient.Create();
var image = Image.FromUri("gs://cloud-samples-data/vision/text/screen.jpg");
var response = client.DetectText(image);
foreach (var annotation in response)
{
if (annotation.Description != null)
{
Console.WriteLine(annotation.Description);
}
}
}
}
}
Prenditi un minuto o due per studiare il codice e vedere come viene utilizzata la libreria C# dell'API Vision per eseguire il rilevamento del testo.
Torna a Cloud Shell ed esegui l'app:
dotnet run
Dovresti vedere l'output seguente:
System Software Update
Back
Preparing to install...
After preparation is complete, the PS4 will automatically restart and the update file will be
installed.
37%
gus class
System
Software
Update
Back
Preparing
to
install
...
After
preparation
is
complete
,
the
PS4
will
automatically
restart
and
the
update
file
will
be
installed
.
37
%
gus
class
Riepilogo
In questo passaggio, hai potuto eseguire il rilevamento del testo su un'immagine di un attraversamento di lontre e stampare il testo riconosciuto dall'immagine. Scopri di più sul rilevamento del testo.
7. Eseguire il rilevamento dei punti di riferimento
La funzionalità di rilevamento dei punti di riferimento dell'API Vision rileva strutture naturali e artificiali note all'interno di un'immagine.
In questo esempio, eseguirai il rilevamento dei punti di riferimento su un'immagine della Torre Eiffel.
Vai al file Program.cs all'interno della cartella VisionApiDemo e sostituisci il codice con il seguente:
using Google.Cloud.Vision.V1;
using System;
namespace VisionApiDemo
{
class Program
{
static void Main(string[] args)
{
var client = ImageAnnotatorClient.Create();
var image = Image.FromUri("gs://cloud-samples-data/vision/eiffel_tower.jpg");
var response = client.DetectLandmarks(image);
foreach (var annotation in response)
{
if (annotation.Description != null)
{
Console.WriteLine(annotation.Description);
}
}
}
}
}
Prenditi un minuto o due per studiare il codice e vedere come viene utilizzata la libreria C# dell'API Vision per eseguire il rilevamento dei punti di riferimento.
Torna a Cloud Shell ed esegui l'app:
dotnet run
Dovresti vedere l'output seguente:
Eiffel Tower
Riepilogo
In questo passaggio, hai potuto eseguire il rilevamento dei punti di riferimento sull'immagine della Torre Eiffel. Scopri di più sul rilevamento dei punti di riferimento.
8. Eseguire il rilevamento delle espressioni facciali
Il rilevamento dei volti rileva più volti all'interno di un'immagine, oltre agli attributi facciali principali associati, ad esempio lo stato emotivo o un copricapo indossato.
In questo esempio, rileverai la probabilità di stato emotivo da quattro diverse probabilità emotive, tra cui gioia, rabbia, tristezza e sorpresa.
Vai al file Program.cs all'interno della cartella VisionApiDemo e sostituisci il codice con il seguente:
using Google.Cloud.Vision.V1;
using System;
namespace VisionApiDemo
{
class Program
{
static void Main(string[] args)
{
var client = ImageAnnotatorClient.Create();
var image = Image.FromUri("gs://cloud-samples-data/vision/face/face_no_surprise.jpg");
var response = client.DetectFaces(image);
foreach (var annotation in response)
{
Console.WriteLine($"Picture: {image}");
Console.WriteLine($" Surprise: {annotation.SurpriseLikelihood}");
}
}
}
}
Prenditi un minuto o due per studiare il codice e vedere come viene utilizzata la libreria C# dell'API Vision per eseguire il rilevamento delle emozioni del volto.
Esegui l'app.
dotnet run
Dovresti vedere il seguente output per il nostro esempio face_no_surprise:
Picture: { "source": { "imageUri": "gs://cloud-samples-data/vision/face/face_no_surprise.jpg" } }
Surprise: Likely
Riepilogo
In questo passaggio, hai potuto eseguire il rilevamento delle espressioni facciali. Scopri di più sul Rilevamento volti.
9. Complimenti!
Hai imparato a utilizzare l'API Vision utilizzando C# per eseguire diversi rilevamenti sulle immagini.
Esegui la pulizia
Per evitare che al tuo account Google Cloud Platform vengano addebitate le risorse utilizzate in questa guida rapida, procedi come segue.
- Vai alla console Cloud Platform.
- Seleziona il progetto che vuoi chiudere, quindi fai clic su "Elimina" in alto: il progetto verrà pianificato per l'eliminazione.
Scopri di più
- API Google Cloud Vision: https://cloud.google.com/vision/docs/
- C#/.NET su Google Cloud: https://cloud.google.com/dotnet/
- Client .NET di Google Cloud: https://googlecloudplatform.github.io/google-cloud-dotnet
Licenza
Questo lavoro è concesso in licenza ai sensi di una licenza Creative Commons Attribution 2.0 Generic.