arrow_back

Extraire, analyser et traduire du texte à partir d'images à l'aide des API Cloud ML

Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Extraire, analyser et traduire du texte à partir d'images à l'aide des API Cloud ML

Lab 1 heure universal_currency_alt 5 crédits show_chart Intermédiaire
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP075

Google Cloud – Ateliers adaptés au rythme de chacun

Présentation

Dans cet atelier, nous allons explorer la puissance du machine learning en utilisant plusieurs API basées sur cette technologie. Commençons par la méthode de détection de texte de l'API Cloud Vision, qui utilise la reconnaissance optique des caractères (OCR) pour extraire du texte à partir d'images. Nous verrons ensuite comment traduire ce texte avec l'API Translation et l'analyser avec l'API Natural Language.

Points abordés

  • Créer une demande d'API Vision et appeler l'API avec curl
  • Utiliser la méthode de détection de texte (reconnaissance optique des caractères) de l'API Vision
  • Utiliser l'API Translation pour traduire le texte de votre image
  • Utiliser l'API Natural Language pour analyser le texte

Avant de commencer l'atelier

Avant de cliquer sur le bouton "Démarrer l'atelier"

Lisez ces instructions. Les ateliers sont minutés, et vous ne pouvez pas les mettre en pause. Le minuteur, qui démarre lorsque vous cliquez sur Démarrer l'atelier, indique combien de temps les ressources Google Cloud resteront accessibles.

Cet atelier pratique vous permet de suivre vous-même les activités dans un véritable environnement cloud, et non dans un environnement de simulation ou de démonstration. Nous vous fournissons des identifiants temporaires pour vous connecter à Google Cloud le temps de l'atelier.

Pour réaliser cet atelier :

  • vous devez avoir accès à un navigateur Internet standard (nous vous recommandons d'utiliser Chrome) ;
Remarque : Ouvrez une fenêtre de navigateur en mode incognito/navigation privée pour effectuer cet atelier. Vous éviterez ainsi les conflits entre votre compte personnel et le temporaire étudiant, qui pourraient entraîner des frais supplémentaires facturés sur votre compte personnel.
  • vous disposez d'un temps limité ; une fois l'atelier commencé, vous ne pouvez pas le mettre en pause.
Remarque : Si vous possédez déjà votre propre compte ou projet Google Cloud, veillez à ne pas l'utiliser pour réaliser cet atelier afin d'éviter que des frais supplémentaires ne vous soient facturés.

Démarrer l'atelier et se connecter à la console Google Cloud

  1. Cliquez sur le bouton Démarrer l'atelier. Si l'atelier est payant, un pop-up s'affiche pour vous permettre de sélectionner un mode de paiement. Sur la gauche, vous trouverez le panneau Détails concernant l'atelier, qui contient les éléments suivants :

    • Le bouton Ouvrir la console Google
    • Le temps restant
    • Les identifiants temporaires que vous devez utiliser pour cet atelier
    • Des informations complémentaires vous permettant d'effectuer l'atelier
  2. Cliquez sur Ouvrir la console Google. L'atelier lance les ressources, puis ouvre la page Se connecter dans un nouvel onglet.

    Conseil : Réorganisez les onglets dans des fenêtres distinctes, placées côte à côte.

    Remarque : Si la boîte de dialogue Sélectionner un compte s'affiche, cliquez sur Utiliser un autre compte.
  3. Si nécessaire, copiez le nom d'utilisateur inclus dans le panneau Détails concernant l'atelier et collez-le dans la boîte de dialogue Se connecter. Cliquez sur Suivant.

  4. Copiez le mot de passe inclus dans le panneau Détails concernant l'atelier et collez-le dans la boîte de dialogue de bienvenue. Cliquez sur Suivant.

    Important : Vous devez utiliser les identifiants fournis dans le panneau de gauche. Ne saisissez pas vos identifiants Google Cloud Skills Boost. Remarque : Si vous utilisez votre propre compte Google Cloud pour cet atelier, des frais supplémentaires peuvent vous être facturés.
  5. Accédez aux pages suivantes :

    • Acceptez les conditions d'utilisation.
    • N'ajoutez pas d'options de récupération ni d'authentification à deux facteurs (ce compte est temporaire).
    • Ne vous inscrivez pas aux essais offerts.

Après quelques instants, la console Cloud s'ouvre dans cet onglet.

Remarque : Vous pouvez afficher le menu qui contient la liste des produits et services Google Cloud en cliquant sur le menu de navigation en haut à gauche. Icône du menu de navigation

Activer Cloud Shell

Cloud Shell est une machine virtuelle qui contient de nombreux outils pour les développeurs. Elle comprend un répertoire d'accueil persistant de 5 Go et s'exécute sur Google Cloud. Cloud Shell vous permet d'accéder via une ligne de commande à vos ressources Google Cloud.

  1. Cliquez sur Activer Cloud Shell Icône Activer Cloud Shell en haut de la console Google Cloud.

Une fois connecté, vous êtes en principe authentifié et le projet est défini sur votre ID_PROJET. Le résultat contient une ligne qui déclare YOUR_PROJECT_ID (VOTRE_ID_PROJET) pour cette session :

Your Cloud Platform project in this session is set to YOUR_PROJECT_ID

gcloud est l'outil de ligne de commande pour Google Cloud. Il est préinstallé sur Cloud Shell et permet la complétion par tabulation.

  1. (Facultatif) Vous pouvez lister les noms des comptes actifs à l'aide de cette commande :
gcloud auth list
  1. Cliquez sur Autoriser.

  2. Vous devez à présent obtenir le résultat suivant :

Résultat :

ACTIVE: * ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (Facultatif) Vous pouvez lister les ID de projet à l'aide de cette commande :
gcloud config list project

Résultat :

[core] project = <ID_Projet>

Exemple de résultat :

[core] project = qwiklabs-gcp-44776a13dea667a6 Remarque : Pour consulter la documentation complète sur gcloud, dans Google Cloud, accédez au guide de présentation de la gcloud CLI.

Tâche 1 : Créer une clé API

Étant donné que vous allez utiliser curl pour envoyer une requête à l'API Vision, vous devez générer une clé API à transmettre dans l'URL de la requête.

  1. Pour créer une clé API, accédez au menu de navigation > API et services > Identifiants :

Menu de navigation développé avec le sous-menu &quot;API et services&quot; et l&#39;option &quot;Identifiants&quot; mis en surbrillance

  1. Cliquez sur + Créer des identifiants.

  2. Dans le menu déroulant, sélectionnez Clé API :

Option &quot;Clé API&quot; encadrée dans le menu déroulant

  1. Ensuite, copiez la clé que vous venez de générer, puis cliquez sur Fermer.

  2. Enregistrez la clé API dans une variable d'environnement pour éviter d'avoir à insérer sa valeur dans chaque requête.

  3. Exécutez la commande suivante dans Cloud Shell en remplaçant <your_api_key> par la clé que vous venez de copier :

export API_KEY=<YOUR_API_KEY>

Cliquez sur Vérifier ma progression pour vérifier la tâche exécutée.

Créer une clé API

Tâche 2 : Importer une image dans un bucket Cloud Storage

Créer un bucket Cloud Storage

Vous disposez de deux méthodes pour envoyer une image à l'API Vision pour analyse : envoyer une chaîne d'image encodée en base64 ou transmettre l'URL d'un fichier stocké dans Cloud Storage. Dans cet atelier, vous allez créer un bucket Cloud Storage pour stocker vos images.

  1. Dans la console, accédez au menu de navigation > Cloud Storage, et sélectionnez Créer un bucket.

  2. Attribuez un nom unique au bucket : -bucket.

  3. Ensuite, cliquez sur Choisissez comment contrôler l'accès aux objets.

  4. Décochez la case Appliquer la protection contre l'accès public sur ce bucket.

  5. Sélectionnez Ultraprécis sous "Contrôle des accès", puis cliquez sur Créer.

Importer une image dans le bucket

  1. Effectuez un clic droit sur l'image suivante, qui représente un panneau en français, puis cliquez sur Enregistrer l'image sous pour l'enregistrer sur votre ordinateur sous le nom sign.jpg.

Panneau Le Bien Public en français

  1. Accédez au bucket que vous venez de créer dans le navigateur Cloud Storage, puis cliquez sur Importer des fichiers et sélectionnez sign.jpg.

Vous autoriserez ensuite la consultation publique du fichier tout en maintenant privé l'accès au bucket.

  1. Cliquez sur les trois points de la ligne du fichier image :

Onglet &quot;Objets&quot; avec le fichier image représentant un panneau que vous avez importé et le bouton &quot;Plus d&#39;options&quot; encadré

  1. Sélectionnez Modifier l'accès.

  2. Cliquez sur Ajouter une entrée et définissez les paramètres suivants :

  • Sélectionnez Public pour le champ "Entité".
  • Vérifiez que la valeur du champ "Nom" est allUsers.
  • Sélectionnez Lecteur pour le champ "Accès".

Champs &quot;Entité&quot;, &quot;Nom&quot; et &quot;Accès&quot; de la nouvelle entrée encadrés

  1. Cliquez sur Enregistrer.

Vous constatez à présent que l'accès au fichier est public.

Maintenant que le fichier est dans votre bucket, vous êtes prêt à envoyer une requête à l'API Vision en transmettant à cette dernière l'URL de l'image.

Cliquez sur Vérifier ma progression pour vérifier la tâche exécutée.

Importer une image dans un bucket

Tâche 3 : Créer une requête API Cloud Vision

  1. Dans votre environnement Cloud Shell, créez un fichier ocr-request.json, puis ajoutez-y le code ci-dessous en remplaçant my-bucket-name par le nom du bucket que vous avez créé. Vous pouvez créer le fichier à l'aide de l'un de vos éditeurs de ligne de commande préférés (nano, vim, emacs). Vous pouvez également cliquer sur l'icône en forme de crayon pour ouvrir l'éditeur de code dans Cloud Shell :

Bouton &quot;Ouvrir l&#39;éditeur&quot; avec l&#39;icône en forme de crayon

  1. Ajoutez le contenu suivant au fichier ocr-request.json :
{ "requests": [ { "image": { "source": { "gcsImageUri": "gs://my-bucket-name/sign.jpg" } }, "features": [ { "type": "TEXT_DETECTION", "maxResults": 10 } ] } ] }

Vous allez utiliser la fonctionnalité TEXT_DETECTION de l'API Cloud Vision. Elle exécutera une reconnaissance optique des caractères (OCR) sur l'image pour en extraire le texte.

Tâche 4 : Appeler la méthode de détection de texte

  1. Dans Cloud Shell, appelez l'API Cloud Vision avec curl :
curl -s -X POST -H "Content-Type: application/json" --data-binary @ocr-request.json https://vision.googleapis.com/v1/images:annotate?key=${API_KEY}

La première partie de la réponse doit se présenter sous la forme suivante :

{ "responses": [ { "textAnnotations": [ { "locale": "fr", "description": "LE BIEN PUBLIC\nles dépêches\nPour Obama,\nla moutarde\nest\nde Dijon\n", "boundingPoly": { "vertices": [ { "x": 138, "y": 40 }, { "x": 622, "y": 40 }, { "x": 622, "y": 795 }, { "x": 138, "y": 795 } ] } }, { "description": "LE", "boundingPoly": { "vertices": [ { "x": 138, "y": 99 }, { "x": 274, "y": 82 }, { "x": 283, "y": 157 }, { "x": 147, "y": 173 } ] } }, { "description": "BIEN", "boundingPoly": { "vertices": [ { "x": 291, "y": 79 }, { "x": 413, "y": 64 }, { "x": 422, "y": 139 }, { "x": 300, "y": 154 } ] } ... ] }] }

La méthode OCR parvient à extraire beaucoup de texte de l'image.

La première donnée que vous récupérez de textAnnotations est l'intégralité du bloc de texte que l'API a trouvé dans l'image. Ce bloc inclut les éléments suivants :

  • Le code de langue (dans ce cas, "fr" pour le français)
  • Une chaîne correspondant au texte
  • Un cadre de délimitation indiquant où le texte a été trouvé dans l'image

Ensuite, vous obtenez un objet pour chaque mot (encadré) trouvé dans le texte.

Remarque : Pour les images comportant davantage de texte, l'API Cloud Vision offre également une fonctionnalité DOCUMENT_TEXT_DETECTION. Cette réponse inclut des informations supplémentaires et décompose le texte en pages, blocs, paragraphes et mots.

L'idée est à présent de traduire le texte extrait en anglais. L'étape suivante est donc la traduction.

  1. Exécutez la commande curl suivante pour enregistrer la réponse dans un fichier ocr-response.json afin de pouvoir y faire référence ultérieurement :
curl -s -X POST -H "Content-Type: application/json" --data-binary @ocr-request.json https://vision.googleapis.com/v1/images:annotate?key=${API_KEY} -o ocr-response.json

Tâche 5 : Envoyer le texte de l'image à l'API Translation

L'API Translation peut traduire dans plus de 100 langues. Elle peut également détecter la langue du texte d'entrée. Pour traduire le texte français en anglais, transmettez le texte ainsi que le code de la langue cible (en-US) à l'API Translation.

  1. Commencez par créer un fichier translation-request.json, puis ajoutez-y les éléments suivants :
{ "q": "your_text_here", "target": "en" }

q est l'endroit où vous transmettrez la chaîne à traduire.

  1. Enregistrez le fichier.

  2. Exécutez cette commande Bash dans Cloud Shell pour extraire le texte de l'image de l'étape précédente et le copier dans un nouveau fichier translation-request.json (commande tout-en-un) :

STR=$(jq .responses[0].textAnnotations[0].description ocr-response.json) && STR="${STR//\"}" && sed -i "s|your_text_here|$STR|g" translation-request.json
  1. Vous êtes maintenant prêt à appeler l'API Translation. La commande suivante a pour effet de copier la réponse dans un fichier translation-response.json :
curl -s -X POST -H "Content-Type: application/json" --data-binary @translation-request.json https://translation.googleapis.com/language/translate/v2?key=${API_KEY} -o translation-response.json
  1. Exécutez cette commande pour inspecter le fichier avec la réponse de l'API Translation :
cat translation-response.json

Le panneau est désormais traduit en anglais.

{ "data": { "translations": [ { "translatedText": "TO THE PUBLIC GOOD the dispatches For Obama, the mustard is from Dijon", "detectedSourceLanguage": "fr" } ] } }

Dans la réponse :

  • translatedText contient la traduction du texte ;
  • detectedSourceLanguage est fr (code de langue ISO correspondant au français).

L'API Translation accepte plus de 100 langues, dont la liste complète figure sur la page Langues acceptées.

Outre la traduction du texte de notre image, vous souhaiterez peut-être en approfondir l'analyse. C'est là que l'API Natural Language s'avère utile. Passons à l'étape suivante.

Tâche 6 : Analyser le texte de l'image avec l'API Natural Language

L'API Natural Language facilite la compréhension de texte en extrayant des entités, en analysant les sentiments et la syntaxe, et en classant le texte en catégories. Utilisez la méthode analyzeEntities pour voir quelles entités l'API Natural Language peut trouver dans le texte de votre image.

  1. Pour configurer la requête API, créez un fichier nl-request.json avec les éléments suivants :
{ "document":{ "type":"PLAIN_TEXT", "content":"your_text_here" }, "encodingType":"UTF8" }

Dans la requête, vous donnez à l'API Natural Language des informations sur le texte que vous envoyez :

  • type : les valeurs de type acceptées sont PLAIN_TEXT ou HTML.

  • content : indiquez le texte à envoyer à l'API Natural Language pour analyse. L'API Natural Language permet également l'envoi de fichiers stockés dans Cloud Storage pour le traitement de texte. Pour envoyer un fichier à partir de Cloud Storage, remplacez content par gcsContentUri et utilisez la valeur de l'URI du fichier texte dans Cloud Storage.

  • encodingType : indique à l'API le type d'encodage de texte à utiliser lors du traitement du texte. L'API l'utilisera pour calculer l'emplacement, dans le texte, des entités spécifiques.

  1. Exécutez cette commande Bash dans Cloud Shell pour copier le texte traduit dans le bloc de contenu de la requête envoyée à l'API Natural Language :
STR=$(jq .data.translations[0].translatedText translation-response.json) && STR="${STR//\"}" && sed -i "s|your_text_here|$STR|g" nl-request.json

Le fichier nl-request.json contient maintenant le texte anglais, soit la traduction du texte de l'image d'origine. Il est temps de l'analyser.

  1. Appelez le point de terminaison analyzeEntities de l'API Natural Language avec cette requête curl :
curl "https://language.googleapis.com/v1/documents:analyzeEntities?key=${API_KEY}" \ -s -X POST -H "Content-Type: application/json" --data-binary @nl-request.json

En faisant défiler la réponse, vous pouvez voir les entités que l'API Natural Language a trouvées :

{ "entities": [ { "name": "dispatches", "type": "OTHER", "metadata": {}, "salience": 0.3560996, "mentions": [ { "text": { "content": "dispatches", "beginOffset": 23 }, "type": "COMMON" } ] }, { "name": "mustard", "type": "OTHER", "metadata": {}, "salience": 0.2878307, "mentions": [ { "text": { "content": "mustard", "beginOffset": 38 }, "type": "COMMON" } ] }, { "name": "Obama", "type": "PERSON", "metadata": { "mid": "/m/02mjmr", "wikipedia_url": "https://en.wikipedia.org/wiki/Barack_Obama" }, "salience": 0.16260329, "mentions": [ { "text": { "content": "Obama", "beginOffset": 31 }, "type": "PROPER" } ] }, { "name": "Dijon", "type": "LOCATION", "metadata": { "mid": "/m/0pbhz", "wikipedia_url": "https://en.wikipedia.org/wiki/Dijon" }, "salience": 0.08129317, "mentions": [ { "text": { "content": "Dijon", "beginOffset": 54 }, "type": "PROPER" } ] } ], "language": "en" }

Pour les entités ayant une page Wikipédia, l'API fournit des métadonnées, y compris l'URL de cette page, ainsi que le MID de l'entité concernée. Le mid est un ID qui renvoie vers cette entité dans le Knowledge Graph de Google. Pour plus d'informations, vous pouvez appeler l'API Knowledge Graph, et lui envoyer cet ID. Pour toutes les entités, l'API Natural Language indique là où l'entité apparaît dans le texte (mentions), le type de l'entité, ainsi que sa saillance (salience : une plage de 0 à 1 indiquant l'importance de l'entité vis-à-vis de l'ensemble du texte). Outre l'anglais, l'API Natural Language accepte les langues indiquées sur la page Langues acceptées.

En observant cette image, il est relativement facile d'identifier les entités importantes. Toutefois, si votre bibliothèque comportait des milliers d'images, la tâche serait beaucoup plus complexe. La reconnaissance optique des caractères, la traduction et le traitement du langage naturel peuvent faciliter l'extraction du sens de grands ensembles d'images.

Cliquez sur Vérifier ma progression pour vérifier la tâche exécutée.

Analyser le texte de l'image avec l'API Natural Language

Félicitations !

Vous avez appris à utiliser tour à tour trois API de machine learning différentes : la méthode de reconnaissance optique des caractères de l'API Vision a extrait le texte d'une image, puis l'API Translation a traduit ce texte en anglais et l'API Natural Language a trouvé les entités de ce texte.

Sujets abordés

  • Cas d'utilisation combinée de plusieurs API de machine learning
  • Créer une demande d'API Vision et appeler l'API avec curl
  • Traduire du texte avec l'API Translation
  • Extraire des entités d'un texte avec l'API Natural Language

Terminer votre quête

Cet atelier d'auto-formation fait partie des quêtes Integrate with Machine Learning APIs et Intro to ML: Image Processing. Une quête est une série d'ateliers associés qui constituent un parcours de formation. Si vous terminez une quête, vous obtenez un badge attestant de votre réussite. Vous pouvez rendre publics les badges que vous recevez et ajouter leur lien dans votre CV en ligne ou sur vos comptes de réseaux sociaux. Inscrivez-vous à n'importe quelle quête contenant cet atelier pour obtenir immédiatement les crédits associés. Découvrez toutes les quêtes disponibles dans le catalogue Google Cloud Skills Boost.

Atelier suivant

Suivez un autre atelier sur les API de machine learning :

Étapes suivantes et informations supplémentaires

Formations et certifications Google Cloud

Les formations et certifications Google Cloud vous aident à tirer pleinement parti des technologies Google Cloud. Nos cours portent sur les compétences techniques et les bonnes pratiques à suivre pour être rapidement opérationnel et poursuivre votre apprentissage. Nous proposons des formations pour tous les niveaux, à la demande, en salle et à distance, pour nous adapter aux emplois du temps de chacun. Les certifications vous permettent de valider et de démontrer vos compétences et votre expérience en matière de technologies Google Cloud.

Dernière modification du manuel : 6 octobre 2023

Dernier test de l'atelier : 6 octobre 2023

Copyright 2024 Google LLC Tous droits réservés. Google et le logo Google sont des marques de Google LLC. Tous les autres noms d'entreprises et de produits peuvent être des marques des entreprises auxquelles ils sont associés.