Text in Dateien erkennen

Auf dieser Seite erfahren Sie, wie Sie Text in Dateien mit der OCR API (Optical Character Recognition) auf einer Air-Gap-Appliance von Google Distributed Cloud (GDC) erkennen.

Der OCR-Dienst von Vertex AI auf der GDC-Air-Gap-Appliance erkennt Text in PDF- und TIFF-Dateien mit der API-Methode BatchAnnotateFiles.

Hinweise

Für die Verwendung der OCR API benötigen Sie ein Projekt, für das die OCR API aktiviert ist. Außerdem benötigen Sie 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 mit Inline-Anfragen erkennen

Mit der Methode BatchAnnotateFiles wird Text aus einer Batch-Datei mit PDF- oder TIFF-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 im JSON-Format in der API-Antwort zurück.

Sie müssen Werte für die Felder im JSON-Text Ihrer API-Anfrage angeben. In der folgenden Tabelle finden Sie eine Beschreibung der Felder im Anfragetext, die Sie angeben müssen, wenn Sie die API-Methode BatchAnnotateFiles für Ihre Anfragen zur Texterkennung verwenden:

Felder im Anfragetext Feldbeschreibung
content Die Dateien mit dem zu erkennenden Text. Sie stellen die Base64-Darstellung (ASCII-String) des Inhalts Ihrer Binärdatei bereit.
mime_type Der Quelldateityp. Sie müssen einen der folgenden Werte festlegen:
  • application/pdf für PDF-Dateien
  • image/tiff für TIFF-Dateien
type Die Art der Texterkennung, die Sie für die Datei benötigen.

Geben Sie eines der beiden Annotations-Features an:
  • TEXT_DETECTION erkennt und extrahiert Text aus beliebigen Dateien. Die JSON-Antwort enthält den extrahierten String, einzelne Wörter und deren Begrenzungsrahmen.
  • DOCUMENT_TEXT_DETECTION extrahiert auch Text aus einer Datei, wobei die Antwort für Fließtext und Dokumente optimiert ist. Die JSON-Datei enthält Informationen zu Seite, Block, Absatz, Wort und Worttrennung.
Weitere Informationen zu diesen Annotationsfunktionen finden Sie unter Funktionen für die optische 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.

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

Wenn Sie die Sprache des Texts in der Datei kennen, können Sie durch Festlegen eines Hinweises die Ergebnisse verbessern.
pages Optional. Die Anzahl der Seiten der Datei, die für die Texterkennung verarbeitet werden sollen.

Sie können maximal fünf Seiten angeben. Wenn Sie die Anzahl der Seiten nicht angeben, verarbeitet der Dienst die ersten fünf Seiten der Datei.

Inline-API-Anfrage stellen

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

Die folgenden Beispiele zeigen, wie Sie mit OCR Text in einer Datei erkennen:

REST

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

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

    cat <<- EOF > request.json
    {
      "requests": [
        {
          "input_config": {
            "content": BASE64_ENCODED_FILE,
            "mime_type": "application/pdf"
          },
          "features": [
            {
              "type": "FEATURE_TYPE"
            }
          ],
          "image_context": {
            "language_hints": [
              "LANGUAGE_HINT_1",
              "LANGUAGE_HINT_2",
              ...
            ]
          },
          "pages": []
        }
      ]
    }
    EOF
    

    Ersetzen Sie Folgendes:

    • BASE64_ENCODED_FILE: die Base64-Darstellung (ASCII-String) des Inhalts Ihrer Binärdatei. Dieser String beginnt mit Zeichen, die /9j/4QAYRXhpZgAA...9tAVx/zDQDlGxn//2Q== ähneln.
    • FEATURE_TYPE: Der Typ der Texterkennung, die Sie für die Datei 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. Ein leerer Wert wird vom System als automatische Spracherkennung interpretiert.
  2. Authentifizierungstoken abrufen

  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/files: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/files:annotate" | Select-Object -Expand Content
    

    Ersetzen Sie Folgendes:

Python

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

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

  2. Erforderliche Umgebungsvariablen in einem Python-Skript festlegen

  3. API-Anfrage authentifizieren

  4. Fügen Sie dem von Ihnen 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)
      input_config = {"content": "BASE64_ENCODED_FILE"}
      features = [{"type_": vision.Feature.Type.FEATURE_TYPE}]
      # Each requests element corresponds to a single file. To annotate more
      # files, create a request element for each file and add it to
      # the array of requests
      req = {"input_config": input_config, "features": features}
    
      metadata = [("x-goog-user-project", "projects/PROJECT_ID")]
    
      resp = vc.annotate_file(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
    • BASE64_ENCODED_FILE: die Base64-Darstellung (ASCII-String) des Dateiinhalts. Dieser String beginnt mit Zeichen, die /9j/4QAYRXhpZgAA...9tAVx/zDQDlGxn//2Q== ähneln.
    • FEATURE_TYPE: Der Typ der Texterkennung, die Sie für die Datei 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 in der Datei zu erkennen:

    python SCRIPT_NAME
    

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