Text in Bildern erkennen

Auf dieser Seite erfahren Sie, wie Sie mit der API zur optischen Zeichenerkennung (OCR) auf der Google Distributed Cloud (GDC) Air-Gapped Appliance Bildtext erkennen.

Der OCR-Dienst von Vertex AI auf der GDC Air-Gapped Appliance erkennt Text in Bildern mit der API-Methode BatchAnnotateImages. Der Dienst unterstützt JPEG- und PNG-Dateien für Bilder.

Hinweis

Bevor Sie die OCR API verwenden können, benötigen Sie ein Projekt, in dem die OCR API aktiviert ist, und die entsprechenden Anmeldedaten. Sie können auch Clientbibliotheken installieren, um Aufrufe an die API zu ermöglichen. Weitere Informationen finden Sie unter Projekt zur Zeichenerkennung einrichten.

Text aus JPEG- und PNG-Dateien erkennen

Mit der Methode BatchAnnotateImages wird Text aus einer Batch-Datei mit JPEG- oder PNG-Dateien erkannt. Sie senden die Datei, aus der Sie Text erkennen möchten, direkt als Inhalt in der API-Anfrage. Das System gibt den erkannten Text in der API-Antwort im JSON-Format zurück.

Sie müssen Werte für die Felder im JSON-Text Ihrer API-Anfrage angeben. Die folgende Tabelle enthält eine Beschreibung der Felder im Anfragetext, die Sie angeben müssen, wenn Sie die API-Methode BatchAnnotateImages für Ihre Anfragen zur Texterkennung verwenden:

Felder im Anfragetext Feldbeschreibung
content Die Bilder mit dem zu erkennenden Text. Sie geben die Base64-Darstellung (ASCII-String) Ihrer Binärbilddaten an.
type Die Art der Texterkennung, die Sie für das Bild benötigen.

Geben Sie eine der beiden Anmerkungsfunktionen an:
  • TEXT_DETECTION erkennt und extrahiert Text aus beliebigen Bildern. Die JSON-Antwort enthält den extrahierten String, einzelne Wörter und deren Begrenzungsrahmen.
  • DOCUMENT_TEXT_DETECTION extrahiert auch Text aus einem Bild, optimiert die Antwort jedoch für dichten Text und Dokumente. Die JSON-Datei enthält Informationen zu Seite, Block, Absatz, Wort und Worttrennung.
Weitere Informationen zu diesen Anmerkungsfunktionen finden Sie unter Funktionen der optischen Zeichenerkennung.
language_hints Optional. Liste der Sprachen, die für die Texterkennung verwendet werden sollen.

Ein leerer Wert für dieses Feld wird vom System als automatische Spracherkennung interpretiert.

Sie müssen das Feld language_hints nicht für Sprachen festlegen, die auf dem lateinischen Alphabet basieren.

Wenn Sie die Sprache des Texts im Bild kennen, können Sie die Ergebnisse durch einen Hinweis verbessern.

API-Anfrage stellen

Stellen Sie eine Anfrage an die vortrainierte OCR API mit der REST API-Methode. Alternativ können Sie über ein Python-Skript mit der vortrainierten OCR API interagieren, um Text aus JPEG- oder PNG-Dateien zu erkennen.

In den folgenden Beispielen wird gezeigt, wie Sie mit der OCR Text in einem Bild erkennen:

REST

So erkennen Sie Text in Bildern mit der REST API-Methode:

  1. Speichern Sie die folgende Datei request.json für Ihren Anfragetext:

    cat <<- EOF > request.json
    {
      "requests": [
        {
          "image": {
            "content": BASE64_ENCODED_IMAGE
          },
          "features": [
            {
              "type": "FEATURE_TYPE"
            }
          ],
          "image_context": {
            "language_hints": [
              "LANGUAGE_HINT_1",
              "LANGUAGE_HINT_2",
              ...
            ]
          }
        }
      ]
    }
    EOF
    

    Ersetzen Sie Folgendes:

    • BASE64_ENCODED_IMAGE: die Base64-Darstellung (ASCII-String) Ihrer Binärbilddaten. Dieser String beginnt mit Zeichen, die /9j/4QAYRXhpZgAA...9tAVx/zDQDlGxn//2Q== ähneln.
    • FEATURE_TYPE: die Art der Texterkennung, die Sie für das Bild benötigen. Zulässige Werte sind TEXT_DETECTION oder DOCUMENT_TEXT_DETECTION.
    • LANGUAGE_HINT: die BCP 47-Sprachtags, die als Sprachhinweise für die Texterkennung verwendet werden sollen, z. B. en-t-i0-handwrit. Dieses Feld ist optional und ein leerer Wert wird vom System als automatische Spracherkennung interpretiert.
  2. Rufen Sie ein Authentifizierungstoken ab.

  3. Stellen Sie die Anfrage:

    curl

    curl -X POST \
      -H "Authorization: Bearer TOKEN" \
      -H "x-goog-user-project: projects/PROJECT_ID" \
      -H "Content-Type: application/json; charset=utf-8" \
      -d @request.json \
      https://ENDPOINT/v1/images:annotate
    

    Ersetzen Sie Folgendes:

    PowerShell

    $headers = @{
      "Authorization" = "Bearer TOKEN"
      "x-goog-user-project" = "projects/PROJECT_ID"
    }
    
    Invoke-WebRequest
      -Method POST
      -Headers $headers
      -ContentType: "application/json; charset=utf-8"
      -InFile request.json
      -Uri "ENDPOINT/v1/images:annotate" | Select-Object -Expand Content
    

    Ersetzen Sie Folgendes:

Python

So verwenden Sie den OCR-Dienst über ein Python-Skript, um Text in einem Bild zu erkennen:

  1. Installieren Sie die neueste Version der OCR-Clientbibliothek.

  2. Legen Sie die erforderlichen Umgebungsvariablen in einem Python-Skript fest.

  3. Authentifizieren Sie Ihre API-Anfrage.

  4. Fügen Sie dem erstellten Python-Skript den folgenden Code hinzu:

    from google.cloud import vision
    import google.auth
    from google.auth.transport import requests
    from google.api_core.client_options import ClientOptions
    
    audience = "https://ENDPOINT:443"
    api_endpoint="ENDPOINT:443"
    
    def vision_client(creds):
      opts = ClientOptions(api_endpoint=api_endpoint)
      return vision.ImageAnnotatorClient(credentials=creds, client_options=opts)
    
    def main():
      creds = None
      try:
        creds, project_id = google.auth.default()
        creds = creds.with_gdch_audience(audience)
        req = requests.Request()
        creds.refresh(req)
        print("Got token: ")
        print(creds.token)
      except Exception as e:
        print("Caught exception" + str(e))
        raise e
      return creds
    
    def vision_func(creds):
      vc = vision_client(creds)
      image = {"content": "BASE64_ENCODED_IMAGE"}
      features = [{"type_": vision.Feature.Type.FEATURE_TYPE}]
      # Each requests element corresponds to a single image. To annotate more
      # images, create a request element for each image and add it to
      # the array of requests
      req = {"image": image, "features": features}
    
      metadata = [("x-goog-user-project", "projects/PROJECT_ID")]
    
      resp = vc.annotate_image(req,metadata=metadata)
    
      print(resp)
    
    if __name__=="__main__":
      creds = main()
      vision_func(creds)
    

    Ersetzen Sie Folgendes:

    • ENDPOINT: der OCR-Endpunkt, den Sie für Ihre Organisation verwenden. Weitere Informationen finden Sie unter Dienststatus und Endpunkte.
    • BASE64_ENCODED_IMAGE: die Base64-Darstellung (ASCII-String) Ihrer Binärbilddaten. Dieser String beginnt mit Zeichen, die /9j/4QAYRXhpZgAA...9tAVx/zDQDlGxn//2Q== ähneln.
    • FEATURE_TYPE: die Art der Texterkennung, die Sie für das Bild benötigen. Zulässige Werte sind TEXT_DETECTION oder DOCUMENT_TEXT_DETECTION.
    • PROJECT_ID: Ihre Projekt-ID.
  5. Speichern Sie das Python-Skript.

  6. Führen Sie das Python-Skript aus, um Text im Bild zu erkennen:

    python SCRIPT_NAME
    

    Ersetzen Sie SCRIPT_NAME durch den Namen, den Sie Ihrem Python-Skript gegeben haben, z. B. vision.py.