Utiliser l'API Vision avec C#

1. Présentation

L'API Google Cloud Vision permet aux développeurs d'intégrer facilement des fonctionnalités de détection par la vision dans des applications, telles que l'étiquetage d'images, la détection de visages et de points de repère, la reconnaissance optique des caractères (OCR) et l'ajout de tags au contenu explicite.

Dans cet atelier de programmation, vous allez vous concentrer sur l'utilisation de l'API Vision avec C#. Vous allez apprendre à détecter du texte, des points de repère et des visages.

Points abordés

  • Utiliser Cloud Shell
  • Activer l'API Google Cloud Vision
  • Authentifier les requêtes API
  • Installer la bibliothèque cliente de l'API Vision pour C#
  • Lancer une détection de thèmes
  • Lancer une détection de texte
  • Lancer la détection des points de repère
  • Utiliser la détection de visages

Prérequis

  • Un projet Google Cloud Platform
  • Un navigateur tel que Chrome ou Firefox
  • Bonne connaissance de C#

Enquête

Comment allez-vous utiliser ce tutoriel ?

Je vais le lire uniquement Je vais le lire et effectuer les exercices

Comment évalueriez-vous votre expérience avec C#?

Débutant Intermédiaire Expert

Quel est votre niveau d'expérience avec les services Google Cloud Platform ?

<ph type="x-smartling-placeholder"></ph> Débutant Intermédiaire Expert
.

2. Préparation

Configuration de l'environnement au rythme de chacun

  1. Connectez-vous à la console Google Cloud, puis créez un projet ou réutilisez un projet existant. (Si vous ne possédez pas encore de compte Gmail ou Google Workspace, vous devez en créer un.)

295004821bab6a87.png

37d264871000675d.png

96d86d3d5655cdbe.png

  • Le nom du projet est le nom à afficher pour les participants au projet. Il s'agit d'une chaîne de caractères non utilisée par les API Google. Vous pourrez toujours le modifier.
  • L'ID du projet est unique parmi tous les projets Google Cloud et non modifiable une fois défini. La console Cloud génère automatiquement une chaîne unique (en général, vous n'y accordez d'importance particulière). Dans la plupart des ateliers de programmation, vous devrez indiquer l'ID de votre projet (généralement identifié par PROJECT_ID). Si l'ID généré ne vous convient pas, vous pouvez en générer un autre de manière aléatoire. Vous pouvez également en spécifier un et voir s'il est disponible. Après cette étape, l'ID n'est plus modifiable et restera donc le même pour toute la durée du projet.
  • Pour information, il existe une troisième valeur (le numéro de projet) que certaines API utilisent. Pour en savoir plus sur ces trois valeurs, consultez la documentation.
  1. Vous devez ensuite activer la facturation dans la console Cloud pour utiliser les ressources/API Cloud. L'exécution de cet atelier de programmation est très peu coûteuse, voire sans frais. Pour désactiver les ressources et éviter ainsi que des frais ne vous soient facturés après ce tutoriel, vous pouvez supprimer le projet ou les ressources que vous avez créées. Les nouveaux utilisateurs de Google Cloud peuvent participer au programme d'essai sans frais pour bénéficier d'un crédit de 300 $.

Démarrer Cloud Shell

Bien que Google Cloud puisse être utilisé à distance depuis votre ordinateur portable, nous allons nous servir de Google Cloud Shell pour cet atelier de programmation, un environnement de ligne de commande exécuté dans le cloud.

Activer Cloud Shell

  1. Dans Cloud Console, cliquez sur Activer Cloud Shell d1264ca30785e435.png.

cb81e7c8e34bc8d.png

Si vous démarrez Cloud Shell pour la première fois, un écran intermédiaire vous explique de quoi il s'agit. Si un écran intermédiaire s'est affiché, cliquez sur Continuer.

d95252b003979716.png

Le provisionnement et la connexion à Cloud Shell ne devraient pas prendre plus de quelques minutes.

7833d5e1c5d18f54.png

Cette machine virtuelle contient tous les outils de développement nécessaires. Elle comprend un répertoire d'accueil persistant de 5 Go et s'exécute dans Google Cloud, ce qui améliore considérablement les performances du réseau et l'authentification. Une grande partie, voire la totalité, de votre travail dans cet atelier de programmation peut être effectué dans un navigateur.

Une fois connecté à Cloud Shell, vous êtes authentifié et le projet est défini sur votre ID de projet.

  1. Exécutez la commande suivante dans Cloud Shell pour vérifier que vous êtes authentifié :
gcloud auth list

Résultat de la commande

 Credentialed Accounts
ACTIVE  ACCOUNT
*       <my_account>@<my_domain.com>

To set the active account, run:
    $ gcloud config set account `ACCOUNT`
  1. Exécutez la commande suivante dans Cloud Shell pour vérifier que la commande gcloud connaît votre projet:
gcloud config list project

Résultat de la commande

[core]
project = <PROJECT_ID>

Si vous obtenez un résultat différent, exécutez cette commande :

gcloud config set project <PROJECT_ID>

Résultat de la commande

Updated property [core/project].

3. Activer l'API Vision

Avant de pouvoir utiliser l'API Vision, vous devez l'activer. Dans Cloud Shell, vous pouvez activer l'API à l'aide de la commande suivante:

gcloud services enable vision.googleapis.com

4. Installer la bibliothèque cliente de l'API Google Cloud Vision pour C#

Commencez par créer une application de console C# simple que vous utiliserez pour exécuter des exemples de l'API Vision:

dotnet new console -n VisionApiDemo

L'application créée et les dépendances doivent être résolues:

The template "Console Application" was created successfully.
Processing post-creation actions...
...
Restore succeeded.

Accédez ensuite au dossier VisionApiDemo:

cd VisionApiDemo/

Ajoutez le package NuGet Google.Cloud.Vision.V1 au projet:

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

Vous êtes maintenant prêt à utiliser l'API Vision.

5. Effectuer une détection de thèmes

L'une des fonctionnalités de base de l'API Vision consiste à identifier des objets ou des entités dans une image. C'est ce que l'on appelle l'annotation de thèmes. La détection de thèmes identifie des objets généraux, des lieux, des activités, des espèces animales, des produits, etc. L'API Vision prend une image d'entrée et renvoie les thèmes les plus probables qui s'appliquent à cette image. Elle renvoie les étiquettes les plus pertinentes ainsi que le score de confiance d'une correspondance avec l'image.

Dans cet exemple, vous allez effectuer la détection de thèmes sur une image représentant une scène de rue à Shanghai. Ouvrez l'éditeur de code en haut à droite de Cloud Shell:

92ea233083f961c5.png

Accédez au fichier Program.cs dans le dossier VisionApiDemo et remplacez le code par ce qui suit:

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

Prenez une minute ou deux pour étudier le code et découvrir comment la bibliothèque C# de l'API Vision permet d'effectuer la détection de thèmes.

Retournez dans Cloud Shell, puis exécutez l'application:

dotnet run 

Vous devriez obtenir le résultat suivant :

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%)

Résumé

Au cours de cette étape, vous avez pu détecter des thèmes sur une image d'une scène de rue en Chine et afficher les thèmes les plus probables associés à cette image. En savoir plus sur la détection de thèmes

6. Effectuer une détection de texte

La fonctionnalité de détection de texte de l'API Vision effectue une reconnaissance optique des caractères. Elle détecte et extrait le texte contenu dans une image, et est compatible avec de nombreuses langues. Compatible avec un grand nombre de langues, elle permet également une identification automatique de la langue.

Dans cet exemple, vous allez effectuer une détection de texte sur une image représentant un écran de mise à jour logicielle système.

Accédez au fichier Program.cs dans le dossier VisionApiDemo et remplacez le code par ce qui suit:

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

Prenez une minute ou deux pour étudier le code et découvrir comment la bibliothèque C# de l'API Vision permet d'effectuer la détection de texte.

Retournez dans Cloud Shell, puis exécutez l'application:

dotnet run 

Vous devriez obtenir le résultat suivant :

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

Résumé

Au cours de cette étape, vous avez pu détecter le texte d'une image représentant Otter Crossing et imprimer le texte reconnu à partir de cette image. En savoir plus sur la détection de texte

7. Détecter des points de repère

La fonctionnalité de détection de points de repère de l'API Vision détecte les structures naturelles ou créées par l'homme au sein d'une image.

Dans cet exemple, vous allez détecter des points de repère sur une image de la Tour Eiffel.

Accédez au fichier Program.cs dans le dossier VisionApiDemo et remplacez le code par ce qui suit:

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

Prenez une ou deux minutes pour étudier le code et découvrir comment la bibliothèque C# de l'API Vision permet d'effectuer la détection de points de repère.

Retournez dans Cloud Shell, puis exécutez l'application:

dotnet run

Vous devriez obtenir le résultat suivant :

Eiffel Tower

Résumé

Au cours de cette étape, vous avez pu effectuer la détection de points de repère sur une image de la tour Eiffel. En savoir plus sur la détection des points de repère

8. Effectuer une détection des visages émotionnels

La détection de visages détecte plusieurs visages dans une image, ainsi que leurs caractéristiques principales, telles que l'état émotionnel ou les accessoires portés.

Dans cet exemple, vous détecterez la probabilité d’un état émotionnel à partir de quatre probabilités émotionnelles différentes, y compris la joie, la colère, la tristesse et la surprise.

Accédez au fichier Program.cs dans le dossier VisionApiDemo et remplacez le code par ce qui suit:

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

Prenez une ou deux minutes pour étudier le code et découvrir comment la bibliothèque C# de l'API Vision permet d'effectuer la détection des visages émotionnels.

Exécutez l'application.

dotnet run

Le résultat suivant doit s'afficher pour notre exemple face_no_surprise:

Picture: { "source": { "imageUri": "gs://cloud-samples-data/vision/face/face_no_surprise.jpg" } }
 Surprise: Likely

Résumé

Au cours de cette étape, vous avez pu procéder à une détection des visages émotionnels. En savoir plus sur la détection de visages

9. Félicitations !

Vous avez appris à utiliser l'API Vision avec C# pour effectuer différentes détections sur les images.

Effectuer un nettoyage

Afin d'éviter que des frais ne soient facturés sur votre compte Google Cloud Platform pour les ressources utilisées dans ce démarrage rapide, procédez comme suit :

  • Accédez à la console Cloud Platform.
  • Sélectionnez le projet que vous souhaitez arrêter, puis cliquez sur "Supprimer". en haut: la suppression du projet est programmée.

En savoir plus

Licence

Ce document est publié sous une licence Creative Commons Attribution 2.0 Generic.