Class CloudVision.AnnotateImagesFromGcsUriWithContext

java.lang.Object
org.apache.beam.sdk.transforms.PTransform<PCollection<KV<String,com.google.cloud.vision.v1.ImageContext>>,PCollection<List<com.google.cloud.vision.v1.AnnotateImageResponse>>>
org.apache.beam.sdk.extensions.ml.CloudVision.AnnotateImagesFromGcsUriWithContext
All Implemented Interfaces:
Serializable, HasDisplayData
Enclosing class:
CloudVision

public static class CloudVision.AnnotateImagesFromGcsUriWithContext extends PTransform<PCollection<KV<String,com.google.cloud.vision.v1.ImageContext>>,PCollection<List<com.google.cloud.vision.v1.AnnotateImageResponse>>>
Accepts KVs of String (GCS URI to the image) and ImageContext. It's possible to add ImageContext to each image to be annotated.
See Also:
  • Field Details

    • contextSideInput

      protected final PCollectionView<Map<KV<String,com.google.cloud.vision.v1.ImageContext>,com.google.cloud.vision.v1.ImageContext>> contextSideInput
    • featureList

      protected final List<com.google.cloud.vision.v1.Feature> featureList
    • desiredRequestParallelism

      protected final int desiredRequestParallelism
  • Constructor Details

    • AnnotateImagesFromGcsUriWithContext

      public AnnotateImagesFromGcsUriWithContext(List<com.google.cloud.vision.v1.Feature> featureList, long batchSize, int desiredRequestParallelism)
  • Method Details

    • mapToRequest

      public com.google.cloud.vision.v1.AnnotateImageRequest mapToRequest(KV<String,com.google.cloud.vision.v1.ImageContext> input, @Nullable com.google.cloud.vision.v1.ImageContext ctx)
      Maps KV of String (GCS URI to the image) and ImageContext to a valid AnnotateImageRequest.
      Parameters:
      input - Input element.
      ctx - optional image context, ignored here since the input holds context.
      Returns:
      a valid request.
    • expand

      public PCollection<List<com.google.cloud.vision.v1.AnnotateImageResponse>> expand(PCollection<KV<String,com.google.cloud.vision.v1.ImageContext>> input)
      Applies all necessary transforms to call the Vision API. In order to group requests into batches, we assign keys to the requests, as GroupIntoBatches works only on KVs.
      Specified by:
      expand in class PTransform<PCollection<T>,PCollection<List<com.google.cloud.vision.v1.AnnotateImageResponse>>>