Batch-Bildannotation offline

Die Vision API kann mit jedem beliebigen Feature-Typ von Vision asynchrone Offline-Erkennungsdienste und Annotationen für große Batches von Bilddateien ausführen. Sie können beispielsweise ein oder mehrere Vision API-Features für einen einzelnen Batch von Bildern angeben, zum Beispiel TEXT_DETECTION, LABEL_DETECTION und LANDMARK_DETECTION.

Die Ausgabedaten einer Offline-Batchanfrage werden in eine JSON-Datei geschrieben, die im angegebenen Cloud Storage-Bucket erstellt wird.

Beschränkungen

Die Vision API akzeptiert bis zu 2.000 Bilddateien. Bei einem größeren Batch von Bilddateien wird ein Fehler zurückgegeben.

Derzeit unterstützte Featuretypen

Featuretyp
CROP_HINTS Ermittelt Vorschläge für Eckpunkte für einen Bildausschnitt.
DOCUMENT_TEXT_DETECTION Führt in Bildern mit hohem Textanteil eine OCR durch, zum Beispiel Dokumente (PDF/TIFF) und Bilder mit Handschrift. TEXT_DETECTION kann für Bilder mit wenig Text verwendet werden. Hat Vorrang, wenn DOCUMENT_TEXT_DETECTION und TEXT_DETECTION vorhanden sind.
FACE_DETECTION Erkennt Gesichter im Bild.
IMAGE_PROPERTIES Berechnet eine Reihe von Bildeigenschaften, zum Beispiel die dominanten Farben des Bildes.
LABEL_DETECTION Fügt Labels ausgehend vom Bildinhalt hinzu.
LANDMARK_DETECTION Erkennt geografische Sehenswürdigkeiten im Bild.
LOGO_DETECTION Erkennt Firmenlogos im Bild.
OBJECT_LOCALIZATION Erkennt und extrahiert mehrere Objekte in einem Bild.
SAFE_SEARCH_DETECTION Führt SafeSearch aus, um potenziell unsichere oder unerwünschte Inhalte zu erkennen.
TEXT_DETECTION Führt eine OCR für Text im Bild durch. Die Texterkennung ist für Bereiche mit wenig Text innerhalb eines größeren Bildes optimiert. Verwenden Sie DOCUMENT_TEXT_DETECTION, wenn das Bild ein Dokument ist (PDF/TIFF), viel Text oder Handschrift enthält.
WEB_DETECTION Mit der Google Bildersuche lassen sich thematische Entitäten wie Nachrichten, Veranstaltungen oder Prominente im Bild erkennen und nach ähnlichen Bildern im Web suchen.

Beispielcode

Verwenden Sie die folgenden Codebeispiele, um Offline-Annotationsdienste für einen Batch von Bilddateien in Cloud Storage auszuführen.

Java

Bevor Sie dieses Beispiel anwenden, folgen Sie der Anleitung für die Einrichtung von Java in der Vision API-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Java-Referenzdokumentation zur Vision API.

import com.google.cloud.vision.v1.AnnotateImageRequest;
import com.google.cloud.vision.v1.AsyncBatchAnnotateImagesRequest;
import com.google.cloud.vision.v1.AsyncBatchAnnotateImagesResponse;
import com.google.cloud.vision.v1.Feature;
import com.google.cloud.vision.v1.GcsDestination;
import com.google.cloud.vision.v1.Image;
import com.google.cloud.vision.v1.ImageAnnotatorClient;
import com.google.cloud.vision.v1.ImageSource;
import com.google.cloud.vision.v1.OutputConfig;
import java.io.IOException;
import java.util.concurrent.ExecutionException;

public class AsyncBatchAnnotateImages {

  public static void asyncBatchAnnotateImages()
      throws InterruptedException, ExecutionException, IOException {
    String inputImageUri = "gs://cloud-samples-data/vision/label/wakeupcat.jpg";
    String outputUri = "gs://YOUR_BUCKET_ID/path/to/save/results/";
    asyncBatchAnnotateImages(inputImageUri, outputUri);
  }

  public static void asyncBatchAnnotateImages(String inputImageUri, String outputUri)
      throws IOException, ExecutionException, InterruptedException {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests. After completing all of your requests, call
    // the "close" method on the client to safely clean up any remaining background resources.
    try (ImageAnnotatorClient imageAnnotatorClient = ImageAnnotatorClient.create()) {

      // You can send multiple images to be annotated, this sample demonstrates how to do this with