Utilizzo dell'API Vision con C#

1. Panoramica

L'API Google Cloud Vision consente agli sviluppatori di integrare facilmente le 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, il rilevamento dei punti di riferimento e il rilevamento 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 dei punti di riferimento
  • Come eseguire il riconoscimento facciale

Che cosa ti serve

  • Un progetto Google Cloud
  • Un browser, ad esempio Chrome o Firefox
  • Familiarità con l'utilizzo di C#

Sondaggio

Come utilizzerai questo tutorial?

Solo lettura Leggilo e completa gli esercizi

Come valuteresti la tua esperienza con C#?

Principiante Livello intermedio Eccellente

Come giudichi la tua esperienza di utilizzo dei servizi della piattaforma Google Cloud?

Principiante Livello intermedio Eccellente

2. Configurazione e requisiti

Configurazione dell'ambiente da seguire in modo autonomo

  1. 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.

295004821bab6a87.png

37d264871000675d.png

96d86d3d5655cdbe.png

  • Il Nome progetto è il nome visualizzato dei partecipanti del progetto. Si tratta di una stringa di caratteri non utilizzata dalle API di Google. Puoi sempre aggiornarla.
  • L'ID progetto è univoco in tutti i progetti Google Cloud ed è immutabile (non può essere modificato dopo essere stato impostato). La console Cloud genera automaticamente una stringa univoca. di solito non ti importa cosa sia. Nella maggior parte dei codelab, dovrai fare riferimento al tuo ID progetto (in genere identificato come PROJECT_ID). Se l'ID generato non ti soddisfa, potresti generarne un altro casuale. In alternativa, puoi provarne una personalizzata per verificare se è disponibile. Non può essere modificato dopo questo passaggio e rimane per tutta la durata del progetto.
  • Per informazione, c'è un terzo valore, un numero di progetto, utilizzato da alcune API. Scopri di più su tutti e tre questi valori nella documentazione.
  1. Successivamente, dovrai abilitare la fatturazione nella console Cloud per utilizzare risorse/API Cloud. L'esecuzione di questo codelab non ha alcun costo. Per arrestare le risorse ed evitare di incorrere in fatturazione dopo questo tutorial, puoi eliminare le risorse che hai creato o eliminare il progetto. I nuovi utenti di Google Cloud sono idonei al programma prova senza costi di 300$.

Avvia Cloud Shell

Anche se Google Cloud può essere utilizzato 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

  1. Dalla console Cloud, fai clic su Attiva Cloud Shell d1264ca30785e435.png.

cb81e7c8e34bc8d.png

Se è la prima volta che avvii Cloud Shell, ti verrà mostrata una schermata intermedia che descrive di cosa si tratta. Se ti è stata presentata una schermata intermedia, fai clic su Continua.

d95252b003979716.png

Il provisioning e la connessione a Cloud Shell dovrebbero richiedere solo qualche istante.

7833d5e1c5d18f54.png

Questa macchina virtuale viene 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 di rete e l'autenticazione. Gran parte, se non tutto, del lavoro in questo codelab può essere svolto con un browser.

Una volta stabilita la connessione a Cloud Shell, dovresti vedere che hai eseguito l'autenticazione e che il progetto è impostato sul tuo ID progetto.

  1. 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`
  1. Esegui questo comando in Cloud Shell per confermare che il comando gcloud è a conoscenza del 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 abilitare l'API. Tramite Cloud Shell, puoi abilitare l'API utilizzando il comando seguente:

gcloud services enable vision.googleapis.com

4. Installa la libreria client dell'API Google Cloud Vision per C#

Innanzitutto, crea una semplice applicazione della 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.

Quindi, 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 è tutto pronto per utilizzare l'API Vision.

5. Esegui rilevamento etichette

Una delle funzionalità di base dell'API Vision è l'identificazione di oggetti o entità in un'immagine, nota come annotazione delle etichette. Il rilevamento etichette identifica oggetti generici, luoghi, attività, specie animali, prodotti e altro ancora. L'API Vision prende un'immagine di input e restituisce le etichette più probabili applicabili a quell'immagine. Restituisce le etichette con maggiore corrispondenza insieme al 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 dall'angolo in alto a destra di Cloud Shell:

92ea233083f961c5.png

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

Dedica qualche minuto a studiare il codice e vedere come viene utilizzata la libreria C# dell'API Vision per eseguire il rilevamento etichette.

Torna in 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, sei stato in grado di eseguire il rilevamento di 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. Esegui rilevamento testo

Il 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 dotata di 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 in 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 è stato possibile eseguire il rilevamento del testo su un'immagine di Otter Crossing e stampare il testo riconosciuto dall'immagine. Scopri di più sul rilevamento del testo.

7. Esegui rilevamento punto di riferimento

Il rilevamento dei punti di riferimento dell'API Vision rileva le strutture naturali e artificiali più diffuse 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 in 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 su un'immagine della Torre Eiffel. Scopri di più sul rilevamento dei punti di riferimento.

8. Esegui il rilevamento emotivo dei volti

La funzionalità di riconoscimento facciale rileva più volti all'interno di un'immagine, insieme agli attributi facciali chiave associati, come lo stato emotivo o l'indossato un copricapo.

In questo esempio, rilevarai la probabilità di uno stato emotivo in base a quattro diverse probabilità emotive, tra cui: gioia, rabbia, dolore 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 dei volti emotivi.

Eseguire 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 dei volti emotivi. Scopri di più sul rilevamento facciale.

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 di Cloud Platform.
  • Seleziona il progetto che vuoi chiudere e fai clic su "Elimina". in alto: in questo modo viene pianificata l'eliminazione del progetto.

Scopri di più

Licenza

Questo lavoro è concesso in licenza ai sensi di una licenza Creative Commons Attribution 2.0 Generic.