Détecter du texte

Reconnaissance optique des caractères (OCR)

L'API Vision peut détecter et extraire du texte à partir d'images. Deux fonctionnalités d'annotation sont compatibles avec la reconnaissance optique des caractères :

  • TEXT_DETECTION détecte et extrait le texte de toute image, par exemple, d'une photographie contenant un panneau indicateur. Le fichier JSON comprend la chaîne extraite complète, ainsi que les mots individuels et leurs cadres de sélection.

  • DOCUMENT_TEXT_DETECTION extrait également le texte d'une image, mais la réponse est optimisée pour les textes et les documents denses. Le JSON comprend des informations sur les pages, les blocs, les paragraphes, les mots et les blancs.

Exemples de code

Pour des exemples dans plusieurs langages de programmation, reportez-vous aux exemples suivants :

Requêtes de détection de texte

Configurer votre authentification et votre projet GCP

Détecter du texte

Commande curl

Pour effectuer une requête de détection de thèmes à l'aide l'outil de ligne de commande Linux ou MacOS curl, envoyez une requête POST sur le point de terminaison https://vision.googleapis.com/v1/images:annotate et indiquez TEXT_DETECTION comme valeur de features.type, comme illustré dans l'exemple suivant :

curl -X POST \
     -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
     -H "Content-Type: application/json; charset=utf-8" \
     --data "{
      'requests': [
        {
          'image': {
            'source': {
              'imageUri': 'gs://bucket-name-123/abbey_road.jpg'
            }
          },
          'features': [
            {
              'type': 'TEXT_DETECTION'
            }
          ]
        }
      ]
    }" "https://vision.googleapis.com/v1/images:annotate"

Pour la détection de document texte, remplacez "type": "DOCUMENT_TEXT_DETECTION" dans la requête ci-dessus.

Les images peuvent être transmises de trois manières différentes : en tant que chaîne codée en base64 (comme ci-dessus) ; en tant qu'URI Google Cloud Storage ; ou en tant qu'URI Web. Consultez la section Envoyer des requêtes pour plus d'informations.

Pour en savoir plus sur la configuration du corps de la requête, consultez la documentation de référence sur AnnotateImageRequest.

COMMANDE GCLOUD

Pour effectuer une analyse des entités, exécutez la commande gcloud ml vision detect-text comme illustré dans l'exemple ci-dessous :

gcloud ml vision detect-text "gs://bucket-name-123/abbey_road.jpg"

PowerShell

Pour effectuer une requête de détection de thèmes à l'aide de Windows PowerShell, envoyez une requête POST sur le point de terminaison https://vision.googleapis.com/v1/images:annotate et indiquez TEXT_DETECTION comme valeur de features.type, comme illustré dans l'exemple suivant :

$cred = gcloud auth application-default print-access-token
$headers = @{ Authorization = "Bearer $cred" }

Invoke-WebRequest `
  -Method Post `
  -Headers $headers `
  -ContentType: "application/json; charset=utf-8" `
  -Body "{
      'requests': [
        {
          'image': {
            'source': {
              'imageUri': 'gs://bucket-name-123/abbey_road.jpg'
            }
          },
          'features': [
            {
              'type': 'TEXT_DETECTION'
            }
          ]
        }
      ]
    }" `
  -Uri "https://vision.googleapis.com/v1/images:annotate" | Select-Object -Expand Content

Pour la détection de document texte, remplacez "type": "DOCUMENT_TEXT_DETECTION" dans la requête ci-dessus.

Les images peuvent être transmises de trois manières différentes : en tant que chaîne codée en base64, en tant qu'URI Google Cloud Storage, ou en tant qu'URL HTTPS ou HTTP accessible au public. Consultez la section Envoyer des requêtes pour plus d'informations.

Pour en savoir plus sur la configuration du corps de la requête, consultez la documentation de référence sur AnnotateImageRequest.

Réponses de la détection de texte

Si la requête aboutit, le serveur renvoie un code d'état HTTP 200 OK ainsi que la réponse au format JSON.

Une réponse TEXT_DETECTION inclut la phrase détectée et son cadre de sélection, ainsi que les mots individuels et leurs cadres de sélection.

{
  "responses": [
    {
      "textAnnotations": [
        {
          "locale": "en",
          "description": "ABBEY\nROAD NW8\nCITY OF WESTMINSTER\n",
          "boundingPoly": {
            "vertices": [
              {
                "x": 45,
                "y": 43
              },
              {
                "x": 269,
                "y": 43
              },
              {
                "x": 269,
                "y": 178
              },
              {
                "x": 45,
                "y": 178
              }
            ]
          }
        },
        {
          "description": "ABBEY",
          "boundingPoly": {
            "vertices": [
              {
                "x": 45,
                "y": 50
              },
              {
                "x": 181,
                "y": 43
              },
              {
                "x": 183,
                "y": 80
              },
              {
                "x": 47,
                "y": 87
              }
            ]
          }
        },
        {
          "description": "ROAD",
          "boundingPoly": {
            "vertices": [
              {
                "x": 48,
                "y": 96
              },
              {
                "x": 155,
                "y": 96
              },
              {
                "x": 155,
                "y": 132
              },
              {
                "x": 48,
                "y": 132
              }
            ]
          }
        },
        {
          "description": "NW8",
          "boundingPoly": {
            "vertices": [
              {
                "x": 182,
                "y": 95
              },
              {
                "x": 269,
                "y": 95
              },
              {
                "x": 269,
                "y": 130
              },
              {
                "x": 182,
                "y": 130
              }
            ]
          }
        },
        {
          "description": "CITY",
          "boundingPoly": {
            "vertices": [
              {
                "x": 51,
                "y": 162
              },
              {
                "x": 85,
                "y": 161
              },
              {
                "x": 85,
                "y": 177
              },
              {
                "x": 51,
                "y": 178
              }
            ]
          }
        },
        {
          "description": "OF",
          "boundingPoly": {
            "vertices": [
              {
                "x": 95,
                "y": 162
              },
              {
                "x": 111,
                "y": 162
              },
              {
                "x": 111,
                "y": 176
              },
              {
                "x": 95,
                "y": 176
              }
            ]
          }
        },
        {
          "description": "WESTMINSTER",
          "boundingPoly": {
            "vertices": [
              {
                "x": 124,
                "y": 162
              },
              {
                "x": 249,
                "y": 160
              },
              {
                "x": 249,
                "y": 174
              },
              {
                "x": 124,
                "y": 176
              }
            ]
          }
        }
      ]
    }
  ]
}

Spécifier la langue (facultatif)

Les deux types de requêtes de reconnaissance optique des caractères sont compatibles avec un ou plusieurs paramètres languageHints, qui spécifient la langue de tout texte dans l'image. Cependant, dans la plupart des cas, une valeur vide donne de meilleurs résultats, car elle active la détection automatique de la langue. Pour les langues basées sur l'alphabet latin, il n'est pas nécessaire de définir languageHints. Dans de rares cas, lorsque la langue du texte de l'image est connue, le réglage de ce paramètre aidera à obtenir de meilleurs résultats (bien que cela nuise fortement au fonctionnement du service si sa valeur est erronée). La détection de texte renvoie une erreur si une ou plusieurs des langues spécifiées ne font pas partie des langues compatibles.

Essayer

Essayez la détection de texte et la détection de document texte. Vous pouvez utiliser l'image déjà spécifiée (gs://bucket-name-123/abbey_road.jpg) en cliquant sur Exécuter ou spécifier votre propre image à la place.

Pour essayer la détection de document texte, définissez la valeur type sur DOCUMENT_TEXT_DETECTION.

Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

Documentation de l'API Cloud Vision
Besoin d'aide ? Consultez notre page d'assistance.